亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

Linux下實現MySQL數據備份和恢復的命令使用全攻略

2024-07-24 13:08:07
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了Linux下實現MySQL數據備份和恢復的命令使用全攻略,包括使用Mysqldump和LVM快照以及xtrabackup三種方法,傾力推薦!需要的朋友可以參考下

為了保障數據的安全,需要定期對數據進行備份。備份的方式有很多種,效果也不一樣。一旦數據庫中的數據出現了錯誤,就需要使用備份好的數據進行還原恢復。從而將損失降到最低。下面我們來了解一下MySQL常見的有三種備份恢復方式:

1、利用Mysqldump+二進制日志實現備份

2、利用LVM快照+二進制日志實現備份

3、使用Xtrabackup備份

一:實驗環境介紹:

系統介紹:CentOS6.4_X64

數據庫版本:mysql-5.5.33

二:基于Mysqldump命令實現備份恢復

2.1、思路概念

Mysqldump是一個邏輯備份命令;意思就是將數據庫中的數據備份成一個文本文件;也可以說是將表的結構和數據存儲在文本文件中。

Mysqldump命令的工作原理很簡單,它先查出需要備份的表的結構,再在文本文件中生成一個CREATE語句。然后,將表中的所有記錄轉換為一條INSTERT語句。這些CREATE語句和INSTERT語句都是還原時使用的。還原數據時就可以使用其中的CREATE語句來創建表。使用其中的INSERT語句來還原數據。它可以實現整個服務器備份,也可以實現單個或部分數據庫、單個或部分表、表中的某些行、存儲過程、存儲函數、觸發器的備份;并且能自動記錄備份時刻的二進制日志文件及相應的位置。對于InnoDB存儲引擎來講支持基于單事務模式實現熱備,對于MyISAM則最多支持溫備。

2.2、備份策略

Mysqldump全備+二進制日志增備

2.3、過程實現

(1)Mysqldump全備

由于Mysql數據庫默認的為MyISAM存儲引擎所以只有使用溫備(備份同時僅支持讀請求)進行,所以我們要為所有數據庫添加讀鎖

 

 
  1. [root@stu18 ~] 
  2. #mysqldump -uroot -pmypass --lock-all-tables --master-data=2 --events --routines--all-databases > /zhao/database_`date +%F`.sql 

解析:–lock-all-tables表示為所有表施加讀鎖;–master-data=2表示在備份文件中記錄當前二進制日志的位置;–events表示備份數據的同時備份時間調度器代碼;–routines表示備份數據的同時備份存儲過程和存儲函數;–all-databases表示備份所有庫。

 

 
  1. [root@stu18 zhao] 
  2. # less database_2013-08-13.sql 
  3. --  
  4. #表示注釋項 
  5. -- Position to start replication or point-in-time recovery from 
  6. -- 
  7. -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=14203;  
  8. #這里表示當前處于mysql-bin.000001這個二進制日志中,事件為14203這是通過--master-data=2產生的 
  9. -- 
  10. -- Current Database: `hellodb` 
  11. -- 
  12. CREATE DATABASE /*!32312 IF NOT EXISTS*/ `hellodb` /*!40100 DEFAULT CHARACTER SET utf8 */

(2)二進制全備

方法一: 導出二進制日志文件內容

 

 
  1. [root@stu18 data] 
  2. # mysqlbinlog mysql-bin.000001 >/zhao/binlog_`date +%F`.sql 

方法二:滾動日志復制文件

 

 
  1. mysql> flush logs;  
  2. #滾動日志 
  3. [root@stu18 data] 
  4. # cp mysql-bin.000001 /zhao/mysql-bin.000001 #復制導出二進制文件 

(3)二進制增備

首先添加數據信息

 

 
  1. mysql> use hellodb; 
  2. mysql> INSERT INTO students(Name,Age,Gender,ClassID,TeacherID) values ('Yang kang',22,'M',3,3); 

然后二進制增備

 

 
  1. [root@stu18 data] 
  2. # mysqlbinlog --start-position=14203 --stop-position=14527 mysql-bin.000001 > /zhao/binlog_`date +%F_%H`.sql 

解析:–start-position=14203是上次全備之后的二進制事件位置;–stop-position=14527最近一天的二進制事件位置。

2.4、模擬數據庫損壞,實現恢復工作

 

 
  1. mysql> DROP DATABASE hellodb;  
  2. #刪除數據庫 
  3. ############下面這些過程要在離線狀態下執行############ 
  4. mysql> SET sql_log_bin=0;  
  5. #先關閉二進制日志 
  6. mysql> flush logs;  
  7. #滾動日志 
  8. [root@stu18 ~] 
  9. # mysql -uroot -pmypass < /zhao/database_2013-08-13.sql #導入數據庫備份文件 
  10. [root@stu18 ~] 
  11. # mysql -uroot -pmypass < /zhao/binlog_2013-08-13_19.sql #導入增量備份文件 
  12. [root@stu18 ~] 
  13. # mysql -uroot –pmypass #登錄查看,恢復完成 
  14. mysql> SET sql_log_bin=1; 

這種備份方式恢復簡單,但是恢復還原之后索引會出現錯誤需要重建,而且備份結果會占據很大的空間,請酌情使用。

PS:mysqldump常用命令小結

備份MySQL數據庫的命令

 

 
  1. mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 

備份MySQL數據庫為帶刪除表的格式

備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。

 

  1. mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql 

直接將MySQL數據庫壓縮備份

 

 
  1. mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz 

備份MySQL數據庫某個(些)表

 

 
  1. mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql 

同時備份多個MySQL數據庫

 

 
  1. mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql 

僅僅備份數據庫結構

 

 
  1. mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql 

備份服務器上所有數據庫

 

 
  1. mysqldump –all-databases > allbackupfile.sql 

還原MySQL數據庫的命令

 

 
  1. mysql -hhostname -uusername -ppassword databasename < backupfile.sql 

還原壓縮的MySQL數據庫

 

 
  1. gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename 

將數據庫轉移到新服務器

 

 
  1. mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename 

三、基于LVM快照實現備份恢復

3.1、思路明細

(1)LVM這種備份方式要求Mysql的數據保存在邏輯卷上

(2)需要給Mysql服務器施加讀鎖(mysql>FLUSH TABLES WITH READLOCK;),這里不可直接退出服務器

(3)另起終端為數據所在的卷創建快照(lvcreate),保證事務日志和數據文件必須在同一卷上(分別創建可能會導致數據文件和事務日志不一致,從而可能導致無法正?;謴?

3.2、備份策略

LVM快照全備+二進制日志增備(對于即時點恢復還要恢復至后續的二進制位置)

3.3、前提條件

(1)創建邏輯卷及掛載邏輯卷,此過程在此就不做演示了

(2)初始化mysql將其數據目錄指向/mydata/data

 

 
  1. [root@stu18 ~] 
  2. # cd /usr/local/mysql/ 
  3. [root@stu18 mysql] 
  4. # scripts/mysql_install_db --user=mysql --datadir=/mydata/data 

(3)編輯查看配置文件,重啟服務

 

 
  1. [root@stu18 mysql] 
  2. # vim /etc/my.cnf 
  3. datadir = /mydata/data 
  4. #查看此項是否定義數據目錄位置 
  5. sync_binlog=1  
  6. #添加此項,每個事務提交時候,把事務日志從緩存區寫到日志文件中,并且刷新日志文件的數據到磁盤上; 
  7. [root@stu18 mysql] 
  8. # service mysqld start 

3.4、過程展示

(1)確保事務日志和數據文件必須在同一卷上

 

 
  1. [root@stu18 ~] 
  2. # ls /mydata/data/ 
  3. hellodb myclass mysql-bin.000003 stu18.magedu.com.err 
  4. ibdata1 mysql mysql-bin.000004 stu18.magedu.com.pid 
  5. ib_logfile0 mysql-bin.000001 mysql-bin.index student 
  6. ib_logfile1 mysql-bin.000002 performance_schema test 

解析:其中ib_logfile0與ib_logfile1是日志文件

(2)施加全局鎖并滾動日志

 

 
  1. mysql> FLUSH TABLES WITH READ LOCK; 
  2. mysql> FLUSH LOGS; 

(3)查看并保存當前正在使用的二進制日志及當前執行二進制日志位置(非常重要)

 

 
  1. mysql> SHOW MASTER STATUS; 
  2. +------------------+----------+--------------+------------------+ 
  3. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
  4. +------------------+----------+--------------+------------------+ 
  5. | mysql-bin.000004 | 187 | | | 
  6. +------------------+----------+--------------+------------------+ 
  7. [root@stu18 zhao] 
  8. # mysql -uroot -pmypass -e 'SHOW MASTER STATUS;' >/zhao/lvmback-2013-08-14/binlog.txt 

(4)創建快照卷

 

 
  1. [root@stu18 zhao] 
  2. # lvcreate -L 100M -s -p r -n mydata-lvm /dev/vg1/mydata 

(5)立即切換終端釋放鎖

 

 
  1. mysql> UNLOCK TABLES; 

(6)備份數據

 

 
  1. [root@stu18 data] 
  2. # cp -a * /zhao/lvmback-2013-08-14/ 

(7)二進制實現增量備份

 

 
  1. mysql> use hellodb;  
  2. #指定默認數據庫 
  3. Database changed 
  4. mysql> CREATE TABLE testtb (id int,name CHAR(10));  
  5. #創建表 
  6. Query OK, 0 rows affected (0.35 sec) 
  7. mysql> INSERT INTO testtb VALUES (1,'tom');  
  8. #添加數據 
  9. Query OK, 1 row affected (0.09 sec) 
  10. [root@stu18 data] 
  11. # mysqlbinlog --start-position=187 mysql-bin.000004 > /zhao/lvmlogbin_2013-08-14/binlog.sql #日志實現增量備份 

(8)模擬數據庫崩潰

 

 
  1. [root@stu18 ~] 
  2. # service mysqld stop 
  3. [root@stu18 ~] 
  4. # cd /mydata/data/ 
  5. [root@stu18 data] 
  6. # rm -rf * 

(9)恢復數據

 

 
  1. [root@stu18 ~] 
  2. # cp /zhao/lvmback-2013-08-14/* /mydata/data/ -a #完全備份恢復 
  3. [root@stu18 ~] 
  4. # cd /mydata/data/ #查看恢復數據內容 
  5. [root@stu18 data] 
  6. # chown -R mysql.mysql * #更改屬主屬組 
  7. [root@stu18 data] 
  8. # service mysqld start #啟動服務 
  9. [root@stu18 data] 
  10. # mysql -uroot –pmypass #登錄測試 

 

 
  1. mysql> SHOW DATABASES;  
  2. #查看數據完整性,無測試表testtd使用二進制恢復 
  3. mysql> SET sql_log_bin=0  
  4. #關閉二進制日志 
  5. mysql> source /zhao/lvmlogbin_2013-08-14/binlog.sql;  
  6. #二進制恢復 
  7. mysql> SHOW TABLES;  
  8. #查看恢復結果 
  9. +-------------------+ 
  10. | Tables_in_hellodb | 
  11. +-------------------+ 
  12. | classes | 
  13. | coc | 
  14. | courses | 
  15. | scores | 
  16. | students | 
  17. | teachers | 
  18. | testtb | 
  19. | toc | 
  20. +-------------------+ 
  21. mysql> SET sql_log_bin=1;  
  22. #開啟二進制日志 

此工具是接近于熱備的方式實現的,并且用此方法來備份恢復數據速度是非??斓?。

四:基于xtrabackup來實現備份恢復

4.1、優勢特性

完全以熱備的形式進行,能夠實現快速可靠地完全備份和部分備份,支持增量備份,支持時間點還原,備份過程中不會打擾到事務操作,能夠實現網絡傳輸和壓縮功能從而有效的節約磁盤空間,備份完成后可自動驗證數據是否可用,恢復速度較快等等。更多優勢特性請參考http://www.percona.com/software/percona-xtrabackup

注意:以上這些優勢特性只能在InnoDB引擎上完美實現,而在MyISAM存儲引擎上依然最多只能使用溫備的形式進行并且還不支持增量備份。

另外Xtrabackup更多的高級功能還依賴于Mysql數據庫對于InnoDB實現了單獨的表空間,否則也就沒有辦法實現單表導入導出查看方式如下:

 

 
  1. mysql> SHOW GLOBAL VARIABLES LIKE 'innodb_file%'
  2. +--------------------------+----------+ 
  3. | Variable_name | Value | 
  4. +--------------------------+----------+ 
  5. | innodb_file_format | Antelope | 
  6. | innodb_file_format_check | ON | 
  7. | innodb_file_format_max | Antelope | 
  8. | innodb_file_per_table | ON | 
  9. +--------------------------+----------+ 

其中的innodb_file_per_table為ON則表示實現了單表單空間。若為OFF則需要使用mysqldump全備然后更改配置文件刪除原來的數據文件并重新初始化服務器最后將數據重新導入。所以建議以后在安裝Mysql服務器時將其選項默認設置成1即可(innodb_file_per_table = 1)。單表單空間的數據顯示形式為:

 

 
  1. [root@stu18 hellodb] 
  2. # ls 
  3. classes.frm coc.MYD courses.MYI scores.MYI teachers.frm testtb.ibd 
  4. classes.MYD coc.MYI db.opt students.frm teachers.MYD toc.frm 
  5. classes.MYI courses.frm scores.frm students.MYD teachers.MYI toc.MYD 
  6. coc.frm courses.MYD scores.MYD students.MYI testtb.frm toc.MYI 

4.2、安裝Xtrabackup

下載percona-xtrabackup最新的版本為2.1.4(percona-xtrabackup-2.1.4-656.rhel6.x86_64.rpm)

安裝:

 

 
  1. [root@stu18 ~] 
  2. # rpm -ivh percona-xtrabackup-2.1.4-656.rhel6.x86_64.rpm 

若有錯誤無法安裝請安裝perl-DBD-mysql依賴包

 

 
  1. [root@stu18 ~] 
  2. # yum -y install perl-DBD-mysql 

注意:不同的環境依賴的關系包可能有多個,請依照提示進行配置

4.3、完全備份

使用innobakupex備份時,其會調用xtrabackup備份所有的InnoDB表,復制所有關于表結構定義的相關文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相關文件,同時還會備份觸發器和數據庫配置信息相關的文件。這些文件會被保存至一個以時間命令的目錄中。完全備份命令如下:

 

 
  1. # innobackupex --user=DBUSER--password=DBUSERPASS /path/to/BACKUP-DIR/ 

實現過程及說明:

 

 
  1. <p>[root@stu18 ~] 
  2. # mkdir /innobackup #創建備份文件目錄 
  3. [root@stu18 ~] 
  4. # innobackupex --user=root --password=mypass /innobackup/ #完全備份 
  5. ################如果執行正確其后輸出的幾行信息通常如下############### 
  6. xtrabackup: Transaction log of lsn (1604655) to (1604655) was copied.  
  7. #二進制日志的位置(lsn) 
  8. 130814 07:04:55 innobackupex: All tables unlocked 
  9. innobackupex: Backup created in directory '/innobackup/2013-08-14_07-04-49' 
  10. #備份文件保存的位置 
  11. innobackupex: MySQL binlog position: filename 'mysql-bin.000003', position 538898 
  12. 130814 07:04:55 innobackupex: Connection to database server closed 
  13. 130814 07:04:55 innobackupex: completed</p> 

OK! 備份完成

切換至備份文件目錄查看備份的數據信息及創建生成的文件:

 

 
  1. <p>[root@stu18 ~] 
  2. # cd /innobackup/2013-08-14_07-04-49/ 
  3. [root@stu18 2013-08-14_07-04-49] 
  4. # ls 
  5. backup-my.cnf myclass student xtrabackup_binlog_info 
  6. hellodb mysql test xtrabackup_checkpoints 
  7. ibdata1 performance_schema xtrabackup_binary xtrabackup_logfile</p> 

針對文件解析:

(1)xtrabackup_checkpoints —— 備份類型(如完全或增量)、備份狀態(如是否已經為prepared狀態)和LSN(日志序列號)范圍信息;

每個InnoDB頁(通常為16k大小)都會包含一個日志序列號,即LSN。LSN是整個數據庫系統的系統版本號,每個頁面相關的LSN能夠表明此頁面最近是如何發生改變的。

(2)xtrabackup_binlog_info —— mysql服務器當前正在使用的二進制日志文件及至備份這一刻為止二進制日志事件的位置。

(3)xtrabackup_binary —— 備份中用到的xtrabackup的可執行文件;

(4)backup-my.cnf —— 備份時用到的配置選項信息,也就是配置文件中關于mysqld的相關文件配置;

(5) xtrabackup_logfile —— 非文本文件是xtrabackup本身的日志文件;

4.4、準備一個完全備份

一般情況下,在備份完成后,數據尚且不能用于恢復操作,因為備份的數據中可能會包含尚未提交的事務或已經提交但尚未同步至數據文件中的事務。因此,此時數據文件仍處于不一致狀態。“準備”的主要作用正是通過回滾未提交的事務及同步已經提交的事務至數據文件從而使得數據文件處于一致性狀態。

innobakupex命令的–apply-log選項可用于實現上述功能。如下面的命令:

 

 
  1. [root@stu18 ~] 
  2. # innobackupex -apply-log /innobackup/2013-08-14_07-04-49/ 
  3. #############如果執行正確,其最后輸出的幾行信息通常如下################ 
  4. xtrabackup: starting shutdown with innodb_fast_shutdown = 1 
  5. 130814 7:39:33 InnoDB: Starting shutdown... 
  6. 130814 7:39:37 InnoDB: Shutdown completed; log sequence number 1606156 
  7. 130814 07:39:37 innobackupex: completed OK! 

4.5、模擬數據庫崩潰實現完全恢復

(1)模擬崩潰

 

 
  1. [root@stu18 ~] 
  2. # service mysqld stop 
  3. [root@stu18 ~] 
  4. # cd /mydata/data/ 
  5. [root@stu18 data] 
  6. # rm -rf * 

(2)從完全備份中恢復數據(謹記:在恢復數據之前千萬不可初始化數據庫和啟動服務)

innobackupex命令的–copy-back選項用于執行恢復操作,其通過復制所有數據相關的文件至mysql服務器DATADIR目錄中來執行恢復過程。innobackupex通過backup-my.cnf來獲取DATADIR目錄的相關信息。

 

 
  1. [root@stu18 ~] 
  2. # innobackupex --copy-back /innobackup/2013-08-14_07-04-49/ 
  3. #############如果執行正確,其最后輸出的幾行信息通常如下################ 
  4. innobackupex: Starting to copy InnoDB log files 
  5. innobackupex: in '/innobackup/2013-08-14_07-04-49' 
  6. innobackupex: back to original InnoDB log directory '/mydata/data' 
  7. innobackupex: Copying '/innobackup/2013-08-14_07-04-49/ib_logfile0' to '/mydata/data' 
  8. innobackupex: Copying '/innobackup/2013-08-14_07-04-49/ib_logfile1' to '/mydata/data' 
  9. innobackupex: Finished copying back files. 
  10. 130814 07:58:22 innobackupex: completed OK! 

(3)當數據恢復至數據目錄以后,還需要確保所有數據文件的屬主和屬組均為正確的用戶,如mysql,否則,在啟動mysqld之前還需要事先修改數據文件的屬主和屬組。

 

 
  1. # chown -R mysql:mysql /mydata/data/ 

(4)啟動服務器登陸查看恢復完成。

 

 
  1. [root@stu18 data] 
  2. # service mysqld start 

注意:每一次恢復完成之后一定要重新做一次完全備份工作!!

4.6、使用innobackupex進行增量備份

說明:每個InnoDB的頁面都會包含一個LSN信息,每當相關的數據發生改變,相關的頁面的LSN就會自動增長。這正是InnoDB表可以進行增量備份的基礎,即innobackupex通過備份上次完全備份之后發生改變的頁面來實現。

第一次改動數據實現增量備份

實現增量備份可以使用下面的命令進行:

 

 
  1. [root@stu18 data] 
  2. # innobackupex --user=root --password=mypass --incremental /innobackup --incremental-basedir=/innobackup/2013-08-14_08-14-12/ 

其中,/innobackup指的是完全備份所在的目錄,此命令執行結束后,innobackupex命令會在/backup目錄中創建一個新的以時間命名的目錄以存放所有的增量備份數據。–incremental-basedir是指向上一次完全備份所在的目錄。

第二次改動數據進行增量備份:

 

 
  1. [root@stu18 ~] 
  2. # innobackupex --user=root --password=mypass --incremental /innobackup --incremental-basedir=/innobackup/2013-08-14_08-29-05/ 

第二次增量備份的執行命令和第一次大致相同,只有其–incremental-basedir應該指向上一次的增量備份所在的目錄。

第三次改動數據還未進行增量備份

 

 
  1. mysql> delete from coc where id=14; 

4.7、使用innobackupex基于完全+增量+二進制日志恢復數據

(1)由于筆者這里將二進制日志和數據文件寫在了同一個文件目錄下所以在模擬數據庫崩潰前必須先復制出二進制日志文件,所以建議看客們將數據目錄和二進制目錄分開存放,不要和筆者一樣犯如此二的錯誤。方法如下:

前提是在剛剛建立服務器尚未啟動服務器之前做如下操作;

 

 
  1. mkdir /mybinlog 
  2. #建立一目錄用于存放二進制日志 
  3. chown mysql:mysql /mybinlog 
  4. #更改權限 
  5. vim /etc/my.cnf  
  6. #修改配置文件 
  7. log-bin=/mybinlog/mysql-bin 
  8. #二進制日志目錄及文件名前綴,添加之 

好了言歸正傳復制二進制日志文件:

 

  1. [root@stu18 data] 
  2. # cp mysql-bin.000001/innobackup/ 

(2)模擬服務器崩潰

 

 
  1. [root@stu18 ~] 
  2. # service mysqld stop 
  3. [root@stu18 ~] 
  4. # cd /mydata/data/ 
  5. [root@stu18 data] 
  6. # rm -rf * 

(3)準備備份

首先注意“準備”增量備份與整理完全備份有著一些不同,尤其要注意的是:

1)需要在每個備份(包括完全和各個增量備份)上,將已經提交的事務進行“重放”。“重放”之后,所有的備份數據將合并到完全備份上。

2)基于所有的備份將未提交的事務進行“回滾”。

完全備份“準備”

 

 
  1. [root@stu18 ~] 
  2. # innobackupex --apply-log --redo-only/innobackup/2013-08-14_08-14-12/ 

第一次增量備份“準備”也就是說將第一次增量備份合并到了完全備份中

 

 
  1. [root@stu18 ~] 
  2. # innobackupex --apply-log--redo-only /innobackup/2013-08-14_08-14-12/--incremental-dir=/innobackup/2013-08-14_08-29-05/ 

第二次增量備份“準備”也就是說將第二次增量備份也合并到了完全備份中

 

  1. [root@stu18 ~] 
  2. # innobackupex --apply-log--redo-only /innobackup/2013-08-14_08-14-12/ --incremental-dir=/innobackup/2013-08-14_09-08-39/ 

其中 –redo-only是只將已提交的事務同步到數據文件中,未提交的事務日志不在進行回滾了。

(4)恢復數據(基于innobackupex基于完全+增量)

 

 
  1. [root@stu18 ~] 
  2. # innobackupex --copy-back/innobackup/2013-08-14_08-14-12/ 

(5)更改屬組屬主

 

 
  1. [root@stu18 ~] 
  2. # cd /mydata/data/ 
  3. [root@stu18 data] 
  4. # chown -R mysql:mysql * 

(6)啟動查看

 

 
  1. [root@stu18 ~] 
  2. # mysql -uroot -pmypas 
  3. mysql> select * from coc; 
  4. +----+---------+----------+ 
  5. | ID | ClassID | CourseID | 
  6. +----+---------+----------+ 
  7. | 1| 1 | 2 | 
  8. | 2| 1 | 5 | 
  9. | 3| 2 | 2 | 
  10. | 4| 2 | 6 | 
  11. | 5| 3 | 1 | 
  12. | 6| 3 | 7 | 
  13. | 7| 4 | 5 | 
  14. | 8| 4 | 2 | 
  15. | 9| 5 | 1 | 
  16. | 10 | 5 | 9 | 
  17. | 11 | 6 | 3 | 
  18. | 12 | 6 | 4 | 
  19. | 13 | 7 | 4 | 
  20. | 14 | 7 | 3 | 
  21. +----+---------+----------+ 
  22. 14 rows in set (0.00 sec) 

結果顯示數據正確完整,但是第三次的改動信息未生效。

(7)基于二進制日志實現數據恢復

查看最后一次增量備份二進制日志所在的位置:

 

 
  1. [root@stu18 data] 
  2. # cd /innobackup/2013-08-14_09-08-39/ 
  3. [root@stu18 2013-08-14_09-08-39] 
  4. # cat xtrabackup_binlog_info 
  5. mysql-bin.000001 780 

查看二進制日志文件將未備份數據的二進制日志導出

 

 
  1. [root@stu18 innobackup] 
  2. # mysqlbinlog mysql-bin.000001 
  3. # at 780 
  4. #130814 9:20:19 server id 1 end_log_pos 851 Query thread_id=7 exec_time=0 error_code=0 
  5. SET TIMESTAMP=1376443219/*!*/
  6. BEGIN 
  7. /*!*/
  8. # at 851 
  9. #130814 9:20:19 server id 1 end_log_pos 944 Query thread_id=7 exec_time=0 error_code=0 
  10. SET TIMESTAMP=1376443219/*!*/
  11. delete from coc where id=14 
  12. /*!*/
  13. # at 944 
  14. #130814 9:20:19 server id 1 end_log_pos 1016 Query thread_id=7 exec_time=0 error_code=0 
  15. SET TIMESTAMP=1376443219/*!*/
  16. COMMIT 
  17. /*!*/
  18. DELIMITER ; 
  19. # End of log file 
  20. ROLLBACK /* added by mysqlbinlog */
  21. /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/
  22. /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/
  23. [root@stu18 innobackup] 
  24. # mysqlbinlog --start-position=780 mysql-bin.000001 > ./all.sql #導出數據 

恢復數據

 

 
  1. [root@stu18 ~] 
  2. # mysql -uroot –pmypass 
  3. mysql> SET SQL_LOG_BIN=0;  
  4. #關閉二進制日志 
  5. mysql> source /innobackup/all.sql  
  6. #導入數據 
  7. mysql> SET SQL_LOG_BIN=1;  
  8. #開啟二進制日志 
  9. mysql> select * from coc;  
  10. #查看數據,恢復完成 
  11. +----+---------+----------+ 
  12. | ID | ClassID | CourseID | 
  13. +----+---------+----------+ 
  14. | 1 | 1 | 2 | 
  15. | 2 | 1 | 5 | 
  16. | 3 | 2 | 2 | 
  17. | 4 | 2 | 6 | 
  18. | 5 | 3 | 1 | 
  19. | 6 | 3 | 7 | 
  20. | 7 | 4 | 5 | 
  21. | 8 | 4 | 2 | 
  22. | 9 | 5 | 1 | 
  23. | 10 | 5 | 9 | 
  24. | 11 | 6 | 3 | 
  25. | 12 | 6 | 4 | 
  26. | 13 | 7 | 4 | 
  27. +----+---------+----------+ 
  28. 13 rows in set (0.00 sec) 

這種備份恢復方式完全以熱備的形式實現完全備份和增量備份和二進制日志還原數據,并且恢復速度也很快,是最佳的備份恢復方式!!

總結:

以上三種備份恢復都是可以基于二進制日志文件進行的,因而體現出了二進制日志的重要性,從而映射出了日志的重要性;所以學習查看使用日志文件是學習Mysql的重中之重!


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲丁香婷深爱综合| 国产精品久久久久高潮| 亚洲人成电影在线观看天堂色| 欧美日韩国产一区二区三区| 夜色77av精品影院| 精品久久久久久电影| 亚洲人成网站在线播| 亚洲精品www久久久| 成人免费福利在线| 欧美极品少妇全裸体| 色诱女教师一区二区三区| 欧美极品少妇xxxxⅹ喷水| 亚洲老板91色精品久久| 中文字幕亚洲图片| 国产精品久久久久久五月尺| www.xxxx欧美| 国产一区二区三区中文| 日韩av手机在线| 97国产真实伦对白精彩视频8| yw.139尤物在线精品视频| 欧美国产精品va在线观看| 色樱桃影院亚洲精品影院| 久久久久久国产精品三级玉女聊斋| 91精品中国老女人| 欧美极品美女电影一区| 欧美成人小视频| 国产成人精品免费视频| 国产视频自拍一区| 中文日韩在线视频| 日韩精品在线观看网站| 清纯唯美亚洲激情| 久久久99久久精品女同性| 91精品国产综合久久久久久蜜臀| 欧美人与性动交a欧美精品| 日韩免费av一区二区| 欧美极度另类性三渗透| 久久欧美在线电影| 国产成人精品综合久久久| 性欧美xxxx| 亚洲精品中文字| 欧美激情va永久在线播放| 国产亚洲精品美女久久久| 欧美老女人在线视频| 日韩欧美中文免费| 国产亚洲欧美日韩精品| 欧美日韩另类字幕中文| 国产精品福利网| 国外视频精品毛片| 久久中文精品视频| 国产成人亚洲综合91精品| 欧美激情精品久久久| 揄拍成人国产精品视频| 成人黄色免费片| 91精品国产777在线观看| 91国内产香蕉| 亚洲欧美另类国产| 久久久久成人网| 正在播放国产一区| 亚洲欧美日韩精品久久奇米色影视| 国产精品久久久久久搜索| 亚洲成人激情在线| 欧美成人久久久| 91精品免费久久久久久久久| 国产精品极品美女在线观看免费| 欧美激情videoshd| 欧美中文字幕精品| 亚洲欧美日韩一区二区在线| 日韩欧美一区二区三区久久| 亚洲一区二区中文字幕| 97视频免费观看| 狠狠躁夜夜躁久久躁别揉| 欧美在线视频导航| 日韩精品在线第一页| 国产精品一区二区三区在线播放| 亚洲天堂男人的天堂| 亚洲精品免费av| 日韩av手机在线| 日韩国产精品视频| 精品偷拍一区二区三区在线看| 亚洲视频国产视频| 97国产真实伦对白精彩视频8| 色综合伊人色综合网| 亚洲国产日韩欧美在线99| 日韩激情av在线播放| 中文字幕久久久| 亚洲人成网站777色婷婷| 7777免费精品视频| 久久精品中文字幕免费mv| 国产精品一区二区久久久久| 国产精品视频yy9099| 久久综合国产精品台湾中文娱乐网| 日韩中文在线中文网在线观看| 九九综合九九综合| 日韩欧美在线视频| 欧美中在线观看| 亚洲国产精品va在线看黑人| 777国产偷窥盗摄精品视频| 久久久久一本一区二区青青蜜月| 日本19禁啪啪免费观看www| 亚洲人成电影网站色xx| 亚洲护士老师的毛茸茸最新章节| 久99九色视频在线观看| 亚洲一区中文字幕| 红桃视频成人在线观看| 欧美日韩中文字幕日韩欧美| 亚洲自拍偷拍色片视频| 欧美亚洲伦理www| 亚洲精品国精品久久99热| 欧美激情伊人电影| 国产精品日韩一区| 91免费人成网站在线观看18| 国产91精品网站| 欧美一区二区三区精品电影| 亚洲精品久久久久中文字幕二区| 伊人精品在线观看| 国产精品永久免费观看| 日韩av片电影专区| 久久久噜久噜久久综合| 国产色婷婷国产综合在线理论片a| 欧美在线一级va免费观看| 亚洲天堂视频在线观看| 日韩成人在线网站| 国产精品成人一区二区三区吃奶| 欧美精品videosex牲欧美| 中文字幕在线日韩| 欧洲中文字幕国产精品| 最近2019中文免费高清视频观看www99| 欧美成人免费视频| 91人成网站www| 久久91亚洲精品中文字幕奶水| 日韩中文字幕在线视频| 欧美成人久久久| 国产成人涩涩涩视频在线观看| 国产精品视频白浆免费视频| 国产精品成人品| 国产精品爽爽爽爽爽爽在线观看| 97**国产露脸精品国产| 美女撒尿一区二区三区| 另类天堂视频在线观看| 久久福利网址导航| 国产精品视频精品视频| 国产精品夫妻激情| 性亚洲最疯狂xxxx高清| 国产一区二区在线免费| 国产精品扒开腿做爽爽爽的视频| 成人美女av在线直播| 亚洲成人激情视频| 亚洲aa中文字幕| 久久中国妇女中文字幕| 亚洲综合中文字幕68页| 高清日韩电视剧大全免费播放在线观看| 91高清免费在线观看| 日韩成人激情视频| 岛国精品视频在线播放| 日韩欧美精品在线观看| 国产91网红主播在线观看| 日韩在线中文视频| 庆余年2免费日韩剧观看大牛| 亚洲国产精品人人爽夜夜爽| 欧美高清videos高潮hd| 国产精品久久久久福利| 色av中文字幕一区| 一色桃子一区二区| 日韩在线观看视频免费|