mysql备份去掉一个库_MySQL备份与恢复(3)mysqldump备份多个库
一、mysqldump的工作原理、
利用mysqldump命令備份數據的過程,實際上就是把數據從mysql庫以邏輯的sql語句的形式直接輸出或生成備份的文件的過程
利用這個備份文件恢復的時候的原理?就是把備份的sql命令再執行一遍。
二、備份多個庫
mysql>show databases;+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oldboy |
| oldboy_gbk |
| oldboy_utf8 |
| performance_schema |
+--------------------+
6 rows in set (0.00sec)
mysql>quit
Bye
[root@localhost~]# mysqldump -uroot -pdubin -B oldboy oldboy_gbk|gzip >/opt/all_bak.sql.gz
[root@localhost~]# ls -l /opt/all_bak.sql.gz-rw-r--r--. 1 root root 1374 9月 21 11:50 /opt/all_bak.sql.gz
[root@localhost~]#
三、如何做分庫備份?
分庫備份實際上就是執行一個備份語句備份一個庫,如果數據庫里有多個庫,就執行多條相同的備份單個庫的備份語句就可以備份多個庫了,注意每個庫都可以用對應備份的庫作為庫名,結尾加 .sql。備份多個庫的命令如下:
mysqldump -uroot -pdubin -B oldboy ……
mysqldump-uroot -pdubin -B oldboy_gbk ……
分庫備份過程
[root@localhost ~]# mysql -uroot -pdubin -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oldboy |
| oldboy_gbk |
| oldboy_utf8 |
| performance_schema |
+--------------------+[root@localhost~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"mysql
oldboy
oldboy_gbk
oldboy_utf8
[root@localhost~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed 's#^#mysqldump -uroot -pdubin -B #g'mysqldump-uroot -pdubin -B mysql
mysqldump-uroot -pdubin -B oldboy
mysqldump-uroot -pdubin -B oldboy_gbk
mysqldump-uroot -pdubin -B oldboy_utf8
[root@localhost~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed 's#^([a-z].*$)#mysqldump -uroot -pdubin -B \1 >/opt/\1.sql#g'sed:-e 表達式 #1,字符 59:“s”命令的RHS非法引用\1[root@localhost~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin -B \1 >/opt/\1.sql#g'mysqldump-uroot -pdubin -B mysql >/opt/mysql.sql
mysqldump-uroot -pdubin -B oldboy >/opt/oldboy.sql
mysqldump-uroot -pdubin -B oldboy_gbk >/opt/oldboy_gbk.sql
mysqldump-uroot -pdubin -B oldboy_utf8 >/opt/oldboy_utf8.sql
[root@localhost~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin -B \1|gzip >/opt/\1.sql.gz#g'mysqldump-uroot -pdubin -B mysql|gzip >/opt/mysql.sql.gz
mysqldump-uroot -pdubin -B oldboy|gzip >/opt/oldboy.sql.gz
mysqldump-uroot -pdubin -B oldboy_gbk|gzip >/opt/oldboy_gbk.sql.gz
mysqldump-uroot -pdubin -B oldboy_utf8|gzip >/opt/oldboy_utf8.sql.gz
[root@localhost~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin -B \1|gzip >/opt/\1.sql.gz#g'|bash-- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.
[root@localhost~]# ll /opt/總用量196
-rw-r--r--. 1 root root 1374 9月 21 11:50all_bak.sql.gz-rw-r--r--. 1 root root 2371 9月 21 08:45mysql_bak_B_compact.sql-rw-r--r--. 1 root root 4651 9月 21 08:45mysql_bak_B.sql-rw-r--r--. 1 root root 4508 9月 21 08:43mysql_bak.sql-rw-r--r--. 1 root root 1355 9月 21 08:47mysql_bak.sql.gz-rw-r-----. 1 root root 498 9月 20 22:17 mysqlbin_oldboy.000001
-rw-r--r--. 1 root root 144535 9月 21 12:01mysql.sql.gz-rw-r--r--. 1 root root 203 9月 20 08:46oldboy_bak1.sql-rw-r--r--. 1 root root 2826 9月 20 08:46oldboy_bak.sql-rw-r--r--. 1 root root 512 9月 21 12:01oldboy_gbk.sql.gz-rw-r--r--. 1 root root 1354 9月 21 12:01oldboy.sql.gz-rw-r--r--. 1 root root 512 9月 21 12:01oldboy_utf8.sql.gz
[root@localhost~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin --event -B \1|gzip >/opt/\1.sql.gz#g'|bash
[root@localhost~]# mkdir /opt/bak
[root@localhost~]# mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin --event -B \1|gzip >/opt/bak/\1.sql.gz#g'|bash
[root@localhost~]# ll /opt/bak
總用量156
-rw-r--r--. 1 root root 144570 9月 21 12:03mysql.sql.gz-rw-r--r--. 1 root root 534 9月 21 12:03oldboy_gbk.sql.gz-rw-r--r--. 1 root root 1371 9月 21 12:03oldboy.sql.gz-rw-r--r--. 1 root root 533 9月 21 12:03oldboy_utf8.sql.gz
[root@localhost~]#
mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"|sed -r 's#^([a-z].*$)#mysqldump -uroot -pdubin --event -B \1|gzip >/opt/bak/\1.sql.gz#g'|bash
分庫備份的意義何在?
有時一個企業的數據庫里會有多個庫,例如(www,bbs,blog),但是出問題時候的很可能是一個庫,如果在備份時把所有的庫都備份成一個數據文件的話,恢復某一個庫的數據時就比較麻煩了。
shell腳本實現分表分庫備份的腳本
[root@localhost ~]# vi fenku.shfor dbname in `mysql -uroot -pdubin -e "show databases;"|grep -Evi "database|infor|perfor"`domysqldump-uroot -pdubin --event -B $dbname|gzip >/opt/bak/${dbname}.sql.gz
done
root@localhost ~]# rm -f /opt/bak/*[root@localhost ~]# sh fenku.sh
[root@localhost ~]# ll /opt/bak
總用量 156
-rw-r--r--. 1 root root 144569 9月 21 12:12 mysql.sql.gz
-rw-r--r--. 1 root root 534 9月 21 12:12 oldboy_gbk.sql.gz
-rw-r--r--. 1 root root 1370 9月 21 12:12 oldboy.sql.gz
-rw-r--r--. 1 root root 533 9月 21 12:12 oldboy_utf8.sql.gz
[root@localhost ~]#
總結
以上是生活随笔為你收集整理的mysql备份去掉一个库_MySQL备份与恢复(3)mysqldump备份多个库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java mybatis狂神说sql_M
- 下一篇: ue4相机_[UE4]偏门实用技巧合集