mysql实时同步工具|sqlserver同步工具|常见的数据库同步工具

avatar
作者
筋斗云
阅读量:12

SyncNavigator是一款功能强大的数据库同步软件,适用于SQLSERVER, MySQL,具有自动/定时同步数据、无人值守、故障自动恢复、同构/异构数据库同步、断点续传和增量同步等功能,支持Windows xp以上所有操作系统,适用于大容量数据库快速同步。

安装包下载地址:

帮助文档地址:

Web文档地址:

创建第一个同步项目

使用 HKROnline SyncNavigator 创建一个数据库同步项目。只需要通过简单的配置,创建完成后您可以随时执行数据库同步任务。

1.点击 “SyncNavigator(Client)” 图标进入系统。

2.在登录界面中输入连接到的服务器地址,点击 “确定” 按钮开始连接。

注意:这里不是登陆您的数据库,而是登陆到本软件的管理端。

默认情况下直接点击 “连接” 按钮即可(本机默认已经安装)。

默认服务器登录用户名为 “admin” 密码为空。

本机服务器地址 = 127.0.0.1 。

您可以使用域名或者IP地址作为服务器地址。如果指定了端口号可以使用 IP:Port 方式填写。

3.切换到 “同步管理” 面板中点击 “新建” 按钮开始创建同步项目。

4.首先切换到 “来源数据库” 选项卡。填写同步的来源数据库信息。

一般情况下只需要输入数据库地址,数据库名称,登录用户名,登录密码。

数据库地址: 连接到的数据库地址。可以是域名或者IP地址。如果指定了端口号可以使用 IP:Port 方式填写。

数据库名称: 使用的数据库名称。如果已经指定了默认的登录数据库可以为空。

登录用户名: 登录数据库服务器使用的用户名。如果需要使用Windows账户登录请变更 “登录方式”

连接测试: 测试输入的信息是否正确。如果连接失败则会返回具体错误信息。

5.切换到 “目标数据库” 选项卡。以相同的方式填写同步的目标数据库。

您只需要创建一个新的目标数据库,软件会自动创建最大兼容的表结构。

如果您希望目标数据库与来源数据库表结构完全一致,您只需要在目标数据库创建一个空表结构即可。

当您使用 MySQL 作为来源数据库时,同步的表至少需要一个主键。

目标数据库不应包含外键约束,因为它可能导致部分数据无法同步。

如果您的目标数据库与来源数据库结构(如字段类型,约束)不兼容,这可能导致部分数据无法同步。

假设您设置来源库为 192.168.1.2 ,设置目标数据库为 192.168.1.3, 那么数据将从192.168.1.2 同步到 192.168.1.3。如果您的方向设置错误,可能会导致数据被覆盖。

6.切换到 “同步内容设置” 选项卡。选择需要同步的数据库表。

如果需要设置每个表的具体内容可以点击 “详细设置” 按钮进行调整。

您可以设置条件过滤。比如只查询评分大于90的表记录,或者隐藏不需要同步的字段。

如果在这一个步骤未勾选任何表则不会同步任何内容。

7.点击 “确定” 按钮完成项目设置。

8.切换到 “总控制台” 面板中选择需要开始同步的项目。点击 “开始” 按钮即可开始数据库同步。

异构数据库/表同步细节

首先,打开软件,切换到,同步管理,新建一个同步项目,在来源数据库和目标数据库设置好数据连接,以上内容很简单,不做赘述。

下面主要讲解一下同步内容设置这里:

默认,在我们填写好来源数据库和目标数据库,打开同步内容设置界面,这里刷新出来的表都是来源数据库里的表,我们根据所需要同步的表进行全选或者部分选择,如下图:

因为我们要同步到目标表结构与这个来源表结构不同,那么怎么办呢?

这时候,我们双击这些来源表,打开详细配置界面,进行同步方向映射,也就是把来源表里的字段或者表名称进行定向映射到目标表结构,如果是相同的表结构就可以默认不打开特别设置,因为我们这里讲的是异构表结构同步部分字段,所以需要打开设置详情。

顶上目标表名称那里填写同步过去所在表的名称,如果来源表和目标表名字都不一样,这里需要写目标名称,不然会提示表不存在会创建新表。

保持原有表结构这里需要取消勾选,因为我们现在是同步异构数据库。

目标名称(可写*)这里是填写目标表的字段名称的,如果字段名一样可以不写,如果字段名不一样,需要填写新的名称。

同步条件那里基本可以理解成where后的参数,比如可以写 a > 100 ,就会过滤table_1这个表中字段小于100的数据。

另外字段可以勾选,不勾选的字段不会同步。

使用多来源默认是不勾选的,如果多个表数据进入到某一个表中,或者多个表中的不同字段进入到一个目标表中,可以勾选多来源.

勾选只新增的话就不会同步删除或者修改的数据,默认不勾选的,增删改默认会同步。

MYSQL管理的主从同步管理

MYSQL主从同步体系结构当前是最常用的数据库体系结构之一,尤其是对于负载相对较大的网站,因此对于主从同步的管理也很重要。新手经常不知道出现主从同步错误时如何启动。本文是根据自己的经验来详细描述mysql主从管理。

MYSQL主从同步的作用

(1)?数据分配

(2)?负载平衡(负载平衡)

(3)?备份

(4)?高可用性(高可用性)和容错能力

MYSQL主从同步的原理

关于MYSQL的主从同步,最重要的是了解MYSQL的主从同步如何工作,即大师从同步原理上,下图可以清楚地指导其工作过程:

通常描述该过程:从属服务器的IO线程从主服务器获取二进制日志并将其本地保存为中继日志,然后通过SQL线程在从属服务器上执行中继日志的内容,以使从属库和主库保持一致。主从同步的详细过程如下:

1.?主服务器验证连接。

2.?主服务器为从属服务器启动线程。

3.?从服务器告诉主服务器主服务器日志的偏移量。

4.?主服务器检查该值是否小于当前的二进制日志偏移量。

5.如果少于,请通知服务器以获取数据。

6.从属服务器继续从主服务器获取数据,直到完成为止,此时从属服务器线程进入睡眠状态,主服务器服务器线程同时进入睡眠状态。

7.?更新主服务器后,将激活主服务器线程,并将二进制日志推送到从服务器,然后通知从服务器线程进入工作状态。

8.?从服务器SQL线程执行二进制日志,然后进入睡眠状态。

MYSQL主从同步构造实战

构建主从同步是一项比较好的技术工作,在早期做一些事情会使您将来会减少很多工作,并且在施工过程中需要注意一些问题。在构造过程中,将在介绍需要注意的问题的同时介绍构造,以便初学者可以在一开始就有效地避免一些潜在的问题(此处未介绍MYSQL安装):

1.主从同步环境的介绍

操作系统环境:Centos 5.5 64位

MYSQL版本:MYSQL 5.1.50

主服务器的IP:10.1.1.75

来自服务器的IP:10.1.1.76

2.?在主服务器上创建一个同步帐户

GRANT REPLICATION SLAVE,FILE ON *。 *以”复制” @” 10.1.1。%”标识为” 123456″;

冲洗特权;

注意:设置权限时,不要将密码设置得太简单!

3.?服务器配置文件中的更改

服务器ID = 2

复制野生-忽略-表= mysql。%

log-slave-updates#必要时可以打开

注意:

1)服务器ID此项目需要仔细检查,并且不得与主服务器冲突,否则会出现莫名其妙的问题,因为它将根据服务器ID同步时>服务器ID相同的对象将不会被同步,否则可能导致无限循环(当主/主同步或振铃同步时)。

2)?有些人会感到奇怪,为什么我在这里使用它复制-野生-忽略表不使用参数plicate-do-db或复制-ignore-db过滤需要过滤的数据库被同步,不需要同步的数据库。原因有以下几种:

A.复制野生-忽略表参数可以同步所有跨数据库更新,例如plicate-do-db或plicate-ignore-db类似的将不会同步

使用mysql;

更新test.aaa SET数量=数量+ 10;

B.plicate-wild-ignore-table = mysql。%当将来需要添加同步数据库时,可以轻松添加它无需重新启动服务器的数据库。因为将来可能需要同步其他数据库。

3)?auto_increment_increment和auto_increment_offset参数,这些在主主同步中通常使用两个参数来交错自我-增量值,防止键值冲突。

4)-slave-skip-errors参数,除非您非常确定自己在做什么,否则不要随意使用这些参数。使用这些参数时,MYSQL将忽略这些错误,这将导致主服务器和从属服务器之间的数据不一致。

4.从主服务器获取快照版本

如果您具有MYISAM或MYISAM和INNODB,请在主服务器上使用以下命令导出其中一台服务器Snapshot :

mysqldump-uroot-p–lock-tables–events–triggers–routines–flush-logs–master-data = 2-数据库测试\\ db.sql

如果仅尝试使用INNODB,则可以使用以下命令:

mysqldump-uroot-p-单事务–events–triggers–routines–flush-logs–master-data = 2-数据库测试\\ db.sql

在这里,我们需要注意几个参数的使用:

-单笔交易?此参数仅适用于innodb。

-数据库?然后是除mysql以外的所有数据库的库名。我这里只有一个测试库。

-主数据?参数记录快照导出时mysql二进制日志的位置,以后将使用。

5.将快照版本还原到从属服务器

mysqldump-uroot-p-h 10.1.1.76 test \ lt; db.sql

将快照版本还原到从属服务器后,从属服务器上的数据与主服务器上的数据相同服务器。

6.使用从属服务器上的change master来与主服务器同步

使用grep命令查找二进制日志的名称和位置

[root @ ns1]#grep-i”更改主服务器” db.sql

-将MASTER更改为MASTER_LOG_FILE =” mysql-bin.000006″,MASTER_LOG_POS = 106;

生成CHANGE MASTER语句,然后在从属服务器上执行

停止奴隶;?

将MASTER更改为MASTER_HOST =” 10.1.1.75″,MASTER_USER =”复制”,MASTER_PASSWORD =” 123456″,MASTER_LOG_FILE = ” mysql-bin.000006″,MASTER_LOG_POS = 106;

START SLAVE;

这样就完成了主从同步的构造,并最终使用了SHOW SLAVE STATUS \\\\ G;查看Slave_IO_Running和Slave_SQL_Running的状态,如果两者均为”是”,则操作完成。

注意:请勿在配置文件中写入已同步的信息,这不方便管理,尤其是在需要重新启动更改的情况下。

MYSQL主从同步管理

以下是一些用于管理MYSQL主从同步的命令:

1.停止MYSQL同步

停止从IO_THREAD; #Stop IO process

停止从SQL_THREAD; #stop SQL进程

停止奴隶;? #停止IO和SQL进程

2.启动MYSQL同步

START SLAVE IO_THREAD; #开始IO进程

START SLAVE SQL_THREAD; #启动SQL进程

START SLAVE ;? #启动IO和SQL进程

3.?重置MYSQL同步

RESET SLAVE;

用于使从属服务器忘记其在主服务器的二进制日志中的复制位置,它将删除master.info和relay-log.info文件,以及所有中继日志,并启动新的中继日志,您可以在不需要主服务器和从属服务器时在从属服务器上执行此操作。否则,它将在将来进行同步,并可能覆盖您的数据库。我以前遇到过这么愚蠢的事情。哈哈!

4.?查看MYSQL同步状态

显示从属状态;

此命令主要检查Slave_IO_Running,Slave_SQL_Running,Seconds_Behind_Master,Last_IO_Error,Last_SQL_Error的值以掌握复制状态。

5.暂时跳过MYSQL同步错误

通常当朋友mysql主从同步遇到错误(例如主键冲突等)时,我需要确保如果数据行是一致的,请暂时跳过此错误,然后您需要使用SQL_SLAVE_SKIP_COUNTER =?n命令,n是跳过接下来的n个事件,例如我跳过一个事件,操作如下:

停止从动;

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;

START SLAVE;

6.从指定位置重新同步

有时主从同步出现问题,您需要从日志位置的下一个位置进行同步,这等效于跳转该错误之后,此时,只要找到相应的LOG位置,也可以使用CHANGE MASTER命令来处理它,例如:

将MASTER更改为MASTER_HOST =” 10.1.1.75″,MASTER_USER =”复制”,MASTER_PASSWORD =” 123456″,MASTER_LOG_FILE = ” mysql-bin.000006″,MASTER_LOG_POS = 106;

START SLAVE;

MYSQL主从同步管理经验介绍

1.?不要搞混SQL_SLAVE_SKIP_COUNTER命令。

跳过此命令后,您的主从数据可能会不一致。请务必记录指定的错误,然后检查数据是否一致,尤其是核心业务数据。

2.?结合percona-toolkit工具pt-table-checksum定期检查数据是否一致。

这是DBA必须定期执行的操作,是吧,为什么不使用正确的工具而不做呢?另外,percona-toolkit还提供了解决数据库不一致性的方法,可以使用pt-table-sync,此工具不会更改主数据。您也可以使用pt-heartbeat查看从属服务器的向后复制。有关详细信息,请参见:。

3.?使用plicate-wild-ignore-table选项代替using复制数据库或复制-ignore-db。

上面已经说明了原因。

4.将主服务器的日志模式调整为混合。

5.每个表都有一个主键,而主表密钥对数据库的同步会产生影响,尤其是在ROW复制模式。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!