专栏首页SEian.G学习记录使用CDB物理备份恢复到自建的MYSQL中
原创

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

背景描述

将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物理备份恢复数据库全部完成;

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • CVM自建基于GTID复制的mysql作为CDB的从库

    云数据库CDB本身已经是主从架构,不过很多用户还是希望通过自建mysql实现和云数据库cdb实现主从同步,这时候用户就可以自己在云服务器CVM上部...

    SEian.G
  • 2 服务器基本情况

    Y大宽
  • LeetCode 222. 完全二叉树的节点个数(二分查找)

    说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底...

    Michael阿明
  • Centos7下部署两套python版本并存环境的操作记录

    需求说明: centos7.2系统的开发机器上已经自带了python2.7版本,但是开发的项目中用的是python3.5版本,为了保证Centos系统的正常运行...

    洗尽了浮华
  • CentOS7.4中Docker以rw方式挂载volume报Permission denied的解决思路

    版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

    耕耘实录
  • Golang Leetcode 450. Delete Node in a BST.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89175007

    anakinsun
  • 利用rbd命令把 ceph pool 中的一个镜像导出

    查看镜像 [root@node1 ~]# rbd ls images a56330e7-79d7-4639-a68f-366ac344bfe2 eccfee07...

    院长技术
  • LeetCode 二叉树 题目分类汇总

    简书的 markdown 都不支持 [TOC] 语法……我就不贴目录了。下面按照类别,列出了29道关于二叉树的题目。认真看会发现,其实题目核心思想都是DFS(如...

    Yano_nankai
  • 【趣学程序】Linux流的重定向

    趣学程序-shaofeer
  • Linux工作目录切换命令

    心跳包

扫码关注云+社区

领取腾讯云代金券