MySQL備份時(shí)排除指定數(shù)據(jù)庫(kù)的方法
使用mysqldump命令備份時(shí)候,--all-databases 可以備份所有的數(shù)據(jù)庫(kù)。 使用ignore-table 還可以排除制定的表。但是,mysqldump沒(méi)有參數(shù)可以排除數(shù)據(jù)庫(kù)的。
要備份的數(shù)據(jù)庫(kù)少的時(shí)候,可以通過(guò)mysqldump -uroot -p123456 --databases db1 db2 db3 > mysqldump.sql 這樣來(lái)備份。
但是假如數(shù)據(jù)庫(kù)有數(shù)十個(gè)的話,這樣寫起來(lái)很累人,也很low。解決辦法還是有的,看下面:
【下面演示用的mysql用戶名的root,密碼123456】
mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|test" |xargs mysqldump -uroot -p123456 --databases > mysqldump1.sql
但是很不幸的是,在mysql5.5上執(zhí)行備份時(shí)報(bào)錯(cuò)了。
查了下資料,發(fā)現(xiàn)是由于5.5以后,mysql的performance_schema庫(kù)導(dǎo)致的。那我們備份時(shí)跳過(guò)該庫(kù)即可,下面2種方法任選:
1、mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|test" |xargs mysqldump -uroot -p123456 --skip-lock-tables performance_schema --databases > 2.sql
2、mysql -uroot -p123456 -e 'show databases;'|grep -E -v "Database|information_schema|mysql|performance_schema" |xargs mysqldump -uroot -p123456 --databases > 3.sql
我更喜歡第二種的寫法。
下面是我寫的一個(gè)備份的mysql的腳本,每天夜里執(zhí)行一次。寫的簡(jiǎn)單些,語(yǔ)句也沒(méi)有做優(yōu)化。
#!/bin/bash # Description: backup mysql data # Author: lee FILE="mysql_`date +%F`" BACKDIR="/mysqlbackup" CONF_FILE="/etc/my.cnf" mysql -uroot -e 'show databases'|egrep -v "Database|information_schema|performance_schema" \ |xargs mysqldump -uroot --databases > $BACKDIR/$FILE.sql && cp $CONF_FILE $BACKDIR/$FILE.cnf \ && echo -e "Machine: Oracle\nIP: 172.16.10.12\nStatus: MySQL is backup complete" | \ mail -s "MySQL BackUP Complete" lee@126.com
下圖的代碼看的更清楚寫。
下面給大家介紹下MySQL使用mysqldump備份數(shù)據(jù)庫(kù)時(shí)排除指定表
#!/bin/sh for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables` do case $j in mo_log|mt_log|report_info) : ;; *) mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql esac done >>表名不固定 #!/bin/sh for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables` do for i in "$@" do if [ $j != $i ];then mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql fi done done >>更簡(jiǎn)潔的方法 #!/bin/sh for j in `mysql -uroot -e "USE spservice;SHOW TABLES" | grep -v Tables` do echo $@ | grep -wq "\<$j\>" if [ $? -ne 0 ];then mysqldump -uroot --default-character-set=gbk --opt spservice $j >> $j.sql fi done >>使用方法 sh exclude.sh mo_log mt_log report_log #定義一個(gè)shell數(shù)組 tables=(mo_log mt_log report_log) sh exclude.sh ${tables[@]}
- Mysql數(shù)據(jù)庫(kù)性能優(yōu)化三(分表、增量備份、還原)
- mysql自動(dòng)定時(shí)備份數(shù)據(jù)庫(kù)的最佳方法(windows服務(wù)器)
- mysql 5.6 從陌生到熟練之_數(shù)據(jù)庫(kù)備份恢復(fù)的實(shí)現(xiàn)方法
- 教你如何恢復(fù)使用MEB備份的MySQL數(shù)據(jù)庫(kù)
- MYSQL主從數(shù)據(jù)庫(kù)同步備份配置的方法
- MySQL數(shù)據(jù)庫(kù)如何導(dǎo)入導(dǎo)出(備份還原)
- MySQL數(shù)據(jù)庫(kù)備份以及常用備份工具集合
- Mysql數(shù)據(jù)庫(kù)增量備份的思路和方法
相關(guān)文章
mysql 使用B+樹(shù)索引有哪些優(yōu)勢(shì)
這篇文章主要介紹了mysql 使用B+樹(shù)索引有哪些優(yōu)勢(shì),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2021-01-01linux下mysql數(shù)據(jù)庫(kù)單向同步配置方法分享
mysql數(shù)據(jù)庫(kù)單向同步又叫做主從復(fù)制,是通過(guò)二進(jìn)制日志文件完成的,注意:mysql 數(shù)據(jù)庫(kù)的版本,兩個(gè)數(shù)據(jù)庫(kù)版本要相同2012-06-06關(guān)于skip_name_resolve參數(shù)的總結(jié)分享
下面小編就為大家?guī)?lái)一篇關(guān)于skip_name_resolve參數(shù)的總結(jié)分享。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家。給大家一個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-03-03SQL面試題:求時(shí)間差之和(有重復(fù)不計(jì))
這篇文章主要介紹了SQL面試題:求時(shí)間差之和(有重復(fù)不計(jì)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11重置MySQL中表中自增列的初始值的實(shí)現(xiàn)方法
這篇文章主要介紹了重置MySQL中表中自增列的初始值的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-03-03MySQL清理數(shù)據(jù)并釋放磁盤空間的實(shí)現(xiàn)示例
本文主要介紹了MySQL如何清理數(shù)據(jù)并釋放磁盤空間,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07