阿里云
阿里云多端小程序中小企业获客首选
发表主题 回复主题
  • 8902阅读
  • 3回复

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

级别: 论坛版主
发帖
9349
云币
14165
— 本帖被 不靠谱贝贝 设置为精华(2018-01-25) —
NY~ dM\  
y.jS{r".  
前言 qsI{ b<n  
IetCMp  
eA`]K alH  
相信很多老站长将己的网站从旧服务迁移到云服务器上的时候最头疼的就是数据库的备份和还原了吧。一些有年头的地方门户可能数据库文件即便是压缩后都会有几个G那么大,用 phpMyAdmin 根本不可能完全导出,就算用其他工具导出了备份文件上传下载传输又要浪费不知道多少时间,要知道国内服务器基本上都没大多带宽。 t@X M /=d  
其实阿里一直都有为大家上云迁移数据库准备一个很干货的产品,那就是 数据传输(DTS),可以方便的实现 MySQL、SQLServer、PostgreSQL、MongoDB 等多种数据源到 RDS、ECS甚至非阿里云服务器的迁移。 TAXd,z N  
这里以 MySQL 服务器为例向大家介绍操作教程,其实还支持 SQLServer、PostgreSQL、MongoDB、Redis 等常见数据库。 #uQrJh1o8  
5k K= S  
要求 & 收获 !?yxh/>lM  
7^c2e*S  
aZ8h[#]7  
需要使用到的产品:
  1. 任意(包括非阿里云)服务器/ECS/轻量应用服务器(安装任意 Linux 发行版镜像)
  2. MySQL 数据库
  3. 云数据库 MySQL 版(或者其他接受迁移的数据库)
  4. 数据传输产品
RwUW;hU  
通过本文你将讲学到:
  1. 使用 DTS
  2. 数据库的快速迁移和恢复
7 2`/d`  
j6`6+W=S(  
教程 Q%rVo4M#2  
QxKAXq@)i  
pMOD\J:l,  
C=8H)Ef,l  
被迁移数据库可访问设置 [70Y,,w  
IT,"8 s  
%cS#+aK6M'  
传统网站架构一般来说为了安全起见,数据库的设置默认都是只接受本机(localhost)访问的,而 DTS 的迁移必须依赖公网,所以我们需要为 DTS 开放连接支持。 S<*';{5~  
bG52s  
服务器防火墙 m^ z,,t9  
=+`D  
*<w3" iq  
一般来说服务器会有一个防火墙,CentOS 7 是 FireWall、CentOS 6 、 Debian 是 iptables 以及 Ubuntu Server 是 UFW。 ACgt" M.3F  
FireWall 开放数据库端口: H%FM  
  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
g/x_m.  
FZeP<Ban  
iptables 开放数据库端口: *jGPGnSo  
修改 /etc/sysconfig/iptables 文件 }lH;[+u3  
适当位置加入:
  1. -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
P7'M],!9w  
$kv@tzO  
然后重启
  1. iptables/etc/init.d/iptables restart  
8*vFdoE_oO  
y`({ .L  
ufw 开放数据库端口
  1. ufw allow mysql
)TM!ms+K  
$]Jf0_  
h:_NA  
开放账户的远程连接 |"_)zQ  
f0OgK<.>T  
HXyFj  
首先,我们要通过命令行登录操作一下 数据库:
  1. mysql -u root -p
Jlz9E|*qV  
7O"hiDQ  
然后会需要输入一下 root 密码,输入的时候是隐藏的并不是说没有输入进去。然后运行:
  1. GRANT ALL PRIVILEGES ON *.* TO '数据库账号'@'%' IDENTIFIED BY '对应账号的密码' WITH GRANT OPTION;
  2. FLUSH PRIVILEGES;
%Or2iuO%-,  
* ]>])ms)  
如果有安装 phpMyAdmin 就更简单了: ,^HS`!s[ E  
在 用户 - 登录信息 中将 Host 改成 任意主机 就行 IOX:yxj  
3Qa?\C&4  
(NPxab8e*  
=88t*dH(,"  
数据库的设置 ERp{gB2U?  
v O PMgEI  
IEc>.J|T&  
修改 my.cnf 文件,一般来说该文件会位于: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf 这几个位置,如果不知道就翻阅一下服务器环境的手册。 4? v,wq  
找到 bind-address = 127.0.0.1 修改为:
  1. bind-address    = 0.0.0.0
?@>;/@  
9Eu #lV  
一些交旧的 MySQL 版本,可能用的使用 skip-networking 命令来关闭网络,将其删掉即可。 0_Lm#fE U  
然后重启 MySQL。 zPHy2H$28  
  1. service mysql restart
W\%q} q2?  
0lBat_<8  
ok,被迁移数据库的设置到此结束。这是一个大难点,因为不同的环境差异性太大。 {!MVc<G.  
'd+:D'  
迁移 .x>HA^4  
,&[7u9@  
Qne0kB5m  
设置被迁移数据库是唯一的难点,不过掌握了以后就可以通吃所有数据库了。如果目标迁移数据库是 云数据库 就不需要额外的设置了,创建好迁移数据库和账号就行。如果是迁移至自建的数据库,那么就需要再重复一次第一步了。 (2d3jQN`  
一、进入 DTS 创建迁移任务 填写好 被迁移数据库 和 目标数据库,然后点击 测试,提示 测试通过 就ok了。 yZ5 x8 8>  
M}u1qXa  
f0u56I9  
二、选择迁移对象,一般来说就是整个数据库都迁移。 如果有特殊的需求,比如说一个论坛的数据库肯定是不断增长的,如果要迁移就可能需要关站,但是通过增量迁移帖子对应的表就可以实现不关站的平滑迁移了,当然这对操作者的技能要求比较高,但是已经极大的降低了难度了。 `On3/gU|  
RT/qcS^Oz  
^j[Ku  
三、然后就是预检查的如果都是绿勾就是一点事情都没有,如果有不对的地方就需要改正。 /h7.oD8CU  
3(C :X1  
:PUK6,"5]O  
四、然后选择链路规格: G0pBR]_5z$  
fx]eDA|$e  
%Ci^*zb  
不同规格价格不同,不过貌似迁移到阿里云是不用钱的还是因为演示数据量太小我也是傻傻分不清楚。 r ^ Y~mq  
五、然后等两个绿条都 100% 了就可以了,我们就可以修改数据库配置文件将数据库改成 RDS 或者其他被迁移的数据库即可。 F3Dt7q  
~$Y|ca  
级别: 架构狮
发帖
1217
云币
1946
只看该作者 沙发  发表于: 2018-01-25
您的帖子很精彩!希望很快能再分享您的下一帖!
级别: 架构狮
发帖
1217
云币
1946
只看该作者 板凳  发表于: 2018-01-25
级别: 程序猿
发帖
497
云币
745
只看该作者 地板  发表于: 2018-08-11
Re【云计算的1024种玩法】使用 DTS 轻松迁移云数据库
只能迁移到云数据库,要是能用内网迁移到自定义数据库就好了。
[ 此帖被服务器云在2018-11-09 22:58重新编辑 ]
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个
      ×
      全新阿里云开发者社区, 去探索开发者的新世界吧!
      一站式的体验,更多的精彩!
      通过下面领域大门,一起探索新的技术世界吧~ (点击图标进入)