成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL數(shù)據(jù)庫Drop Down后的緊急處置

數(shù)據(jù)庫 MySQL
本文作者維護著一個日均3000人在線的網(wǎng)游,近日因為一次復(fù)制數(shù)據(jù)庫的過程中沒有修改數(shù)據(jù)庫名,導(dǎo)致第二個數(shù)據(jù)庫被全部丟失。這可怎么辦?且看攤上大事的作者如何應(yīng)對。

前言

今天下午3點,我按照慣例,打開游戲服務(wù)器,開新服部署嘛,游戲在騰訊開放平臺,簡單。閉著眼睛都OK。于是一輪子的復(fù)制黏貼拷貝,把服務(wù)器加起來,然后啟動查看日志。

。。。。突然發(fā)現(xiàn)不斷的有Exception?搞什么?丟失表Usr_user??剛才不是導(dǎo)了數(shù)據(jù)庫嗎?不存在?怎么會?

我瞬間意識到。我攤上事了,我攤上大事了。。檢查剛才的復(fù)制黏貼,發(fā)現(xiàn)我沒改數(shù)據(jù)庫名,這一下子把第二個服的數(shù)據(jù)庫整個干掉了。

我擦!!不會吧??背后一涼就軟灘在凳子上了。

備份?沒有。

數(shù)據(jù)庫還有渣嗎?select count(*) ....  0!

備份?真的沒有。

怎么能沒備份啊!

怎么辦?幾十個玩家充值了幾千元。連個影子也沒了。

找玩家求饒?送禮包?? 你覺得玩家會放過你?天真。

linux服務(wù)器 + mysql數(shù)據(jù)庫 + 游戲緩存 + flash的as3前端。怎么搞。。。我完蛋了。

HOLD住!

我要HOLD住!冷靜,雖然大腦一片空白。馬上Google找mysql有無自動備份的。。。沒看到。問同事,求助。我靠,他們怎么好像沒反應(yīng)啊。。。

這個時候,有個哥們提示我,用 mysqlbinlog。

這玩意是什么。馬上google,知道m(xù)ysql自身會有個操作的備份。我靠!希望來了。趕快進入mysql目錄,查看下。果然看到幾十個bin文件。

網(wǎng)上繼續(xù)搜。大概知道m(xù)ysql會保存30天內(nèi)的數(shù)據(jù)庫操作在bin文件。OK。

 

我們達洛克2服才剛運行了2天,算起來應(yīng)該就是最后2個bin文件。還好。用

 

  1. mysqlbinlog --no-defaults mysql-bin.000026 > mysql-bin.000026.txt 

導(dǎo)出了SQL,檢查下:

  1. at 472331597 
  2. #130619 18:04:23 server id 1  end_log_pos 472331772     Query   thread_id=2657  exec_time=0     error_code=0 
  3. SET TIMESTAMP=1371636263/*!*/; 
  4. UPDATE USR_RESOURCE SET MODIDATE = '2013-06-19 18:04:23',SILVER = 283 WHERE USERCODE='001UR1371634524003511' 
  5. /*!*/; 
  6. at 472331772 
  7. #130619 18:04:23 server id 1  end_log_pos 472331799     Xid = 226001034 
  8. COMMIT/*!*/; 
  9. at 472331799 
  10. #130619 18:04:23 server id 1  end_log_pos 472331871     Query   thread_id=2657  exec_time=0     error_code=0 
  11. SET TIMESTAMP=1371636263/*!*/; 
  12. BEGIN 

大概是這種結(jié)構(gòu)。

冷靜下來,分析了。我還原數(shù)據(jù)庫,只要從建庫開始第一個sql重新執(zhí)行到最后一個。理論上數(shù)據(jù)庫就會被還原。但是bin文件里面是所有的SQL操作,我要篩選出 達洛克戰(zhàn)記2服 的。網(wǎng)上說用 cat / more / less 等命令。我靠,這他媽也太復(fù)雜了把?

于是我zip了所有bin文件,回傳到本地,用c#寫了個過濾代碼,找到 use darok2_2,知道這段內(nèi)容都是 達洛克戰(zhàn)記2服 的數(shù)據(jù)。

  1. public void test() 
  2.     FileStream stream = File.OpenRead(@"E:\玩轉(zhuǎn)中國\程序設(shè)計\達洛克戰(zhàn)記\xtar-backup\svn\達洛克戰(zhàn)記2x\svn\server-deploy\mysql-bin.000027.txt\mysql-bin.000027.txt"); 
  3.     StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("GBK")); 
  4.  
  5.     FileStream streamO = File.Create(@"E:\玩轉(zhuǎn)中國\程序設(shè)計\達洛克戰(zhàn)記\xtar-backup\svn\達洛克戰(zhàn)記2x\svn\server-deploy\mysql-bin.000027.txt\000027.out.txt"); 
  6.     StreamWriter writer = new StreamWriter(streamO, Encoding.GetEncoding("GBK")); 
  7.  
  8.     Encoding gbk = Encoding.GetEncoding("GBK"); 
  9.     Encoding utf = Encoding.Default; 
  10.  
  11.     string strLine = reader.ReadLine(); 
  12.  
  13.     while (strLine != null
  14.     { 
  15.  
  16.         if (!strLine.StartsWith("use darok2_2", StringComparison.OrdinalIgnoreCase)) 
  17.         { 
  18.             strLine = reader.ReadLine(); 
  19.             continue
  20.         } 
  21.  
  22.         do 
  23.         { 
  24.             if (strLine == null
  25.                 break
  26.  
  27.             if (strLine.StartsWith("use", StringComparison.OrdinalIgnoreCase) && !strLine.StartsWith("use darok2_2", StringComparison.OrdinalIgnoreCase)) 
  28.             { 
  29.                 strLine = reader.ReadLine(); 
  30.                 break
  31.             } 
  32.  
  33.             if (strLine.StartsWith("INSERT", StringComparison.OrdinalIgnoreCase) || strLine.StartsWith("DELETE", StringComparison.OrdinalIgnoreCase) || strLine.StartsWith("UPDATE", StringComparison.OrdinalIgnoreCase)) 
  34.             { 
  35.                 writer.Write(strLine); 
  36.                 writer.WriteLine(";"); 
  37.             } 
  38.             else 
  39.             { 
  40.             } 
  41.             strLine = reader.ReadLine(); 
  42.  
  43.         } 
  44.         while (true); 
  45.     } 
  46.  
  47.     writer.Flush(); 
  48.     writer.Close(); 
  49.  
  50.     reader.Close(); 

這樣,我就得到過濾出來的SQL文件了。本地我建了個數(shù)據(jù)庫測試下,發(fā)現(xiàn)第一句就卡死了??HOLD住!!!

再細心看看,發(fā)現(xiàn)中文到了txt全部是亂碼了。安靜思考了下:

linux數(shù)據(jù)庫用的是GBK。因此bin文件導(dǎo)出的格式一定是GBK。那么代碼用GBK讀取,然后GBK寫入就ok了(代碼里面已經(jīng)修復(fù)了)

再導(dǎo)入,順利了。

進入數(shù)據(jù)庫在看,發(fā)現(xiàn)中文還是亂碼。。。。奇怪。那可能是mysql設(shè)置的問題了,和linux環(huán)境下不一致。我只要把這些過濾的SQL在達洛克服務(wù)器上走一遍應(yīng)該就ok了。

上傳SQL,運行腳本:

  1. mysql -uxxxx -pxxxx darok2_2 <  000027.out.txt. 

等了10分鐘。。。進入騰訊朋友網(wǎng),開啟游戲。一切又光明了。

總結(jié):

各位看官,別看我洋洋灑灑幾句廢話貌似幾分鐘的事情。在那個接近崩潰,連數(shù)據(jù)庫渣都沒的條件下。我是多么慘的度過了2個小時。

 mysqlbinlog

各位真心要記在心里。如果有全量備份+這個增量備份,基本上數(shù)據(jù)是不會丟失的。嗨。真實虛驚一場啊。

原文鏈接:http://www.cnblogs.com/zc22/p/3145080.html

【編輯推薦】

 

 

  1. MariaDB 5.3將支持ALTER TABLE的進度提示
  2. MySQL創(chuàng)始人打造MariaDB 全面兼容MySQL 5.1
  3. MariaDB 2周年了
  4. 教你五步優(yōu)化你的MongoDB
  5. NoSQL在企業(yè)中的發(fā)展歷程

 

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2017-03-14 14:09:08

數(shù)據(jù)庫Oracle備份

2018-08-02 11:04:41

數(shù)據(jù)庫遷移數(shù)據(jù)

2018-03-06 09:54:48

數(shù)據(jù)庫備份恢復(fù)

2011-03-30 14:08:27

MySQL數(shù)據(jù)庫刪除恢復(fù)

2011-03-24 11:14:46

2011-05-17 14:46:38

Oracle數(shù)據(jù)庫故障

2024-04-10 07:16:17

JDBC驅(qū)動MySQL數(shù)據(jù)庫

2010-06-04 18:45:00

MySQL數(shù)據(jù)庫

2011-03-08 08:49:55

MySQL優(yōu)化單機

2011-05-13 09:42:21

2010-06-09 15:40:59

MySQL數(shù)據(jù)庫文件

2019-08-20 14:02:07

MongoDB數(shù)據(jù)庫恢復(fù)數(shù)據(jù)

2018-04-28 15:28:44

數(shù)據(jù)庫MySQL誤刪除

2011-03-30 14:19:56

MySQL數(shù)據(jù)庫修改恢復(fù)

2011-02-22 14:26:04

ProFTPD

2011-02-22 14:26:04

ProFTPD

2009-05-08 09:56:37

MaxDBMySQL數(shù)據(jù)庫管理

2011-03-09 08:53:02

MySQL優(yōu)化集群

2011-08-23 17:45:54

MySQL丟失root密碼

2017-09-26 13:35:40

Mysql數(shù)據(jù)庫設(shè)計樹狀數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日韩二三区 | 久久久久久九九九九 | 国产婷婷色一区二区三区 | 欧美一区二区三区在线看 | 日韩欧美三区 | 免费看国产一级特黄aaaa大片 | 精品一区二区久久久久久久网站 | 国产高清免费视频 | 国产一区91精品张津瑜 | 精品免费国产视频 | 欧美www在线 | 五月天国产在线 | 伊人精品一区二区三区 | 97精品国产手机 | 精品久久久久久亚洲综合网 | 国产一区二区黑人欧美xxxx | 日本久久黄色 | 亚洲国产精品久久 | 欧美精品一区二区在线观看 | 国产农村一级片 | 精品视频在线免费观看 | 国产精品国产自产拍高清 | 欧美精品一区三区 | 久久久久国产视频 | 丁香婷婷久久久综合精品国产 | 久久国产一区二区三区 | 天天干天天爱天天操 | 亚洲国产精品久久 | 亚洲欧美一区二区三区国产精品 | 亚洲综合五月天婷婷 | 狠狠躁夜夜躁人人爽天天高潮 | 亚洲综合在线视频 | 国产人成精品一区二区三 | 欧美日韩高清在线一区 | 男女视频在线观看免费 | 懂色中文一区二区在线播放 | 欧美freesex黑人又粗又大 | 四虎永久免费在线 | 久久国产成人午夜av影院武则天 | 精品亚洲视频在线 | 国产成人精品亚洲日本在线观看 |