重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
???首先,我們需要開啟MySQL服務器的二進制日志功能,其實現方法有很多種,最常用的是在MySQL的配置文件的mysqld項中加入log-bin=[filepath]項;也可以使用mysqld –log-bin=[filepath]重新啟動MySQL服務器。
10年積累的網站制作、網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先建設網站后付款的網站建設流程,更有柳河免費網站建設讓你可以放心的選擇與我們合作。
???其次,使用mysqldump對數據庫進行完全備份,它可以實現對數據據的聯機,非阻塞的熱備份,不會影響其他進程對數據庫的讀寫操作。(參考指令:mysqldump -uroot --password=123 --single-transaction --flush-logs --master-data=2 --all-databases --delete-master-logs d:/mysql5.0/full_%date:~0,10%_1500_PM.sql)
???第三,使用flush logs指令刷新創建新的二進制日志。可以通過mysqladmin flush logs或者flush logs語句實現。最方便有效的方法是將它做成批處理文件,然后讓操作系統定期執行。
???使用mysql *.sql進行完全備份的恢復。
???使用mysqlbinlog logs-bin.[0-9]* | mysql進行增量備份的恢復。一般的,假設我們周日下午三點進行了完全備份并生成備份文件full_backup_20100415_3_PM.sql,周一周二中午一點進行了兩次增量備份,分別生成增量備份文件inc_backup_1_PM.0007和inc_backup_1_PM.0008,周三上午10:00數據庫發生崩潰,需要進行數據庫恢復,此時正在記錄的二進制日志為inc_backup_1_PM.0009,我們還需要恢復其中記錄的操作。具體的恢復操作為:
mysql full_backup_20100415_3_PM.sql
mysqlbinlog inc_backup_1_PM.0007 inc_backup_1_PM.0008 inc_backup_1_PM.0009
u??具體應用(結合T8項目)
根據上述分析,我們在T8項目使用MySQL增量備份,也需要三個步驟:
???首選修改MySQL啟動配置文件my.cnf,在其中的mysqld項中增加log-bin選項,重新啟動MySQL?服務器以開啟二進制日志功能,在生成文件/usr/data/mysql/ t8server-bin.index和t8server-bin..000001。如圖所示:
???編寫完全備份可執行文件腳本:
???編寫增量備份可執行文件腳本:
???執行full_backup_20100417_1_pm,生成/usr/data/mysql/full_backup_20100417_1_pm. sql文件。
???執行inc_backup_1_pm,生成/usr/data/mysql/t8server-bin..000002。
其中full_backup_20100417_1_pm. sql和t8server-bin..000002分別是完全備份和增量備份文件。
要進行備份文件的恢復,只需執行命令:
u??總結
MySQL提供了很方便的完全+增量備份實現方法,我們只需調用系統內置的方法或者作出一些細微的配置就可以對MySQL數據庫進行備份和恢復。對于MyISAM數據庫和InnoDB數據庫,都可以通過mysqldump實現數據庫的完全邏輯備份,通過啟動二進制日志(binary logs),可以記錄一個時間段內對數據庫的所有可能更新的操作,從而通過flush logs創建新的日志而實現增量備份。
數據庫最直接的備份方法就是使用自帶的mysqldump命令進行備份。
1、 mysqldump命令備份數據
在MySQL中提供了命令行導出數據庫數據以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現數據庫內容的導出dump,首先我們簡單了解一下mysqldump命令用法:
#MySQLdump常用
mysqldump -u root -p --databases 數據庫1 數據庫2 xxx.sql
2、 mysqldump常用操作實例
2.1備份全部數據庫的數據和結構
mysqldump -uroot -p123456 -A /data/mysqlDump/mydb.sql
2.2備份全部數據庫的結構(加 -d 參數)
mysqldump -uroot -p123456 -A -d /data/mysqlDump/mydb.sql
2.3 備份全部數據庫的數據(加 -t 參數)
mysqldump -uroot -p123456 -A -t /data/mysqlDump/mydb.sql
2.4 備份單個數據庫的數據和結構(,數據庫名mydb)
mysqldump -uroot-p123456 mydb /data/mysqlDump/mydb.sql
2.5 備份單個數據庫的結構
mysqldump -uroot -p123456 mydb -d /data/mysqlDump/mydb.sql
2.6 備份單個數據庫的數據
mysqldump -uroot -p123456 mydb -t /data/mysqlDump/mydb.sql2
2.7 備份多個表的數據和結構(數據,結構的單獨備份方法與上同)
mysqldump -uroot -p123456 mydb t1 t2 /data/mysqlDump/mydb.sql
2.8 一次備份多個數據庫
mysqldump -uroot -p123456 --databases db1 db2 /data/mysqlDump/mydb.sql
解決方法添加 -w 參數, 將時間進行轉換, 確保兩邊時區保持一致, 比如原來 start_at 2019-01-16 00:00:00, 更新為 start_at 2019-01-15 16:00:00, 提前8小時
先在數據庫更新時區配置為0時區:set time_zone='+00:00';, 備份完成后恢復時區配置: set time_zone='SYSTEM';
方法:
URL;create?table?ay(ay1?image)--??
//新建一個名為AY的表?表內存在名為AY1的圖象類型的字段
URL;backup?database?數據庫名?to?disk='物理路徑'?with?DIFFERENTIAL--??
//注意,這次備份是要減小數據庫的備份量
URL;backup?database?數據庫名?to?disk='物理路徑'with?DIFFERENTIAL--???
//備份數據庫到WEB目錄下