1. 冷备份和还原的实现
简介:冷备份定义是 读、写操作均不可进行,数据库停止服务 (超级简单)
冷备份
需求 对
10.0.0.13
主机实现冷备操作
关闭
10.0.0.13 主机的服务(ubuntu系统为例)
10.0.0.12为远程主机
systemctl stop mysql.service
备份数据
mkdir /data/backup -p;cd /data/backup/
tar zcf base_data.tar.gz /var/lib/mysql (将/var/lib/mysql 里的文件打包压缩) 数据库文件等
tar zcf binlog_data.tar.gz /data/mysql/logs (将/data/mysql/logs 里文件打包压缩) 自定义日志文件
远程主机
获取备份数据
mkdir /data/backup -p;cd /data/backup/
rsync root@10.0.0.13:/data/backup/*.gz ./
ls #得到13主机的内容
原则上来说,最好再将配置文件内容也同步过来一份
,
如果核心配置能够保证是一样的,此步非必须。
冷还原实践
远程主机上还原,远程主机上的
MySQL
版本和配置,必须要与备份机上的保持一致
10.0.0.12
主机清空数据,为还原做准备(远程主机用的是rocky系统)
systemctl stop mysqld.service
rm -rf /var/lib/mysql/*
rm -rf /data/mysql/logs/*
解压文件
tar xf base_data.tar.gz
tar xf binlog_data.tar.gz
转移文件
mv ./var/lib/mysql/* /var/lib/mysql/ #把当前文件backup的内容转移到对应的目录下
mv ./data/mysql/logs/* /data/mysql/logs/ #把当前文件backup的内容转移到对应的目录下
更改文件权限
chown mysql:mysql -R /data/mysql/*
chown mysql:mysql -R /var/lib/mysql
启动
mysql
服务
systemctl start mysqld.service

连接到数据库里面确认效果
--
数据修复成功
本人演示失败 因为操作系统不一样 一个ubuntu 一个rocky 但是步骤命令是一样的 大家可以参看

2.mysqldump备份和还原
mysqldump
是
MySQL
官方提供的客户端备份工具,通过
mysql
协议连接至
mysql
服务器进行备
份,
mysqldump
命令是将数据库中的数据备份成一个文本文件,数据表的结构和数据都存储在生成的文本文件中。
1 mysqldump
备份策略
旧版命令
mysqldump
-
uroot
-
p123456
-
A
-F -
E
-
R
--
triggers
--
single-transaction
--
master-data
=
2
--
flush-privileges
--
default-character-set
=
utf8
--
hex-blob
>
${BACKUP}
/
fullbak_
${BACKUP_TIME}
.sql
新版8.0.26以上
mysqldump
-
uroot
-
p123456
-
A
-F -
E
-
R
--
triggers
--
single-transaction
--
source-data
=
2
--
flush-privileges
--
default-character-set
=
utf8
--
hex-blob
>
${BACKUP}
/
fullbak_
${BACKUP_TIME}
.sql
不同处已用黄色标出
-
uroot
#MySQL
用户名
-
p123456
#MySQL
密码
-
A
#
备份所有数据库
-F
#
刷新日志
,
旧日志已经备份了,所以可以刷新出新的日志,避免重复。
-
E
#
导出事件
-
R
#
导出存储过程以及自定义函数
--
triggers
#
导出触发器
--
single-transaction
#
以开启事务的方式备份数据
--
master-data
=
2
#
备份日志信息
--
source-data
=
2
#