前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用CDB物理备份恢复到自建的MYSQL中

使用CDB物理备份恢复到自建的MYSQL中

原创
作者头像
SEian.G
修改2018-11-21 10:22:55
2K1
修改2018-11-21 10:22:55
举报

背景描述

将CDB实例的物理备份恢复到自建的mysql数据库

实验环境

CDB实例:cdb-fopx6fXX

云服务器:用于恢复CDB的物理备份

如下是CDB控制台可以看到的实例中存在的数据库

1、首先建议先手动备份CDB或在控制台下载物理备份文件

【注意:CDB的默认备份方式为逻辑备份,但是如果数据量特别大,逻辑备份的恢复速度比较慢】

2、在云服务器上面创建数据库的存放目录

[root@VM_35_215_centos ~]# mkdir -p /data/mysql/mysql_3310/{data,log,tmp}

[root@VM_35_215_centos ~]# ll /data/mysql/mysql_3310/

total 12

drwxr-xr-x 2 root root 4096 Oct 30 18:18 data

drwxr-xr-x 2 root root 4096 Oct 30 18:18 log

drwxr-xr-x 2 root root 4096 Oct 30 18:18 tmp

3、在云服务器上面通过wget下载物理备份文件

[root@VM_35_215_centos xtrabackupfile]# wget 'http://sh.dl.cdb.tencentyun.com:xxxxx/a789e231970810651239e2c2fd18b128?appid=1251123904&time=1540900309&sign=NRXQWiNJqtICXGlLpMR2w%2Fs7J5I%3D'

4、解压物理备份文件

[root@VM_35_215_centos xtrabackupfile]# tar xf a789e231970810651239e2c2fd18b128\?appid\=1251123904\&time\=1540900309\&sign\=NRXQWiNJqtICXGlLpMR2w%2Fs7J5I\=

5、解压后可以看到一个文件夹,该文件夹下面即是CDB数据库的物理文件

[root@VM_35_215_centos xtrabackupfile]# ll

drwxr-xr-x 40 root root 4096 Oct 30 19:49 cdb-fopx6fXX_20181030194849

[root@VM_35_215_centos cdb-fopx6f6v_20181030194849]# ll

total 124332

........(此处省略N行)

drwxr-x--- 2 root root 4096 Oct 30 19:48 along_bak

drwxr-x--- 2 root root 12288 Oct 30 19:49 aws

-rw-r----- 1 root root 419 Oct 30 19:49 backup-my.cnf

drwxr-x--- 2 root root 4096 Oct 30 19:49 ceshi

drwxr-x--- 2 root root 4096 Oct 30 19:48 ceshi2

drwxr-x--- 2 root root 4096 Oct 30 19:49 ceshi2_bak

drwxr-x--- 2 root root 4096 Oct 30 19:49 ceshi_bak

drwxr-x--- 2 root root 4096 Oct 30 19:49 congshao

drwxr-x--- 2 root root 4096 Oct 30 19:49 daxie

drwxr-x--- 2 root root 4096 Oct 30 19:48 DAXIE

........(此处省略N行)

-rw-r----- 1 root root 79691776 Oct 30 19:49 ibdata1

-rw-r----- 1 root root 12582912 Oct 30 19:49 ibtmp1

drwxr-x--- 2 root root 4096 Oct 30 19:49 liujian

drwxr-x--- 2 root root 4096 Oct 30 19:48 mysql

drwxr-x--- 2 root root 4096 Oct 30 19:49 performance_schema

drwxr-x--- 2 root root 4096 Oct 30 19:49 shaocong

........(此处省略N行)

-rw-r----- 1 root root 26214400 Oct 30 19:49 undo001

-rw-r----- 1 root root 118 Oct 30 19:49 xtrabackup_binlog_info

-rw-r--r-- 1 root root 28 Oct 30 19:49 xtrabackup_binlog_pos_innodb

-rw-r----- 1 root root 376 Oct 30 19:49 xtrabackup_cdb_result

-rw-r----- 1 root root 121 Oct 30 19:49 xtrabackup_checkpoints

-rw-r----- 1 root root 810 Oct 30 19:49 xtrabackup_info

-rw-r----- 1 root root 8388608 Oct 30 19:49 xtrabackup_logfile

-rw-r----- 1 root root 156 Oct 30 19:49 xtrabackup_slave_info

从物理备份文件中可以看到有如上的一些以xtrabackup开头的一些文件

xtrabackup_checkpoints 记录备份完成时检查点的lsn号和该备份文件类型,full-backuped全量备份

xtrabackup_binlog_info 记录二进制日志和偏移量,若开启gtid,还会记录gtid位置,为在线搭建从库做准备

xtrabackup_info 记录备份详细信息,如备份命令、开始结束时间、版本等

6、将数据库的物理备份文件移动到步骤2创建的数据文件存放目录中

[root@VM_35_215_centos xtrabackupfile]# mv cdb-fopx6f6v_20181030194849/ /data/mysql/mysql_3310/data

由于是多实例部署,所以使用了mysqld_multi统一管理,如果是单实例的可忽略配置文件中[mysqld_multi]的设置

7、修改备份文件的属性

[root@VM_35_215_centos ~]# chown -R mysql:mysql /data/mysql/mysql_3310/

8、编辑mysql的配置文件,或者按照腾讯云官方文档修改备份文件中的backup-my.cnf配置文件

[root@VM_35_215_centos ~]# vim /etc/my.cnf

[mysqld_multi]

user=root

pass=XXXXXX

mysqld=/usr/local/mysql/bin/mysqld_safe

mysqladmin=/usr/local/mysql/bin/mysqladmin

log=/data/mysql/mysqld_multi.log

[mysqld]  

#skip-grant-tables

user=mysql  

basedir = /usr/local/mysql  

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

max_allowed_packet = 16M

character_set_server = utf8mb4

[mysqld3310]

#skip-grant-tables

mysqld=mysqld

mysqladmin=mysqladmin

datadir=/data/mysql/mysql_3310/data/

socket=/tmp/mysql3310.sock

port=3310

server_id=3310

log-output=file

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /data/mysql/mysql_3310/log/slow.log

log-error = /data/mysql/mysql_3310/log/error.log

binlog_format = mixed

log-bin = /data/mysql/mysql_3310/log/mysql3310.bin

secure_file_priv=/tmp

gtid-mode = ON

enforce-gtid-consistency = ON

log-slave-updates = ON

query_cache_size=0

query_cache_type=1

9、启动实例

[root@VM_35_215_centos ~]# mysqld_multi start 3310

[root@VM_35_215_centos ~]# mysqld_multi report 3310

Reporting MySQL servers

MySQL server from group: mysqld3310 is running

启动成功

10、登录实例,发现登录出现如下的报错,看样子是用户密码有问题

[root@VM_35_215_centos ~]# mysql -u root -p -S /tmp/mysql3310.sock

Enter password:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

11、在配置文件中增加如下内容,登录的时候跳过user表检

[mysqld3310]

skip-grant-tables

12、然后重启一下实例即可登录成功

[root@VM_35_215_centos ~]# mysqld_multi start

[root@VM_35_215_centos ~]# mysqld_multi report 3310

Reporting MySQL servers

MySQL server from group: mysqld3310 is running

13、登录成功后,修改一下root用户的密码

root@ [(none)]>update mysql.user set password=password('qcloud@2018') where user='root';

Query OK, 5 rows affected, 1 warning (0.05 sec)

Rows matched: 5 Changed: 5 Warnings: 1

14、关闭mysql服务,然后删掉配置文件中的skip-grant-tables重新进行登录

至此通过CDB物理备份恢复数据库全部完成;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景描述
  • 实验环境
  • 1、首先建议先手动备份CDB或在控制台下载物理备份文件
  • 2、在云服务器上面创建数据库的存放目录
  • 3、在云服务器上面通过wget下载物理备份文件
  • 4、解压物理备份文件
  • 5、解压后可以看到一个文件夹,该文件夹下面即是CDB数据库的物理文件
  • 6、将数据库的物理备份文件移动到步骤2创建的数据文件存放目录中
  • 7、修改备份文件的属性
  • 8、编辑mysql的配置文件,或者按照腾讯云官方文档修改备份文件中的backup-my.cnf配置文件
  • 9、启动实例
  • 10、登录实例,发现登录出现如下的报错,看样子是用户密码有问题
  • 11、在配置文件中增加如下内容,登录的时候跳过user表检
  • 12、然后重启一下实例即可登录成功
  • 13、登录成功后,修改一下root用户的密码
  • 14、关闭mysql服务,然后删掉配置文件中的skip-grant-tables重新进行登录
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档