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

server/2024/9/20 7:07:28/ 标签: 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.ppmy.cn/server/22415.html

相关文章

Ubuntu下vscode彻底卸载

参考步骤&#xff1a;大佬博客 1、 执行以下命令卸载 Visual Studio Code&#xff1a; sudo apt purge code2、删除 Visual Studio Code 的配置文件和缓存文件。这些文件通常位于用户的主目录下的 .config 和 .cache 目录中。你可以使用以下命令删除它们&#xff1a; rm -rf …

Gateway

序言 本文给大家介绍一下 Spring Cloud Gateway 的基础概念以及使用方式。 一、快速入门 1.1 引入依赖 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://…

k8s如何写yaml文件

k8s&&如何写yaml文件 metadataspecresources: 如何设置request和limit&#xff1f; status metadata metadata: 通常用于填写一些对象&#xff08;如pod、deployment等&#xff09;的描述信息&#xff08;类似人的名字、年龄等&#xff09;。 spec spec: 通常代表着…

联软科技安全准入门户平台commondRetStr接口RCE漏洞复现[附POC]

文章目录 联软科技安全准入门户平台commondRetStr接口RCE漏洞复现[附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现联软科技安全准入门户平台commondRetStr接口RCE漏洞复现[附POC] 0x01 前言 免责声明:请勿利用文章内的…

http请求内容

Cookie 可以包含多个键值对&#xff0c;因此它不仅限于单个值。一个 Cookie 可以携带多个属性&#xff0c;每个属性由键值对表示 Set-Cookie: namevalue; expiresSat, 30 Apr 2022 23:59:59 GMT; path/; domain.example.com; secure; HttpOnly 在HTTP协议中&#xff0c;请求头之…

docker容器

一、docker容器操作 1.1 容器创建 将镜像加载到容器的过程。新创建的容器默认处于停止状态&#xff0c;不运行任何程序&#xff0c;需要在其中发起一个进程来启动容器。 格式&#xff1a;docker create [选项] 镜像 常用选项&#xff1a; -i容器开启标准输入-t让docker分配一个…

课时109:sed命令_基础实践_内容替换

2.1.2 内容替换 学习目标 这一节&#xff0c;我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 sed的文本替换动作是使用频率最高的一种样式。它的基本表现样式如下&#xff1a;命令格式&#xff1a;sed -i [替换格式] [文件名]源数据 | sed -i [替换格式]注…

IDE 高效快捷键

代码编辑器要擅用重构Refactor、全局搜索、全局替换、窥视Peek、代码自动格式化Format&#xff0c;才能真正为开发提效&#xff01; Intellij Idea 的常用快捷键(同 WebStorm) 按键功能Ctrl N根据输入的 类名 查找类文件Ctrl Shift N根据输入的 名称 查找任意文件Ctrl R在…

Linux基本指令(2)

目录 mv指令&#xff1a; cat&#xff1a; more指令&#xff1a; less指令&#xff1a; head指令&#xff1a; tail指令&#xff1a; mv指令&#xff1a; 说明&#xff1a; mv命令是move的缩写&#xff0c;可以用来移动文件或者文件改名(move(rename)files),是linux系统下…

QT支持多种开发语言

QT主要是一个C应用程序框架&#xff0c;但它也提供了对其他一些编程语言的官方或非官方支持。以下是QT支持的一些语言版本及其特点。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.Python (PyQt) &#xff1a; PyQt是QT的官方Pyth…

APP广告变现,开发者对接百度广告联盟,广告变现收益如何?

百度广告联盟属于广告整合平台&#xff0c;类似的还有穿山甲、优量汇、快手联盟等。 百度广告联盟注册流程&#xff1a; 创建账户&#xff1a;填写用户基本信息&#xff0c;如&#xff1a;用户名、密码、邮箱、手机号&#xff1b; 完善财务信息&#xff1a;填写银行账号、开…

限流--4种经典限流算法讲解--单机限流和分布式限流的实现

为什么需要限流 系统的维护使用是需要成本的&#xff0c;用户可能使用科技疯狂刷量&#xff0c;消耗系统资源&#xff0c;出现额外的经济开销问题&#xff1a; 控制成本>限制用户的调用次数用户在短时间内疯狂使用&#xff0c;导致服务器资源被占满&#xff0c;其他用户无…

美富特 | 邀您参加2024全国水科技大会暨技术装备成果展览会

王涛 四川美源环能科技有限公司 技术总监 报告题目&#xff1a;绿色智慧水岛如何助力工业园区污水及再生水资源化利用降碳增效 拥有十余年的环保行业从业经验&#xff0c;对各类前沿物化、生化及膜技术均有丰富的研发、设计及应用经验&#xff0c;先后参与多项重点核心技术…

工作与生活,如何找到平衡点,实现双赢?(2个简单工具答案一目了然)

前言 很多 35岁左右上有老下有小的程序员会陷入一个瓶颈期&#xff0c;在工作上想努力多赚钱&#xff0c;但是每天回到家 23 点&#xff0c;老婆孩子早已熟睡。好不容易周末有点休息时间&#xff0c;但是一个电话接一个&#xff0c;由于是生产问题还不得不接。 那么职场人应该如…

windows下的iOS砸壳与ipa分析

点击上方↑↑↑蓝字[协议分析与还原]关注我们 “ 介绍如何在windows下进行iOS砸壳和对ipa进行分析。” iOS系统为了保护应用的安全&#xff0c;会对应用进行加密。这种加密方式被称为“壳”。壳的存在会阻碍开发者对应用进行反编译、分析和修改。 在某些情况下&#xff0c;需要…

鸿蒙原生应用元服务开发-Web管理位置权限

Web组件提供位置权限管理能力。开发者可以通过onGeolocationShow()接口对某个网站进行位置权限管理。Web组件根据接口响应结果&#xff0c;决定是否赋予前端页面权限。获取设备位置&#xff0c;需要开发者配置ohos.permission.LOCATION权限。 在下面的示例中&#xff0c;用户点…

安卓手机APP开发__媒体开发部分__用户界面定制

安卓手机APP开发__媒体开发部分__用户界面定制 目录 最佳实践 播放/暂停按钮 监听状态的更新 处理可用的指令 Media3提供了一个默认的播放器视图&#xff0c;这个视图提供了一些定制化的选项。 对于任何进一步的定制&#xff0c;APP开发者都期望实现他们的自己的用户界面的…

QT c++ 代码布局原则 简单例子

本文描述QT c widget代码布局遵循的原则&#xff1a;实中套虚&#xff0c;虚中套实。 本文最后列出了代码下载链接。 在QT6.2.4 msvc2019编译通过。 所谓实是实体组件&#xff1a;比如界面框、文本标签、组合框、文本框、按钮、表格、图片框等。 所谓虚是Layout组件&#x…

ObjectARX特性面板OPM添加动态属性

参考资料 AutoCAD与动态属性PDF文档 https://www.progdomain.com/584/ObjectARX2016 OPM面板全攻略 https://blog.csdn.net/jfmyes/article/details/121392332 准备工作——正确安装ARX和Wizards ARX和VS的版本对应、ObjectArx(2010~2020)工程创建、类添加及错误处理 https:…

mysql允许ip远程访问

1.找到自己mysql所安装数据库的bin目录地址 例如&#xff1a;G:\mysql-5.7.23-winx64\bin 2.搜索cmd打开命令提示符进入这个bin目录 注意:如果目录不在c盘需要切换盘符。 切换访问步骤如下&#xff08;如上例子在G盘&#xff09; &#xff08;1&#xff09;先输入 g: &am…