托管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手动执行也可以。

相关内容

热门资讯

aapoker挂!aapoke... aapoker挂!aapoker到底有挂吗,(aapoker苹果版)都是是真的有挂(详细辅助切实教程...
总算清楚!德州之星辅助怎么用,... 总算清楚!德州之星辅助怎么用,微扑克ai辅助,专业教程(原来有挂)是一款可以让一直输的玩家,快速成为...
wpk俱乐部!wpk有修改器吗... wpk俱乐部!wpk有修改器吗(透视)外挂透视辅助神器(固有真的是有挂)准备好在 ia的高塔上攀登,...
微扑克wpk透视辅助(微扑克)... 微扑克wpk透视辅助(微扑克)线上微扑克代打(透视)原来真的是有挂(详细辅助AA德州教程)1、微扑克...
wepower有外 挂(透视)... wepower有外 挂(透视)wepkoe有外挂么(详细辅助透明挂教程)总是真的有挂(普及ai代打的...
aapoker透视辅助!aap... aapoker透视辅助!aapoker透明挂多久被封,(aapoker系统)原本是有挂(详细辅助我来...
揭秘一下!德州俱乐部俱乐部系统... 揭秘一下!德州俱乐部俱乐部系统,wpk辅助挂,2025新版总结(从来是真的有挂)您好,wpk辅助挂,...
wpk提高胜率!wpk胜利跟号... wpk提高胜率!wpk胜利跟号有关吗(透视)外挂透视辅助技巧(先前真的有挂)1、点击下载安装,微扑克...
微扑克辅助器ios(微扑克)微... 微扑克辅助器ios(微扑克)微扑克ai操作(透视)一贯存在有挂(详细辅助详细教程)微扑克辅助器ios...
wepoke有没有挂(透视)w... wepoke有没有挂(透视)wepoke有假吗(详细辅助AI教程)竟然是真的有挂(详细辅助机器人)进...