赞
踩
RDS Mysql 可适用版本 | 存储类型 | 系列 | 需要插件 |
---|---|---|---|
mysql.5.7 5.7 5.5 | 本地SSD | 高可用版 | Percona XtraBackup 2.4 |
mysql8.0 | 本地SSD | 高可用版 | Percona XtraBackup 8.0 |
ps:本次实例以mysql5.7为例
RDS实例中的表未通过TDE加密
实例中如果存在加密过的表,会导致恢复过程出错,在下载备份文件前,对已加密的表执行解密操作
可在RDS控制台目标实例数据安全性 > TDE页面查看TDE开启状态
Mysql自建库版本与RDS Mysql版本必须相同
自建库所在服务器中必须根据不同Mysql实例安装对应版本的Percona XtraBackup
##首先安装wget命令 yum install -y wget ##下载Mysql的yum源配置 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm ##安装Mysql的yum源 yum -y install mysql57-community-release-el7-11.noarch.rpm ##使用yum方式安装Mysql5.7 yum -y install mysql-server --nogpgcheck --nogpgcheck ##启动mysql systemctl start mysqld.service systemctl enable mysqld.service ##找到mysql的默认密码 cat /var/log/mysqld.log | grep password 2022-11-02T15:01:52.976608Z 1 [Note] A temporary password is generated for root@localhost: !Th7<vMBA2w_ ps:其中默认密码是: !Th7<vMBA2w_ ##登录mysql mysql -uroot -p' !Th7<vMBA2w_' ##修改mysql密码 alter user user() identified by 'Qj123.com'; ##刷新配置 grant all privileges on . to 'root'@'%' identified by 'Qj123.com' with grant option; flush privileges;
Mysql的其他配置
##修改Mysql的默认密码策略 - 可设置简单密码
set global validate_password_policy=0;
set global validate_password_length=1;
flush privileges;
##设置简单密码
alter user 'root'@'localhost' identified by '123456';
grant all privileges on . to 'root'@'%' identified by '123456' with grant option;
flush privileges;
##安装配置工具 percona-release yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm ##如果安装不成功可手动安装 wget https://repo.percona.com/yum/percona-release-latest.noarch.rpm rpm -ivh percona-release-latest.noarch.rpm ##测试存储库 yum list | grep percona ##启用存储库 percona-release enable-only tools release ##如果Percona XtraBackup打算与 上游 MySQL 服务器,你只需要启用仓库: .toolspercona-release enable-only tools ##安装 Percona XtraBackup: yum install percona-xtrabackup-24 ##Percona 测试存储库yum¶ Percona从我们的测试存储库提供预发布版本。要订阅 测试存储库,您需要在 /etc/yum.repos.d/percona-release.repo.为此,请将两者设置为 (请注意,此文件中有 3 个部分:发布、测试 和实验 - 在这种情况下,它是需要的第二部分 正在更新)。percona-testing-$basearchpercona-testing-noarchenabled = 1 ##为了能够进行压缩备份,安装软件包:qpress yum install qpress -y ##使用下载的rpm包安装Percona XtraBackup wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/\ binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm ##本地安装rpm包 yum localinstall percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm ##PS:卸载 Percona XtraBackup: yum remove percona-xtrabackup
## 下载可执行文件的tar包
wget "http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/183466/cn_zh/1608011575185/qpress-11-linux-x64.tar"
## 解压下载的tar包,取出可执行文件
tar xvf qpress-11-linux-x64.tar
## 设置qpress文件的执行权限
sudo chmod 775 qpress
## 拷贝qpress到/usr/bin中
cp qpress /usr/bin
在Linux服务器上,执行如下命令下载物理备份
- wget -c ‘http://…’ -o test_qp.xb
test_qp.xb是另存的文件名
##在本地服务器上创建一个目录 用于存放解压后的文件
mkdir -p /mysql/data
##解压压缩包 - 根据压缩包后缀选择解压命令
ps:解压压缩包命令
备份文件类型 | 解压命令 |
---|---|
tar 压缩包 (.tar.gz 后缀) | tar -izxvf test1.tar.gz -C /mysql/data |
xbstream 压缩包(.xb.gz 后缀) | gzip -d -c test.xb.gz | xbstream -x -v -C /mysql/data |
xbstream 文件包(_qp.xb 后缀) | 解包:cat test_qp.xb | xbstream -x -v -C /mysql/data 解压:innobackupex --decompress --remove-original /mysql/data |
xbstream qpress压缩包(_xb.qp后缀) | qpress -do test_xb.qp | xbstream -x -v -C /mysql/data |
##查看解压生成后的文件
ls -l /mysql/data
ps:会自动生成一个backup-my.cnf文件
##恢复解压好的备份文件 - -mysql5.6/5.7
innobackupex --defaults-file=/mysql/data/backup-my.cnf --apply-log /mysql/data
##恢复解压好的备份文件 - -mysql8.0
## xtrabackup工具备份前的准备操作
xtrabackup --prepare --target-dir=/mysql/data
## 执行备份还原命令
xtrabackup --datadir=/var/lib/mysql --copy-back --target-dir=/mysql/data
ps:参数含义
参数 | 含义 |
---|---|
–defaults-file | 通过传入文件设置MySQL默认选项。备份集解压后会有backup-my.cnf 一般传入该文件 |
–apply-log | 应用此目录下的事务日志文件xtrabackup_logfile 到备份集解压后的路径中。 |
–prepare | xtrabackup工具备份前的准备命令,与后续备份恢复有关。 |
–datadir | 源数据库数据所在路径。与MySQL服务的位置有关。 |
–target-dir | 备份集解压后的路径。 |
若系统返回如下类似结果,则说明备份文件已成功恢复到自建数据库:
常见报错
若系统返回xtrabackup: Unknown error 3613
,请将Percona XtraBackup更新到最新版本后再次尝试
若系统返回如下报错,可以用rm -rf /var/lib/mysql/*
命令清空文件夹内文件,然后用chown -R mysql:mysql /var/lib/mysql
修改权限。
ps:为了避免版本问题,需修改backup-my.cnf文件
##编辑backup-my.cnf vi /tmp/backup.cnf #innodb_log_checksum_algorithm #innodb_fast_checksum #innodb_log_block_size #innodb_doublewrite_file #innodb_encrypt_algorithm #rds_encrypt_data #redo_log_version #master_key_id #server_uuid #innodb_log_checksum_algorithm=strict_crc32 #redo_log_version=1 lower_case_table_names=1 skip-grant-tables ##修改文件属性 chown -R mysql:mysql /mysql/data ##启动mysql进程 mysqld --defaults-file=/mysql/data/backup-my.cnf --user=mysql --datadir=/var/lib/mysql &
**错误一:**
解决方案:
windows 下,将原来的mysql data目录下文件 全部拷贝成原来的 ,启动mysql 失败
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
尝试网上其他方法未果;可采用下面的方法;
查看mysql 启动失败原因方法:
1 mysqld -remove
2 mysqld -install
3 mysqld --console
解决如图问题方法:
删除data 目录下 所有 id_logfile 重启mysql 解决问题;
**错误2:**
出现原因:系统中已有mysql启动进程
解决方案:
杀掉原有mysql进程 重启mysql进程
扩容原因:因原有阿里云数据压缩后存放于本地,待解压后 本地空间不足 需扩容再解压
查看已分配的磁盘使用情况:准备为它扩容
查看全部磁盘(包括已分配与未分配的磁盘使用情况)
可以发现dev这块磁盘总量21.5G,现在为sdb扩容
fdisk /dev/sdb
对新增的磁盘处理
输入partprobe 让系统识别新增的分区
创建物理卷,使用pvcreate /dev/sdb1
使用vgextend命令进行动态扩展
将空闲的磁盘拓展到分区
重新识别分区 - xfs_growfs /dev/mapper/centos-root
确认服务器空间 - df -h
systemctl unmask firewalld 执行命令,即可实现取消服务的锁定
systemctl mask firewalld # 下次需要锁定该服务时执行
systemctl start firewalld.service #启动防火墙
systemctl stop firewalld.service #停止防火墙
systemctl reload firewalld.service #重载配置
systemctl restart firewalld.service #重启服务
systemctl status firewalld.service #显示服务的状态
systemctl enable firewalld.service #在开机时启用服务
systemctl disable firewalld.service #在开机时禁用服务
systemctl is-enabled firewalld.service #查看服务是否开机启动
systemctl list-unit-files #查看当前开机启动状态的服务列表
systemctl list-unit-files|grep enabled 查看以允许开机自启的服务
systemctl --failed #查看启动失败的服务列表
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。