平時要勤勞備份 備份是每個站長的職責
在淄博等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計、網(wǎng)站建設 網(wǎng)站設計制作定制設計,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,營銷型網(wǎng)站建設,外貿營銷網(wǎng)站建設,淄博網(wǎng)站建設費用合理。
除非你有服務器權限和你開啟了日志功能 可以試試下
如果你要恢復的數(shù)據(jù)庫是包含授權表的mysql數(shù)據(jù)庫,您將需要使用--skip贈款-tables選項來運行服務器恢復整個數(shù)據(jù)庫
- 首先,。否則,服務器會抱怨不能找到授權表?;謴捅砗?,執(zhí)行mysqladmin沖水privileges告訴服務器裝載授權表,并用它們來啟動。數(shù)據(jù)庫目錄到其他地方的原始內容
復制。例如,您可以使用它們在以后的事后分析檢查表(驗尸)的崩潰。
酒店與最新的數(shù)據(jù)庫備份文件重新加載。如果您打算使用mysqldump的所加載的文件,則需要輸入它們作為mysql的。如果您打算使用從數(shù)據(jù)庫文件直接拷貝(例如,使用tar或CP),它會復制他們直接回數(shù)據(jù)庫目錄中。然而,在這種情況下,你應該在關閉之前,該服務器復制這些文件,然后重新啟動它。在備份過程中
重做日志,然后查詢更新數(shù)據(jù)庫表中。對于所有可用的更新日志,你可以使用它作為mysql的輸入。指定--one-database選項,因此MySQL只是要還原的數(shù)據(jù)庫執(zhí)行查詢。如果你意識到有必要使用所有的更新日志文件,可以使用包含以下命令日志的目錄:
%LS-TRL更新(0-9)* | xargs的貓| mysql--。一個數(shù)據(jù)庫DB_NAME
ls命令生成一個單獨的日志文件更新列表,更新日志文件根據(jù)服務器(你知道,如果你其中的任何文件,排序順序生成的順序進行排序會發(fā)生變化,這將導致在更新日志中以錯誤的順序使用)。有限公司您可能需要使用一些更新日志。例如,如果日志,因為命名update.392備份,pdate.393等產(chǎn)生的,可以在命令重新運行它們:
%的mysql - 一個數(shù)據(jù)庫DB_NAME 錄入。 392
%的mysql - 一個數(shù)據(jù)庫DB_NAME updata.393
...
如果您正在運行的恢復,并打算使用更新日志恢復由于失誤降數(shù)據(jù)的基礎上,DROPTABLE或DELETE語句和丟失的信息時,一定要在開始更新日志刪除這些語句。
恢復單個表
恢復單個表是非常困難的。如果是的mysqldump備份文件生成的,它只是不包含數(shù)據(jù),您需要一個表,你需要提取的相關線路,并利用它們作為mysql的輸入,這部分比較容易。困難的是,提取在該表的更新日志中使用的片段。你會發(fā)現(xiàn):mysql_find_rows工具在這方面有所幫助,它可以提取多行從更新日志查詢。另一種可能性是使用另一臺服務器
恢復整個數(shù)據(jù)庫,然后將該文件復制到表的原始數(shù)據(jù)庫。這其實很容易!當文件被復制回數(shù)據(jù)庫目錄,確保原始數(shù)據(jù)庫服務器關閉。
mysql數(shù)據(jù)庫不小心還原了需要按照以下步驟恢復。
1、先確認MYSQL有沒有啟用bin日志?,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin,?可以?自定義一個目錄和前綴名,比如/data/log/mylog這樣。
2、然后在數(shù)據(jù)庫文件存放的data目錄就能看到mysql-bin.00000x這樣的文件,這就是二進制日志了,可以導出成txt格式的,里面其實就是對數(shù)據(jù)庫的各種操作SQL語句。
3、導出txt文件:
E:\wamp\bin\mysql\mysql5.6.12\binmysqlbinlog --database=testdatabase E:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000312 C:\\test1.txt
這是WINDOWS下的導出,linux也是類似的。
database=數(shù)據(jù)庫名
從最早的日志還始還原
linux下可以很方便的?mysql-bin.000*
可以加參數(shù)開始時間和結束時間,就是你執(zhí)行那條SQL語句的時間
start-datetime="2014-12-04 11:25:56" --stop-datetime="2014-12-04 13:23:50"
4、恢復數(shù)據(jù):
E:\wamp\bin\mysql\mysql5.6.12\binmysqlbinlog --database=yundongchao E:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000179 | mysql -u root -p
------------------------------------------------
有多種方法.請參考以下方法. 方法一: 安裝一個mysql的客戶端,比如navicat,建好連接,打開要導入的數(shù)據(jù)庫,點擊導入向導,選擇要導入的 數(shù)據(jù),選擇要導入的目標表,在最后的選項中選擇附加到已有數(shù)據(jù). 方法二: 先使用mysq命令行導入新數(shù)據(jù)到一張新表,新表結構與之前表一樣.然后執(zhí)行以下插入語句. 假定新表名為new_tb,原表名為old_tb, 則 insert into old_tb select * from new_tb
mysql主從同步常見異常及恢復方法
1. 一般的異常只需要跳過一步即可恢復
slave stop;
SET GLOBAL sql_slave_skip_counter = 1;
slave start;
2.斷電導致主從不能同步時,通主庫的最后一個bin-log日志進行恢復
在主庫服務器上,mysqlbinlog mysql-bin.xxxx binxxxx.txt
tail -n 100000 binxxxx.txt tail-binxxxx.txt
vim tail-binxxxx.txt 打開tail-binxxxx.txt文件找到最后一個postion值
然后在從庫上,change host to 相應正確的值
slave stop;
change master to master_host='ip', master_user='username', master_password='password', master_log_file='mysql-bin.xxxx', master_log_pos=xxxx;
slave start;
show slave status\G;
3.主鍵沖突、表已存在等錯誤代碼如1062,1032,1060等,可以在mysql主配置文件指定
略過此類異常并繼續(xù)下條sql同步,這樣也可以避免很多主從同步的異常中斷
[mysqld]
slave-skip-errors = 1062,1032,1060