MySQL数据迁移:采用MySQLdump工具迁移

该方案优点是简单,容易手上;缺点是停机时间较长。 因此它适用于数据量不大,或者允许停机的时间较长,并且在这个时间范围内能够完成。
由于RDS提供的关系数据库服务与原生的数据库服务是完全兼容的,所以对于用户来说,从原有数据库迁移到RDS数据的过程,与从一个mysql服务器迁移到另外一台mysql服务器的过程基本类似。具体的迁移流程如下:
 
1、 开通云服务器服务。
2、 开通RDS服务,如果开通成功,会返回给用户连接地址和端口,比如cloudcc.mysql.rds.aliyuncs.com:3306。
3、 先停止业务,使用MySQLdump的数据导出工具,将您线下原有数据库数据导出为数据文件((本步骤仅仅导出数据,不包括存储过程,函数,触发器)。具体命令如下:
 mysqldump -h local_ip -u user_name -p --opt --default-character-set=utf8   --hex-blob db_name --skip-triggers  > /tmp/db_name.sql
 
其中
local_ip 以您真实的线下MySQL服务器IP地址代替
user_name 以您真实的数据库用户代替
db_name   以您真实的数据库名代替
/tmp/db_name.sql是文件名,由您自己随意填写。
 
4、备份您线下原有数据库的存储过程、触发器和函数(若您数据库中没有使用存储过程、触发器和函数,则跳过这步),在导出存储过程、触发器和函数时,需要将definer去掉,以兼容RDS。具体命令如下:
mysqldump -h local_ip -u user_name -p --opt  --default-character-set=utf8    --hex-blob db_name --triggers --no-data --no-create-info  -R | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/'  > /tmp/trigger_procedure.sql
其中
local_ip 以您真实的线下MySQL服务器IP地址代替
user_name 以您真实的数据库用户代替
db_name   以您真实的数据库名代替
/tmp/trigger_procedure.sql是文件名,由您自己随意填写。
 
5、将数据文件和存储过程文件上传到已经购买的云服务器中。

6、远程登录到云服务器,将刚才上传的数据文件导入到cloudcc.mysql.rds.aliyuncs.com:3306实例中。具体命令如下:
mysql -h cloudcc.mysql.rds.aliyuncs.com -u user_name -p db_name < /tmp/dbName.sql
 
其中
cloudcc.mysql.rds.aliyuncs.com以您真实RDS实例的连接地址代替
user_name 以您真实的RDS数据库用户代替
db_name   以您真实的RDS数据库名代替
/tmp/db_name.sql是刚才前面您导出的数据文件名称
 
7、远程登录到云服务器,将刚才上传的存储过程文件(包含存储过程、触发器和函数,若没有则请跳过此步)导入到cloudcc.mysql.rds.aliyuncs.com:3306实例中。具体命令如下:
mysql -h cloudcc.mysql.rds.aliyuncs.com -u user_name -p db_name < /tmp/triggerProcedure.sql
 
其中
cloudcc.mysql.rds.aliyuncs.com以您真实RDS实例的连接地址代替
user_name 以您真实的RDS数据库用户代替
db_name   以您真实的RDS数据库名代替
/tmp/trigger_procedure.sql是刚才前面您导出的存储过程文件名称
 
至此数据迁移完毕,可以对RDS正常使用。用户可使用数据库客户端工具(如MySQL-Front)或第三方数据库管理工具(如phpmyadmin)以及程序的方式,通过域名和端口号连接数据库,在输入正确的用户名和密码后即可登陆DB进行操作和开发。

二、SQL Server数据迁移:SQL Server 控制台导入(建议)。

1、用户使用流程
 
MySQL数据迁移:采用MySQLdump工具迁移_第1张图片

2、操作说明


2.1 确认工作

1) 仅支持SQLSERVER(2005,2008,2008R2)
2) 仅支持全量备份/恢复
3) 您的数据库的Recover模式必须是FULL模式

2.2准备工作

1)您需要有自己的RDS实例,以及目标数据库;
2)如果数据库里有数据 , 请做好备份,目标数据库中的数据将被覆盖;
3)我们推荐使用Filezilla 3.6.0.2(下载)客户端工具。安装后请不要升级客户端工具版本。

2.3提交数据迁移

1)进入RDS控制台数据库管理页面。
 
MySQL数据迁移:采用MySQLdump工具迁移_第2张图片
 
2) 选择待迁移的数据库,点击上图的“数据迁入”,进入数据导入向导第一步,备份你的远程数据库。
 
MySQL数据迁移:采用MySQLdump工具迁移_第3张图片
 
教你如何备份待迁移的远程源数据库
 
a) 检查源数据库的Recover Mode。
 
Use master;
Go
select name, case recovery_model
when 1 then 'FULL'
when 2 then 'BULD_LOGGED'
when 3 then 'SIMPLE' end model from sys.databases
wherer name not in ('master','tempdb','model','msdb');
go
确认相应DB的model值为FULL,若不为FULL,则请按下面步骤先改成FULL。
 
b) 配置源数据库的Recover Mode
 
注:如果上一步model值为FULL;就不需要操作。
 
ALTER DATABASE [dbname] SET RECOVERY FULL;
Go
ALTER DATABASE [dbname] SET AUTO_CLOSE OFF
GO
改成FULL模式会导致SQL Server日志增加,请注意有足够的硬盘空间。
 
c) 备份源数据库
 
Use master;
Go
BACKUP DATABASE [testdbdb] to disk ='d:\backup\filename.bak' WITH
COMPRESSION,INIT;
Go
注意:上面的filename.bak文件名,要与RDS返回给你的文件名一致;RDS返回的文件名在向导第二步,点击获取FTP信息获取。
 
d) 还原源数据库的Recover Mode
这一步不是必需的, 如果前面有更改过才有必要;
 
ALTER DATABASE [dbname] SET RECOVERY SIMPLE;
Go
 
3)备份好远程源数据库后,进入第二步上传备份文件
 
MySQL数据迁移:采用MySQLdump工具迁移_第4张图片
 
点击上图的“获取FTP信息”,可以获得FTP的连接地址、端口、用户名密码以及RDS返回的此次上传至FTP的上传文件名
 
教你如何将备份文件上传至FTP
 
a) 选择FTP客户端
本文以Filezilla为例,并提供配置说明
 
b) FTP配置信息
Filezilla配置方法
进入“文件”—“站点管理器”,按下图顺序操作:
 
MySQL数据迁移:采用MySQLdump工具迁移_第5张图片
 
c) 完成上传。
 
4)文件上传完成后,进入第三步数据导入确认FTP上传是否完成,且文件大小一致(请特别注意,如文件残缺或非法而进行导入,导入会失败,该实例控制台将一直处于恢复中状态,请您通过工单的方式解除该状态)请注意,若导入后空间总使用量超过85%,则无法进行导入,请先删减实例的数据或扩容空间。
 

MySQL数据迁移:采用MySQLdump工具迁移_第6张图片

你可能感兴趣的:(Mysql)