数据库的备份,迁移
08.14自我总结
数据库的备份
一数据库的备份
1.单库备份
mysqldump -uroot -p123 db1 > db1.sql #库名
mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql #库名 表名
2.多库备份
mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql
3.备份所有库
mysqldump -uroot -p123 --all-databases > all.sql
二.备份恢复
1.退出数据库后
mysql -u -p < filename.sql;
2.在数据库内
- 创建空数据库
- 选择数据库
- 然后使用source filename; 来进行还原
例如
use db1;
source /root/db1.sql
三.数据库迁移
务必保证在相同版本之间迁移
# mysqldump -h 源IP -uroot -p123 --databases db1 | mysql -h 目标IP -uroot -p456
四.备份高阶
1.常用参数
- -B:表示的是指定多个库,增加了建库语句和use数据库的语句。
- -compact:去掉注释,适合调试输出,不适合在生产环境使用。
- -A: 表示的是本分所有的库。
- -F:刷新binlog日志,方便进行增量的恢复。
- –master-data:增加binlog日志文件名及其对应的位置点。
- -x,–lock-all-tables :在备份的时候进行锁表,保持数据的一致性。
- -d:只备份表的结构。
- -t : 只备份数据库中的数据
- –single-transaction 适合innodb数据库的备份。
2.-B备份
单库
备份test中的所有表
mysqldump -uroot -ppassword -B test >/tmp/test.sql
多库
mysqldump -uroot -ppassword -B 库1 库2 >/tmp/test.sql
3.使用gzip进行压缩数据备份
mysqldump -uroot -ppassword -B 库1 库2 |gzip >/tmp/test.gz
4.备份时候切割binlog日志:(进行增量备份的时候可以用到)
-F 的作用就是备份数据库的时候,将binlog日志进行重新刷新。
mysqldump -uroot -ppassword -t -B -F test
5.备份的时候会记录指定文件的位置以及mysqlbinglog的文件名称
--master-data=1 的作用就是备份数据库的时候,将binlog日志进行重新刷新
mysqldump -uroot -ppassword -t -B -F --master-data test