当前位置: 首页 > news >正文

【Linux】重生之从零开始学习运维之备份恢复

备份恢复

准备工作

16主机-ubuntu系统

准备日志目录
mkdir -p /data/mysql/logs/
chown mysql:mysql -R /data/mysql

定制日志配置
vim /etc/mysql/mariadb.conf.d/50-server.cnf
log_bin=/data/mysql/logs/binlog
systemctl restart mariadb

删除db1数据库
drop database db1;

13主机-ubuntu系统

准备工作
mkdir -p /data/mysql/logs
chown mysql:mysql -R /data/mysql
vim /etc/mysql/mariadb.conf.d/50-server.cnf
log_bin=/data/mysql/logs/binlog
systemctl restart mariadb

CREATE TABLE `student` (->   `id` int(11) NOT NULL AUTO_INCREMENT,->   `name` varchar(255) NOT NULL,->   `age` int(11) NOT NULL,->   `gender` enum('M', 'F') NOT NULL,->   PRIMARY KEY (`id`)-> );
insert into student(name,age,gender)values('u11',11,'M'),('u22',22,'F');
insert into student(name,age,gender)values('u11',11,'M'),('u22',22,'F');

冷备份

16主机创建目录

mkdir -p /data/backup
cd /data/backup

13主机冷备份

关闭13主机服务
systemctl stop mariadb.service

备份数据并传给16主机
mkdir -p /data/backup
cd /data/backup
tar zcf base_data.tar.gz /var/lib/mysql
tar zcf binlog_data.tar.gz /data/mysql/logs
scp ./* root@10.0.0.16:/data/backup/

冷还原

16主机清空数据

systemctl stop mariadb.service
\rm -rf /var/lib/mysql/*
\rm -rf /data/mysql/logs/*
tar xf base_data.tar.gz
tar xf binlog_data.tar.gz

还原数据

mv ./data/mysql/logs/* /data/mysql/logs/
mv ./var/lib/mysql/* /var/lib/mysql/

systemctl start mariadb

测试

Mysqldump备份还原

单个数据库备份还原

准备工作

创建数据库
create database db2;
create table db2.student select * from db1.student;
create table db2.student2 select * from db1.student;
create table db2.student3 select * from db1.student;

insert into db1.student(name,age,gender) values('db1-user',55,'M');
insert into db2.student(name,age,gender) values('db2-user1',55,'M');
insert into db2.student2(name,age,gender) values('db2-user2',55,'M');
insert into db2.student3(name,age,gender) values('db2-user3',55,'M');

\rm -rf ./*

备份

mysqldump db1 > /data/backup/db1-bak.sql

破坏db1数据库

drop table db1.student;
show tables from db1;

还原

mysql db1 < ./db1-bak.sqlselect * from db1.student;

多个数据库备份还原

备份

mysqldump -A > /data/backup/allsql-bak.sql

破坏数据库

drop database db1;
drop database db2;

还原

mysql < ./allsql-bak.sql
show databases;

二进制 POS 信息选择性恢复

准备工作

\rm -rf *

执行备份

mysqldump -B db2 --single-transaction --master-data > ./db2.sql

进行误操作

use db2;
select * from student;
insert into student (name,age) values('db2-user1',66);
update student set age=44 where id=4;
select * from student;
drop table student;误操作
insert into student2 (name,age) values('111',11);

查找误操作日志

grep "CHANGE MASTER" /data/backup/db2.sql
mysqlbinlog --start-position=2497717 /data/mysql/logs/binlog.000002 > db2_logbin.sql
grep -i 'drop' db2_logbin.sql
vim db2_logbin.sql
对误操作添加注释--

传递给13主机

scp ./db2_logbin.sql root@10.0.0.13:/root/
scp ./db2.sql  root@10.0.0.13:/root/

13主机还原数据

set sql_log_bin=0;临时关闭下
source /root/db2.sql;
set sql_log_bin=1;导入后重开

误操作数据传回16主机

mysqldump db2 student > db2-student.sql
scp db2-student.sql root@10.0.0.16:/root/

再回16主机还原误操作数据

set sql_log_bin=0;临时关闭
source /root/db2-student.sql;
set sql_log_bin=1;导入后再开启

http://www.lryc.cn/news/604997.html

相关文章:

  • String模拟实现的补充说明
  • 第1课:向量与矩阵运算
  • QT中QTableView+Model+Delegate实现一个demo
  • 【ESP32设备通信】-LAN8720与ESP32集成
  • 如何设计一个站内消息系统:架构设计合集(八)
  • 订单识别技术原理及场景应用
  • 【音视频】WebRTC 开发环境搭建-Web端
  • MYSQL:视图
  • Qt 下载说明
  • uniApp实战六:Echart图表集成
  • 实现implements InitializingBean, DisposableBean 有什么用
  • 【MATLAB/Simulink】查看MATLAB以往版本的帮助文档
  • 牛顿-拉夫森法求解非线性方程组
  • 无人机惯性导航模块运行与技术难点!
  • 25年新算法!基于猛禽的优化算法(BPBO):一种元启发式优化算法,附完整免费MATLAB代码
  • 《数学模型》——最大流与最小费用流问题
  • Mediapipe 的某些模型,网络下载不来可以去gitee找找看
  • 双塔模型 + 自监督学习:解决长尾物品表征难题
  • Helm在Kubernetes中的应用部署指南与案例解析
  • FragmentManager 返回栈与 Activity 运行栈的关系(当按下Back键时屏幕会如何变化?)
  • 基于SpringBoot+MyBatis+MySQL+VUE实现的便利店信息管理系统(附源码+数据库+毕业论文+远程部署)
  • 如何不让android studio自动换行
  • AI服务器中,EEPROM有哪些部件使用,需要存储哪些信息?
  • NLU 语义解析评测实践:基于函数调用的 ACC、ROUGE 与 BLEU 综合指标
  • 《SAM:Segment Anything》论文精读笔记
  • 《CLIP改进工作串讲》论文精读笔记
  • AtCoder Beginner Contest 416(ABCDE)
  • 机器视觉halcon7-缺陷检测
  • 「源力觉醒 创作者计划」_文心大模型 4.5 开源 28 天:从车间轴承到山村课堂的 AI 突围
  • 数据结构-Set集合(一)Set集合介绍、优缺点