阿里云
技术周刊订阅频道
发表主题 回复主题
  • 1559阅读
  • 2回复

[RDS]【云计算的1024种玩法】使用 DTS 轻松迁移云数据库

级别: 论坛版主
发帖
9331
云币
14091
— 本帖被 不靠谱贝贝 设置为精华(2018-01-25) —
* %p6+D-C  
n/_cJD \  
前言 '|r('CIBN/  
PjEKZHHz  
YShtoaCx>  
相信很多老站长将己的网站从旧服务迁移到云服务器上的时候最头疼的就是数据库的备份和还原了吧。一些有年头的地方门户可能数据库文件即便是压缩后都会有几个G那么大,用 phpMyAdmin 根本不可能完全导出,就算用其他工具导出了备份文件上传下载传输又要浪费不知道多少时间,要知道国内服务器基本上都没大多带宽。 H4'xxsx  
其实阿里一直都有为大家上云迁移数据库准备一个很干货的产品,那就是 数据传输(DTS),可以方便的实现 MySQL、SQLServer、PostgreSQL、MongoDB 等多种数据源到 RDS、ECS甚至非阿里云服务器的迁移。 t 7D2k2x9  
这里以 MySQL 服务器为例向大家介绍操作教程,其实还支持 SQLServer、PostgreSQL、MongoDB、Redis 等常见数据库。 ^F<[5e)M  
ZFy>Z:&S,  
要求 & 收获 `F:PWG`  
CtwMMZXX3  
X*Mw0;+T  
需要使用到的产品:
  1. 任意(包括非阿里云)服务器/ECS/轻量应用服务器(安装任意 Linux 发行版镜像)
  2. MySQL 数据库
  3. 云数据库 MySQL 版(或者其他接受迁移的数据库)
  4. 数据传输产品
dB7E&"f  
通过本文你将讲学到:
  1. 使用 DTS
  2. 数据库的快速迁移和恢复
^'DrU< o  
~y{(&7sM  
教程 WY%LeC!t  
9 |Iq&S  
rm*Jo|eH`  
=4 &/Pr  
被迁移数据库可访问设置 ,[IN9W  
S2)rkX$  
)J+vmY~&  
传统网站架构一般来说为了安全起见,数据库的设置默认都是只接受本机(localhost)访问的,而 DTS 的迁移必须依赖公网,所以我们需要为 DTS 开放连接支持。 jcF/5u5e  
UA3%I8gu_  
服务器防火墙 UO}Kk*  
ANh5-8y  
LQSno)OZ  
一般来说服务器会有一个防火墙,CentOS 7 是 FireWall、CentOS 6 、 Debian 是 iptables 以及 Ubuntu Server 是 UFW。 Qz;2RELz  
FireWall 开放数据库端口: V|vU17Cgy  
  1. systemctl start firewalld.service #开启防火墙
  2. #开放 http 80 和 https 443 和 SSH 22 端口
  3. firewall-cmd --zone=public --add-port=3306/tcp --permanent
  4. #生效规则
  5. firewall-cmd --reload
GYot5iLg  
zH8l-0I+$  
iptables 开放数据库端口: ^ MkT">  
修改 /etc/sysconfig/iptables 文件 Qh-k[w0  
适当位置加入:
  1. -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
Y;>0)eP  
v`B7[B4K3  
然后重启
  1. iptables/etc/init.d/iptables restart  
6/9 A'!4C  
D .| h0gU  
ufw 开放数据库端口
  1. ufw allow mysql
^1U2&S  
/EhojODMF  
Nzz" w_#  
开放账户的远程连接 ymybj  
C\UD0r'p?  
f+Nq?GvwBQ  
首先,我们要通过命令行登录操作一下 数据库:
  1. mysql -u root -p
r: n^U#  
o9~Z! &p  
然后会需要输入一下 root 密码,输入的时候是隐藏的并不是说没有输入进去。然后运行:
  1. GRANT ALL PRIVILEGES ON *.* TO '数据库账号'@'%' IDENTIFIED BY '对应账号的密码' WITH GRANT OPTION;
  2. FLUSH PRIVILEGES;
sj003jeko  
=kohQ d.n  
如果有安装 phpMyAdmin 就更简单了: mY2 Ubn*  
在 用户 - 登录信息 中将 Host 改成 任意主机 就行 gPY2Bnw;l  
<T:u&Ic  
a9}cpfG=)  
N5[QQtQ  
数据库的设置 E N%cjvE  
Fsv%=E{  
_OP75kv  
修改 my.cnf 文件,一般来说该文件会位于: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf 这几个位置,如果不知道就翻阅一下服务器环境的手册。 LJYFz=p "  
找到 bind-address = 127.0.0.1 修改为:
  1. bind-address    = 0.0.0.0
ge?1ez2  
w<N [K>  
一些交旧的 MySQL 版本,可能用的使用 skip-networking 命令来关闭网络,将其删掉即可。 v"6q!  
然后重启 MySQL。 s CSrwsbhv  
  1. service mysql restart
D_`MeqF}C  
]H) x  
ok,被迁移数据库的设置到此结束。这是一个大难点,因为不同的环境差异性太大。 Q/r9r*>z  
rC}r99Pe:x  
迁移 >Rs:Fw|jro  
8a|p`)lT  
\kZxys!4  
设置被迁移数据库是唯一的难点,不过掌握了以后就可以通吃所有数据库了。如果目标迁移数据库是 云数据库 就不需要额外的设置了,创建好迁移数据库和账号就行。如果是迁移至自建的数据库,那么就需要再重复一次第一步了。 [F%INl-sy  
一、进入 DTS 创建迁移任务 填写好 被迁移数据库 和 目标数据库,然后点击 测试,提示 测试通过 就ok了。 wgpu]ooUF&  
wz31e!/  
jTaEaX8+  
二、选择迁移对象,一般来说就是整个数据库都迁移。 如果有特殊的需求,比如说一个论坛的数据库肯定是不断增长的,如果要迁移就可能需要关站,但是通过增量迁移帖子对应的表就可以实现不关站的平滑迁移了,当然这对操作者的技能要求比较高,但是已经极大的降低了难度了。 K+TRt"W8&s  
]$!-%pNv  
0RN]_z$;H  
三、然后就是预检查的如果都是绿勾就是一点事情都没有,如果有不对的地方就需要改正。 xR q|W4ay  
PYPs64kNC]  
rq Dre`m  
四、然后选择链路规格: _n@#Lufx  
4a00-y='  
nJY#d;  
不同规格价格不同,不过貌似迁移到阿里云是不用钱的还是因为演示数据量太小我也是傻傻分不清楚。 'J#u ;KJ  
五、然后等两个绿条都 100% 了就可以了,我们就可以修改数据库配置文件将数据库改成 RDS 或者其他被迁移的数据库即可。 +DaP XZ5.  
:o?On/  
级别: 架构狮
发帖
1240
云币
1988
只看该作者 沙发  发表于: 01-25
您的帖子很精彩!希望很快能再分享您的下一帖!
级别: 架构狮
发帖
1240
云币
1988
只看该作者 板凳  发表于: 01-25
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
验证问题: 27 + 68 = ?
上一个 下一个