欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库的备份,迁移

程序员文章站 2022-07-05 08:34:44
08.14自我总结 数据库的备份 一数据库的备份 1.单库备份 2.多库备份 3.备份所有库 二.备份恢复 1.退出数据库后 多库 3.使用gzip进行压缩数据备份 4.备份时候切割binlog日志:(进行增量备份的时候可以用到) 5.备份的时候会记录指定文件的位置以及mysqlbinglog的文件 ......

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