mysql-备份

一、备份方式

image

如何选择

100G数据以内,逻辑备份没问题,服务器配置要跟上
100G 以上,建议物理备份

二、逻辑备份

把数据库、表,以SQL语句的形式,输出为文件的备份过程,这种方式称之为逻辑备份。

但是这种方式效率并不高,以SQL导出,在海量数据下,例如几十G的场景,备份、恢复的时间都会过长。

1.mysqldump备份

mysqldump是mysql自带的备份工具,可以实现本地备份,远程备份。

mysqldump备份语法:
mysqldump -u用户名 -p密码 -h指定主机地址 -P 指定mysql端口 参数 数据库名 > 数据备份文件.sql

全量备份

--all--database,-A    转储所有数据库中的所有表。
# mysqldump -u用户名 -p'密码' -A > /mysql_backup/all_db.sql

指定数据库备份

---database,-B    可以转储指定几个数据库。

-B可以跟上多个数据库名,同时备份多个库

指定备份库,以及所有数据

# mysqldump -u用户名 -p'密码' -B 库名 > /mysql_backup/文件名.sql

备份单个数据表

单独指定备份某个表
# mysqldump -u用户名 -p'密码' 库名 表名 > /mysql_backup/文件名.sql

备份多个数据表

# mysqldump -u用户名 -p'密码' 库名 表1 表2 > /mysql_backup/文件名.sql

备份数据库的指定表和特定数据

mysqldump -u用户名 -p密码 库名 表名 --where="限制条件" > /mysql_backup/文件名.sql
mysqldump -h 172.21.61.5 -P 4000 -u root -p'T36AP#%mvj_7' ls_slfh_fireproofing_test ffp_basis_obstacles --where="1 =1 limit 100" > /mysql_backup/ffp_basis_obstacles.sql

只要备份结构,不备份数据

有些情况下会只需要表结构,不要数据,命令如下
--no-data,-d    不写表的任何行信息。

# 备份world库下,所有的表结构
mysqldump -u用户名 -p'密码' -d 库名 > /mysql_backup/文件名.sql

# 单独备份某个表的结构
mysqldump -u用户名 -p'密码' -d 库名 表名 > /mysql_backup/文件名.sql

只要备份表数据,不备份结构

--no-create-info,-t    不写重新创建每个转储表的CREATE TABLE语句。

# 只要表的数据
mysqldump -u用户名 -p'密码' -t 库名 表名  > /mysql_backup/文件名.sql

备份且压缩数据

对于数据库有大量数据表,以及信息,导出的备份文件,最好是压缩后的,节省磁盘。
mysqldump -u用户名 -p'密码' 库名 表名 | gzip > /mysql_backup/文件名.sql.gz

恢复数据库

mysql -h ip -u用户名 -p'密码' 库名 < /mysql_backup/文件名.sql;

使用source导入:use 数据库名;  source /sql文件路径
posted @ 2023-04-19 14:08  村尚chun叔  阅读(25)  评论(0编辑  收藏  举报