MySQL备份恢复

备份单个库的表:

mysqldump -uroot -pvincent -hmaridb01 mysql user>/tmp/bak1.sql
# 备份mysql库的user表,
# 不包含建库语句和use语句,
# 包含表存在删除语句。

mysqldump -uroot -pvincent -hmaridb01 mysql user host>/tmp/bak1.sql
# 备份mysql库的user表和host表,
# 不包含建库语句和use语句,
# 包含表存在删除语句。

表结构和数据拆开备份:

# 只备份表结构或只导出数据的insert语句
mysqldump -uroot -pvincent -d vincent
mysqldump -uroot -pvincent -t vincent

# 将表结构和表数据分别保存到不同文件中
# 表数据每列以tab分割,生成非insert语句
mkdir /tmp/test
chown -R mariadb: /tmp/test
mysqldump -uroot -pvincent vincent -T /tmp/test
# 方便MySQL到Hive的转换

备份库:

mysqldump -uroot -pvincent -hmaridb01 vincent>/tmp/bak1.sql
# 备份库vincent中的所有表,
# 不包含建库语句和use语句,
# 包含表存在删除语句。

mysqldump -uroot -pvincent -hmaridb01 --databases vincent vincent1>/tmp/bak1.sql
# 备份多个库时使用参数--databases,
# 包含建库语句和use语句,
# 包含表存在删除语句。

mysqldump -uroot -pvincent -hmaridb01 --all-databases>/tmp/bak1.sql
# 备份包括系统库在内的所有库,
# 参数--all-databases等同于-A,
# 包含建库语句和use语句,
# 包含表存在删除语句。

压缩备份:

mysqldump -uroot -pvincent -hmaridb01 --all-databases|gzip >/tmp/bak1.sql.gz
# 将备份的数据使用gzip压缩,备份表和备份库都可以使用gzip压缩存储。
# 一个压缩的小技巧而已

备份时获取binlog信息:

# 使用参数--master-data在备份时定位binlog信息
mysqldump -uroot -pvincent vincent --master-data=2|grep MASTER_LOG_FILE

# 使用--delete-master-logs备份后删除恢复时不需要的binlog,要慎重
mysqldump -uroot -pvincent -A --master-data=2 --delete-master-logs

基于表的备份还原:

create database test;
mysql -uroot -pvincent test<bak1.sql
# 备份是某个库的表,则将备份直接导入到一个库中即可,
# 如果该库包含同名的表,则表会被备份中的数据替换。

基于单个库的备份还原:

create database test;
mysql -uroot -pvincent test<bak1.sql
# 备份是单个库的备份,
# 可以将备份导入到一个存在的库中,但是库中的同名表会被覆盖,
# 也可以导入到原库中,同样会覆盖同名表,备份操作之后的新建表不受影响,
# 被导入的库必须存在,否则报错。

基于多个库的备份还原:

drop database vincent;
drop database vincent1;
mysql -uroot -pvincent<bak1.sql
# 备份是多个库的备份,
# 导入时不必指定库名,
# 导入时库不必存在,
# 如果库存在,则同名表会被替换。

create database vincent1;
mysql -uroot -pvincent --one-database vincent1<bak.sql
# 备份是多个库的备份,
# 可以使用参数--one-database只导入其中的一个库,
# 该库需要提前创建,否则报错。

基于压缩备份还原数据库:

gunzip <bak1.sql.gz |mysql -uroot -pvincent vincent
# 将gzip压缩备份包传递给gunzip解压,
# 管道给mysql恢复数据库vincent。
# 还是一个关于压缩解压的小技巧

跨主机还原数据库:

mysql -uroot -pvincent -h192.168.1.251 test<bak1.sql
# 将本地备份,通过指定主机IP地址导入到其他主机之上。
# 当然要保持网络畅通

基于网络不落地转储库:

mysqldump -uroot -pvincent vincent|mysql -uroot -pvincent -h192.168.1.251 test

mysqldump -uroot -pecpss@123 -h192.168.1.251 test|mysql -uroot -pvincent test

# 在线数据迁移,
# 跨网络,该方法技巧性比较强,需要比较稳定的网络环境

[TOC]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值