MySQL備份之分庫分表備份指令碼
1、分庫備份:
#!/bin/sh
MYUSER=root
MYPASS=123456
SOCKET=/usr/local/mysql/data/mysql.sock
MYLOGIN="mysql -u$MYUSER -p$MYPASS -S $SOCKET"
MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S$SOCKET -B"
DATABASE="$($MYLOGIN -e "show databases;"|egrep -vi "Data|_schema|mysql")"
for dbname in $DATABASE
do
MYDIR=/server/backup/$dbname
[ ! -d $MYDIR ] && mkdir -p $MYDIR
$MYDUMP $dbname|gzip >$MYDIR/${dbname}_$(date +%F).sql.gz
done
檢視備份明細:
[root@server002 ~]#tree /server/backup/
/server/backup/
├── opuser26
│ ├──opuser26_2015-12-29.sql.gz
│ ├──opuser26_2015-12-30.sql.gz
│ └──opuser26_2015-12-31.sql.gz
├── opuser_users26
│ ├──opuser_users26_2015-12-29.sql.gz
│ ├──opuser_users26_2015-12-30.sql.gz
│ └──opuser_users26_2015-12-31.sql.gz
└── users26
├──users26_2015-12-29.sql.gz
├──users26_2015-12-30.sql.gz
└──
users26_2015-12-31.sql.gz
3 directories, 9 files
[root@server002 ~]#
2、分庫分表備份:
#!/bin/sh
USER=root
PASSWD=123456
SOCKET=/usr/local/mysql/data/mysql.sock
MYLOGIN="mysql -u$USER -p$PASSWD -S$SOCKET"
MYDUMP="mysqldump -u$USER -p$PASSWD -S$SOCKET"
DATEBASE="$($MYLOGIN -e "show databases;"|egrep -vi "Data|_schema|mysql")"
for dbname in $DATEBASE
do
TABLE="$($MYLOGIN -e "use $dbname;show tables;"|sed '1d')"
for tname in $TABLE
do
MYDIR=/server/backup/$dbname/${dbname}_$(date +%F)
[ ! -d $MYDIR ] && mkdir -p $MYDIR
$MYDUMP $dbname $tname |gzip >$MYDIR/${dbname}_${tname}_$(date +%F).sql.gz
done
done
檢視備份明細:
[root@server002 scripts]# tree /server/backup/
/server/backup/
├── opuser26
│ ├──opuser26_2015-12-30
│ │├──opuser26_opuser_test_2015-12-30.sql.gz
│ │└──opuser26_opuser_test2_2015-12-30.sql.gz
│ └──opuser26_2015-12-31
│ ├── opuser26_opuser_test_2015-12-31.sql.gz
│ └── opuser26_opuser_test2_2015-12-31.sql.gz
├── opuser_products26
│ ├──opuser_products26_2015-12-30
│ │├──opuser_products26_cloudstack_2015-12-30.sql.gz
│ │├──opuser_products26_dashborad_2015-12-30.sql.gz
│ │└── opuser_products26_student_2015-12-30.sql.gz
│ └──opuser_products26_2015-12-31
│ ├──opuser_products26_cloudstack_2015-12-31.sql.gz
│ ├──opuser_products26_dashborad_2015-12-31.sql.gz
│ └──opuser_products26_student_2015-12-31.sql.gz
└── products26
├──products26_2015-12-30
│├──products26_openstack_2015-12-30.sql.gz
│├──products26_saltstack_2015-12-30.sql.gz
│├──products26_server_2015-12-30.sql.gz
│└──products26_zabbix_2015-12-30.sql.gz
└──products26_2015-12-31
├──products26_openstack_2015-12-31.sql.gz
├──products26_saltstack_2015-12-31.sql.gz
├──products26_server_2015-12-31.sql.gz
└──products26_zabbix_2015-12-31.sql.gz
9 directories, 18 files
[root@server002 scripts]#
注意:備份中的警告資訊
以上各指令碼在備份的時候都會提示:
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
Warning: Using a password on the command line interface can be insecure.
解決方法:
對於 mysqldump 要如何避免出現(Warning: Using a password on the command line interface can be insecure.) 警告資訊呢?
我們可以編輯配置檔案,新增如下內容:
[root@server002 ~]# vim /etc/my.cnf
[client]
user=root
password=123456
....省略部分...........
[mysqldump]
user=root
password=123456
修改完配置檔案後,重啟mysql服務,然後只需要再次指令碼中執行mysql和mysqldump 命令就不會出現警告資訊了,經過查閱發現MySQL5.5(包括5.5)以前直接在備份指令碼中命令列寫密碼是不會出現的,到5.6以後就出現了警告資訊。所以平時的備份指令碼中不需要涉及使用者名稱密碼相關資訊.
相關文章
- MySQL:Windows下分庫備份指令碼MySqlWindows指令碼
- mysql按表備份指令碼MySql指令碼
- mysql備份指令碼MySql指令碼
- mysql innobackupex備份指令碼MySql指令碼
- 《mysql資料庫備份小指令碼》MySql資料庫指令碼
- mysql的分庫備份MySql
- 兩套mysql備份指令碼MySql指令碼
- Mysql異地備份指令碼MySql指令碼
- MySQL自動備份指令碼MySql指令碼
- MySQL資料庫備份的shell指令碼MySql資料庫指令碼
- 《mysql資料庫備份小指令碼》(轉)MySql資料庫指令碼
- mysqldump來備份MYSQL資料庫(指令碼)MySql資料庫指令碼
- rman備份和增量備份指令碼指令碼
- 資料庫備份指令碼資料庫指令碼
- RMAN全庫備份指令碼指令碼
- 備份指令碼指令碼
- Liunx備份mysql資料庫的shell指令碼MySql資料庫指令碼
- Mysql資料庫的簡單備份指令碼MySql資料庫指令碼
- mysql每天定時備份指令碼MySql指令碼
- mysql定時備份shell指令碼MySql指令碼
- MySQL增量備份的指令碼(innobackupex)MySql指令碼
- mysql的一個備份指令碼MySql指令碼
- 資料庫全備份指令碼資料庫指令碼
- 備份主備庫都能用的指令碼(zt)指令碼
- ORACLE備份指令碼Oracle指令碼
- mysqldump 備份指令碼MySql指令碼
- rman 備份指令碼指令碼
- mysqldump備份指令碼MySql指令碼
- innobackupex備份指令碼指令碼
- SQLServer備份指令碼SQLServer指令碼
- SQL 備份指令碼SQL指令碼
- Mongodb 備份指令碼MongoDB指令碼
- rman備份指令碼指令碼
- oracle 備份指令碼Oracle指令碼
- Oracle冷備份(一致備份)指令碼Oracle指令碼
- Mysql定時備份資料指令碼MySql指令碼
- MySQL中binlog備份指令碼分享MySql指令碼
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼