mysqldump的常见用法

  1. 备份数据库 mydb
    mysqldump -uroot -proot001 --databases mydb > /tmp/mydb.sql
  2. 备份多个数据库 mydb与testdb
    mysqldump -uroot -proot001 --databases mydb testdb > /tmp/backupdb.sql
  3. 备份全部数据库
    mysqldump -uroot -proot001 --all-databases > /tmp/backupdb.sql
  4. 去除系统数据库的剩余数据库备份

9.备份mydb数据库包含有存储过程(触发器默认会导出,所以加不加--trigger都可以)
mysqldump -uroot -proot001 -B delivery --routines --trigger > /tmp/backupdb.sql

10.导出mydb数据库中sms_num_belong 表结构以及表中id=1,2的两条数据
mysqldump -uroot -proot001 mydb sms_num_belong --where='id in (1,2)' > /tmp/backupdb.sql

11.远程导出某数据库
mysqldump -uroot -proot001 -h 172.19.3.30 -P3306  --databases mydb > /tmp/backupdb.sql

12.减少锁时间机制
mysqldump -uroot -proot001  --master-data=2 --single-transaction --databases mydb > /tmp/backupdb.sql
--master-data mysqldump导出数据时,当这个参数的值为1的时候,mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,在slave上导入数据时就会执行这个语句,salve就会根据指定这个文件位置从master端复制binlog。默认情况下这个值是1,当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是这个语句是被注释的状态。如果是从从库备份数据,则把--master-data替换为--dump-slave

--single-transaction参数代表将事务隔离级别设置为可重复读并在导出开始时执行start transaction开启一个新的事务,在dump的执行过程中也不会阻止任何的读写操作。此备份方式会在备份开始之初在所有表上加一个只读锁(FLUSH TABLES WITH READ LOCK),当成功获取了该锁并开始备份之后,此锁就会立即释放。而后续的dump过程中不会影响其他的读写操作

13.只导出数据,不加锁,不保持数据一致性,可以加入参数 --skip-lock-tables 快速到处
mysqldump -uroot -proot001  --skip-lock-tables --databases syncdb > /tmp/backupdb.sql

mysqldump本身是只有指定数据库的备份参数,没有不指定某种数据库的参数选项,如果数据库较多,一一指定备份比较繁琐,可以先去数据库查询,然后过滤掉系统数据库进行备份,命令如下:
不备份某些数据库如(information_schema、mysql、sys、performance_schema):

mysql -e "show databases;" -uroot -proot001| grep -Ev Database|information_schema|mysql|sys|performance_schema" | xargs mysqldump -uroot -proot001 --databases > /tmp/backupdb.sql

如果需要创建一致性副本及主从结构,可以加入包含复制信息的导出
mysql -e "show databases;" -uroot -proot001| grep -Ev Database|information_schema|mysql|sys|performance_schema" | xargs mysqldump -uroot -proot001 --databases --single-transaction --master-data=2  >/tmp/backupdb.sql

备份mydb数据库下dy_real_name与open_user_info 这两张表(含数据)
mysqldump -uroot -proot001 mydb dy_real_name open_user_info > /tmp/backupdb.sql 备份mydb数据库表结构,不备份数据( -B 等同于 --databases)
mysqldump -uroot -proot001 -B mydb--no-data > /tmp/backupdb.sql 备份mydb数据库表数据,不备份表结构( -B 等同于 --databases)
mysqldump -uroot -proot001 -B mydb--no-create-info > /tmp/backupdb.sql
(可以添加--no-create-db 参数,这样导出的文件不包含创建数据库的内容)
mysqldump -uroot -proot001 -B mydb --no-create-db --no-create-info mydb> /tmp/backupdb.sql 备份mydb数据库 不需要备份表cw_org_info 与 表cw_settle_subject
mysqldump -uroot -proot001 -B mydb--ignore-table=mydb.cw_org_info --ignore-table=mydb.cw_settle_subject > /tmp/backupdb.sql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值