mysql全量备份及数据恢复实践

前置   

myql:8.0.34

percona-xtrabackup:percona-xtrabackup-8.0.34-29

一、全量备份脚本

#!/bin/bash
#删除历史
find /data/backups -mtime +10 -exec rm -rf {} \;
#下载备份工具
#wget https://file.zjwlyy.cn/percona-xtrabackup-8.0.34-22.tar.gz (最好用于mysql-8.0.20以上)
USER='root'
PORT=3306
PASSWD='xxxxxx'
HOST='localhost'
SOCKET="/tmp/mysqld.sock"
DATE=`date +"%F"`
/data/percona-xtrabackup-8.0.34/bin/xtrabackup --no-server-version-check --backup --user=$USER --password=$PASSWD --host=$HOST --port=$PORT --socket=$SOCKET --stream=xbstream |gzip - > /data/backups/full_${DATE}.xbstream.gz

参数解释:

--no-server-version-check   不做版本检查

--backup     执行备份的参数

--stream=xbstream      xtrabackup自带的压缩软件格式

gzip      使用gz压缩,缩小空间占用

二、备份恢复测试

2.1准备配置文件/etc/my.cnf

[client]
port            = 3306
socket          = /tmp/mysqld.sock
default-character-set = utf8mb4
[mysqld]
########basic settings########
server-id = 33066771
port = 3306
socket          = /tmp/mysqld.sock
pid-file        = /tmp/mysqld.pid
user = mysql
default_authentication_plugin=mysql_native_password
character_set_server=utf8mb4
default-time-zone='+08:00'
skip_name_resolve = 1
max_connections = 800
max_connect_errors = 1000
datadir = /data/zbdb/mysqldata    #重点
transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1
join_buffer_size = 2M
tmp_table_size = 512M
tmpdir = /tmp
max_allowed_packet = 16M
sql_mode = ""
#interactive_timeout = 28800
#wait_timeout = 28800
read_buffer_size = 2M
read_rnd_buffer_size = 2M
sort_buffer_size = 256M
lower_case_table_names=1
########log settings########
log_error = /data/zbdb/mysqllog/wlyy6771.err    #重点,手动创建
slow_query_log = 1
slow_query_log_file = /data/zbdb/mysqllog/slow.log
log_queries_not_using_indexes = 1
log_slow_admin_statements = 1
log_throttle_queries_not_using_indexes = 10
binlog_expire_logs_seconds = 7776000
long_query_time = 2
min_examined_row_limit = 100
########replication settings########
log_bin = /data/zbdb/mysqllog/wlyy6771-bin    #重点
sync_binlog = 100
binlog_format = row 
relay_log = /data/zbdb/mysqllog/relay.log
relay_log_recovery = 1########innodb settings########
innodb_page_size = 16384
innodb_buffer_pool_size = 6G           #重点
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_lru_scan_depth = 2000
innodb_lock_wait_timeout = 5
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_method = O_DIRECT
innodb_log_group_home_dir =  /data/zbdb/mysqllog/redolog/   #重点
innodb_undo_directory =  /data/zbdb/mysqllog/undolog/       #重点
innodb_flush_neighbors = 1
#innodb_log_file_size = 300M
innodb_log_buffer_size = 16M
innodb_purge_threads = 4
innodb_thread_concurrency = 64
innodb_print_all_deadlocks = 1
#innodb_strict_mode = 1
innodb_log_file_size = 1024M
innodb_strict_mode = 0
innodb_sort_buffer_size = 64M[mysqldump]
quick
max_allowed_packet = 16M[mysql]
no-auto-rehash
prompt=\\u@\\d \\r:\\m:\\s>[mysqlhotcopy]
interactive-timeout

2.2  准备新的mysql

#添加用户和组
groupadd mysql
useradd -g mysql mysql
#新建文件
rm -rf /data/zbdb/*
mkdir -p /data/zbdb/mysqllog/redolog
mkdir -p /data/zbdb/mysqldata/
#改变目录属主
chown -R mysql:mysql /data/zbdb/mysqllog
chown -R mysql:mysql /data/zbdb/mysqldata
#执行安装
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.34 --datadir=/data/zbdb/mysqldata/
# 备份mysqldata和mysqllog 目录
cp -rf mysqldata mysqldatabk
cp -rf mysqllog mysqllogbk
#清理mysqldata和mysqllog里的数据
rm -rf mysqldata/*
rm -rf mysqllog/*#修改 mysql.server
#拉到最上面修改
#basedir=/usr/local/mysql-8.0.34
#datadir=/data/zbdb/mysqldata
#开机启动脚本
#cp mysql.server /etc/init.d/mysqld

2.3  恢复数据

#新建备份目录
mkdir /data/backup
#解压文件(gzip那一层解压)
gzip -d /data/full_2024-04-25.xbstream.gz
#解压文件(xbstream那一层解压)
xbstream -x < /data/full_2024-04-25.xbstream -C /data/backup/
#继续解压
xtrabackup --parallel=4 --decompress --target-dir=/data/backup/
#恢复数据
xtrabackup --prepare --target-dir=/data/backup/
根据配置文件恢复数据到数据目录
xtrabackup --defaults-file=/etc/my.cnf --datadir=/data/zbdb/mysqldata --copy-back --target-dir=/data/backup/
#创建日志文件(不自动建)
touch /data/zbdb/mysqllog/wlyy6771.err
#修改目录所有者
chown -R mysql:mysql /data/zbdb/

2.4  启动数据库

service mysqld start

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

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

相关文章

14 JavaScript学习:条件语句

JavaScript条件语句 JavaScript中的条件语句主要用于根据条件执行不同的代码块。以下是对JavaScript条件语句概念的详细解释和分类&#xff1a; if语句&#xff1a; 单个if语句&#xff1a;最简单的条件语句&#xff0c;根据条件判断是否执行特定的代码块。if…else语句&#x…

【机器学习与实现】机器学习概述

目录 一、机器学习的基本概念和方法&#xff08;一&#xff09;基本概念&#xff08;二&#xff09;机器学习的一般过程举例&#xff08;三&#xff09;样本和参数估计 二、机器学习的步骤总结&#xff08;一&#xff09;机器学习的主要步骤&#xff08;二&#xff09;样本及样…

C++并发编程

基本介绍 线程 C98标准没有直接提供原生的多线程支持 在C98中&#xff0c;并没有像后来的C11标准中那样的<thread>库或其他直接的多线程工具 然而&#xff0c;这并不意味着在C98中无法实现多线程。开发者通常会使用平台特定的API&#xff08;如Windows的线程API或POSI…

el-tree 或 el-tree-select 根据条件,控制节点的显示隐藏

目录 情况概述方案&#xff1a;render-content&#xff08;树节点的内容区的渲染 Function&#xff09;代码如下 情况概述 要求el-tree-select 中的节点 根据节点状态来进行显示隐藏&#xff08;状态字段为status&#xff0c;显示&#xff1a;‘1’&#xff0c;隐藏&#xff1…

vmware workstation使用心得

1 启动虚拟机windows系统立即蓝屏 windows未开启虚拟化 vmware workstation与windows系统不兼容 下载兼容版本的vmware workstationwindow10若最新&#xff0c;升级vmware workstation 到15.5.7 排除不兼容的情况&#xff0c;windows系统自身虚拟化配置未开启&#xff1a; VMw…

vue3中的ref、isRef、shallowRef、triggerRef和customRef

1.ref 接受一个参数值并返回一个响应式且可改变的 ref 对象。 ref 对象拥有一个指向内部值的单一属性 .value property &#xff0c;指向内部值。 例&#xff1a;此时&#xff0c;页面上的 str1 也跟着变化 <template><div><button click"handleClick&quo…

如何在 windows 下运行 linux 程序

安装WSL和相关的Linux发行版可以按照以下步骤进行&#xff1a; 启用WSL功能&#xff1a; 打开“控制面板” -> “程序” -> “程序和功能” -> “启用或关闭Windows功能”。在弹出的窗口中&#xff0c;勾选“适用于Linux的Windows子系统”&#xff0c;然后点击“确定”…

严厉打击侵犯知识产权行为!法院公开审理假冒半岛超声炮知产刑事案件

随着医美行业的蓬勃发展&#xff0c;一些不法分子利用消费者对变美的渴望&#xff0c;制售假冒半岛超声炮&#xff0c;严重侵犯了消费者的合法权益&#xff0c;也破坏了医美市场的健康发展。为了维护市场秩序&#xff0c;保障消费者权益&#xff0c;各地相关监管部门持续加大监…

QT从入门到实战x篇_22_番外1_Qt事件系统

文章目录 1. Qt事件系统简介1.1 事件的来源和传递1.2 事件循环和事件分发1.2.1 QT消息/事件循环机制1.2.1.1 机制解释1.2.1.2 两个问题 1.2.2 事件分发 2. 事件过滤基础2.1 什么是事件过滤器&#xff08;Event Filter&#xff09;&#xff1f;2.2 如何安装事件过滤器 3. 事件过…

<计算机网络自顶向下> 路由器组成

路由器结构概况 路由&#xff1a;运行路由选择算法/协议&#xff08;RIP, OSPF, BGP&#xff09;生成路由表转发&#xff1a;从输入到输出链路交换数据包-根据路由表进行分组的转发中间的fabric是用来接收输入的分组交给输出端口的&#xff0c;完成局部的转发&#xff08;根据…

在广东珠海,持有软考等证书最高可获6位数补贴,快来申报!

近日&#xff0c;横琴粤澳深度合作区执行委员会印发《横琴粤澳深度合作区支持人才发展若干措施》&#xff08;以下简称《若干措施》&#xff09;及三项配套实施办法&#xff0c;鼓励企业“招贤纳士”&#xff0c;加强琴澳人才协同培养。目前&#xff0c;2024年第一批博士后专项…

Java23种设计模式-结构型模式之组合模式

组合模式&#xff08;Composite Pattern&#xff09;&#xff1a;将对象组合成树状结构以表示“部分-整体”层次结构&#xff0c;同时保持对单个对象和组合对象的一致性操作&#xff0c;主要目的是简化客户端代码&#xff0c;因为它可以统一处理单个对象和组合对象。 通常包含…

星汉未来AI应用市场:一站式AI解决方案平台

星汉未来AI应用市场&#xff1a;一站式AI解决方案平台 在人工智能技术日益渗透到各行各业的今天&#xff0c;星汉未来AI应用市场为我们提供了一个集创新与实用于一体的平台。下面&#xff0c;我将为您详细介绍这个平台的各个方面。 平台特色 星汉未来AI应用市场是一个面向未…

Keil出现警告:warning: #223-D: function “XXX“ declared implicitly

这个警告表明编译器在函数使用之前没有找到函数的显式声明或定义。这通常发生在函数被使用之前没有在当前文件中进行声明或定义&#xff0c;或者头文件未正确包含。 解决方式&#xff1a; 在当前文件中添加函数声明&#xff1a;在使用函数之前&#xff0c;在当前文件中添加函…

华为OD机试真题-反射计数-2023年OD统一考试(C卷D卷)

题目描述: 给定一个包含 0 和 1 的二维矩阵 给定一个初始位置和速度 一个物体从给定的初始位置触发, 在给定的速度下进行移动, 遇到矩阵的边缘则发生镜面反射 无论物体经过 0 还是 1, 都不影响其速度 请计算并给出经过 t 时间单位后, 物体经过 1 点的次数 矩阵以左上角位置为[…

maixcam如何无脑运行运行别人的模型(以安全帽模型为例)

maixcam如何无脑运行运行别人的模型&#xff08;以安全帽模型为例&#xff09; 本文章主要讲如何部署上传的模型文件&#xff0c;以及如果你要把你模型按照该流程应该怎么修改&#xff0c;你可以通过该文章得到你想要的应该&#xff0c;该应用也包含的退出按钮&#xff0c;是屏…

低空经济和无人机

低空经济和无人机是当前科技领域中的两个热门话题&#xff0c;它们的发展互为促进&#xff0c;共同推动着低空经济持续发热&#xff0c;投资主线也愈发清晰。 低空经济是指以低空空域为活动场所&#xff0c;以各类低空飞行器为运载工具&#xff0c;所衍生的各类经济形态、经济…

书生·浦语大模型-第七节课笔记/作业

笔记 还没看到视频 但评测对于模型优化是非常重要的&#xff0c;指引了模型选择与优化的方向 评测过程 大海捞针&#xff1a; 通过将关键信息随机插入一段长文本的不同位置&#xff0c;形成大语言模型 (LLM) 的Prompt&#xff0c;通过测试大模型是否能从长文本中提取出关键…

协议的定制之序列化与反序列化 | 守护进程

目录 一、再谈协议 二、序列化与反序列化 三、网络计算器的简单实现 四、网络计算器完整代码 五、代码改进 六、守护进程 七、Json序列化与反序列化 八、netstat 一、再谈协议 是对数据格式和计算机之间交换数据时必须遵守的规则的正式描述。简单的说了&#xff0c;网络…

FFmpeg常用实例详解

FFmpeg 是一个专业的多媒体框架&#xff0c;能够解码、编码、转码、复用、解复用、流式传输、过滤和播放几乎所有格式的媒体文件。 这里通过一些示例简单地介绍下 ffmpeg 命令的基本使用。 一、获取详细信息 ffmpeg -i <inputfile> -hide_banner 其中 -hide_banner 选项…