① 如何将自建库迁移到阿里云RDS
前提条件
已完成 RDS 实例数据库的准备,可参见申请外网地址和MySQL 5.7高可用版/5.5/5.6创建数据库和账号。
操作步骤
本例以有公网 IP 的本地数据库迁移到 RDS 上为例。
准备本地数据
在正式迁移之前,需要先在本地数据库和 RDS 实例中创建迁移账号,并在 RDS 实例中创建要迁移的数据库,并将要迁移的数据库的读写权限授权给迁移账号。不同的迁移类型需要不同的权限,如下表所示。
迁移类型
结构迁移
全量迁移
增量迁移
本地数据库 select select select replication slave replication client
RDS 实例 读写权限 读写权限 读写权限
在本地数据库中创建迁移账号。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';参数说明:
例:要创建账号为William,密码为Changme123的账号从任意主机登录本地数据库,命令如下:
CREATE USER 'William'@'%' IDENTIFIED BY 'Changme123';username:要创建的账号
host:指定该账号登录数据库的主机。如果是本地用户可以使用localhost,如果想让该用户从任意主机登录,可以使用通配符%
password:该账号的登录密码
在本地数据库中给迁移账号授权,本地数据库中迁移账号的权限要求请参见上表。
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;参数说明:
例:授权账号William对所有数据库和表的所有权限,并可以从任意主机登录本地数据库,命令如下:
GRANT ALL ON *.* TO 'William'@'%';说明
如果需要进行增量迁移,那么需要确认本地数据库的 binlog 是否开启并正确设置,执行以下步骤。
privileges:该账号的操作权限,如 SELECT、INSERT、UPDATE 等。如果要授权该账号所有权限,则使用ALL
databasename:数据库名。如果要授权该账号所有的数据库权限,则使用通配符*
tablename:表名。如果要授权该账号所有的表权限,则使用通配符*
username:要授权的账号名
host:授权登录数据库的主机名。如果是本地用户可以使用localhost,如果想让该用户从任意主机登录,可以使用通配符%
WITH GRANT OPTION:授权该账号能使用GRANT命令,该参数为可选
开启本地数据库的 binlog。
使用如下命令查询是否开启了binlog。
show global variables like "log_bin";如果查询结果为 log_bin=OFF,那么本地数据库没有开启 binlog。为了使迁移过程中产生的增量数据能同步迁移,需要修改配置文件my.cnf中的如下参数。
log_bin=mysql_binbinlog_format=rowserver_id=大于 1 的整数binlog_row_image=full //当本地 MySQL 版本大于 5.6 时,则需设置该项修改完成后,重启 MySQL 进程。
$mysql_dir/bin/mysqladmin -u root -p shutdown$mysql_dir/bin/safe_mysqld &其中,“mysql_dir”为MySQL安装目录。
数据准备完毕后,即可进入正式的迁移操作。
在RDS 管理控制台上单击迁移数据库,进入DTS,如下图所示。
后续操作
因迁移账号拥有读写权限,为了保证本地数据库安全,请在数据迁移完成后,删除本地数据库和 RDS 实例中的迁移账号
② 如何将阿里云的数据库备份RDS文件在本地恢复
打开腾讯手机管家-更多-微云网盘
进入微云界面后我们会发现微云界面有三种不版同的权功能选项,分别是网盘相册和传输三种功能。 进入到微云网盘中用Q登陆,我们能上传我们的资料等,下次可以在别处用Q登陆微云根据不同需求进行不同的选择和使用,能很好的保护我们的资料
③ 如何将RDS的数据同步到本地自建数据库
用户在购买完RDS后,接下来就可以开始往RDS迁入数据了。在RDS刚刚对外提供服务的时候,用户只能通过将自己的数据库mp成为sql文件,然后再将sql文件source到RDS中去:数据迁移至RDS-MySQL之使用MySQLmp工具,数据迁移至RDS-SQLserver之利用SQL Server客户端工具,这两种方法是最简单的方法,但是局限性也非常的多:
.用户的数据库太大了,逻辑sql导入的方式速度太慢了,严重影响停机时间;
.在导入的过程中报错很多,或者导入一半的过程中中断了,需要重新来过;
.在迁入RDS过程中,希望我的数据库还能能正常提供服务;
大量的用户入云全部堵在迁移数据上面,用户与RDS的缘分就差么这临门一脚。工欲善必先利其器,为了更好的帮助用户入云,RDS对现有的用户入云迁移方式进行改进,帮助用户快速稳定迁移入云,分别为用户提供了mysql和sqlserver两套改良迁移工具:
.mysql迁移工具支持在线迁移,用户可以不中断业务的情况下把数据迁移到RDS中来;
.sqlserver的迁移工具采用物理备份的方法,将用户的物理备份上传到FTP中后还原到RDS,提升迁移的速度;
这两套工具目前都已经集成到了RDS的控制台中,可以参考:数据迁移至RDS-MySQL之使用阿里云控制台和数据迁移至RDS-SQLserveru阿里云控制台.
很多用户在控制台上看到的只是一个黑盒子,在工单中多次咨询迁移的原理,在这里大致讲一下这两个工具的迁移实现:
Mysql在线迁移的原理:
第一步:备份用户对本地数据库进行物理备份;
第二步:备份上传至RDS提供的ftp服务器上(ftp地址支持私网和公网上传);
第三步:RDS扫描校验用户上传备份文件通过后,恢复至用户RDS;
第四步:用户切换应用至RDS;
由于sqlserver目前还没有开放日志接口,所以RDS目前还不能支持在线迁移;
RDS目前不支持master库的导入。
希望这篇文章对你使用RDS有帮助。
④ 如何迁移腾讯云服务器自建数据库到云数据库
第一,根据自建数据库的数据量、MySQL版本以及访问量等信息申请对应的云数据库实例,申请云数据库实例完成后,联系云数据库的腾讯云技术人员调整云数据库和云服务器之间的网络配置。
第二,迁移数据库:
1、使用mysqlmp导出自建数据库的数据,注意记录binlog的文件和位置(如需帮助请咨询云数据库技术人员宽液),然后使用mysql命令导入至对应的云数据库岩薯实例中。推荐使用云数据库多线程导入导出工具。
2、在自建数据库上给云数据库的同步用户授权,授权语句范例如下:
GRANT REPLICATION SLAVE,FILE ON *.* TO 'replication'@'%' IDENTIFIED BY 'test123';
3、在导入数据后根据备份的binlog位置和binlog文件使用change master命令配置从自建数据库到云数粗巧者据库的主从同步。范例如下:
CHANGE MASTER TO MASTER_HOST='10.1.1.10',MASTER_USER='replication',MASTER_PASSWORD='test123',MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=106;
第三,迁移后数据校验:数据同步完成之后,可以使用数据抽样、对比表数量、库数量或者使用专业的对比工具确认数据是否完整。
第四,业务切换数据库:校验数据完整后,请选择适当时间来做业务的平滑切换,将业务连接的数据库切换至云数据库,切换后请务必检查自建数据库是否还有请求进来,避免出现还有请求连接到自建数据库的情况。
第五,断开自建数据库和云数据库主从同步:
1、切换后业务正常后,业务侧在云数据库上执行如下命令断开自建数据库到云数据库的主从同步。
2、断开主从同步后通知云数据库的技术人员恢复之前调整的网络。
⑤ 如何将阿里云的mysql(RDS)数据备份到本地
本例以本地服务器为 RHEL6/x64 系统,备份文件存储路径为/home/mysql/为例。
下载云数据库物理备份文件并上传至目标服务器。备份文件获取方法请参见下载备份数据。如果目标服务器可以访问源实例,您也可以使用wget "url"下载备份文件。其中url为备份文件下载地址。
切换路径到备份文件所在路径。
cd /home/mysql/
解压备份文件。
其中,filename.tar.gz为备份文件名。
tar vizxf filename.tar.gz
检查解压后文件包含的数据库是否正确。
系统显示如下,其中db0dz1rv11f44yg2、mysql和test为云数据库中存在的数据库。
-rw-r--r-- 1 root root 269 Aug 19 18:15 backup-my.cnf
drwxr-xr-x 2 root root 4096 Aug 21 10:31 db0dz1rv11f44yg2
-rw-rw---- 1 root root 209715200 Aug 7 10:44 ibdata1
drwxr-xr-x 2 root root 4096 Aug 21 10:31 mysql
drwxr-xr-x 2 root root 4096 Aug 21 10:31 test
-rw-r--r-- 1 root root 10 Aug 19 18:15 xtrabackup_binary
-rw-r--r-- 1 root root 23 Aug 19 18:15 xtrabackup_binlog_info
-rw-r--r-- 1 root root 77 Aug 19 18:15 xtrabackup_checkpoints
-rw-r--r-- 1 root root 2560 Aug 19 18:15 xtrabackup_logfile
-rw-r--r-- 1 root root 72 Aug 19 18:15 xtrabackup_slave_info
cd filename/
ll
恢复数据文件。
系统显示innobackupex: completed OK!,则数据恢复成功。
innobackupex --defaults-file=./backup-my.cnf --apply-log ./
修改配置文件。将解压文件backup-my.cnf中的innodb_fast_checksum、innodb_page_size、innodb_log_block_size注释掉,并且添加datadir=/home/mysql,如下所示。
# This MySQL options file was generated by innobackupex-1.5.1.
# The MySQL Server
[mysqld]
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=524288000
#innodb_fast_checksum=0
#innodb_page_size=16364
#innodb_log_block_size=512
datadir=/home/mysql/
重装 MySQL 系统库,取得数据库的 root 权限。
系统显示如下,则 mysql 系统库重装成功。
Installing MySQL system table...
OK
Filling help table...
OK
rm -rf mysql
mysql_install_db --user=mysql --datadir=/home/mysql/
修改文件属主。
chown -R mysql:mysql /home/mysql/
启动 mysqld 进程。
mysqld_safe --defaults-file=/home/mysql/backup-my.cnf &
使用客户端登录数据库。
mysql –u root –p
验证数据库是否完整。
系统显示入选,则数据库恢复成功。
+--------------------+
| Database |
+--------------------+
| information_schema |
| db0dz1rv11f44yg2 |
| mysql |
| performance_schema |
| test |
+--------------------+
show databases;