网络运维Day19

news2024/11/28 5:27:37

文章目录

  • 环境准备
  • 数据备份
    • 为什么要备份
    • 什么是备份
    • 备份到哪里
    • 什么时候备份
    • 如何备份
  • 完整备份
    • 物理备份
    • 逻辑备份
    • 测试恢复所有库
  • 构建MySQL服务
  • xtrabackup完全备份与恢复
    • 完全备份
    • 完全恢复
    • 增量备份
    • 增量恢复
  • 总结

环境准备

  • IP地址采用自动分配,以自己的为准

  • 可以将之前的mysql主机的主机名改名为mysql-a

  • 重新安装mysql-b主机,配置基础环境

主机名IP地址
mysql-a192.168.8.100
mysql-b192.168.8.101

为两台主机配置IP地址和指定案例的yum源,下方已mysql-b主机为例

[root@mysql ~]# hostnamectl set-hostname mysql-b
[root@mysql-b ~]# systemctl stop firewalld 				#关闭防火墙
[root@mysql-b ~]# systemctl disable firewalld			#禁止防火墙开机自启
[root@mysql-b ~]# vim /etc/selinux/config				#修改配置文件,关闭SELinux
...
SELINUX=disabled
...
[root@mysql-b ~]# reboot								#重启生效
[root@mysql-b ~]# nmcli connection modify ens33 ipv4.method auto connection.autoconnect yes
[root@mysql-b ~]# nmcli connection up ens33

配置yum,使用阿里云的镜像站点

[root@mysql-b ~]# rm -rf /etc/yum.repos.d/*.repo	 	#删除自带的repo文件
[root@mysql-b ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo \ https://mirrors.aliyun.com/repo/Centos-7.repo		     #下载阿里镜像源

数据备份

为什么要备份

数据是企业生存的命脉

什么是备份

将数据另外保存一份

备份到哪里

通常采用异地保存

什么时候备份

备份的窗口期,通常是业务压力最低点

如何备份

  • 备份方法
    • 物理备份
    • 逻辑备份
  • 备份策略
    • 完整备份
    • 增量备份
    • 差异备份
  • 备份三要素
    • BW:完成备份需要的时间
    • RPO:客户可承受的最大数据丢失量
    • RTO:客户可承受的最长停机时间

完整备份

物理备份

方法:cp、tar、zip …

##物理备份及恢复测试:使用cp、tar、zip等命令对数据库磁盘文件进行备份

#mysql-a操作

[root@mysql-a ~]# systemctl stop mysqld						#停止MySQL服务
[root@mysql-a ~]# mkdir /bak								#创建备份文件存储目录
[root@mysql-a ~]# tar -zcPf /bak/db.tar.gz /var/lib/mysql/*	#对MySQL磁盘文件打包
[root@mysql-a ~]# ls /bak/									#确认备份成功
db.tar.gz

[root@mysql-a ~]# rm -rf /var/lib/mysql/*					#删除MySQL磁盘文件模拟数据丢失
[root@mysql-a ~]# tar -zxPf /bak/db.tar.gz -C /				#解压备份数据,恢复数据
[root@mysql-a ~]# ls /var/lib/mysql/						#确认数据目录下有文件
[root@mysql-a ~]# chown -R mysql.mysql /var/lib/mysql/			#修改文件归属!!!

[root@mysql-a ~]# systemctl start mysqld						#启动服务测试数据

[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' -e "SHOW DATABASES;"

逻辑备份

  • mysqldump命令用于备份数据
  • mysql命令用于恢复数据
##逻辑备份及恢复测试

#备份指定库下的多个表
[root@mysql-a ~]# mysqldump -hlocalhost -uroot -p'tedu123...A' tarena departments employees salary > /bak/des.sql

#备份多个指定库下的所有表
[root@mysql-a ~]# mysqldump -hlocalhost -uroot -p'tedu123...A' -B tarena execdb > /bak/te.sql

#备份所有库下的表
[root@mysql-a ~]# mysqldump -hlocalhost -uroot -p'tedu123...A' -A > /bak/all.sql

[root@mysql-a ~]# ls /bak/*.sql			#确认数据备份成功
/bak/all.sql  /bak/des.sql  /bak/te.sql

##测试恢复指定库下的表

#删除tarena库下的表模拟数据丢失,注意顺序不能改
[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' -e "DROP TABLE tarena.salary; DROP TABLE tarena.employees; DROP TABLE tarena.departments;"

#确认departments表、employees表和salary表被删除
[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' -e "SHOW TABLES FROM tarena;"

#利用des.sql恢复数据
[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' tarena < /bak/des.sql 

#确认3张表恢复成功
[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' -e "SHOW TABLES FROM tarena;"

##测试恢复多个库

#删除tarena库和execdb库模拟数据丢失
[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' -e "DROP DATABASE tarena; DROP DATABASE execdb;"

#确认tarena库和execdb库被删除
[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' -e "SHOW DATABASES;"

#利用te.sql恢复两个库
[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' < /bak/te.sql 

#确认两个库恢复成功
[root@mysql-a ~]# mysql -hlocalhost -uroot -p'tedu123...A' -e "SHOW DATABASES;"

测试恢复所有库

配置基础环境

[root@localhost ~]# hostnamectl set-hostname mysql
[root@mysql ~]# nmcli connection modify ens33 ipv4.method auto connection.autoconnect yes
[root@mysql ~]# nmcli connection up ens33

配置yum,使用阿里云的镜像站点

[root@localhost ~]# rm -rf /etc/yum.repos.d/*.repo	 	#删除自带的repo文件
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo \ https://mirrors.aliyun.com/repo/Centos-7.repo		     #下载阿里镜像源

构建MySQL服务

将学习环境中的:C-4软件运维\05_医疗项目\HIS医疗项目\mysql8-centos7上传到虚拟机mysql-b的/root/

mysql主机操作

[root@mysql-b ~]# cd  /root/mysql8-centos7
[root@mysql-b ~]# yum -y  localinstall *.rpm				#安装mysql
[root@mysql-b ~]# systemctl   start      mysqld     		#启动服务
[root@mysql-b ~]# systemctl   enable   mysqld    			#开机运行
[root@mysql-b ~]# ss  -utnlp  |  grep  :3306  			#查看服务信息

修改初始密码

[root@mysql-b mysql8-centos7]# grep -i password /var/log/mysqld.log	#过滤root初始密码
2023-08-26T14:22:39.197619Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 4afdh9OY6&Ef
mysql> ALTER USER root@"localhost" IDENTIFIED BY "123qqq...A";  	 #修改登陆密码
[root@mysql ~]# mysql -hlocalhost  -uroot  -p'123qqq...A'	         #使用新密码登陆
##测试恢复所有库(注意含有mysql-b操作)

#发送all.sql到mysql-b
[root@mysql-a ~]# scp /bak/all.sql 192.168.8.101:/root	

#确认mysql-b上只有初始库
[root@mysql-b ~]# mysql -hlocalhost -uroot -p'123qqq...A' -e "SHOW DATABASES;"

#确认all.sql存在
[root@mysql-b ~]# ls /root/all.sql 

#恢复所有库
[root@mysql-b ~]# mysql -hlocalhost -uroot -p'123qqq...A' < all.sql 

#确认库恢复情况
[root@mysql-b ~]# mysql -hlocalhost -uroot -p'123qqq...A' -e "SHOW DATABASES;"

#小问题处理(此时依旧使用旧密码登录,由于服务没重启导致还没加载新的mysql.user文件)
[root@mysql-b ~]# systemctl restart mysqld
[root@mysql-b ~]# mysql -hlocalhost -uroot -p'tedu123...A' -e "SHOW DATABASES;"

xtrabackup完全备份与恢复

  • xtrabackup一款强大的在线热备份工具
  • 备份过程中不锁库表,适合生产环境
  • 由专业组织Percona提供(改进MySQL分支)

mysql-a主机操作,安装percona-xtrabackup(libev是依赖包)

[root@mysql-a ~]# yum -y install libev
[root@mysql-a ~]# yum install -y https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.33-27/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.33-27.1.el7.x86_64.rpm

完全备份

  • 命令格式

    • xtrabackup --backup --user=用户名 --password=密码 --databases=“库名”

      –target-dir=备份文件的存储目录

  • 如有报错请执行:OPTIMIZE TABLE 库名.表名;

在mysql-a主机将所有数据库进行备份

[root@mysql-a ~]# mkdir /db_all
[root@mysql-a ~]# xtrabackup --backup --user=root --password="tedu123...A"  \
--target-dir=/db_all

将备份目录拷贝至mysql-b

[root@mysql-a ~]# scp -r /db_all root@192.168.8.101:/

完全恢复

步骤如下

1、systemctl stop mysqld #停止数据库服务

2、rm -rf /var/lib/mysql/* #清空数据库目录

3、xtrabackup --prepare --target-dir=/备份目录 #准备恢复数据

4、xtrabackup --copy-back --target-dir=/备份目录 #恢复数据

5、chown -R mysql:mysql /var/lib/mysql #修改所有者和组

6、systemctl start mysqld #启动服务

在mysql-b主机安装软件包

[root@mysql-b ~]# yum -y install libev
[root@mysql-b ~]# yum install -y https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.33-27/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.33-27.1.el7.x86_64.rpm

恢复数据

[root@mysql-b ~]# rm -rf /var/lib/mysql/*							#清空数据库目录
[root@mysql-b ~]# xtrabackup --prepare --target-dir=/db_all			#准备恢复数据
[root@mysql-b ~]# xtrabackup --copy-back --target-dir=/db_all		#恢复数据
[root@mysql-b ~]# chown -R mysql:mysql /var/lib/mysql

启动服务验证

[root@mysql-b ~]# systemctl restart mysqld
[root@mysql-b ~]# mysql -uroot -ptedu123...A
mysql> SHOW DATABASES;								#数据已回复

增量备份

  • 增量备份:备份上次备份后,新产生的数据。
    • 增量备份时,必须先有一次备份,通常是完全备份
    • 例如:周一完全备份 , 周二~周日增量备份

在这里插入图片描述

  • 增量备份格式

    • xtrabackup --backup --user=用户名 --password=密码 --target-dir=/增量备份目录 \

      –incremental-basedir=/上一次备份目录

mysql-a新增数据

mysql> CREATE DATABASE game;						#创建库
mysql> CREATE TABLE game.t1(id INT,name CHAR(10));	#创建表
mysql> INSERT INTO game.t1 VALUES(1, "zhangsan");	#插入数据

mysql-a增量备份

[root@mysql-a ~]# mkdir /db_firstinc							#创建备份目录
[root@mysql-a ~]# xtrabackup --backup  --user=root --password='tedu123...A' \
--target-dir=/db_firstinc --incremental-basedir=/db_all			#增量备份
[root@mysql-a ~]# scp -r /db_firstinc/ root@192.168.8.101:/		#将增量备份拷贝至备份服务器

增量恢复

  1. xtrabackup --prepare --apply-log-only --target-dir=目标目录 --user=用户名 --password=密码 #将最新的全量备份恢复到指定的目录
  2. xtrabackup --prepare --apply-log-only --target-dir=目标目录 --user=用户名 --password=密码 \

​ --incremental-dir=增量备份目录1 #指的是第一个增量备份文件所在的目录

  1. systemctl stop mysqld
  2. rm -rf /var/lib/mysql/*
  3. xtrabackup --prepare --target-dir=目标目录 --user=root --password=密码
  4. xtrabackup --copy-back --target-dir=目标目录 --user=用户名 --password=密码 //恢复数据
  5. chown -R mysql:mysql /var/lib/mysql/
  6. systemctl start mysqld

mysql-b主机恢复操作

[root@mysql-b ~]# xtrabackup --prepare --apply-log-only --target-dir=/db_all \
--user=root --password='tedu123...A'   #将最新的全量备份恢复到指定的目录

[root@mysql-b ~]# xtrabackup --prepare --apply-log-only --target-dir=目标目录 \
--user=root --password='tedu123...A' --incremental-dir=/db_firstinc
#将增量备份数据恢复到指定的目录
#--incremental-dir=/db_firstinc指的是第一个增量备份文件所在的目录
[root@mysql-b ~]# systemctl  stop mysqld
[root@mysql-b ~]# rm  -rf  /var/lib/mysql/*
[root@mysql-b ~]# xtrabackup --prepare --target-dir=/db_all \
--user=root --password='tedu123...A'									#准备恢复数据
[root@mysql-b ~]# xtrabackup --copy-back --target-dir=/db_all 
--user=root --password='tedu123...A'									#恢复数据

[root@mysql-b ~]# chown -R  mysql:mysql  /var/lib/mysql/
[root@mysql-b ~]# systemctl  start mysqld

总结

  • 掌握数据库备份的重要性
  • 掌握物理备份、热备的方法
  • 掌握数据库备份策略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1216326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode刷题-滑动窗口】--1004.最大连续1的个数III

1004.最大连续1的个数III 方法&#xff1a;滑动窗口 class Solution {public int longestOnes(int[] nums, int k) {int left 0,right 0,zero 0,res 0;while(right < nums.length){if(nums[right]0){zero;}while(zero > k){if(nums[left] 0){zero--;}left;}res Ma…

汽车CAN/ CAN FD数据记录仪在上汽大通诊断测试部门的应用

CAN/CANFD数据诊断记录仪在 规格&#xff1a;数据记录诊断仪 功能&#xff1a;CAN(FD)数据记录 UDS诊断 WIFI收发报文

【搭建统一的IOS开发环境,Ruby链之CocoaPods】

CocoaPods 前提HomebrewHomebrew是什么&#xff1f;Homebrew怎么安装?Homebrew怎么用?有哪些必须知道的命令Homebrew和CocoaPods的关系卸载Homebrew RubyrbenvRubyGems 和 Bundler安装Ruby管理Ruby更新Ruby替换Ruby镜像方式1方式2 CocoaPods安装CocoaPodsCocoaPods使用安装的…

代码随想录算法训练营第22天|235. 二叉搜索树的最近公共祖先 701. 二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

JAVA代码编写 235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的…

systemverilog:interface中端口方向理解

&#xff08;1&#xff09;从testbench的角度看&#xff0c;tb中信号的输入输出方向与interface中信号输入输出方向一致&#xff1a; &#xff08;2&#xff09;从DUT角度看&#xff0c;DUT中信号输入输出方向与interface中信号输入输出方向相反。简单图示如下&#xff1a; 代…

vue2项目从0搭建(二):配置代理,登录功能和菜单权限

前言: 发送ajax,fetch,websocket请求获取服务端的数据,配置代理是必须的环节 登录功能和菜单权限是后台管理系统中非常经典且十分重要的业务,这里涉及的知识点也是比较多的,坑也多,面试也是很重要的一环。 这里必须得会,没错是必须。 配置服务代理 创建两个node服务 在和…

±15kV ESD 保护、3V-5.5V 供电、真 RS-232 收发器MS2232/MS2232T

产品简述 MS2232/MS2232T 芯片是集成电荷泵&#xff0c;具有 15kV ESD 保护的 RS-232 收发器&#xff0c;包括两路接收器、两路发送器。 芯片满足 TIA/EIA-232 标准&#xff0c;为异步通信控制器和串口连 接器提供通信接口。 芯片采用 3V-5.5V 供电&#xff0c;电荷泵仅用…

代码随想录算法训练营|五十五天

两个字符串的删除操作 583. 两个字符串的删除操作 - 力扣&#xff08;LeetCode&#xff09; 因为两个字符串都能删除&#xff0c;所以字符不匹配的话就有三个方向取最小值赋值给dp[i,j]&#xff0c;不过这里dp[i-1,j-1]2dp[i,j-1]1&#xff0c;从字面上理解 就是 当 同时删wo…

mfc140u.dll丢失的解决方法,以及mfc140u.dll解决方法的优缺点

在使用电脑过程中&#xff0c;有时会遇到一些与动态链接库文件&#xff08;DLL&#xff09;相关的错误。其中&#xff0c;mfc140u.dll丢失的错误是较为常见的一种。当这个关键的mfc140u.dll文件丢失或损坏时&#xff0c;可能会导致某些应用程序无法正常运行。在本文中&#xff…

怎样班群发成绩?

身为老师&#xff0c;定期发布学生成绩是项重要任务。在过去&#xff0c;这项任务需要手动操作&#xff0c;工作量大而且总是发错。不过诶&#xff0c;现在我们可以通过各种方式实现学生自助查询成绩&#xff0c;既提高了效率又不会发错&#xff01; 就是需要制作一个查询系统。…

日本水稻(Oryza sativa Japonica rice)的基因组染色质长度 IRGSP-1.0

创作日志&#xff1a; 在看scHi-C综述的时候发现了一个在2021年发布在Nature Plants上的数据集&#xff0c;想拿来用&#xff0c;首先就要知道其对应的水稻品种以及染色质长度。最终在UCSC上找到了对应的组装好的基因组&#xff0c;版本名为 IRGSP-1.0。 UCSC链接&#xff1a;h…

Apipost 推出IDEA插件一键生成API文档

今天给大家推荐一款IDEA插件&#xff1a;Apipost-Helper-2.0&#xff0c;写完代码IDEA内一键生成API文档&#xff0c;无需安装、打开任何其他软件&#xff1b;写完代码IDEA内一键调试&#xff0c;无需安装、打开任何其他软件&#xff1b;生成API目录树&#xff0c;双击即可快速…

SpringCloud Alibaba组件入门全方面汇总(中):服务熔断降级-Sentinel

文章目录 Sentinel常见的容错思路Sentinel流量控制规则sentinel 自定义异常 sentinelresources 注解使用Feign整合Sentinel**面试题&#xff1a;结合Feign后&#xff0c;你在项目中的降级方法中会实现什么样的操作/功能&#xff1f;** Sentinel Sentinel是阿里巴巴开源的分布…

SAP PI/PO中使用UDF解决按字节拆分字符串的需求

需求背景&#xff1a; SAP需要将采购订单信息通过PI发送到SFTP服务器上&#xff0c;生成文件&#xff0c;一般对日项目上文件内容通常都是按照指定的字节数拆分的&#xff0c;而不是字符数&#xff0c;类似下面的格式。 问题点&#xff1a; 如果是使用FTP适配器&#xff0c;则…

VBA技术资料MF83:将Word文档批量另存为PDF文件

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

c/c++语言算法技巧汇总大复习2

标题前面打*号的为多数考纲范围外的&#xff0c;可以选择性查看 &#x1f517;链接&#xff1a;严书代码大全 &#x1f517;链接&#xff1a;c/c语言算法技巧汇总大复习1 &#x1f517;链接&#xff1a;c/c语言算法技巧汇总大复习2 目录 Dp动态规划入门练习 青蛙跳台阶练习&…

印染污水处理设备的物理法分类有哪些设备?

印染污水处理设备的物理法分类主要有以下几种设备&#xff1a; 筛滤截留法&#xff1a;主要采用筛网、格栅、滤池与微滤机等设备&#xff0c;用于去除污水中的悬浮物和漂浮物。重力分离法&#xff1a;主要采用沉砂池、沉淀池、隔油池与气浮机等设备&#xff0c;利用重力或浮力…

牛客 —— 链表中倒数第k个结点(C语言,快慢指针,配图)

目录 1. 思路1&#xff1a;倒数第K个节点&#xff0c;就是整数第N-K1的节点 2. 思路2&#xff1a;快慢指针 1. 思路1&#xff1a;倒数第K个节点&#xff0c;就是整数第N-K1的节点 链表中&#xff0c;一共有N个节点&#xff0c;如果我们想要得出倒数第K个节点&#xff0c;我们…

【SpringBoot篇】分页查询 | 扩展SpringMvc的消息转换器

文章目录 &#x1f6f8;什么是分页查询&#x1f339;代码实现⭐问题&#x1f384;解决方法 做了几个项目&#xff0c;发现在这几个项目里面&#xff0c;都实现了分页查询效果&#xff0c;所以就总结一下&#xff0c;方便学习 我们基于黑马程序员的苍穹外卖来讲解分页查询的要点…