Code前端首页关于Code前端联系我们

mysql完全复制数据库 mysql如何将表从一个数据库复制到另一个数据库

terry 2年前 (2023-09-30) 阅读数 60 #Mysql
文章标签 Mysql

本文列表:

  • 1.如何将一个完整的MySQL数据库复制到另一个数据库?
  • 2. 如何将MySQL数据库或表复制到另一台服务器?
  • 3、Mysql将数据从一个数据库复制到另一个数据库的表中。两个表具有相同的结构。

如何将完整的MySQL数据库复制到另一个数据库?

如果子库中t表的数据与主库数据不一致,导致复制错误,整个数据库包含大量数据,子库处理速度非常慢。如何只恢复该表中的数据?一般认为,修复单个表的数据是不可能的,因为涉及到各个表的状态不一致。下面列出了将单个备份表恢复到从库时遇到的问题和解决方案:

场景一

如果复制过程中报错,没有使用错误跳过、复制过滤等方法修复主从复制。主库数据不断更新,子库数据陷入错误状态(假设GTID为aaaa:1-100)。

修复步骤:

备份主库中的表t(假设备份的GTID为aaaa:1-10000);

恢复到下级数据库;

开始复制。

问题是复制起点为aaaa:101,子库t表的数据状态领先于其他表。 aaaa:101-10000 如果这些事务中存在修改表t数据的事务,就会导致主键冲突、记录不存在等复制错误(而aaaa:101,之前报复制错误的事务必须是是修改表 t 的事务)

解决方案:开始复制时,跳过修改表 t 的事务 aaaa:101-10000。

正确维修步骤:

1.备份主库中的表t(假设备份的GTID为aaaa:1-10000),恢复到从库;

2。设置复制过滤和过滤表:

ALTER REPLICATE FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_name.t');

3.开始复制,播放到aaaa:10000时停止复制(目前子库所有表数据状态一致,一致);

START SLAVE DO SQL_AFTER_GTIDS = 'aaaa:10000';

4.删除复制过滤器并正常开始复制。

注意:这里使用mysqldump --single-transaction --master-data=2 记录备份快照对应的GTID

场景2

如果复制后报错,使用跳过错误、复制过滤, ETC。修复主从复制。主从数据库数据不断更新。

修复步骤:

备份主库中的表t(假设备份的GTID为aaaa:1-10000);

停止从从库复制,GTID为aaaa:1-20000;

将表t恢复到子库;

开始复制。

问题是复制起点是aaaa:20001、aaaa:10000-20000。这些事务不会在子数据库中重播。如果存在修改表t的数据的事务,则这些事务将在子数据库中丢失。部分数据。

解决方案:从备份开始到复制开始,锁定t表,保证aaaa:10000-20000内没有事务修改t表。

正确修复步骤:

给表t添加读锁;

备份主库中的表t;

停止从库复制并恢复表t;

开始复制;

解锁桌子t。

如果是大表,可以使用可移植表空间来备份和恢复表,以减少表锁定时间。

如何将MySQL数据库或表复制到另一台服务器?

使用此方法之前,我们需要下载MySQL SqlYog客户端工具。点击这里下载并安装\x0d\x0a\x0d\x0a现在我们开始复制数据库:\x0d\x0a1。打开SqlYog社区版,在不同选项卡中打开源数据库服务器和目标数据库服务器。这个非常重要。 \x0d\x0a\x0d\x0a在源数据库服务器选项卡上,您将看到所有数据库的列表。 \x0d\x0a2。右键单击需要复制和迁移的数据库,然后从上下文菜单中选择“将数据库复制到另一台主机/数据库”。 \x0d\x0a3。在弹出的对话框中我们可以看到源数据库服务器和目标服务器。 ,在左侧,勾选复选框以选择需要复制和迁移的对象,例如表、函数、触发器等。您还可以选择所有对象。 \x0d\x0a4。在右侧选择需要迁移的目标服务器或数据库。 \x0d\x0a5。根据需要选择复制类型:“Structure and data”或“Structure only”,即“结构和数据”或“仅结构”。 \x0d\x0a6。选择后,点击“复制”按钮开始复制,直至数据迁移完成。

mysql 将数据从一个数据库复制到另一个数据库的表中。这两个表结构相同

1。使用 Navicat 软件迁移复制的数据库。打开Navicat,在左侧空白处右键,点击新建连接下的MySQL,创建服务器连接。下面将演示本地数据迁移到服务器:

2。在弹出的创建新连接的窗口中输入服务器IP、数据库账号、密码等。然后就可以连接数据库了:

3。创建完成后,打开本地数据库,点击“数据传输”(Data Transfer),就会出现新界面:

4。在新窗口中,选择左侧本地数据库库以及需要传输的表。您可以选择一张或多张桌子:

5。然后在右侧的目标中,选择与服务器的连接,然后选择服务器上的数据库:

6。选择完成后,将开始数据传输。数据量不是太大,很快就传输完成。以上就是如何将mysql中的数据复制到另一个数据库:

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门