專職DBA-mysqldump企業級備份恢復

專職DBA-mysqldump企業級備份恢復


數據庫備份最高層次思想
---------------------------------------
數據庫備份最牛的層次,就是永遠都用不上備份。
這就像咱們平常購買大病保險同樣,任何人購買大病保險都確定不是但願得大病,咱們作數據庫備份也是同樣,備份策略不管作得多麼完備,咱們仍是不但願故障發生。
所以,除了具有高超的備份策略和精湛的恢復能力以外,還要在未雨綢繆上多下功夫以達到防患於未然的目的。

對數據一致性要求很嚴格的業務可使用MGR/PXC/MySQL InnoDB Cluster/RAC架構

DBA兩大工做核心:
    保護數據的安全:防止數據丟失、脫庫、泄密、宕機、數據混亂等。
    能7x24小時提供服務。

[root@db01 ~]# mysqld --defaults-file=/data/mysql/3306/my.cnf &
[1] 6798

[root@db01 ~]# ps -aux | grep mysql  
mysql     6798  9.1 17.5 1118576 176700 pts/2  Sl   17:15   0:01 mysqld --defaults-file=/data/mysql/3306/my.cnf
root      6829  0.0  0.0 112708   976 pts/2    R+   17:15   0:00 grep --color=auto mysql


1.全量備份
全備:把數據庫中全部的數據進行備份。

備份數據庫中全部庫的全部數據命令:
[root@db01 ~]# mysqldump -S /data/mysql/3306/mysql.sock -p -B --master-data=2 --single-transaction -A --set-gtid-purged=OFF |gzip >/backup/all.sql.gz

備份一個庫中全部的數據命令:
[root@db01 ~]# mysqldump -S /data/mysql/3306/mysql.sock -p -B --master-data=2 --single-transaction app --set-gtid-purged=OFF |gzip >/backup/app.sql.gz


2.增量備份
增量數據:就是上次全備以後到下次全備以前數據庫所更新的數據。
在使用mysqldump命令作全備時,增量數據就是mysql的binlog日誌,對binlog日誌進行備份,就是增量備份了。


3.按天全備
優勢:恢復數據時須要的數據文件數量少,恢復時間短,維護成本低。
缺點:天天一個全備,佔用空間多,佔用系統資源多,常常備份會影響用戶體驗。
中小型企業用得最多的策略就是按天全備,而後根據空間狀況保留全備天數。
企業數據很重要能夠買磁帶機等設備長期保存備份的數據。
binlog增量的清理能夠在my.cnf中配置過時清理天數expire_logs_days = 7保留七天內的binlog日誌。
理論上若是天天進行全備,那麼binlog只要保留1天的就夠了。


4.按周全備
優勢:每週僅有一個完整備份,佔用磁盤總空間小,佔用系統資源少,備份次數少,用戶體驗好一些。
缺點:恢復時數據文件多,致使恢復麻煩,維護成本高,恢復時間長。
大型企業因爲數據量特別大,天天全備時間太長,用周備。


5.MySQL經常使用的備份方式
(1).邏輯備份(數據庫總數據量不超過30GB)
原理:以SQL語句的形式存儲。
備份命令:mysqldump, mydumper
恢復命令:mysql, source
增量恢復命令:mysqlbinlog(把增量的binlog日誌轉換成SQL文件)
優勢:操做簡單、方便、可靠,備份的數據能夠跨平臺、跨版本、跨軟件、跨操做系統,分庫分表備份。
缺點:備份速度比物理備份慢,恢復效率也不高。
備份要求:須要鎖表但不須要停庫,鎖表會影響數據庫更新,InnoDB引擎能夠不鎖表,而採用事務備份方案。
[root@db01 ~]# mysqldump -S /data/mysql/3306/mysql.sock -p -A -B --master-data=2 --single-transaction --set-gtid-purged=OFF |gzip >/backup/all.sql.gz

[root@db01 ~]# zcat /backup/all.sql.gz |mysql -S /data/mysql/3306/mysql.sock -p

[root@db01 /data/mysql/3306/logs]# mysqlbinlog mysql-bin.000001 mysql-bin.000002 > bin.sql


簡單的參考備份腳本:(此腳本須要修改,而且有待完善)
[root@db01 /backup/sh]# vim mysqldump_v1.sh
#!/bin/bash
bak_path=/backup/mysql
[ ! -d $bak_path ] && mkdir -p $bak_path
/usr/local/mysql/bin/mysqldump -S /data/mysql/3306/mysql.sock -p123 -A -B --master-data=2 --single-transaction --set-gtid-purg
ed=OFF |gzip >$bak_path/3306-full-$(date +%F).sql.gz
/usr/bin/scp -rp $bak_path/ root@backup:/backup/mysql/
/usr/bin/rsync -az $bak_path/ rsync_backup@backup::mysql/ --password-file=/etc/rsync.password
/usr/bin/find $bak_path/ -type -f -name "*.sql.gz" -mtime +7 | /usr/bin/xargs rm -rf


[root@db01 /backup/sh]# vim mysqldump_v2.sh
#!/bin/bash
bak_path=/backup/mysql
[ ! -d $bak_path ] && mkdir -p $bak_path
if [ $(date +%w) -eq 6 ]
  then
      file_name=bak_$(date +%w-%F)
  else
      file_name=bak_$(date +%F)
fi
/usr/local/mysql/bin/mysqldump -S /data/mysql/3306/mysql.sock -p123 -A -B --master-data=2 --single-transaction --set-gtid-purg
ed=OFF |gzip >$bak_path/3306-full-${file_name}.sql.gz
/usr/bin/md5sum $bak_path/3306-full-${file_name}.sql.gz >$bak_path/3306-full-${file_name}.flag
/usr/bin/scp -rp $bak_path/ root@backup:/backup/mysql/
/usr/bin/rsync -az $bak_path/ rsync_backup@backup::mysql/ --password-file=/etc/rsync.password
/usr/bin/find $bak_path/ -type -f -name "*.sql.gz" -mtime +7 | /usr/bin/xargs rm -rf

[root@db01 /backup/sh]# crontab -e
# backup mysql data.
00 00 * * * /bin/sh /backup/sh/mysqldump_v1.sh &>/dev/null

[root@backup /backup/mysql]# md5sum -c 3306-full-2019-05-05.flag
/backup/mysql/3306-full-2019-05-05.sql.gz: OK

通常備份服務器上保留最近7天的全部備份,同時保留每週六的所有備份命令:
[root@backup ~]# find /backup/mysql/ -type f -name "bak_*" -mtime +7 ! -name "bak_6*" | xargs rm -rf


(2).物理備份(數據庫總數據量超過30GB)
命令:cp、rsync、tar、scp、xtrabackup
原理:直接複製磁盤物理文件。
特色:速度快,效率高
缺點:不容易跨平臺、跨版本、跨軟件、跨操做系統。分庫分表備份恢復時麻煩,軟件的使用較爲複雜。

冷備:
使用cp、rsync、tar、scp等複製工具把mysql數據文件複製成多份,
因爲在備份期間數據仍然有寫入操做,因此直接複製的備份方式會引發數據丟失。
另外在恢復數據庫時,對新數據庫的路徑、配置也有要求,通常要和原數據庫的配置保持一致(版本、路徑、配置儘量同樣)。
爲了確保備份期間數據的一致性,能夠人工停庫、鎖庫後再進行物理複製,而生產環境是不容許這樣作的。(這些命令作冷備須要鎖表或者停庫以確保數據的一致性。)
能夠根據mysql主從複製利用從庫進行冷備份的策略。
通常在進行大規模數據庫遷移時,先停庫,而後物理遷移,這樣作是頗有效率的方案。

熱備:
用第三方工具來實現物理熱備,Xtrabackup
熱備不須要鎖表(僅事務引擎,例如InnoDB)或停機

物理備份企業場景:
    1、數據庫總數據量超過30GB,用Xtrabackup熱備工具進行備份。
    2、在從庫上備份,備份時中止SQL線程應用數據到數據庫,而後cp、tar打包備份,這也是一種不錯的冷備方案,不會影響數據庫的服務。

大多數中小型企業的數據庫環境爲一主多從,能夠在一個從庫服務器上專門作全量以及增量備份,須要開啓從庫記錄binlog日誌功能,備份工具可用mysqldump/Xtrabackup。


6.中小企業MySQL增量恢復案例
具有什麼條件才能完整恢復數據庫數據呢???
    1.全備 mysqldump
    2.全備以後的 全部binlog增量日誌

假設當前數據庫內的數據以下:
[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p -e "select count(*) from app.t1;"
Enter password: 
+----------+
| count(*) |
+----------+
|       28 |
+----------+

模擬0點對數據庫app數據進行全備
[root@db01 ~]# date -s "2017/03/19"
Sun Mar 19 00:00:00 CST 2017

[root@db01 ~]# mysqldump -S /data/mysql/3306/mysql.sock -p -B --master-data=2 --single-transaction --set-gtid-purged=OFF app |gzip >/backup/3306-app_$(date +%F).sql.gz

[root@db01 ~]# ls -l /backup/3306-app_2017-03-19.sql.gz
-rw-r--r-- 1 root root 943 Mar 19 00:00 /backup/3306-app_2017-03-19.sql.gz


模擬0點全備後用戶繼續寫入數據
[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p -e "insert into app.t1(id,name) values(29,'zhouwanchun');"

[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p -e "insert into app.t1(id,name) values(30,'zhouwanchun');"

[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p -e "insert into app.t1(id,name) values(31,'zhouwanchun');"

[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p -e "insert into app.t1(id,name) values(32,'zhouwanchun');"

[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p -e "select count(*) from app.t1;"             Enter password: 
+----------+
| count(*) |
+----------+
|       32 |
+----------+


模擬上午10:00點管理員刪除oldboy數據庫
[root@db01 ~]# date -s "2017/03/19 10:00"
Sun Mar 19 10:00:00 CST 2017

[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p -e "drop database app;show databases;"
Enter password: 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| app01              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+


備份全部的binlog增量文件,防止二次破壞。
[root@db01 ~]# cp -a /data/mysql/3306/logs/ /backup/

[root@db01 ~]# ls -l /backup/logs/
total 784
-rw-r--r-- 1 root  root    7641 Aug 29  2019 bin.sql
-rw-r----- 1 mysql mysql   1797 Aug 29  2019 mysql-bin.000001
-rw-r----- 1 mysql mysql    241 Aug 29  2019 mysql-bin.000002
-rw-r----- 1 mysql mysql    217 Aug 29  2019 mysql-bin.000003
-rw-r----- 1 mysql mysql 778113 Mar 19 00:04 mysql-bin.000004
-rw-r----- 1 mysql mysql    156 Aug 29  2019 mysql-bin.index


開始恢復,中止數據庫對外訪問
[root@linux-node1 ~]# iptables -I INPUT -p tcp --dport 3306 ! -s 10.0.0.11 -j DROP
非10.0.0.11禁止訪問數據庫3306端口


解壓全備的數據
[root@db01 ~]# gzip -cd /backup/3306-app_2017-03-19.sql.gz > app.sql

[root@db01 ~]# ls -l app.sql
-rw-r--r-- 1 root root 2507 Mar 19 10:09 app.sql


解析binlog文件增量數據
[root@db01 ~]# sed -n '22p' app.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000004', MASTER_LOG_POS=776907;

[root@db01 ~]# mysqlbinlog -d app /backup/logs/mysql-bin.000004 --start-position=776907 -r bin.sql

[root@db01 ~]# ls -l
total 12
-rw-r--r-- 1 root root 2507 Mar 19 10:09 app.sql
-rw-r----- 1 root root 5518 Mar 19 10:12 bin.sql


可能會不僅是一個binlog文件,你能夠繼續恢復後面的全部binlog文件。
# mysqlbinlog -d app mysql-bin.000005 mysql-bin.000006 -r bin1.sql


踢出誤刪數據庫的drop語句
[root@db01 ~]# grep -w drop bin.sql
drop database app

[root@db01 ~]# sed -i '/drop database app/d' bin.sql
[root@db01 ~]# grep -w insert bin.sql
[root@db01 ~]#


先恢復0點之前的全備數據
[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| app01              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p < app.sql

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| app                |
| app01              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> select count(*) from app.t1;
+----------+
| count(*) |
+----------+
|       28 |
+----------+
1 row in set (0.01 sec)


0點之前的數據已恢復,再來恢復0點之後的增量數據
[root@db01 ~]# mysql -S /data/mysql/3306/mysql.sock -p app < bin.sql
Enter password:

mysql> select count(*) from app.t1;
+----------+
| count(*) |
+----------+
|       32 |
+----------+
1 row in set (0.01 sec)

增量的數據回來了
增量的數據回來了


7.分庫分表備份
(1).分庫備份
[root@db01 /backup/sh]# cat fenku.sh
#!/bin/bash
bak_path=/backup/$(date +%F)
[ ! -d $bak_path ] && mkdir -p $bak_path
for dbname in `/usr/local/mysql/bin/mysql -S /data/mysql/3306/mysql.sock -p123 -e "show databases"|sed '1,2d'|grep -v _schema`
do
    /usr/local/mysql/bin/mysqldump -S /data/mysql/3306/mysql.sock -B --master-data=2 --single-transaction --set-gtid-purged=OFF |gzip >$bak_path/${dbname}_$(date +%F).sql.gz
done

[root@db01 /backup/sh]# sh fenku.sh

[root@db01 /backup/sh]# ls -l /backup/2017-03-19/
total 16
-rw-r--r-- 1 root root 130 Mar 19 10:36 app01_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:36 app_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:36 mysql_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:36 sys_2017-03-19.sql.gz


(2).分表備份
[root@db01 /backup/sh]# cat fenbiao.sh
#!/bin/bash
bak_path=/backup/$(date +%F)
[ ! -d $bak_path ] && mkdir -p $bak_path
for dbname in `/usr/local/mysql/bin/mysql -S /data/mysql/3306/mysql.sock -p123 -e "show databases"|sed '1,2d'|grep -v _schema`
do
    for tablename in `/usr/local/mysql/bin/mysql -S /data/mysql/3306/mysql.sock -p123 -e "show tables from $dbname;"|sed '1d'`
    do
        /usr/local/mysql/bin/mysqldump -S /data/mysql/3306/mysql.sock -p123 -B --master-data=2 --single-transaction --set-gtid-purged=OFF |gzip > $bak_path/${dbname}_${tablename}_$(date +%F).sql.gz
    done
done

[root@db01 /backup/sh]# sh fenbiao.sh

[root@db01 /backup/sh]# ls -l /backup/2017-03-19/
total 548
-rw-r--r-- 1 root root 130 Mar 19 10:36 app01_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:36 app_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 app_t1_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:36 mysql_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_columns_priv_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_db_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_engine_cost_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_event_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_func_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_general_log_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_gtid_executed_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_help_category_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_help_keyword_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_help_relation_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_help_topic_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_innodb_index_stats_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_innodb_table_stats_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_ndb_binlog_index_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_plugin_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_proc_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_procs_priv_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_proxies_priv_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_server_cost_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_servers_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_slave_master_info_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_slave_relay_log_info_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_slave_worker_info_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_slow_log_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_tables_priv_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_time_zone_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_time_zone_leap_second_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_time_zone_name_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_time_zone_transition_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_time_zone_transition_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 mysql_user_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:36 sys_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_host_summary_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_host_summary_by_file_io_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_host_summary_by_file_io_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_host_summary_by_stages_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_host_summary_by_statement_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_host_summary_by_statement_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_innodb_buffer_stats_by_schema_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_innodb_buffer_stats_by_table_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_innodb_lock_waits_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_io_by_thread_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_io_global_by_file_by_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_io_global_by_file_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_io_global_by_wait_by_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_io_global_by_wait_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_latest_file_io_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_memory_by_host_by_current_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_memory_by_thread_by_current_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_memory_by_user_by_current_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_memory_global_by_current_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_memory_global_total_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_metrics_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_processlist_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_ps_check_lost_instrumentation_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_auto_increment_columns_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_index_statistics_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_object_overview_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_redundant_indexes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_table_lock_waits_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_table_statistics_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_table_statistics_with_buffer_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_tables_with_full_table_scans_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_schema_unused_indexes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_session_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_session_ssl_status_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_statement_analysis_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_statements_with_errors_or_warnings_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_statements_with_full_table_scans_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_statements_with_runtimes_in_95th_percentile_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_statements_with_sorting_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_statements_with_temp_tables_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_sys_config_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_user_summary_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_user_summary_by_file_io_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_user_summary_by_file_io_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_user_summary_by_stages_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_user_summary_by_statement_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_user_summary_by_statement_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_version_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_wait_classes_global_by_avg_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_wait_classes_global_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_waits_by_host_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_waits_by_user_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_waits_global_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$host_summary_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$host_summary_by_file_io_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$host_summary_by_file_io_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$host_summary_by_stages_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$host_summary_by_statement_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$host_summary_by_statement_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$innodb_buffer_stats_by_schema_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$innodb_buffer_stats_by_table_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$innodb_lock_waits_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$io_by_thread_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$io_global_by_file_by_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$io_global_by_file_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$io_global_by_wait_by_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$io_global_by_wait_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$latest_file_io_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$memory_by_host_by_current_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$memory_by_thread_by_current_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$memory_by_user_by_current_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$memory_global_by_current_bytes_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$memory_global_total_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$processlist_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$ps_digest_95th_percentile_by_avg_us_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$ps_digest_avg_latency_distribution_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$ps_schema_table_statistics_io_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$schema_flattened_keys_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$schema_index_statistics_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$schema_table_lock_waits_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$schema_table_statistics_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$schema_table_statistics_with_buffer_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$schema_tables_with_full_table_scans_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$session_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$statement_analysis_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$statements_with_errors_or_warnings_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$statements_with_full_table_scans_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$statements_with_runtimes_in_95th_percentile_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$statements_with_sorting_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$statements_with_temp_tables_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$user_summary_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$user_summary_by_file_io_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$user_summary_by_file_io_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$user_summary_by_stages_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$user_summary_by_statement_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$user_summary_by_statement_type_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$wait_classes_global_by_avg_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$wait_classes_global_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$waits_by_host_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$waits_by_user_by_latency_2017-03-19.sql.gz
-rw-r--r-- 1 root root 130 Mar 19 10:41 sys_x$waits_global_by_latency_2017-03-19.sql.gz

分庫分表對單個庫表進行恢復比較方便。
可是對於完整恢復,最好不要用這些分庫分表的備份文件去作,由於binlog有可能會有寫入操做。
若是非要用做完整恢復,那就經過寫腳本實現吧。
相關文章
相關標籤/搜索