把阿里云RDS mysql数据库恢复到本地的过程
[
2023/02/19 19:48 | by admin ]
![不指定 不指定](images/weather/blank.gif)
要把阿里云rds mysql数据库搬回ECS服务器,搜索官方帮助,可选两种方法
一是逻辑备份数据库,下载到本地后用mysql命令导入或使用source命令导入。
二是物理备份数据库,下载后解压恢复到本地服务器(但此方法只能恢复到linux服务器,不支持win系统)。
官方的教程不详细,故记录下此次操作。
选择物理备份的数据库进行恢复,过程如下:
1、从阿里云下载rds到外网是按流量收费的,故使用内网地址下载到ECS服务器较好。因客户的机子是win系统,所以先在rds上点击下载,复制内网地址,然后在win机子上打开浏览器进行下载,下载完成后,得到了hins24216484_data_20230216044728_qp.xb的备份文件。因此ECS机子性能一般,所以再次从ECS上下载文件到本地。
2、在本地安装VMWARE,再安装centos8,完成后安装了BT(在此选择相同版本的mysql5.6进行安装,否则要使用mysql源码编译安装)。
3、对于MySQL 5.7、5.6或5.5实例:下载及安装Percona XtraBackup 2.4。
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum -y install percona-xtrabackup-24
安装qpress解压缩软件
yum -y install qpress
安装完成后测试下
innobackupex -version
能正常返还即为成功
4、创建存放mysql的目录
mkdir -p /home/mysql/data
5、上传_data_20230216044728_qp.xb至/home目录并更名为h_qp.xb
6、解包
cat h_qp.xb | xbstream -x -v -C /home/mysql/data
7、解压
innobackupex --decompress --remove-original /home/mysql/data
8、执行备份还原命令
innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
9、编辑backup-my.cnf
vi /home/mysql/data/backup-my.cnf
在[mysqld]段内增加:lower_case_table_names=1 并屏蔽其他行。再增加:skip-grant-tables
10、修改目录所属
chown -R mysql:mysql /home/mysql/data
11、停止原已启动的bt的mysql
service mysqld stop
12、启动mysql
/www/server/mysql/bin/mysqld --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data/ & 回车
13、登录mysql
/www/server/mysql/bin/mysql -uroot -p
无密码回车后登录,此时可以查看下数据库。
show databases;
14、修改密码
use mysql;
update user set password=PASSWORD("123654") where user='root';
FLUSH PRIVILEGES;
quit;
退出后杀掉启动的mysql(killall -9 mysqld),删掉/home/mysql/data/backup-my.cnf的skip-grant-tables,然后重新启动下。
/www/server/mysql/bin/mysql -uroot -p
这时会发现需要输入密码123654后登录。
15、导出数据库
a、停止数据库进程后拷贝出整个/home/mysql/data目录,放到win主机上的相应目录里(需先在win主机上安装好mysql5.6)
b、也可以用mysqldump方式导出数据库,再到win主机上导入数据库(此方式适用于主机上原本就运行了其他innodb类型的mysql程序,无法直接使用,只能新增进去)。
导出
/www/server/mysql/bin/mysqldump -u root -p -c --default-character-set=utf8 h > h.sql
在win主机上导入
mysql -uroot -p --default-character-set=utf8 h < d:\h.sql
此前,我是先尝试过使用逻辑备份数据库下载到本地来恢复,通过命令
mysql -f -uroot -p h.sql > test
或登录mysql后使用 source h.sql 来恢复,但在恢复一会儿后就显示连接不上数据库了,尝试调大连接超时参数等无效,遂放弃。然后再尝试物理备份数据库方式到本地恢复。本次要搬的数据库在36G,备份下来的sql文件也有12G多。想要打开修改都难。
参考官方教程
https://help.aliyun.com/document_detail/41817.html#section-ooe-3fz-r97
最后:mysql到本地使用最好还是改回MYISAM数据引擎方式,Innodb方式管理不是很方便,所以,在本地恢复数据库成功后,使用phpmyadmin 来运行转换语句,如:ALTER TABLE pre_common_admincp_cmenu ENGINE = MYISAM; 数据表的列表可以使用ll列出来取出,等全部转换完成,就可以把单独把数据库目录上传到数据库目录 data下使用了。
一是逻辑备份数据库,下载到本地后用mysql命令导入或使用source命令导入。
二是物理备份数据库,下载后解压恢复到本地服务器(但此方法只能恢复到linux服务器,不支持win系统)。
官方的教程不详细,故记录下此次操作。
选择物理备份的数据库进行恢复,过程如下:
1、从阿里云下载rds到外网是按流量收费的,故使用内网地址下载到ECS服务器较好。因客户的机子是win系统,所以先在rds上点击下载,复制内网地址,然后在win机子上打开浏览器进行下载,下载完成后,得到了hins24216484_data_20230216044728_qp.xb的备份文件。因此ECS机子性能一般,所以再次从ECS上下载文件到本地。
2、在本地安装VMWARE,再安装centos8,完成后安装了BT(在此选择相同版本的mysql5.6进行安装,否则要使用mysql源码编译安装)。
3、对于MySQL 5.7、5.6或5.5实例:下载及安装Percona XtraBackup 2.4。
yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
yum -y install percona-xtrabackup-24
安装qpress解压缩软件
yum -y install qpress
安装完成后测试下
innobackupex -version
能正常返还即为成功
4、创建存放mysql的目录
mkdir -p /home/mysql/data
5、上传_data_20230216044728_qp.xb至/home目录并更名为h_qp.xb
6、解包
cat h_qp.xb | xbstream -x -v -C /home/mysql/data
7、解压
innobackupex --decompress --remove-original /home/mysql/data
8、执行备份还原命令
innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
9、编辑backup-my.cnf
vi /home/mysql/data/backup-my.cnf
在[mysqld]段内增加:lower_case_table_names=1 并屏蔽其他行。再增加:skip-grant-tables
10、修改目录所属
chown -R mysql:mysql /home/mysql/data
11、停止原已启动的bt的mysql
service mysqld stop
12、启动mysql
/www/server/mysql/bin/mysqld --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data/ & 回车
13、登录mysql
/www/server/mysql/bin/mysql -uroot -p
无密码回车后登录,此时可以查看下数据库。
show databases;
14、修改密码
use mysql;
update user set password=PASSWORD("123654") where user='root';
FLUSH PRIVILEGES;
quit;
退出后杀掉启动的mysql(killall -9 mysqld),删掉/home/mysql/data/backup-my.cnf的skip-grant-tables,然后重新启动下。
/www/server/mysql/bin/mysql -uroot -p
这时会发现需要输入密码123654后登录。
15、导出数据库
a、停止数据库进程后拷贝出整个/home/mysql/data目录,放到win主机上的相应目录里(需先在win主机上安装好mysql5.6)
b、也可以用mysqldump方式导出数据库,再到win主机上导入数据库(此方式适用于主机上原本就运行了其他innodb类型的mysql程序,无法直接使用,只能新增进去)。
导出
/www/server/mysql/bin/mysqldump -u root -p -c --default-character-set=utf8 h > h.sql
在win主机上导入
mysql -uroot -p --default-character-set=utf8 h < d:\h.sql
此前,我是先尝试过使用逻辑备份数据库下载到本地来恢复,通过命令
mysql -f -uroot -p h.sql > test
或登录mysql后使用 source h.sql 来恢复,但在恢复一会儿后就显示连接不上数据库了,尝试调大连接超时参数等无效,遂放弃。然后再尝试物理备份数据库方式到本地恢复。本次要搬的数据库在36G,备份下来的sql文件也有12G多。想要打开修改都难。
参考官方教程
https://help.aliyun.com/document_detail/41817.html#section-ooe-3fz-r97
最后:mysql到本地使用最好还是改回MYISAM数据引擎方式,Innodb方式管理不是很方便,所以,在本地恢复数据库成功后,使用phpmyadmin 来运行转换语句,如:ALTER TABLE pre_common_admincp_cmenu ENGINE = MYISAM; 数据表的列表可以使用ll列出来取出,等全部转换完成,就可以把单独把数据库目录上传到数据库目录 data下使用了。
使用腾讯使用的免费域名邮箱,添加 mx解析记录值为mxdomain.qq.com. 但此状态下就不能把一级域名再解析到别处了,只能留空不解析,如果解析到别处,腾讯会就检测出mx记录失效。
检测mx记录
开始,运行,cmd
输入如:
nslookup=mx gsywx.com
此时会返回:
非权威应答:
gsywx.com MX preference =5, mail exchanger = mxdomain.qq.com
看其指向判断即可。
检测mx记录
开始,运行,cmd
输入如:
nslookup=mx gsywx.com
此时会返回:
非权威应答:
gsywx.com MX preference =5, mail exchanger = mxdomain.qq.com
看其指向判断即可。
用批处理自动备份办公文件脚本
[
2022/12/16 10:37 | by admin ]
![不指定 不指定](images/weather/blank.gif)
我们日常办公会在同一个目录下建立很多目录或文件,为了防止丢失或有些文件修改后又想再次使用原来的文件,故需每天对文件进行备份,以下脚本利用windows自带的任务计划运行批处理脚本,每天备份一次,保留若干天,并删除指定天数以前的备份文件。
使用方法:
将以下代码用记事粘贴保存为 "beifenwenjian.bat" 。
并修改其中的第6行中的 set sou_dir="D:\我的文档" 为你的源文件目录。
修改其中的第7行中的 set obj_dir="E:\文件备份"为你的备份目录(需先在电脑里新建一个目录,目录名自己随便定义,并跟脚本中的第4行7行中的目录名保持一致)。
第8行中的60为指定多少天前的备份要删除。
beifenwenjian.bat保存在你的备份目录里,如这里的 E:\文件备份。
然后复制 第4行 rem后的代码。按键盘中的win图标+R,打开运行界面,粘贴代码后回车以添加自动任务计划(其中的时间可以自己修改)。
转载请保留出处,谢谢!
附脚本源文件:
下载文件 (已下载 116 次)
使用方法:
将以下代码用记事粘贴保存为 "beifenwenjian.bat" 。
并修改其中的第6行中的 set sou_dir="D:\我的文档" 为你的源文件目录。
修改其中的第7行中的 set obj_dir="E:\文件备份"为你的备份目录(需先在电脑里新建一个目录,目录名自己随便定义,并跟脚本中的第4行7行中的目录名保持一致)。
第8行中的60为指定多少天前的备份要删除。
beifenwenjian.bat保存在你的备份目录里,如这里的 E:\文件备份。
然后复制 第4行 rem后的代码。按键盘中的win图标+R,打开运行界面,粘贴代码后回车以添加自动任务计划(其中的时间可以自己修改)。
转载请保留出处,谢谢!
@echo off
color 0D
MODE con: COLS=71 LINES=25
rem schtasks /create /tn "beifenwenjian.bat" /tr E:\文档备份\beifenwenjian.bat /sc daily /st 16:59:00 /RU SYSTEM
title 办公文件自动备份脚本(任务计划)--作者:小雨
set sou_dir="D:\我的文档"
set obj_dir="E:\文件备份"
set expireddays=60
if exist %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2% echo %date:~0,10%数据已经备份过-退出备份程序 >> %obj_dir%\backup.log && exit/b
md %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2%
xcopy /e /c /h /y %sou_dir% %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2%
echo %date% %time% %date:~0,4%-%date:~5,2%-%date:~8,2% 备份完成 >> %obj_dir%\backup.log
rem 删除指定天数之前的备份
@echo off & setlocal enabledelayedexpansion
call :GetDate y m d
call :DateToDays %y% %m% %d% days1
@for /f "tokens=1-3 delims=-" %%a in ('dir /b/ad') do (
call :DateToDays %%a %%b %%c days2
set/a days=days1-days2
if !days! GEQ %expireddays% rd /q /s "%%~fa-%%b-%%c"
)
endlocal
exit /b
:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
:GetDate yyyy mm dd
setlocal ENABLEEXTENSIONS
set "first="
for /f "tokens=1-3 delims=.-/ " %%a in ('date/t') do (
if not defined first set first=1&set yy=%%a&set mm=%%b&set dd=%%c)
endlocal&set %1=%yy%&set %2=%mm%&set %3=%dd%&goto :EOF
color 0D
MODE con: COLS=71 LINES=25
rem schtasks /create /tn "beifenwenjian.bat" /tr E:\文档备份\beifenwenjian.bat /sc daily /st 16:59:00 /RU SYSTEM
title 办公文件自动备份脚本(任务计划)--作者:小雨
set sou_dir="D:\我的文档"
set obj_dir="E:\文件备份"
set expireddays=60
if exist %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2% echo %date:~0,10%数据已经备份过-退出备份程序 >> %obj_dir%\backup.log && exit/b
md %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2%
xcopy /e /c /h /y %sou_dir% %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2%
echo %date% %time% %date:~0,4%-%date:~5,2%-%date:~8,2% 备份完成 >> %obj_dir%\backup.log
rem 删除指定天数之前的备份
@echo off & setlocal enabledelayedexpansion
call :GetDate y m d
call :DateToDays %y% %m% %d% days1
@for /f "tokens=1-3 delims=-" %%a in ('dir /b/ad') do (
call :DateToDays %%a %%b %%c days2
set/a days=days1-days2
if !days! GEQ %expireddays% rd /q /s "%%~fa-%%b-%%c"
)
endlocal
exit /b
:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
:GetDate yyyy mm dd
setlocal ENABLEEXTENSIONS
set "first="
for /f "tokens=1-3 delims=.-/ " %%a in ('date/t') do (
if not defined first set first=1&set yy=%%a&set mm=%%b&set dd=%%c)
endlocal&set %1=%yy%&set %2=%mm%&set %3=%dd%&goto :EOF
附脚本源文件:
![](template/marshalv3m/images/download.gif)
centos8在停更后使用阿里云提供的源文件
[
2022/08/29 22:27 | by admin ]
![不指定 不指定](images/weather/blank.gif)
1、备份原有yum源配置
cd /etc/yum.repos.d/
mkdir bak
mv ./* bak/
2、下载新的CentOS-Base.repo 到 /etc/yum.repos.d/
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
3、生成缓存
yum clean all && yum makecache
如果要更新为rocky linux版本,则:
4、安装rocky linux
rpm -i --force http://mirror.nju.edu.cn/rocky/8.6/BaseOS/x86_64/os/Packages/r/rocky-release-8.6-4.el8.noarch.rpm \
http://mirror.nju.edu.cn/rocky/8.6/BaseOS/x86_64/os/Packages/r/rocky-repos-8.6-4.el8.noarch.rpm \
http://mirror.nju.edu.cn/rocky/8.6/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-8.6-4.el8.noarch.rpm
5、删除centos残留repo
rm CentOS-Base.repo -f
6、安装
dnf install epel-release
7、更新系统
dnf update
8、重启
init 6
cd /etc/yum.repos.d/
mkdir bak
mv ./* bak/
2、下载新的CentOS-Base.repo 到 /etc/yum.repos.d/
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
3、生成缓存
yum clean all && yum makecache
如果要更新为rocky linux版本,则:
4、安装rocky linux
rpm -i --force http://mirror.nju.edu.cn/rocky/8.6/BaseOS/x86_64/os/Packages/r/rocky-release-8.6-4.el8.noarch.rpm \
http://mirror.nju.edu.cn/rocky/8.6/BaseOS/x86_64/os/Packages/r/rocky-repos-8.6-4.el8.noarch.rpm \
http://mirror.nju.edu.cn/rocky/8.6/BaseOS/x86_64/os/Packages/r/rocky-gpg-keys-8.6-4.el8.noarch.rpm
5、删除centos残留repo
rm CentOS-Base.repo -f
6、安装
dnf install epel-release
7、更新系统
dnf update
8、重启
init 6