業務**缺乏容錯機制,直接把缺失的帳號給乾掉了。
結果:自然是使用者登入提示帳號不存在……
教訓:1、資料回滾流程不通暢,足足花了2個小時;
2、光有告警是不夠的,
異常保護機制很重要!
超出閾值,就阻斷。
要把風險扼殺在搖籃裡。
經驗:從備份庫取出一張表的資料,差異恢復到生產環境
1.1、切忌直接從備份庫匯出!
原因是:mysqldump -h 1.1.1.1 --single-transaction -u root xxdb xx_tbl > xx_tbl_1215.sql
vim xx_tbl_1215.sql 會發現語句:drop table if exists `xx_tbl`; create table `xx_tbl`(
看起來 --add-drop-table引數是預設的)。
也就意味著,如果拿這個sql直接匯入生產環境,則生成環境當前的資料會被drop掉。
正確的做法是建立個臨時表:
在備份庫上:create table xx_tbl_bak like xx_tbl;
insert
xx_tbl_bak
select * from
xx_tbl;
mysqldump -h 1.1.1.1 --single-transaction -u root xxdb xx_tbl_bak > xx_tbl_bak_1215.sql
恢復到生產環境:create table
xx_tbl_bak
like
xx_tbl
;mysql -u root xxdb < xx_tbl_bak_1215.sql
1.2、找出xx_tbl和xx_tbl_bak的
差異資料,合併處理
select * from xx_tbl_bak where not exists (select * from xx_tbl where uin=xx_tbl_bak.uin and device=xx_tbl_bak.device);
insert into xx_tbl
select * from
xx_tbl_bak
where not exists (select * from
xx_tbl
where uin=
xx_tbl_bak
.uin and device=
xx_tbl_bak
.device);
反之,如果要查詢兩張表相同的資料:
select * from
xx_tbl_bak
where exists (select * from
xx_tbl
where uin=
xx_tbl_bak
.uin and device=
xx_tbl_bak
.device);
chrome同步之帳號登入
通過chrome的選項進行登入同步的時候的主要流程。chrome內部支援了基於oauth的驗證 首先使用者輸入使用者名稱和密碼,提交後服務端會返回sid和lsid,這兩個內容是加密過的。然後用sid和lsid到服務端去獲取這個使用者的資訊,主要包括 email 暱稱 賬號的型別及支援的種類。然後將這...
這回看來是真的要與Google說88了
這兩天,google文件好像是真的沒辦法用了,舊的文件倒還能開啟和修改,但7.1後建立的開不了,建立新文件會出現錯誤頁,建立其它格式好像還行。這次不像以前,只是開啟不順利,多試幾次或換成非https方式基本上都還能用,這回看起來是真不行了。相簿反正是早就不行了,其它我常用的gmail和地圖一直還好。...
幀同步 什麼是幀同步什麼是狀態同步
以下是moba第七章內容 第七章 ue4底層原理和ue4跨平台通訊外掛程式封裝 7 1 什麼是幀同步什麼是狀態同步 7 2 ue4客戶端和服務端的udpsocket如何初始化 7 3 ue4服務端的udpsocket初始化流程 7 4 ue4客戶端的udpsocket初始化流程 7 5 ue4握手階...