常见的数据库同步,主要有下面几种方法来实现。
1。对于少量的数据,采用SQL
Server
自带的<<导入导出>>工具即可。
2。采用SQLServer自带的数据库同步功能,叫做《订阅/分发》,可以实现一个数据库,或者多个数据库的同步。
3。如果对数据库这块不熟悉,也可以采用专业的数据库同步工具,如
SyncNavigator
.
它可以实现较为复杂的数据库同步。
你自己写触发器或者程序来实现基本上是不现实的。比如网络中断的异常处理,等等,都需要考虑的非常详细,没有个一年半载是写不出来的。
Ⅱ sql如何将两个表里的数据同步
可以通过sql触发器来实现。
例下列触发器代码 :
createtriggertri_kszb_insert
onygpx_kszb--操作的表名
forinsert--给表插入一条数据的时候触发
as
declare@kssjdatetime
declare@sqbhchar(40)
select@kssj=kssj,@sqbh=sqbhfrominserted--把插入的数据的保存到变量
insertintoygpx_kszb2values(@kssj,@sqbh)--同步插入到另一表
以上触发器可以实现,在表ygpx_kszb中插入数据,同步插入到表ygpx_kszb2 。
触发器还可以针对表的insert,delete, update 操作时安装要求执行数据同步的操作,即可实现两个表里的数据同步。
Ⅲ SQL数据库同步如何实现
oracle和mysql的同步可以用软件来同步:ora2mysql
至于别的数据库同步,应该可以找到类似的软件
还可以自己写个程序来同步的
Ⅳ SQL数据库自带的(发布,订阅)数据同步问题
回答1:再次同步只会同步变化的数据。因此不必担心数据量大的问题
回答2:可以测试一次发布/订阅所需要的总体时间,建议同步时间比这个总时间略大
回答3:发布订阅无法做到实时同步。如需实时同步,可尝试做日志传送、镜像,这两种可以达到用户感官上的实时同步
Ⅳ 如何实现两个SQL数据库的同步操作
sql同步使用dblink同步数据。
具体参考实例:
1、在win下创建linux的DBLINK
a.查看linux下的tnsnames.ora文件
[oracle@myrac1 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /s01/app/oracle/proct/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
HJJ =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myrac1.oracle.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = hjj)
)
)
b.创建dblink
SQL> create database link win_lin_link connect to hjj identified by xxxx
2 using '(DESCRIPTION =
3 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.171)(PORT = 1521))
4 (CONNECT_DATA =
5 (SERVER = DEDICATED)
6 (SERVICE_NAME = hjj)
7 )
8 )'
9 /
Database link created.
2.在win下创建trigger
SQL> create or replace trigger trig_win_emp
2 after insert on emp
3 for each row
4 begin
5 insert into emp@win_lin_link values(:new.empno,:new.empname,:new.empsalary);
6 end;
7 /
Trigger created.
3.测试
4.结果
win下插入数据
SQL> insert into emp values('E001','LYN',2300);
1 row created.
SQL>COMMIT;
Commit complete.
SQL> select *from emp;
EMPNO EMPNAME EMPSALARY
---------------------------------------- ---------------------------------------- ----------
E001 LYN 2300
SQL> select * from emp@win_lin_link;
EMPNO EMPNAME EMPSALARY
---------------------------------------- ---------------------------------------- ----------
E001 LYN 2300
linux下查看数据
SQL> select * from emp;
EMPNO EMPNAME EMPSALARY
-------------------- -------------------- ----------
E001 LYN 2300
Ⅵ 如何同步sql server里的数据
有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。
1.在Oracle中建立对应的contract 和 contract_project表,需要同步哪些字段我们就建那些字段到Oracle表中。
这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:
SELECT *
FROM msdb.dbo.MSdatatype_mappings
SELECT *
FROM msdb.dbo.sysdatatypemappings
来查看SQLServer和其他数据库系统的数据类型对应关系。第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。
SQLServer和Oracle的对应
2.建立链接服务器。我们将Oracle系统作为SQLServer的链接服务器加入到SQLServer中。
Ⅶ SQL SERVER跨数据库数据同步
A、B两个数据库在同一个服务器上?
可以用触发器实现,如果A、B数据库的数据都会变化的话,
那么两边都要建立触发器,
比如A库a表上建立触发器(增删改都需要,只举插入触发器的例子)
select @字段1=字段1,@字段2=字段2,@主键=主键...
from inserted
if exists(select * from B.dbo.a where 主键=@主键)
begin
--如果有重复的数据怎么处理?是报错,还是不做任何处理直接return,在这里写语句
end
insert into B.dbo.a(字段1,字段2....)
values(@字段1,@字段2....)
如果不在同一台服务器上,用触发器就不太保险,因为如果其中一台服务器出了故障,对表的增删改操作都会出问题,除非你能保证两台服务器都能运行正常,或者可以在很短的时间内排除故障。
Ⅷ sql如何将两个表里的数据同步
使用 merge into。
Ⅸ Sql数据库同步怎么做
哪个数据库?Mysql还是Mssql? MSSQL数据同步利用数据库复制技术实现数据同步更新(来自网络,也是非常完美的教程) 复制的概念 复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。 SQL复制的基本元素包括 出版服务器、订阅服务器、分发服务器、出版物、文章 SQL复制的工作原理 SQLSERVER主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器 SQLSERVER复制技术类型 SQLSERVER提供了三种复制技术,分别是: 1、快照复制(呆会我们就使用这个) 2、事务复制 3、合并复制 只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。接下来我们就一步一步来实现复制的步骤。 第一先来配置出版服务器 (1)选中指定[服务器]节点 (2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令 (3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。 (4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution) 第二创建出版物 (1)选中指定的服务器 (2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框 (3)选择要创建出版物的数据库,然后单击[创建发布] (4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助) (5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQLSERVER2000"的数据库服务器 (6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表 (7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。 第三设计订阅 (1)选中指定的订阅服务器 (2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅] (3)按照单击[下一步]操作直到系统会提示检查SQLSERVER代理服务的运行状态,执行复制操作的前提条件是SQLSERVER代理服务必须已经启动。 (4)单击[完成]。完成订阅操作。 完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。接下来就是判断复制是否成功了打开
采纳哦
Ⅹ 如何实现SQL数据库自动同步到U盘
可以实现的,最简单的方式是使用批处理程序,借助优盘的自动运行功能,即可实现,但是这样缺乏灵活性,你可以写个程序,监视系统的U盘是否插入,然后进行相关操作