腾讯云-RDS-MySQL8数据恢复
bigegpt 2025-05-24 12:23 10 浏览
简介
这里采用的是MySQL 8.0版本,腾讯云云上数据库备份默认是qpress结合 Percona Xtrabackup 备份的。新找台空闲服务器来操作,这里演示的服务器系统为Ubuntu 22.04 LTS版本。需要提前安装好MySQL 8.0以上的数据库版本、Percona Xtrabackup和qpress
数据库安装
#!/bin/bash
#
#********************************************************************
#Author: mr.luo
#Date: 2025-02-26
#FileName: install_mysql_for_ubuntu.sh
#URL: https://www.dklwj.com
#Description: The test script
#Copyright (C): 2025 All rights reserved
#********************************************************************
color () {
RES_COL=60
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
SETCOLOR_NORMAL="echo -en \E[0m"
echo -n "$1" && $MOVE_TO_COL
echo -n "["
if [ $2 = "success" -o $2 = "0" ] ;then
${SETCOLOR_SUCCESS}
echo -n #34; OK "
elif [ $2 = "failure" -o $2 = "1" ] ;then
${SETCOLOR_FAILURE}
echo -n #34;FAILED"
else
${SETCOLOR_WARNING}
echo -n #34;WARNING"
fi
${SETCOLOR_NORMAL}
echo -n "]"
echo
}
install() {
softpath="/app/soft"
mysqlversion="mysql-8.0.39-linux-glibc2.28-x86_64.tar.xz"
# 解压MySQL 二进制包到/app/soft下
tar xf ${softpath}/${mysqlversion} -C ${softpath}
if id mysql &> /dev/null ;then
color "mysql 用户已存在" 1
else
useradd -r -s /sbin/nologin mysql
color "MySql 用户创建成功" 0
fi
mkdir /app/mydata/{logs,data} -p && chown -R mysql.mysql /app/mydata
ln -s ${softpath}/mysql-8.0.39-linux-glibc2.28-x86_64/ /usr/local/mysql && chown -R mysql.mysql /usr/local/mysql/
cat >> /etc/my.cnf <<EOF
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
server_id=1
port = 3306
user = mysql
character-set-server = utf8
default_storage_engine = innodb
log_timestamps = SYSTEM
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /app/mydata/data
pid-file = /app/mydata/data/mysql.pid
max_connections = 10000
max_connect_errors = 1000
table_open_cache = 1024
max_allowed_packet = 128M
open_files_limit = 65535
log_bin = mysql-bin
binlog_format = MIXED
sort_buffer_size = 16M
join_buffer_size = 16M
skip_ssl
#####====================================[innodb]==============================
innodb_buffer_pool_size = 1024M
innodb_file_per_table = 1
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 80
innodb_rollback_on_timeout = on
innodb_lock_wait_timeout = 28800
innodb_data_file_path=ibdata1:1024M:autoextend
innodb_undo_tablespaces=3
lower_case_table_names = 1
skip_name_resolve = on
#####====================================[log]==============================
log_error = /app/mydata/logs/mysql-error.log
slow_query_log = 1
long_query_time = 20
log-queries-not-using-indexes
slow_query_log_file = /app/mydata/logs/mysql-slow.log
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
EOF
apt update && apt-get -y install libaio-dev libncurses5
cd /usr/local/mysql && ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/app/mydata/data --explicit_defaults_for_timestamp && \
cp support-files/mysql.server /etc/init.d/mysqld && echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh && \
source /etc/profile.d/mysql.sh
/etc/init.d/mysqld start
}
install
安装qpress
root@k8s-node-19:/app/soft# wget -d --user-agent="Mozilla/5.0 (Windows NT x.y; rv:10.0) Gecko/20100101 Firefox/10.0" https://docs-tencentdb-1256569818.cos.ap-guangzhou.myqcloud.com/qpress-11-linux-x64.tar
root@k8s-node-19:/app/soft# tar -xf qpress-11-linux-x64.tar -C /usr/local/bin
安装Percona XtraBackup 8.0
root@k8s-node-19:/app/soft# apt update
root@k8s-node-19:/app/soft# apt install curl
root@k8s-node-19:/app/soft# curl -O https://repo.percona.com/apt/percona-release_latest.generic_all.deb
root@k8s-node-19:/app/soft# apt -y install gnupg2 lsb-release ./percona-release_latest.generic_all.deb
root@k8s-node-19:/app/soft# apt update
root@k8s-node-19:/app/soft# percona-release setup pxb-80
root@k8s-node-19:/app/soft# apt -y install percona-xtrabackup-80
root@k8s-node-19:/app/soft# xtrabackup --version
2025-02-26T11:03:32.995888+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --server-id=1 --datadir=/app/mydata/data --open_files_limit=65535 --log_bin=mysql-bin --innodb_buffer_pool_size=1024M --innodb_file_per_table=1 --innodb_write_io_threads=4 --innodb_read_io_threads=4 --innodb_flush_log_at_trx_commit=1 --innodb_log_file_size=512M --innodb_log_files_in_group=2 --innodb_log_buffer_size=16M --innodb_max_dirty_pages_pct=80 --innodb_data_file_path=ibdata1:1024M:autoextend --innodb_undo_tablespaces=3
xtrabackup version 8.0.35-32 based on MySQL server 8.0.35 Linux (x86_64) (revision id: c339924a)
恢复数据
1、创建新目录
root@k8s-node-19:/app/soft# mkdir /app/data
# 上传要恢复的数据文件。从腾讯云下载的备份文件
# 解压备份文件
root@k8s-node-19:/app/soft# xbstream -x -C /app/data < /app/xiaohuniu_mysql_backup_20250225000558.xb
# 由于腾讯云压缩后文件名以.qb结尾因此需要解压
root@k8s-node-19:/app/soft# cd /app/data
root@k8s-node-19:/app/data# ls
backup-my.cnf.qp ibdata1.qp mysql-bin.index.qp sys xhn_tax xtrabackup_info.qp xtrabackup_tablespaces.qp
__cdb_recycle_bin__ mysql mysql.ibd.qp undo_001.qp xtrabackup_binlog_info.qp xtrabackup_logfile.qp
ib_buffer_pool.qp mysql-bin.000116.qp performance_schema undo_002.qp xtrabackup_checkpoints xtrabackup_slave_info.qp
root@k8s-node-19:/app/data# xtrabackup --decompress --target-dir=/app/data
2025-02-26T10:26:51.549479+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --server-id=1 --datadir=/app/mydata/data --open_files_limit=65535 --log_bin=mysql-bin --innodb_buffer_pool_size=1024M --innodb_file_per_table=1 --innodb_write_io_threads=4 --innodb_read_io_threads=4 --innodb_flush_log_at_trx_commit=1 --innodb_log_file_size=512M --innodb_log_files_in_group=2 --innodb_log_buffer_size=16M --innodb_max_dirty_pages_pct=80 --innodb_data_file_path=ibdata1:1024M:autoextend --innodb_undo_tablespaces=3
2025-02-26T10:26:51.549819+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized client arguments: --port=3306 --socket=/tmp/mysql.sock --decompress=1 --target-dir=/app/data
xtrabackup version 8.0.35-32 based on MySQL server 8.0.35 Linux (x86_64) (revision id: c339924a)
2025-02-26T10:26:51.550474+08:00 0 [Note] [MY-011825] [Xtrabackup] decompressing ./xhn_tax/yzh_depart_daili_amount_cash_record.ibd.qp
...
2025-02-26T10:26:52.721956+08:00 0 [Note] [MY-011825] [Xtrabackup] decompressing ./xtrabackup_info.qp
2025-02-26T10:26:52.723406+08:00 0 [Note] [MY-011825] [Xtrabackup] decompressing ./xtrabackup_tablespaces.qp
2025-02-26T10:26:52.758142+08:00 0 [Note] [MY-011825] [Xtrabackup] completed OK!
# 查看解压后的目录文件
root@k8s-node-19:/app/data# ls
backup-my.cnf ibdata1 mysql-bin.index sys xhn_tax xtrabackup_info.qp xtrabackup_tablespaces
backup-my.cnf.qp ibdata1.qp mysql-bin.index.qp undo_001 xtrabackup_binlog_info xtrabackup_logfile xtrabackup_tablespaces.qp
__cdb_recycle_bin__ mysql mysql.ibd undo_001.qp xtrabackup_binlog_info.qp xtrabackup_logfile.qp
ib_buffer_pool mysql-bin.000116 mysql.ibd.qp undo_002 xtrabackup_checkpoints xtrabackup_slave_info
ib_buffer_pool.qp mysql-bin.000116.qp performance_schema undo_002.qp xtrabackup_info xtrabackup_slave_info.qp
2、备份解压出来之后,执行如下命令进行 apply log 操作。
root@k8s-node-19:/app/data# xtrabackup --prepare --target-dir=/app/data
2025-02-26T10:28:01.673279+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_log_checksums=1 --innodb_data_file_path=ibdata1:12M:autoextend --innodb_log_file_size=1048576000 --innodb_page_size=16384 --innodb_undo_directory=./ --innodb_undo_tablespaces=2 --server-id=0 --innodb_log_checksums=ON --innodb_redo_log_encrypt=0 --innodb_undo_log_encrypt=0
2025-02-26T10:28:01.673362+08:00 0 [Note] [MY-011825] [Xtrabackup] recognized client arguments: --prepare=1 --target-dir=/app/data
xtrabackup version 8.0.35-32 based on MySQL server 8.0.35 Linux (x86_64) (revision id: c339924a)
2025-02-26T10:28:01.673373+08:00 0 [Note] [MY-011825] [Xtrabackup] cd to /app/data/
2025-02-26T10:28:01.673399+08:00 0 [Note] [MY-011825] [Xtrabackup] This target seems to be not prepared yet.
2025-02-26T10:28:01.677695+08:00 0 [Note] [MY-011825] [Xtrabackup] xtrabackup_logfile detected: size=8388608, start_lsn=(1070030577)
2025-02-26T10:28:01.678039+08:00 0 [Note] [MY-011825] [Xtrabackup] using the following InnoDB configuration for recovery:
2025-02-26T10:28:01.678057+08:00 0 [Note] [MY-011825] [Xtrabackup] innodb_data_home_dir = .
2025-02-26T10:28:01.678060+08:00 0 [Note] [MY-011825] [Xtrabackup] innodb_data_file_path = ibdata1:12M:autoextend
2025-02-26T10:28:01.678097+08:00 0 [Note] [MY-011825] [Xtrabackup] innodb_log_group_home_dir = .
2025-02-26T10:28:01.678100+08:00 0 [Note] [MY-011825] [Xtrabackup] innodb_log_files_in_group = 1
.....
2025-02-26T10:28:03.508334+08:00 0 [Note] [MY-012980] [InnoDB] Shutdown completed; log sequence number 1070038038
2025-02-26T10:28:03.510993+08:00 0 [Note] [MY-011825] [Xtrabackup] completed OK!
root@k8s-node-19:/app/data# ls
backup-my.cnf ibdata1 mysql-bin.000116 mysql.ibd.qp undo_002 xtrabackup_checkpoints xtrabackup_slave_info
backup-my.cnf.qp ibdata1.qp mysql-bin.000116.qp performance_schema undo_002.qp xtrabackup_info xtrabackup_slave_info.qp
__cdb_recycle_bin__ ibtmp1 mysql-bin.index sys xhn_tax xtrabackup_info.qp xtrabackup_tablespaces
ib_buffer_pool '#innodb_redo' mysql-bin.index.qp undo_001 xtrabackup_binlog_info xtrabackup_logfile xtrabackup_tablespaces.qp
ib_buffer_pool.qp mysql mysql.ibd undo_001.qp xtrabackup_binlog_info.qp xtrabackup_logfile.qp
3、修改配置文件
修改backup-my.cnf文件
root@k8s-node-19:/app/data# vim backup-my.cnf
# This MySQL options file was generated by innobackupex.
# The MySQL server
[mysqld]
innodb_checksum_algorithm=crc32
innodb_log_checksums=1
innodb_data_file_path=ibdata1:12M:autoextend
innodb_log_file_size=1048576000
innodb_page_size=16384
innodb_undo_directory=./
innodb_undo_tablespaces=2
innodb_log_checksums=ON
innodb_redo_log_encrypt=OFF
innodb_undo_log_encrypt=OFF
lower_case_table_names=1
4、修改目录属性
由于解压后属主和属组都是root,要给它修改成MySQL用户
root@k8s-node-19:/app/data# chown -R mysql.mysql /app/data/
root@k8s-node-19:/app/data# ll
total 211244
-rw-r----- 1 mysql mysql 56 Feb 26 10:29 auto.cnf
-rw-r--r-- 1 mysql mysql 397 Feb 26 10:32 backup-my.cnf
-rw-r----- 1 mysql mysql 443 Feb 26 10:26 backup-my.cnf.qp
-rw-r----- 1 mysql mysql 180 Feb 26 10:30 binlog.000001
-rw-r----- 1 mysql mysql 180 Feb 26 10:32 binlog.000002
-rw-r----- 1 mysql mysql 157 Feb 26 10:32 binlog.000003
-rw-r----- 1 mysql mysql 48 Feb 26 10:32 binlog.index
-rw------- 1 mysql mysql 1705 Feb 26 10:30 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 Feb 26 10:30 ca.pem
drwxr-x--- 2 mysql mysql 37 Feb 26 10:26 __cdb_recycle_bin__/
-rw-r--r-- 1 mysql mysql 1112 Feb 26 10:30 client-cert.pem
-rw------- 1 mysql mysql 1701 Feb 26 10:30 client-key.pem
-rw-r----- 1 mysql mysql 196608 Feb 26 10:38 '#ib_16384_0.dblwr'
-rw-r----- 1 mysql mysql 8585216 Feb 26 10:30 '#ib_16384_1.dblwr'
-rw-r----- 1 mysql mysql 5517 Feb 26 10:32 ib_buffer_pool
-rw-r----- 1 mysql mysql 1015 Feb 26 10:26 ib_buffer_pool.qp
-rw-r--r-- 1 mysql mysql 12582912 Feb 26 10:38 ibdata1
-rw-r----- 1 mysql mysql 161187 Feb 26 10:26 ibdata1.qp
...
5、启动数据库
上面的操作都修改好后就可以启动数据库了
root@k8s-node-19:/app/data# mysqld_safe --defaults-file=/app/data/backup-my.cnf --user=mysql --datadir=/app/data &
root@k8s-node-19:/app/data# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:6010 0.0.0.0:*
LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 70 *:33060 *:*
LISTEN 0 128 [::1]:6010 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 151 *:3306 *:*
随后就可以用Navicat 等数据库软件连接了
- 上一篇:MySQL5.7升级到8.0过程详解
- 下一篇:关于MySQL参数,这些你要知道
相关推荐
- Linux gron 命令使用详解(linux gminer)
-
简介gron是一个独特的命令行工具,用于将JSON数据转换为离散的、易于grep处理的赋值语句格式。它的名字来源于"grepableon"或"grepable...
- 【Linux】——从0到1的学习,让你熟练掌握,带你玩转Linu
-
学习Linux并掌握Java环境配置及SpringBoot项目部署是一个系统化的过程,以下是从零开始的详细指南,帮助你逐步掌握这些技能。一、Linux基础入门1.安装Linux系统选择发行版:推荐...
- Linux常用的shell命令汇总(linux中shell的作用)
-
本文介绍Linux系统下常用的系统级命令,包括软硬件查看、修改命令,有CPU、内存、硬盘、网络、系统管理等命令。说明命令是在Centos6.464位的虚拟机系统进行测试的。本文介绍的命令都会在此C...
- 零成本搭建个人加密文件保险柜(适用于 Win11 和 Linux)
-
不依赖收费软件操作简单,小白也能跟着做支持双系统,跨平台使用实现数据加密、防删除、防泄露内容通俗无技术门槛,秒懂秒用使用工具简介我们将使用两个核心工具:工具名用途系统支持Veracrypt创建加密虚...
- 如何在 Linux 中使用 Gzip 命令?(linux怎么用gzip命令)
-
gzip(GNUzip)是Linux系统中一个开源的压缩工具,用于压缩和解压缩文件。它基于DEFLATE算法,广泛应用于文件压缩、备份和数据传输。gzip生成的文件通常带有.gz后缀,压缩效率...
- Linux 必备的20个核心知识点(linux内核知识点)
-
学习和使用Linux所必备的20个核心知识点。这些知识点涵盖了从基础操作到系统管理和网络概念,是构建扎实Linux技能的基础。Linux必备的20个知识点1.Linux文件系统层级标...
- 谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
-
IT之家6月21日消息,谷歌ChromeOS在管理文件方面进行了改进,新增了对7z、iso和tar等格式的支持。从5月的ChromeOS101更新开始,ChromeOS...
- 如何在 Linux 中提取 Tar Bz2 文件?
-
在深入解压方法之前,我们先来了解.tar.bz2文件的本质。.tar.bz2是一种组合文件格式,包含两个步骤:Tar(TapeArchive):tar是一种归档工具,用于将多个文件或目录打包...
- 如何在 CentOS 7/8 上安装 Kitematic Docker 管理器
-
Kitematic是一款流行的Docker图形界面管理平台,适用于Ubuntu、macOS和Windows操作系统。然而,其他发行版(如CentOS、OpenSUSE、Fedora、R...
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
-
之前和大家分享过JDK17的多版本管理及详细安装过程,然后在项目升级完jdk17后又发现之前的注册和配置中心nacos又用不了,原因是之前的nacos1.3版本的,版本太老了,已经无法适配当前新的JD...
- 爬虫搞崩网站后,程序员自制“Zip炸弹”反击,6刀服务器成功扛住4.6万请求
-
在这个爬虫横行的时代,越来越多开发者深受其害:有人怒斥OpenAI的爬虫疯狂“偷”数据,7人团队十年心血的网站一夜崩溃;也有人被爬虫逼到极限,最后只好封掉整个巴西的访问才勉强止血。但本文作者却走...
- Ubuntu 操作系统常用命令详解(ubuntu必学的60个命令)
-
UbuntuLinux是一款流行的开源操作系统,广泛应用于服务器、开发、学习等场景。命令行是Ubuntu的灵魂,也是高效、稳定管理系统的利器。本文按照各大常用领域,详细总结Ubuntu必学...
- Linux面板8.0.54 测试版-已上线(linux主机面板)
-
Linux面板8.0.54测试版【增加】[网站]Java项目新增刷新列表按钮【增加】[网站]PHP项目-Apache-服务新增守护进程功能【增加】[网站]Python项目创建/删除网站时新增同时创建...
- 开源三剑客——构建私有云世界的基石
-
公共云原生的浪潮正在席卷这个世界,亚马逊AWS、谷歌GCP和微软的Azure年收入增长超过了30%,越来越多的公司和个人开始将自己的服务部署到云环境中,大型数据中心的规模经济带来了成本的降低,可以在保...
- 2.2k star,一款业界领先的私有云+在线文档管理系统
-
简介kodbox可道云(原KodExplorer)是业内领先的企业私有云和在线文档管理系统,为个人网站、企业私有云部署、网络存储、在线文档管理、在线办公等提供安全可控,简便易用、可高度定制的私有云产品...
- 一周热门
- 最近发表
-
- Linux gron 命令使用详解(linux gminer)
- 【Linux】——从0到1的学习,让你熟练掌握,带你玩转Linu
- Linux常用的shell命令汇总(linux中shell的作用)
- 零成本搭建个人加密文件保险柜(适用于 Win11 和 Linux)
- 如何在 Linux 中使用 Gzip 命令?(linux怎么用gzip命令)
- Linux 必备的20个核心知识点(linux内核知识点)
- 谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 如何在 Linux 中提取 Tar Bz2 文件?
- 如何在 CentOS 7/8 上安装 Kitematic Docker 管理器
- Nacos3.0重磅来袭!全面拥抱AI,单机及集群模式安装详细教程!
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)