好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > MySQL單表恢復的步驟

MySQL單表恢復的步驟

熱門標簽:宜賓全自動外呼系統廠家 廣東400企業電話申請流程 新鄉智能外呼系統好處 申請400電話電話價格 臨沂做地圖標注 許昌外呼增值業務線路 咸陽防封電銷卡 石家莊400電話辦理公司 地圖標注客戶付款

  正休息的時候一個電話將我的睡意完全打散,“開發童鞋寫update SQL的時候忘了加where條件了”,相信每一個DBA同學聽到這個消息的時候都有罵街的沖動吧。萬幸只是單表寫花了,而不是哪位大神在DB里面drop table玩。雖然已經很久沒進行單表恢復了,但是還好步驟都印在腦海中,沒有出問題的就恢復完了。

  言歸正傳,記錄一下單表恢復的步驟和關鍵點,提醒自己也提醒大家。

第一步:

  找一臺性能比較高的服務器作為還原機,從備份池中將最近的一次備份恢復到這臺還原機上。當然這個前提是你有備份,且備份是可用的。(什么? 你告訴我沒有做備份,那么同學你可以洗洗睡了,準備享受自由的空氣吧。)

  注意:這個時候不要啟動同步,務必保持不同步狀態。

  ps:多說一嘴,對于DBA來說,備份是最重要的一個環節,不但要有,還要定期檢查備份是否是可用的,這是DBA的必要素質之一。

第二步:

  聯系那個犯錯的開發同學要錯誤的SQL語句和時間點,然后從主庫的binlog中找到這條SQL的執行點。具體操作舉例如下

### 使用mysqlbinlog將二進制日志轉化為明文SQL日志
mysqlbinlog mysql-bin.000123 > /data1/000123.sql

### 使用linux的grep命令根據“key word”找到那個引發數據寫花的SQL所在的位置
cat 000123.sql |grep -C 10 'key word' --color

### 標紅色的是問題SQL,及這條SQL開始的時間點,及下一條SQL的開始時間點,這2個pos位置非常重要
# at 20393709
#131205 20:55:08 server id 18984603 end_log_pos 20393779 Query thread_id=16296016 exec_time=0 error_code=0
SET TIMESTAMP=1386248108/*!*/;
BEGIN
/*!*/;
# at 20393779
#131205 20:55:08 server id 18984603 end_log_pos 20394211 Query thread_id=16296016 exec_time=0 error_code=0
SET TIMESTAMP=1386248108/*!*/;
update table tablename set names='xxxx';
# at 20394211
#131205 20:55:08 server id 18984603 end_log_pos 20394238 Xid = 92465981
COMMIT/*!*/;
# at 20394238
#131205 20:55:10 server id 18984603 end_log_pos 20394308 Query thread_id=16296017 exec_time=0 error_code=0
SET TIMESTAMP=1386248110/*!*/;
BEGIN

第三步:

  根據第二步得到的pos位置,啟動同步關系,但是需要停止到問題SQL之前的pos位置上,具體使用如下命令

### pos位置等于問題SQL begin的pos位置
slave start until master_log_file='mysql-bin.000123',master_log_pos=20393709;

  然后跳過這個問題SQL,將同步change到下一個pos位置上,具體使用如下命令

### pos位置等于問題SQL commit之后的pos位置
change master to master_log_file='mysql-bin.000123',master_log_pos=20394238;

  從上面兩條命令我們看出,第二步得到的兩個pos位置很關鍵。

第四步:

  在主庫上將寫花的表改名,其目的有二個,其一,停止對這個表的寫入(當然這對業務會有一定的影響,會出現一段時間內的寫入失敗報警,需要提前和業務部門聯系好),其二,一旦恢復失敗,至少還有一個寫花的表存在,可以很快的恢復成我們恢復操作之前的狀態。

### 在主庫上執行
rename table tablename to tablename_bak;

  然后在還原機上執行dump操作,執行這個操作的使用需要注意,如果表中有中文字符,一定記得需要添加--default-chararter-set參數

mysqldump -uusername -ppassword -S/tmp/mysql.sock dbname tablename --opt> tablename.sql

  最后將這個文件傳輸到主庫服務器上,完成最后的恢復操作

### 可以選擇登陸mysql之后
source tablename.sql;

### 也可以在cmd界面
mysql -uusername -ppassword -S/tmp/mysql.sock  tablename.sql

  當然也可以不這么麻煩,直接執行如下命令,但是個人習慣處于保存歷史操作記錄和中間結果的需要,我都是按照以上步驟完成,這樣可以保存一個隨時可以恢復的文本文件,心理更踏實一點。

### 快速的方法可以按照如下操作,在還原機上的命令
mysql -uusername -ppassword -S /tmp/mysql.sock dbname tablename | mysql -uusername -ppassowrd -hhost -Pport

  通過以上命令就可以直接完成dump并導入的操作了,缺點就是不會有一份備份文件生成。

第五步:

  基本DBA的事情就沒有了,這時候就需要告訴開發同學恢復完畢,進行應用測試及數據正確性效驗了。如果一切都沒有問題之后,我們需要將剛才rename的表drop掉,整個恢復操作就算大功告成了。

drop table if exists tablename_bak;

  數據庫恢復是每個DBA必備的技能,需要熟練掌握,希望度過這篇文章的同學們都可以輕車熟路的進行恢復操作。

  ps:這個操作,最好一萬年都不要用一次就最好了。

以上就是MySQL單表恢復的步驟的詳細內容,更多關于mysql單表恢復的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • MySQL使用全庫備份數據恢復單表數據的方法
  • MySQL如何恢復單庫或單表,以及可能遇到的坑
  • 從MySQL全庫備份中恢復某個庫和某張表的方法
  • mysql 從 frm 文件恢復 table 表結構的3種方法【推薦】
  • InnoDB 類型MySql恢復表結構與數據
  • MySQL 從全庫備份中恢復指定的表和庫示例
  • MySQL單表ibd文件恢復方法詳解
  • MYSQL使用.frm恢復數據表結構的實現方法
  • 用mysqldump備份和恢復指定表的方法
  • MySQL 利用frm文件和ibd文件恢復表數據

標簽:北京 鷹潭 臺灣 日照 合肥 鎮江 阜新 貴州

巨人網絡通訊聲明:本文標題《MySQL單表恢復的步驟》,本文關鍵詞  MySQL,單表,恢復,的,步驟,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL單表恢復的步驟》相關的同類信息!
  • 本頁收集關于MySQL單表恢復的步驟的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 在线网站黄色| 动漫女被?黄漫画| 亚洲精品巨爆乳无码大乳巨学生| 国产精品女丝袜白丝袜| 爽肉高h辣文np| 亚洲大片在线观看| 久久久久精品黄桃影视| 91chinesevideo| 欧美Gay男男激情videos| 久久久精品2019中文字幕2020| 91在线高清视频| 精品人伦一区二区三区闺蜜| 九九精品视频免费| 爱草草| 精品无码久久久久久动漫软件| 久久99久久99精品免视看婷婷| 啦啦啦观看免费完整4版高清| 亚洲一区精品伊人久久伊人| 久久久久精品国产片| 日产乱码一二三区别免费仙踪林| 日本大胆人体| 海外华人8x| 国产精品日本不卡一区二区| 他将头埋进双腿间吮小核软件| 美女模特私房蕾丝内衣写真| 男生艹女生| h版欧美一区二区三区四区| H无遮挡H无码黄3D漫画软件| 国产学生无套内精在线观看 | 黄色污在线观看| 国产做爰又粗又大免费看网站| 大学女浴室裸体洗澡更衣视频| 天天躁日日躁疯人影院| 国产对白叫床清晰在线播放中| GAY黑人又粗又大XXXXOO| 毛片2| 女子SPA高潮呻吟抽搐| 爱情岛论坛亚洲品质自拍网址大全| free hd xxxx movies 动漫| 特黄一级**毛片| 亚洲小说春色综合另类电影|