用rsync可以保留属性
模拟数据库冷备份10.0.0.8到10.0.028上
#10.0.0.8
#启用二进制
vim /etc/my.cnf.d/mariadb-server.cnf
log-bin=/data/logbin/mysql-bin
mkdir /data/login
#更改文件属性
chown mysql.mysql /data/login
#启动数据库服务
systemctl restart mariadb
#停数据库服务
systemctl stop mariadb
#备份文件到28机器上
rsync -av /var/lib/mysql 10.0.0.28:/backup
rsync -a /etc/my.cnf.d/mariadb-server.cnf 10.0.0.28:/backup
rsync -av /data/logbin 10.0.0.28:/backup
#启动服务
systemctl start mariadb
#在10.0.0.28
#创建要备份文件夹
mkdir /backup/
模拟数据库10.0.0.8崩溃,
#在10.0.0.8表里面添加记录
insert teachers (name,age,gender)values('mage',30,'M') ;
#模拟数据库崩溃(二进制文件还在)
rm -rf /var/lib/mysql/*
模拟数据10.0.0.8到新服务器10.0.0.28机器上
#在10.0.0.28
#把拷贝的文件归位
cp -av /backup/mysql/* /var/lib/mysql/
cp /backup/mariadb-server.cnf /etc/my.cnf.d/
cp -a /backup/logbin/ /data/
#查看二进制文件,数据库和配置文件是否归位
ll /data/logbin/
ll /var/lib/mysql/
ll /etc/my.cnf.d/mariadb-server.cnf
#启动服务
systemctl start mariadb
#利用二进制 还原备份时到数据库崩溃时的新数据
scp -r /data/logbin/ 10.0.0.28:/backup/newlogbin
#mysqlbinlog 可以直接看二进制文件的内容
#导出文件成logbin.sql的格式
mysqlbining /backup/newlobin/mysql-bin.000002 > logbin.sql
#接下来要恢复数据库,但是恢复数据库的状态不需要记录在二进制文件,所以需要临时关闭数据库二进制记录
#查看记录二进制数据的服务是否开启
show variables like 'sql_log_bin';
set sql_log_bin=0;
#不退出数据库查看系统logbin.sql文件
system ls /root
#调用生成的logbin.sql文件
source /root/logbin.sql
#还原二进制数据服务状态
set sql_log_bin=1