一家装修的网站怎么做,wordpress 链接 样式表,购物网站制作费用,wordpress前台编辑器文章目录 差异备份mysql数据一、 安装 Percona XtraBackup数据库中创建一些数据三、创建全备份四、创建差异备份1. 在数据库中添加数据#xff0c;让数据发生一些改变2. 创建第一个差异备份3. 数据库中再次添加一些数据4. 创建第二个差异备份 五、模拟数据丢失#xff0c;删库… 文章目录 差异备份mysql数据一、 安装 Percona XtraBackup数据库中创建一些数据三、创建全备份四、创建差异备份1. 在数据库中添加数据让数据发生一些改变2. 创建第一个差异备份3. 数据库中再次添加一些数据4. 创建第二个差异备份 五、模拟数据丢失删库六、准备备份数据七、恢复数据 差异备份mysql数据
一、 安装 Percona XtraBackup
# 添加 Percona 仓库
sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm # 安装 Percona XtraBackup
sudo yum install percona-xtrabackup-83 -y # 注意版本号可能会变化# 83版本工具只支持mysql80以上版本数据库中创建一些数据
如果数据库中已有默认以外的数据直接跳过
CREATE DATABASE IF NOT EXISTS test; #创建一个名为test的数据库
USE test; #使用数据库#创建一个名为t1的表CREATE TABLE IF NOT EXISTS t1 ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, age INT
);#向t1表中插入一些数据INSERT INTO t1 (name, age) VALUES (Alice, 30);
INSERT INTO t1 (name, age) VALUES (Bob, 25);
INSERT INTO t1 (name, age) VALUES (Charlie, 35);#查看表中所有记录
SELECT * FROM t1;三、创建全备份
首先你需要为 MySQL 数据库创建一个全备份、这是差异备份的基础
#创建一个备份目录
mkdir /data/backup -p# 使用 xtrabackup 执行完全备份
xtrabackup --defaults-file/etc/my.cnf \ #使用配置文件连接
--backup -uroot -p你的密码 \
--target-dir/data/backup/base \ #全备份目录
--no-server-version-check #不检查版本注意在实际操作中请不要直接在命令行中包含密码而是通过配置文件或环境变量来管理密码 四、创建差异备份
在进行了全备份之后你可以根据需要创建多个差异备份
差异备份只包含全备份以来发生更改的数据
1. 在数据库中添加数据让数据发生一些改变
use test; \\使用test数据库
#插入一些记录
INSERT INTO t1 (name, age) VALUES (David, 28);
INSERT INTO t1 (name, age) VALUES (Eva, 32);
INSERT INTO t1 (name, age) VALUES (Frank, 29);2. 创建第一个差异备份
#差异备份都是基于全备份的
xtrabackup --defaults-file/etc/my.cnf \ #使用配置文件连接--backup \ --target-dir/data/backup/inc1 \ #第一次差异备份目录--incremental-basedir/data/backup/base \ #全备份目录,在全目录的基础上备份新数据-uroot -p你的密码 \--no-server-version-check # \代表换行这是一条命令显示completed OK 就成功了若是报错可以点击以下链接博客查询 mysql全备份及各种报错详解
3. 数据库中再次添加一些数据
use test;
#再次插入一些记录
INSERT INTO t1 (name, age) VALUES (Grace, 27);
INSERT INTO t1 (name, age) VALUES (Henry, 31);
INSERT INTO t1 (name, age) VALUES (Ivy, 24);
INSERT INTO t1 (name, age) VALUES (Jack, 33);4. 创建第二个差异备份
#跟前一个差异备份唯一的区别就是换了一下备份目录
xtrabackup --defaults-file/etc/my.cnf \ #使用配置文件连接--backup \--target-dir/data/backup/inc2 \ # 第二次差异备份目录--incremental-basedir/data/backup/base \ # 全备份目录在全备份的基础上备份新数据-uroot -p你的密码 \--no-server-version-check # \代表换行这是一条命令五、模拟数据丢失删库 systemctl stop mysqld \\停止mysql数据库rm -rf /var/lib/mysql/* \\删除mysql下的所有数据#这时mysql数据库已经登不上了六、准备备份数据
在恢复之前你需要准备备份数据。跟增量备份不同的是不需要准备所有的备份只需要准备第一次的全备份和最后一次差异备份即可。
#准备全备份数据xtrabackup --defaults-file/etc/my.cnf \ #使用配置文件连接--prepare --apply-log-only \ #准备备份,只第一次使用 --apply-log-only--target-dir/data/backup/base \ #全备份目录--no-server-version-check #不检查版本信息#在全备份数据的基础上准备差异备份数据
xtrabackup --defaults-file/etc/my.cnf \ #使用配置文件连接
--prepare
--target-dir/data/backup/base \ #全备份目录
--incremental-basedir/data/backup/inc2 \ #最后一次差异备份
--no-server-version-check #不检查服务版本七、恢复数据
#恢复数据
xtrabackup --defaults-file/etc/my.cnf \ #使用配置文件连接
--copy-back \ #恢复数据
--target-dir/data/backup/base \ #全备份目此时此目录数据是所有数据
--no-server-version-check 此时所有数据就都恢复了
#将恢复的数据给上mysql用户权限
chown -R mysql.mysql /var/lib/mysql
#重启mysqlsystemctl restart mysqld
#登录mysql
mysql -uroot -p你的密码;
#查看所有数据库
show databases;完 若是中途遇到一些无法解决的问题以下链接可能有解决方式 centos系统mysql数据库完全备份与恢复以及各种报错解决方案
回到顶层