文章目录
- 前置环境
- 一、物理冷备份
- 1.备份
- 2.恢复
- 检查结果
 
- 补充: 周期性恢复操作
 
 
前置环境
| 主机 | ip | 
|---|---|
| mariadb1 | 192.168.10.11 | 
| mariadb2 | 192.168.10.12 | 
mairadb1操作
 安装mariadb
yum -y install mariadb-server
启动mariadb
systemctl start mariadb
这里只是演示备份与恢复,所以不需要进行初始化操作,直接进入数据库就好了
进入数据库,随便创建一些数据来验证结果即可
mysql
create database test;
use test;
create table users(name char(16),passwd char(48));
insert into users values('zhangsan','123'),('lisi','234');
quit
大体就是这样的
 

在mariadb2上也安装mariadb
yum -y install mariadb-server
一、物理冷备份
1.备份
systemctl stop mariadb
mkdir /backup
cd /var/lib/
tar zcf /backup/mysql_all_$(date +%F).tar.gz mysql/
ls
首先关闭mariadb
 创建一个存放备份的文件夹,即/backup
 更改目录到mariadb目录
 打包即可
简单解释一下(date +%F)
 动态获取日期,一般用在周期性脚本中使用。
ls /backup

 把这个压缩文件传到mariadb2上
scp /backup/mysql_all_2024-09-26.tar.gz root@192.168.10.12:/
2.恢复
mariadb2操作
 查看备份文件有没有传过来
ls /

systemctl stop mariadb
cd /var/lib/
mv mysql/  mysql.bak
tar xf /mysql_all_2024-09-26.tar.gz 
systemctl start mariadb
关闭mariadb
 cd到mairadb目录
 将原本的mysql目录改成.bak作为备份。
 将备份文件解压到这里
 启动mariadb
检查结果
进入mariadb
mysql
查看库表
show databases;

use test;
select * from users;

describe users;

此结果同样适用于数据库的恢复操作,并且可以直接传输至其他服务器,从而实现数据的有效转移。
补充: 周期性恢复操作
创建一个脚本
vim /root/backup.sh
#!/bin/bash
date=$(date +%F)
cd /var/lib/
tar zcf /backup/mysql_all_${date}.tar.gz mysql/
周期任务
crontab -e
0 2 * * *  /usr/bash /root/backup.sh
不用担心重名问题,是以当前日期命名的
`



















