【玩转云数据库】云Mysql数据库物理备份文件还原数据库教程

说明

腾讯云Mysql云数据库的备份文件分为逻辑备份、物理冷备两种,扩展名均为.xb文件,本教程介绍如何使用物理备份在云服务器上还原数据库的操作流程。

本文主要资料来自于腾讯云官方文档:使用物理备份恢复数据库,本人结合实际操作经验,对文档进行了细化补充,以至于无需刻意学习,只需复制粘贴就可以大概率可以成功还原数据库。

如需通过逻辑备份文件还原数据库,请参考:【玩转云数据库】云Mysql数据库逻辑备份文件还原数据库教程

准备事项

1、CentOS 7.x 64位纯净版云服务器一台,因为物理备份还原是将整个数据库实例全部还原,然后再对单个数据库或表进行操作,所以建议开通一台全新服务器进行操作。(可按量付费开通一台低配服务器,不能在已有数据库实例的服务器上进行操作)

2、FileZilla软件(由于需要对服务器文件进行操作,如不会Vim的同学可以准备这个软件,以方便进行文本处理)

3、Mysql云数据库物理备份文件(从云数据库控制台可以下载物理备份,扩展名为.xb)

4、与云数据库同版本的Mysql源码包,源码包大版本需与云数据库版本相同。比如云数据库为mysql-5.6,那么源码包主版本也需为mysql-5.6,但后面的数字mysql-5.6.41可以不同(如本文演示所用的mysql-5.6.41-linux-glibc2.12-x86_64.tar)

操作步骤

一、安装解包软件

1、由于备份文件先经过 qpress 压缩,后经过 xbstream 打包(xbstream 为 Percona 的一种打包/解包工具),所以先用 xbstream 将其解包。xbstream 工具可以通过添加 Percona 的 yum 源安装。

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

2、由于进行第3操作的时候会出现秘钥验证的问题,所以先将/etc/yum.repos.d/percona-release.repo文件中的gpgcheck=1全部修改为gpgcheck=0,上传覆盖后再进行第3步。

3、安装xtrabackup-24版本

yum install percona-xtrabackup-24

二、将备份文件解包至目标目录

先将下载的Mysql云数据库的物理备份文件重命名为纯英文.xb(如bakup.xb),上传至/root目录,这里使用/data做为还原数据库的目标目录

xbstream -x -C /data < ~/bakup.xb

解包结果如下图所示,文件均为.qp结尾的扩展名。

1.jpg

三、解压备份文件

因备份文件经过 quicklz 算法压缩,所以需要进行解压。需 下载 qpress 工具 ,下载之后通过以下命令解出 qpress 二进制文件。(现在命令中qpress-11-linux-x64.tar为文件名,具体以所下载的文件名为准)

tar -xf qpress-11-linux-x64.tar -C /usr/local/bin
 
source /etc/profile

使用 qpress 命令将目标目录下所有以.qp结尾的文件都解压出来。

xtrabackup --decompress --target-dir=/data

xtrabackup默认在解压缩时不删除原始的压缩文件,若想解压完删除原始的压缩文件,可在上面的命令中加上 (2个-)-remove-original 参数。

2.jpg

四、Prepare 备份文件

备份解压出来之后,需要执行以下命令进行 apply log 操作。

xtrabackup --prepare  --target-dir=/data

执行后如果结果中包含以下输出,则表示 prepare 成功。

3.jpg

五、修改配置文件

由于存在的版本问题,请将解压文件 /data/backup-my.cnf 中以下参数注释掉(某行前面加#表示注释)。

innodb_checksum_algorithm innodb_log_checksum_algorithm innodb_fast_checksum innodb_page_size innodb_log_block_size redo_log_version

4.jpg

六、源码安装Mysql

1、先安装基本软件

yum -y install numactl.x86_64
 
yum -y install autoconf

2、执行一串命令

tar xf mysql-5.6.41-linux-glibc2.12-x86_64.tar -C /usr/local
 
cd /usr/local/
 
mv mysql-5.6.41-linux-glibc2.12-x86_64/ mysql
 
useradd mysql
 
chown -R mysql:mysql mysql/
 
cd /var/log
 
mkdir mariadb
 
cd mariadb/
 
touch mariadb.log
 
cd /usr/local/
 
mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
 
echo $?

如果显示0就证明成功了

cp mysql/support-files/mysql.server /etc/init.d/mysqld

service mysqld start

那么此时大概率会报错,提示如下代码

./support-files/mysql.server startStarting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/VM_0_10_centos.pid).

修改/etc/my.cnf文件,在mysqld下方添加以下代码,如下

[mysqld]
 
datadir=/usr/local/mysql/data
 
socket=/tmp/mysql.sock
 
basedir=/usr/local/mysql
 
port=3306
 
pid=/usr/local/mysql/data/VM_0_10_centos.pid
 
log-error=/usr/local/mysql/data/error.log

其中VM_0_10_centos.pid的就改成报错提示中的pid文件名即可。然后上传覆盖。

cp mysql/support-files/mysql.server /etc/init.d/mysqld  # 提示覆盖选择 y
 
service mysqld start

此时mysql就可以正常启动了,可以登录mysql查看数据库(密码默认为空

mysql/bin/mysql -uroot
 
show databases;

5.jpg

七、还原物理备份中的mysql 数据库

1、修改文件属性

chown -R mysql:mysql /data

2、启动 mysqld 进程

service mysqld stop
 
mysql/bin/mysqld_safe --defaults-file=/data/backup-my.cnf --user=mysql --datadir=/data &

需先将mysqld停止,然后再运行mysqld_safe,否则大概率会报错。mysqld_safe这一步执行后界面会卡住无响应,并且类似于下面的提示信息,此时可按一下回车,进入正常命令界面。

root@VM_0_10_centos ~# 190620 13:46:34 mysqld_safe Logging to ‘/data/VM_0_10_centos.err’.

190620 13:46:34 mysqld_safe Starting mysqld daemon with databases from /data

3、查看mysql进程是否已启动

ps aux | grep 3306

6.jpg

4、客户端登录 mysql 验证。

mysql/bin/mysql  -uroot

7.jpg

至此,物理备份还原成功,可以通过phpmyadmin或Navicat等软件进行管理。

八、额外注意事项

恢复完成后,表 mysql.user 中是不包含 TencentDB 中创建的用户,需要新建。

新建用户前请执行以下SQL语句。

delete from mysql.db where user<>'root' and char_length(user)>0;
delete from mysql.tables_priv where user<>'root' and char_length(user)>0;
flush privileges;

九、修改mysql root密码以提高安全性

上述操作中,mysql 的 root 账号默认密码为空,强烈建议修改root密码以保证数据安全。

请执行以下SQL语句。

命令行修改root密码,其中newpassword表示新密码。

mysql> UPDATE mysql.user SET password=PASSWORD('newpassword') WHERE User='root';

运行完这行之后会提示下面的信息:

Query OK, 0 rows affected (0.00 sec)

Rows matched: 2 Changed: 0 Warnings: 0

这时候还需要运行下面一句,否则密码不会被修改:

mysql> FLUSH PRIVILEGES;

下面运行结果代表修改成功:

Query OK, 0 rows affected (0.16 sec)

小结

通过以上的操作,就可以恢复完整的数据库实例。

原文地址:https://cloud.tencent.com/developer/article/1990354

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限!!!粘滞位!!!超详解!!!
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Windows、Linux、MacBook_mack book 安装qt
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Linux——了解操作系统的发展历史以及初次体验Linux编程环境
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,个人学习时很认真的记录的,觉得好的麻烦点个赞。
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1(亲测无问题,建议收藏)_openssh_9.5p1
文章浏览阅读3.5k次,点赞93次,收藏78次。初识Linux中的线程,理解线程的各种概念,理解进程地址空间中的页表转换,介绍pthread线程库并理解线程库!
文章浏览阅读863次。出现此问题为Linux文件权限问题,解决方案为回到引擎目录执行命令。输入用户密码后运行./UnrealEditor。_increasing per-process limit of core file size to infinity.
文章浏览阅读2.9k次。使用文本编辑器:打开CSV文件,并使用文本编辑器(如Notepad++、Sublime Text、Visual Studio Code等)来查看文件的字符编码格式。通常在编辑器的底部状态栏或设置中可以找到当前编码的显示。请注意,上述方法并非绝对准确,特别是当文件没有明确的编码标识时。因此,如果你发现CSV文件在不同的工具或方法中显示不同的编码格式,可能需要进行进一步的分析和判断,或者尝试使用不同的编码转换方法。该命令将输出文件的MIME类型和编码信息。使用命令行工具:在命令行中,你可以使用。_shell读取csv文件逐行处理
本文介绍了如何在Linux系统中升级gcc版本,以便更好地支持C++11及以上版本的新特性。通过升级gcc,可以提升编译器的功能和性能,获得更好的开发体验。详细的步骤和方法请参考原文链接。
文章浏览阅读4.4k次,点赞6次,收藏19次。Mosquitto是一个开源的MQTT消息代理服务器。MQTT是一个轻量级的、基于发布/订阅模式的消息传输协议。 mosquitto的安装使用比较简单,可以方便的来进行一些测试。_linux mosquitto
文章浏览阅读7.2k次,点赞2次,收藏12次。Linux中,用于根目录下有一个.ssh目录,保存了ssh相关的key和一些记录文件。_~/.ssh/
文章浏览阅读4.5k次,点赞5次,收藏18次。首先需要安装 snmp ,使用下面的命令进行安装安装完毕之后,使用下面的命令查看是否安装成功当命令行显示如图即为安装成功。_snmp工具
文章浏览阅读3.5k次,点赞7次,收藏24次。本地部署和使用llama.cpp进行量化Llama2,linux和Windows平台方案,支持CPU和GPU多版本。_llama cpp gpu
文章浏览阅读1.4k次,点赞46次,收藏44次。在vim中,最为常见的有三种模式,分别是:命令模式(command mode)、插 入模式(Insert mode)和底行模式(last line mode)文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。在命令模式下,shift+: 即可进入该模 式。在进入vim后,使用 i 进入插入模式,插入模式就是vim的编辑模式,可以在vim中进行内容的编辑和修改。vim的核心模式,使用vim进入文件编辑时的最初模式,在该模式中只能移动光标和使用命令对文件内容进行编辑。
Linux常用命令大全,包括目录操作命令和文件操作命令,以及查看登录用户命令和文件内容查看命令等。
文章浏览阅读1.7k次,点赞57次,收藏50次。Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用.本地部署,注重隐私,简单高效的MYSQL审计平台。下面介绍Linux 简单部署Yearning 并结合cpolar 内网穿透工具实现远程访问,破除访问限制,提高工作效率!!
文章浏览阅读1.9w次,点赞7次,收藏18次。Microsoft Edge是一款现代化的浏览器,它拥有众多功能和强大的性能,为用户带来更加流畅的浏览体验。Edge最近推出了分屏功能,支持一个窗口同时显示两个选项卡,这可以大大提高生产力和多任务处理能力。欢迎大家使用分屏及其他新功能后分享自己的使用心得与建议。首先,使用Microsoft Edge的分屏功能确实能够提高生产力,尤其是在需要同时浏览两个不同网页的情况下。分屏功能使得在一个窗口中同时显示两个选项卡,用户可以在两个网页之间快速切换,而无需打开新的窗口或使用多个浏览器窗口。_edge linux
文章浏览阅读1.8k次,点赞83次,收藏71次。C语言实现倒计时和进度条并进行演示。_linux不换行输出倒计时
文章浏览阅读1.5k次,点赞28次,收藏25次。基于嘉立创泰山派开发板,本机使用VMware+Unbuntu,编译泰山派的Linux SDK。详细教程,0基础小白可操作!内涵大量基础操作和linux基本知识。_立创泰山派sdk编译