177.xb文件恢复

发表于 linux 分类,标签:
https://help.aliyun.com/zh/rds/apsaradb-rds-for-mysql/restore-the-data-of-an-apsaradb-rds-for-mysql-instance-from-a-physical-backup-file-to-a-self-managed-mysql-database?spm=a2c4g.11186623.0.0.3d6c4ca3FWlRHW

1.安装工具
下载地址
https://www.percona.com/downloads
阿里云盘有下载好的
percona-release-1.0-27.noarch.rpm
rpm -ivh percona-release-1.0-27.noarch.rpm
yum list percona-xtrabackup*
yum install percona-xtrabackup-24.x86_64

2.解压
## 步骤一:解包
cat test_qp.xb | xbstream -x -v -C /var/mysql_bkdata/
cat hins29720494_data_20240514053104_qp.xb | xbstream -x -v -C /data/2/
## 步骤二:解压
### MySQL 5.5/5.6/5.7
innobackupex --decompress --remove-original /var/mysql_bkdata/
yum -y install qpress
innobackupex --decompress --remove-original /data/2/
### MySQL 8.0
/u01/xtrabackup80/bin/xtrabackup --decompress --remove-original --target-dir=/var/mysql_bkdata/
xtrabackup --decompress --remove-original --target-dir=/data/2/

3.准备
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/
innobackupex --defaults-file=/data/2/backup-my.cnf --apply-log /data/2/
mysql8准备
xtrabackup --defaults-file=/data/mysql_data/backup-my.cnf  --prepare --target-dir=/data/2/
--defaults-file
通过传入配置文件设置MySQL默认选项。
RDS MySQL备份文件中,提供名为backup-my.cnf的配置文件,该文件位于备份解压目录,即/var/mysql_bkdata/。
--apply-log
XtraBackup工具的准备命令。
该命令后配置存放备份文件的目录,即备份解压目录/var/mysql_bkdata/。
修改my.cnf文件
vim /etc/my.cnf
datadir = /data/mysql_data
innodb_undo_tablespaces=2
innodb_undo_directory=/data/mysql_data

cat /data/2/backup-my.cnf | grep innodb_undo_tablespaces
参数innodb_undo_tablespaces的取值需要与/var/mysql_bkdata/backup-my.cnf中的取值相同,您可以使用cat /var/mysql_bkdata/backup-my.cnf | grep innodb_undo_tablespaces查询。

4.恢复
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /data/2/
sudo xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/data/2/
参数解释:
--defaults-file自建数据库的my.cnf文件,根据此配置文件中设置的数据目录(datadir),获取恢复数据的目标路径。
--copy-backXtraBackup工具的恢复命令。
该命令后配置存放备份文件的目录,即备份解压目录/var/mysql_bkdata/,XtraBackup工具将此目录数据恢复到自建数据库的数据目录中。

5.重置root密码
vim /etc/my.cnf
skip-grant-tables
然后保存并关闭文件,重启mysql服务,此时mysql不再需要密码即可登录
mysql -u root -p

升级5.7后更新
1.启动数据库
./mysql_upgrade --defaults-file=/etc/my.cnf
2.重启服务
3.登录后先刷新权限
4.mysql5.7创建用户给权限修改密码
create user 'root'@'%' identified by 'shimujiuxia';
grant all on *.* to 'root'@'%';
alter user 'root'@'%' identified with mysql_native_password by 'shimujiuxia';
flush privileges;
update mysql.user set password=PASSWORD('shimujiuxia') where User='root';
flush privileges;
给远程用户权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'shimujiuxia';
flush privileges;


0 篇评论

发表我的评论