当前位置:首页 » 数据仓库 » rds数据库迁移
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

rds数据库迁移

发布时间: 2023-01-22 10:02:21

‘壹’ 如何将RDS的数据同步到本地自建数据库

在导入的过程中报错很多,或者导入一半的过程中中断了,需要重新来过;
.在迁入RDS过程中,希望我的数据库还能能正常提供服务;

大量的用户入云全部堵在迁移数据上面,用户与RDS的缘分就差么这临门一脚。工欲善必先利其器,为了更好的帮助用户入云,RDS对现有的用户入云迁移方式进行改进,帮助用户快速稳定迁移入云,分别为用户提供了mysql和sqlserver两套改良迁移工具:
.mysql迁移工具支持在线迁移,用户可以不中断业务的情况下把数据迁移到RDS中来;
.sqlserver的迁移工具采用物理备份的方法,将用户的物理备份上传到FTP中后还原到RDS,提升迁移的速度;
这两套工具目前都已经集成到了RDS的控制台中,可以参考:数据迁移至RDS-MySQL之使用阿里云控制台和 数据迁移至RDS-SQLserveru阿里云控制台.

很多用户在控制台上看到的只是一个黑盒子,在工单中多次咨询迁移的原理,在这里大致讲一下这两个工具的迁移实现:
Mysql在线迁移的原理:

第一步:预检查,主要是验证用户网络的通畅性,账号和环境的检查;
第二步:全量备份,该步骤会把用户的数据全量的mp出一份出来,然后还原到RDS;
第三步:增量迁移,该步骤会解析用户全量期间以及后续产生的binlog应用到RDS;
第四步:切换,当RDS的数据完全追上用户的数据库后,用户就可以开始进行切换了;

Mysql的在线迁移工具目前还有一些限制,比如:
mysql 5.0只支持全量迁移,不支持增量迁移;
不支持mysql5.6的迁移;不支持存储过程,触发器的迁移;
迁移过程中如果有ddl发生则会导致增量迁移失败;

‘贰’ 如何将自建库迁移到阿里云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 实例中的迁移账号

‘叁’ 如何将阿里云的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;

‘肆’ 华为云数据库 rds 如何上传自己现有数据库

您可以使用数据服务服务(DRS)将
本地数据库
迁移至华为云RDS.
另外如果熟悉一些基本操作,可以针对已有数据库【MySQL】,编码确认OK且考虑到版本兼容性都OK的情况下,可以直接将原有数据库导出
数据文件
,然后在RDS上创建数据库,导入
数据库文件
。最后配置好链接相关信息即可。
关于实例连接,可参考:实例连接方式介绍

‘伍’ 云数据库RDS是什么

云数据RDS是关系型数据库服务(Relational Database Service)的简称,是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务。具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份、恢复及优化方案,使您能专注于应用开发和业务发展。

关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。 当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL等。

云关系型数据库(RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务,支持MySQL、SQL Server、PostgreSQL、PPAS(Postgre Plus Advanced Server,高度兼容Oracle数据库)、MariaDB等引擎,并且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案。

云数据库的特性有:实例创建快速、支持只读实例、读写分离、故障自动切换、数据备份、Binlog备份、SQL审计、访问白名单、监控与消息通知等。

(5)rds数据库迁移扩展阅读:

云数据库RDS优势

1、轻松部署。用户能够在RDS控制台轻松的完成数据库申请和创建,RDS实例在几分钟内就可以准备就绪并投入使用。用户通过RDS提供的功能完善的控制台,对所有实例进行统一管理。

2、高可靠。云数据库具有故障自动单点切换、数据库自动备份等功能,保证实例高可用和数据安全。免费提供7天数据备份,可恢复或回滚至7天内任意备份点。

3、低成本。DS支付的费用远低于自建数据库所需的成本,用户可以根据自己的需求选择不同套餐,使用很低的价格得到一整套专业的数据库支持服务。

‘陆’ 请教如何将阿里云服务器上mysql数据库迁入阿里云RDS数据库内

安装一个phpmyadmin的数据库管理软件,导出sql脚本,然后登录RDS管理面板,导入或执行SQL脚本即可,记住使用推荐码 TZ2DHZ 新开ECS或RDS是可以打9.0折的。