转载自:http://blog.csdn.net/dixialieren/article/details/51273574
遇到“需要同步两个数据库的结构或者数据”这样的需求时,可以通过Navicat premium(下文统称为Navicat)进行同步,通过同步数据库(非异构数据库)也可以达到迁移对象结构或数据的目的;需要注意的是异构数据库是不能进行同步的,数据库迁移则没有这个限定,如下图1、图2所示;另外,同步功能是按照源数据库中的内容改变目标数据库,源数据库并不会改变;进行数据库同步操作之前("比对"之后)要做好分析,确定同步哪些内容。
图1
打开Navicat,分别添加需要同步的源数据库和目标数据库连接,如下图3所示。
图3
点击工具栏中的“工具”-“结构同步”,并添加源、目标数据库连接信息,在“运行选项”中选择“运行后对比”,如下图4所示。
图4
点击“比对”,开始同步分析,比对完成后如下图5.1所示。选择需要同步的结构,如下图5.2所示,如果只同步"ldps_main"和"joker_test"两个对象,首先在源对象中点击“ldps_main”,在"查询修改"中对应SQL会变蓝色,在相应SQL前的方框选中即可,然后再在源对象中点击“joker_test”,在"查询修改"中相应SQL前的方框选中即可,最后点击"运行查询"。
图5.2
在查询修改语句中,右键选择“全部勾选”,然后点“运行查询”,查询后又开始进行下一次比对分析,如下图6所示,发现还有一张表需要同步,继续右键选择“全部勾选”,然后点“运行查询”,运行完后又进行一次新的比对,如下图7所示,可以得出结论,本次结构同步已经完成,即目标数据库中的结构完全和源数据库中的结构一致。另外,可以切到“信息日志”查看同步日志信息,如下图8所示。
图8
使用Postgres Enterprise Manager打开源、目标数据库验证一下同步结果,如下图9所示,可以得知本次结构同步成功。
使用数据同步,把源数据库中2张表的数据同步到目标数据库中。同步前ri_gds和ri_pcc中的数据(源数据库)如下图10、图11所示。
图11
同步前ri_gds和ri_pcc中的数据(目标数据库)如下图12、图13所示。
图12
图13
开始数据同步,点击工具栏中的“工具”-“数据同步”,并添加源、目标数据库连接信息,源数据库、目标数据库中的表会自动在下方加载,在源表列表中定位到需要同步的表,然后在目标表中选择要同步数据的表,如下图14所示。注意:同步的两张表的结构必需相同,不然会报错。
图14
点击最下方的“开始”,即可开始数据同步,同时会打出数据同步日志信息,如下图15所示。
图15
到目标数据库中验证一下,看数据是不是已经从源数据库同步过来。从目标数据库中查询ri_gds、ri_pcc中的数据,如下图16、图17所示。
有时候我们需要某些或某个表对象的结构定义SQL(数据插入SQL),在目标表对象上右键选择转储sql文件,然后再选择导出结构(结构和数据),如下图1、图2所示。
图1
有时候我们需要备份某个数据库,在目标数据库对象上右键选择转储sql文件,然后再根据备份要求选择导出结构(结构和数据),如下图3所示;恢复数据库时在目标数据库对象上右键选择运行sql文件。
图3