请大家帮我分析下,谢谢了
--------------
同一台机子两个不同数据库之间,假设a库和b库,他们中有大概20个表需要数据同步
我以两库其中一个表为例,a库中表table1(字段1,字段2...),b库中的表table2(字段3,字段4....).注意:table1,table2他们表名和字段名都不相同,但我需要把他们中一些字段的数据同步。
这样估计就不能用复制功能了,因为结构都不一样。
看到了网上这种问题很多建议使用触发器,在这里想详细的问一下:
触发器是a库有数据插入或更新,b库也跟着同样操作,这个原本可以满足,但是有个问题,a库中有很多历史数据,b库是新库,这是不是只能保证新插入的数据同步,历史数据我怎么让他也全部到b库,另外这样20个表同步每个都写触发器,这样效率会不会受影响?
求求大家了,项目很急哦,总的来说就是这样子:
把a库的表历史数据全部插入到b库,并且a库表新增的数据也同步到b库表,a库表中这些历史数据以及新来数据怎么样才能完全毫无遗漏的搬到b库表中?
在线等待,请大家仔细看了在解答,不要复制一堆就走人哦,提出一个好的解决问题的办法,谢谢大家了
7 个解决方案
#1
表名,字段名都不一样,如何同步?
在一个数据库中做视图,直接查询另一个库的数据行不行?
在一个数据库中做视图,直接查询另一个库的数据行不行?
#2
可以先把历史数据insert into 再用触发器同步
或用共用一表
写个视图等
或用共用一表
写个视图等
#3
我也不想啊,别人要求这么干,没办法,就是相当于把一个旧表中数据插入到一个新表,只是字段名不一样,我不知道怎么把a库这一堆历史数据弄过来,因为a库每天还有新数据进来。。
#4
爱多vcd的方法我也正在考虑
我的想法是这样的,先用存储过程把历史数据全部insert 到新库,对于新来的数据再用触发器控制同步,可我不知道中间是否会有数据缺失,因为这个a库也一直在插入数据,搞得郁闷啊
简直是源源不断进来啊,这要怎么来个判断啊
我的想法是这样的,先用存储过程把历史数据全部insert 到新库,对于新来的数据再用触发器控制同步,可我不知道中间是否会有数据缺失,因为这个a库也一直在插入数据,搞得郁闷啊
简直是源源不断进来啊,这要怎么来个判断啊
#5
1.先把数据插入到B库BB表(其他表一样)
insert into B..BB(col1,col2....) select col1,col2... from AA
2.在A库AA表中做个触发器(需要同步数据的表都做).
一旦有数据插入,就把数据同时插入到B库BB表中.
字段名选则好.
create trigger my_trig on AA for insert
as
insert into B..BB(col1,col2....) select col1,col2... from AA
go
insert into B..BB(col1,col2....) select col1,col2... from AA
2.在A库AA表中做个触发器(需要同步数据的表都做).
一旦有数据插入,就把数据同时插入到B库BB表中.
字段名选则好.
create trigger my_trig on AA for insert
as
insert into B..BB(col1,col2....) select col1,col2... from AA
go
#6
谢谢爱多vcd和老乌龟........ :)
看来只有这样了,只是这个地方我怎么分开哪些是历史数据,哪些是刚进来
插入历史数据肯定要花点时间,数据超级多,这时候触发器还没加上,不少数据已经进来了
就丢失了数据了,各位有没有好的想法,不是我追求完美,而是这些数据比较重要,丢失了我就不好说话了,再搞不好,我就要改行了,呵呵
看来只有这样了,只是这个地方我怎么分开哪些是历史数据,哪些是刚进来
插入历史数据肯定要花点时间,数据超级多,这时候触发器还没加上,不少数据已经进来了
就丢失了数据了,各位有没有好的想法,不是我追求完美,而是这些数据比较重要,丢失了我就不好说话了,再搞不好,我就要改行了,呵呵
#7
通用文件和数据库同步软件《同步专家网络版》
数据库同步演示文件:
http://www.datsync.net/down.asp?file=download/dat演示.rar&name=数据库同步演示
软件下载:
http://www.ahjoe.com/prodnet.asp
文件同步教程:
http://www.ahjoe.com/netdoc.htm
特点:
通过ODBC访问数据库所以可以支持绝大多数数据库类型。支持不同类型数据库之间数据同步,只要有相应数据库的ODBC驱动程序即可。可自定义需要同步的字段。可限定需要同步的记录的时间范围。可选择数据压缩传输,使得在低带宽条件下也能有较好的速度。
注:字段名称要相同。
数据库同步演示文件:
http://www.datsync.net/down.asp?file=download/dat演示.rar&name=数据库同步演示
软件下载:
http://www.ahjoe.com/prodnet.asp
文件同步教程:
http://www.ahjoe.com/netdoc.htm
特点:
通过ODBC访问数据库所以可以支持绝大多数数据库类型。支持不同类型数据库之间数据同步,只要有相应数据库的ODBC驱动程序即可。可自定义需要同步的字段。可限定需要同步的记录的时间范围。可选择数据压缩传输,使得在低带宽条件下也能有较好的速度。
注:字段名称要相同。
#1
表名,字段名都不一样,如何同步?
在一个数据库中做视图,直接查询另一个库的数据行不行?
在一个数据库中做视图,直接查询另一个库的数据行不行?
#2
可以先把历史数据insert into 再用触发器同步
或用共用一表
写个视图等
或用共用一表
写个视图等
#3
我也不想啊,别人要求这么干,没办法,就是相当于把一个旧表中数据插入到一个新表,只是字段名不一样,我不知道怎么把a库这一堆历史数据弄过来,因为a库每天还有新数据进来。。
#4
爱多vcd的方法我也正在考虑
我的想法是这样的,先用存储过程把历史数据全部insert 到新库,对于新来的数据再用触发器控制同步,可我不知道中间是否会有数据缺失,因为这个a库也一直在插入数据,搞得郁闷啊
简直是源源不断进来啊,这要怎么来个判断啊
我的想法是这样的,先用存储过程把历史数据全部insert 到新库,对于新来的数据再用触发器控制同步,可我不知道中间是否会有数据缺失,因为这个a库也一直在插入数据,搞得郁闷啊
简直是源源不断进来啊,这要怎么来个判断啊
#5
1.先把数据插入到B库BB表(其他表一样)
insert into B..BB(col1,col2....) select col1,col2... from AA
2.在A库AA表中做个触发器(需要同步数据的表都做).
一旦有数据插入,就把数据同时插入到B库BB表中.
字段名选则好.
create trigger my_trig on AA for insert
as
insert into B..BB(col1,col2....) select col1,col2... from AA
go
insert into B..BB(col1,col2....) select col1,col2... from AA
2.在A库AA表中做个触发器(需要同步数据的表都做).
一旦有数据插入,就把数据同时插入到B库BB表中.
字段名选则好.
create trigger my_trig on AA for insert
as
insert into B..BB(col1,col2....) select col1,col2... from AA
go
#6
谢谢爱多vcd和老乌龟........ :)
看来只有这样了,只是这个地方我怎么分开哪些是历史数据,哪些是刚进来
插入历史数据肯定要花点时间,数据超级多,这时候触发器还没加上,不少数据已经进来了
就丢失了数据了,各位有没有好的想法,不是我追求完美,而是这些数据比较重要,丢失了我就不好说话了,再搞不好,我就要改行了,呵呵
看来只有这样了,只是这个地方我怎么分开哪些是历史数据,哪些是刚进来
插入历史数据肯定要花点时间,数据超级多,这时候触发器还没加上,不少数据已经进来了
就丢失了数据了,各位有没有好的想法,不是我追求完美,而是这些数据比较重要,丢失了我就不好说话了,再搞不好,我就要改行了,呵呵
#7
通用文件和数据库同步软件《同步专家网络版》
数据库同步演示文件:
http://www.datsync.net/down.asp?file=download/dat演示.rar&name=数据库同步演示
软件下载:
http://www.ahjoe.com/prodnet.asp
文件同步教程:
http://www.ahjoe.com/netdoc.htm
特点:
通过ODBC访问数据库所以可以支持绝大多数数据库类型。支持不同类型数据库之间数据同步,只要有相应数据库的ODBC驱动程序即可。可自定义需要同步的字段。可限定需要同步的记录的时间范围。可选择数据压缩传输,使得在低带宽条件下也能有较好的速度。
注:字段名称要相同。
数据库同步演示文件:
http://www.datsync.net/down.asp?file=download/dat演示.rar&name=数据库同步演示
软件下载:
http://www.ahjoe.com/prodnet.asp
文件同步教程:
http://www.ahjoe.com/netdoc.htm
特点:
通过ODBC访问数据库所以可以支持绝大多数数据库类型。支持不同类型数据库之间数据同步,只要有相应数据库的ODBC驱动程序即可。可自定义需要同步的字段。可限定需要同步的记录的时间范围。可选择数据压缩传输,使得在低带宽条件下也能有较好的速度。
注:字段名称要相同。