托管RDS MYSQL 数据同步至服务器自建DB(DMS等)
创始人
2024-11-06 15:39:19
0

一、自建DB 

Docker部署mysql5.7-CSDN博客  这个文章中有。

可以先对比一下参数信息,不一致的可以先去修改,docker搭建的DB修改 my.cnf  在[mysqld]直接加参数 = 新值,重启一下db

SHOW VARIABLES WHERE variable_name IN (
'log_bin_trust_function_creators',
'transaction_isolation',
'lower_case_table_names',
'sql_mode',
'character_set_server',
'default_character_set',
'innodb_large_prefix',
'max_connections',
'innodb_buffer_pool_size',
'group_concat_max_len'
);

二、配置DMS

1.创建复制实例

子网组需要提前去创建,VPC 要和RDS在同一网段,子网组要覆盖不同可用区的子网。

其次目标端点和源端点必须保持网络是通的,网段不同的话需要加对等连接去配置

什么是VPC对等?

VPC 对等连接是两个 VPC 之间的网络连接,您可通过此连接,可以使用私有 IPv4 地址或 IPv6 地址在两个 VPC 之间路由流量。这两个 VPC 中的实例可以彼此通信,就像它们在同一网络中一样。您可以在自己的 VPC 之间、自己的 VPC 与另一个 AWS 账户中的 VPC 或与其他 AWS 区域中的 VPC 之间创建 VPC 对等连接。

接受对等连接请求

编辑路由表

要将私有 IPv4 流量从实例发送到对等 VPC 中的实例,必须向与实例所在子网关联的路由表添加路由。此路由指向 VPC 对等连接中对等 VPC 的 CIDR 块(或 CIDR 块的一部分),并指定 VPC 对等连接作为目标。

两边的VPC的子网的相关路由都要加上。

两边路由都加上后,对等连接中也会显示对应路由

配置结束可以ping测

2.创建端点

源端点直接选择默认,测试连接在选择同一VPC(复制实例没开公网的话),成功就可以创建端点。

创建目标端点,自己选择引擎类型,服务器名称写公网DNS或者内网DNS(复制实例和服务器在同一子网的话),端口、数据库账户、密码,同理去测试连接一下,成功就可以开始做DMS了。

分别测试连接 ,没问题就可以继续下一步 

3.创建DMS任务

选择刚刚创建的那些内容,迁移类型,第一个是全量,第二是全量加持续增量,第三个是变化的数据

第一个是直接选择就可以

这里补充一点:不执行任何操作的就是对目标端不做操作,对现有数据不做更改,有个弊端就是目标端id=2的age数据为18,源端id=2的数据为17,使用之后还是为17;

第二个删除目标表就等重新同步源端数据

第三个就是把目标端数据删除,结构保留 

都差不多,一个自启动,一个手动启动。要看日志就把日志选上。

迁移类型2、3都需要修改RDS的参数binlog_checksum  NONE、binlog_format ROW 重启RDS才能生效,其他DMS配置跟上面一样。

迁移完成,进行数据校验,查看库的大小。

SELECT table_schema AS `Database`,
       SUM(data_length + index_length) / 1024 / 1024 / 1024 AS `Size (G)`
FROM information_schema.tables
WHERE table_schema = '------'
GROUP BY table_schema;

 可能遇到报错,具体可以分析一下,可能是RDS某个视图或者是数据库出了问题,可以修改视图什么的。

也可以尝试先去把表库结构创建起来,直接弄数据进去。

------------------------------------------------------------------

方法二:数据小的话可以直接使用可视化工具等等直接导出数据库结构与数据,然后在新库执行。

--------------------------------------------

方法三:mysqldump 工具 (数据量大的话,最好使用内网)

先去下载mysqldump、然后dump到服务器,

mysqldump -h ip/dns -u admin -p --no-create-info --skip-triggers --databases db_name > /data/1.sql

  • -h ip/dns:指定MySQL服务器的IP地址或域名。
  • -u admin:使用管理员账户进行连接,admin 是示例用户名,你应该使用实际的管理员用户名。
  • -p:提示输入密码进行连接。
  • --no-create-info:导出时不包含表结构的创建语句。
  • --skip-triggers:导出时不包含触发器。
  • --databases db_name:指定要导出的数据库名,db_name 是示例数据库名,你应该使用实际的数据库名。
  • > /data/1.sql:将导出的数据保存到 /data/1.sql 文件中,/data/1.sql 是示例文件路径,你可以根据需要修改保存路径和文件名。

用于导出MySQL数据库的数据,将指定数据库的数据导出到一个SQL文件中

mysqldump -h ip/dns -u admin -p --databases db_name > /data/1.sql

用于导出指定数据库的数据到一个 SQL 文件中。下面是对命令的解释:

  • -h ip/dns:指定 MySQL 服务器的 IP 地址或域名。
  • -u admin:使用管理员账户进行连接,admin 是示例用户名,你应该使用实际的管理员用户名。
  • -p:提示输入密码进行连接。
  • --databases db_name:指定要导出的数据库名,db_name 是例数据库名,你应该使用实际的数据库名。
  • > /data/1.sql:将导出的数据保存到 /data/1.sql 文件中。

请注意,在实际使用时,确保替换命令中的占位符(如 MySQL 服务器的 IP 地址或域名、用户名、密码和数据库名)以匹配你的实际数据库设置。这样可以确保成功导出指定数据库的数据到指定的 SQL 文件中。

下面恢复到自建DB

mysql -h ip/dns -u root -p test < /data/1.sql

  • -h 172.31.30.145:指定 MySQL 服务器的 IP 地址。
  • -u root:使用 root 用户进行连接,你可以替换为实际的用户名。
  • -p:提示输入密码进行连接。
  • test:指定要导入数据的目标数据库,你可以替换为实际的数据库名。
  • < /data/1.sql:从 /data/1.sql 文件中读取 SQL 语句并执行。

请确保你有足够的权限,并且替换命令中的占位符(如 IP 地址、用户名、密码和文件路径)以适应你的实际环境。此外,在导入数据之前,你需要确保数据库已经存在,并且你有足够的权限在目标数据库中创建表和插入数据。

方法四:docker  数据库容器里面直接运行sql文件

进去容器登录进去mysql  然后去执行source  1.sql

1.sql  要去容器  执行 find / -name 1.sql  去找你对应的容器的文件的位置,登录mysql手动执行也可以。

相关内容

热门资讯

透视绝活!we poker免费... 透视绝活!we poker免费辅助器(透视)切实有辅助辅助器(哔哩哔哩)1、操作简单,无需we po...
推荐透视!德州局脚本,clou... 推荐透视!德州局脚本,cloudpoker外开挂(透视)一直一直总是有辅助攻略(哔哩哔哩)1)clo...
玩家攻略推荐!微信小程序免费黑... 玩家攻略推荐!微信小程序免费黑科技(外挂),微乐家乡官方app真是有挂方式1、超多福利:超高返利,海...
无独有偶!椰子辅助,本来有挂辅... 无独有偶!椰子辅助,本来有挂辅助app(有挂功能)-哔哩哔哩1、任何椰子辅助透视是真的假的的玩家都可...
透视步骤!uupoker透视(... 透视步骤!uupoker透视(透视)一贯有辅助修改器(哔哩哔哩)1、玩家可以在uupoker透视线上...
教你透视!xpoker辅助控制... 教你透视!xpoker辅助控制,竞技联盟破解版最新版(透视)好像一直都是有辅助软件(哔哩哔哩)1、玩...
推荐攻略!微信小程序黑科技(外... 推荐攻略!微信小程序黑科技(外挂),小程序微乐陕西挖坑辅助确实有挂头条1、金币登录送、破产送、升级送...
透视资料!aapoker插件(... 透视资料!aapoker插件(透视)总是真的有辅助软件(哔哩哔哩)1、玩家可以在aapoker插件线...
据权威媒体报道!同城游辅助器,... 据权威媒体报道!同城游辅助器,原来是真的辅助修改器(有挂攻略)-哔哩哔哩进入游戏-大厅左侧-新手福利...
解迷透视!哈糖大菠萝软件下载,... 解迷透视!哈糖大菠萝软件下载,werplan脚本(透视)一直有辅助软件(哔哩哔哩)1、许多玩家不知道...