mysql之三备份

一、备份库
1.1、单库
方法一、常规备份(只备份了test库里的所有表)

//将msyql的test库备份到/opt/目录下,并起名为msyql_bak.sql
# mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock test >/opt/msyql_bak.sql

//查看看是否有建库语句等信息,如果中文是乱码是正常的,恢复数据可恢复正常
# egrep -v '^$|#|--|^/' /opt/msyql_bak.sql

 

方法二、用-B备份(备份是同时创建了库)

//将msyql的test库备份到/opt/目录下,并起名为msyql_bak.sql
# mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B test >/opt/msyql_bak.sql

 

方法三、压缩备份数据库

//打包压缩备份数据库
# mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B test|gzip >/opt/msyql_bak.sql.gz

 

1.2、多库
方法一、命令打包备份库

//打包压缩备份test和oldboy库
# mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B test oldboy|gzip >/opt/msyql_baks.sql.gz

 

方法二、for循环打包备份库

如果库比较多的话可以使用个脚本备份。

脚本说明
排除无需打包的库database|information*|mysql|performance*,将需要打包的库压缩打包,按照库名保存到opt目录下
#!/bin
for dbname in ` mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "show databases;"|grep -Evi "database|information*|mysql|performance*"`
do
   mysqldump  -uroot -poldboy123 -S /data/3306/mysql.sock --events -B $dbname|gzip >/opt/${dbname}_bak.sql.gz
done;
View Code

 

二、恢复库

方法一、只恢复库中的表数据对(对应单库备份方法一)

 

//恢复test库中的数据
# mysql -uroot -p'oldboy123' -S /data/3306/mysql.sock test </opt/msyql_bak.sql

//查看是否恢复成功
# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "select * from test.test;" 

 

 

方法二、恢复库同时恢复表中数据(对应单库备份方法二)

//恢复库
# mysql -uroot -p'oldboy123' -S /data/3306/mysql.sock  </opt/msyql_bak_B.sql  

//查看是否恢复成功  
# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "show databases;" 

 

方法三、恢复压缩的库(对应单库备份方法三)

gzip -d msyql_bak.sql.gz
mysql -uroot -p'oldboy123' -S /data/3306/mysql.sock  </opt/msyql_bak_B.sql

注:解压前先备份

 

posted @ 2017-05-11 16:43  51redhet  阅读(168)  评论(0编辑  收藏  举报