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

mysql数据库库复制,mysql复制数据

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

本文文件夹列表:

  • 1.如何将一个完整的MySQL数据库复制到另一个数据库?
  • 2.如何将mysql数据库复制到另一台电脑上?
  • 3. 如何将MySQL数据库或表复制到另一台服务器?
  • 4.如何将mysql数据库复制到另一台服务器
  • 5. 如何将mysql数据库从一台机器复制到另一台机器

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

如果从库t表数据与主库不一致,导致复制失败,则整个库数据量较大,从库复制非常慢。单独恢复这个表的数据怎么办?一般认为修复单表数据是不可能的,因为它涉及到每个表的状态不一致。下面列出了将单个备份表恢复到从库时会遇到的问题和解决方案:

场景一

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

修复步骤:

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

恢复到从库;

开始复制。

这里的问题是复制起点是aaaa:101,从库t表的数据状态领先于其他表。 aaaa:101-10000 这些事务中只要有更改t表数据的事务,就会引起复制错误,比如主键冲突、记录不存在(还有aaaa:101,就是之前报复制的事务)错误必须是修改表 t 的事务)

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

正确维修步骤:

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

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

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

3.开始复制,播放到aaaa:10000时停止复制(此时从库上所有表的数据状态相同,一致);

启动从站到 SQL_AFTER_GTIDS = 'aaaa:10000';

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

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

场景2

如果复制后报错,使用skip error,复制过滤等方法修复主从复制。主从数据库数据不断更新。

修复步骤:

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

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

将表t恢复到从目录;

开始复制。

这里的问题是复制源是aaaa:20001,aaaa:10000-20000。这些事务不会在从数据库上重放。如果有事务改变了表t中的数据,这些事务将会在从库上丢失。部分数据。

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

正确修复步骤:

给表t添加读锁;

备份主库中的表t;

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

开始复制;

解锁桌子。

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

如何将mysql数据库复制到另一台电脑?

该架构一般用于以下三种场景

1。将多台服务器的数据备份到一台服务器。按照数据分割的方向,是垂直分割。例如,在图2中,公司A、B、C和D是之前分拆的公司。现在,这些分裂的公司必须整合起来并予以支持。这个需求也非常适合多源复制架构。我大致描述一下实现方法:A、B、C、D公司分别位于4台服务器上。每台服务器都有一个数据库,隔离前端业务数据。这样,四家公司的数据就可以全部存储在从库中了。汇总,无需执行进一步操作。在多源复制之前,为了实现这种需求,我们只能在汇总引擎上构建多个MySQL实例,这不可避免地会涉及到跨数据库关联问题。不仅性能会急剧下降,而且也没有单一服务器来管理多个实例。来得很容易。

2。用于从多个前端服务器收集分片数据。

同样,按照数据分割的方向,属于水平分割。例如图3,如果数据按年份细分,需要汇总数据展示,这种结构也非常合适。实现方法稍微复杂一些:比如所有服务器共享相同的数据库和表。为了实现开发的极度透明,前端一般配置分库分表的中间件,例如艾克森的DBLE。

3。汇总并合并来自多个服务器的数据

第三个场景与第一个场景类似。不同的是,不仅需要将数据汇总到目标端,还需要对数据进行合并,相对第一种方法来说要复杂一些。例如,如图4所示,这个需求是否也适合多源复制?答案是肯定的。那么具体该怎么做呢?

如何将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数据库复制到另一台服务器

复制原机mysql/data下的整个数据库目录。

停止新机器上的mysql服务。

在新机器上找到mysql/data目录,将你复制的目录粘贴进去,然后启动mysql服务。

如何将mysql数据库从一台机器复制到另一台机器

1。在 B 机上安装 mysql。

复制 A 机上 mysql/data 下的整个数据库目录。

在 B 机上停止 mysql 服务。

在 B 机上找到 mysql/data 目录,粘贴您的目录复制进去然后启动mysql服务。

2。使用SQL 语句备份和恢复

您可以使用SELECT INTO OUTFILE 语句备份数据,使用LOAD DATA INFILE 语句恢复数据。该方法只能导出数据的内容,不能导出表的结构。如果表结构文件损坏,必须先恢复原来的表结构。

语法:

SELECT * INTO {OUTFILE | DUMPFILE} 'file_name' FROM tbl_name

加载数据 [LOW_PRIORITY] [LOCAL] INFIL 'file_name.txt' [REPLACE |忽略]

进入表 tbl_name

选择 ... INTO OUTFILE 'file_name'

版权声明

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

热门