Mysql備份恢復筆記

 

A、邏輯備份和恢復(mysqldump

   1、邏輯備份數據文件      

      1、備份數據庫中特定的表

         a、對於MyISAM

            #mysqldump -uroot -p --master-data=2 --lock-tables db_name table_name>/path_name/db_table.sql

         b、對於InnoDB

            #mysqldump -uroot -p --master-data=2 --single-transaction  db_name table_name>/path_name/db_table.sql

      2、備份數據庫中所有的表                                                   

         #mysqldump -uroot -p --master-data=2 --lock-all-tables db_name>/path_name/db_name.sql

      3、備份整個mysql數據庫所有的表

         #mysqldump -uroot -p --master-data=2 --lock-all-tables --all-databases>/path_name/all.sql            

      

   2、邏輯備份當前二進制日誌文件

         # mysqlbinlog -uroot -p myrhcs2-bin.000002

              CHANGE MASTER TO MASTER_LOG_FILE='myrhcs2-bin.000002', MASTER_LOG_POS=15846;

         mysql>  flush logs;

         # mysqlbinlog -uroot -p myrhcs2-bin.000002 --start-position 15846 --stop-position 16532 >>/backup/bin2.sql

            

   3、恢復邏輯備份的數據      

      mysql> source /backup/test.sql   

         

   4、恢復二進制日誌文件數據

      1、通過二進制日誌文件直接恢復

         # mysqlbinlog myrhcs2-bin.000002 --start-position 15846 --stop-position 16532|mysql -uroot -p

      2、通過備份的二進制sql文本恢復

         mysql> source /backup/bin.sql  

 

   5SELECT INTO OUTFILE 導出數據

      mysql>select name,countrycode into outfile '/backup/City.txt' from City where CountryCode='CHN';

   6LOAD DATA INFILE 導入數據

      mysql> load data infile '/backup/City.txt'  into table test1;

      

B、物理備份(Xtrabackup2.3.4版本)

   1、如果要使用一個最小權限的用戶進行備份,則可基於如下命令創建此類用戶:

      mysql> CREATE USER ’bkpuser’@’localhost’ IDENTIFIED BY ’s3cret’;

      mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ’bkpuser’;

      mysql>GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO ’bkpuser’@’localhost’;      

      mysql> FLUSH PRIVILEGES;

   2、備份數據文件

      #  innobackupex --user=root --password=mysql  /backup/full

   3、對備份中的數據提交或回滾操作   

      #innobackupex --user=root --password=mysql --apply-log --raed-only /backup/full/2016-06-25_20-23-15/

   4、恢復數據庫

      #innobackupex --user=root --password=mysql --copy-back /backup/full/2016-06-25_20-23-15

   5、增量備份數據庫

      a、第一次增量備份                        

      #innobackupex --user=root --password=mysql --incremental /backup/inc1 --incremental-basedir=/backup/full/2016-06-25_20-23-15                                   

      b、第二次增量備份

      #innobackupex --user=root --password=mysql --incremental /backup/inc2 --incremental-basedir=/backup/full/2016-06-25_20-23-15                               

   6、對增量數據提交或者回滾並且合併增量與全備數據

      #innobackupex --user=root --password=mysql --apply-log --redo-only /backup/full/2016-06-25_20-23-15 --incremental-dir=/backup/inc1/2016-06-23_19-49-25

      #innobackupex --user=root --password=mysql --apply-log --redo-only /backup/full/2016-06-25_20-23-15 --incremental-dir=/backup/inc2/2016-06-23_20-08-51

   7、對增量後的數據庫進行恢復(注意:只能對最新--apply-log-only的增量狀態進行恢復)

      #innobackupex --user=root --password=mysql --copy-back /backup/full/2016-06-25_20-23-15

      #innobackupex --user=root --password=mysql --copy-back /backup/full/2016-06-25_20-23-15

   8、對物理備份的數據庫的二進制文件進行備份恢復

      從備份目錄中xtrabackup_info文件獲取到binlogpos位置        

      binlog_pos = filename 'mysql-bin.000002', position '7082993'

      #mysqlbinlog --skip-gtids /mysql/log/mysql-bin.000002 --start-position 7082993 /mysql/log/mysql-bin.000004 --stop-position 9082993  >>/backup/bin2.sql

 

 

發佈了31 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章