当前位置:文档之家› 数据库同步

数据库同步

一个是远程SQLServer数据库,一个是本地SQLServer数据库回答验证码:换一张登录并发表取消回答dhy40022008-11-18 10:15:22下介绍实现复制的步骤。

(以快照复制为例)准备工作:1.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:我的电脑--D:\ 新建一个目录,名为: PUB--右键这个新建的目录--属性--共享--选择"共享该文件夹"(另外还可以通过"权限"按纽来设置具体的用户权限--确定2.设置SQL代理(SQLSERVERAGENT)服务的启动用户开始--程序--管理工具--服务--右键SQLSERVERAGENT--属性--登陆--选择"此账户"--输入".\Administrator",或者选择其他系统管理员--"密码"中输入该用户的密码3.设置SQL Server身份验证模式,解决连接时的权限问题企业管理器--右键SQL实例--属性--安全性--身份验证--选择"SQL Server 和Windows"--确定4.在发布服务器和订阅服务器上互相注册企业管理器--右键SQL Server组--新建SQL Server注册...--下一步--可用的服务器中,输入你要注册的远程服务器名--添加--下一步--连接使用,选择第二个"SQL Server身份验证"--下一步--输入用户名和密码--下一步--选择SQL Server组,也可以创建一个新组--下一步--完成lixiaohui11520012008-11-20 10:29:07假设你的远程SQLServer数据库和你的本地是局域网,不知道sqlServer里面有没有dblin k(oracle中有,oracle就是用DBLink实现数据库同步的)。

ai000052009-10-04 08:05:07MSSQL数据同步利用数据库复制技术实现数据同步更新(来自网络,也是非常完美的教程) 复制的概念复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。

使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。

复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。

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之间。

接下来就是判断复制是否成功了打开C:/ProgramFiles /MicrosoftSQLServer/MSSQL/REPLDATA/unc/XIAO WANGZI_database_database下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。

要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表—ai000012009-10-05 12:06:08Database Link 翻译过来就是数据库链接。

创建的语法很简单,建议还是记住sql的创建方式。

一,关于文档关于这个比较详细的可以参考oracle 文档<<Oracle? DatabaseAdministrator's Guide10g Release 2 (10.2)>>, B14231-02。

前者是书名,后者是文件Pdf文件名。

在该书中的第29章对database link 有比较详细的介绍,从第5节到第16节都是。

29-6 What are database link ? 什么是数据库链接?29-7 What are shared database link? 什么是共享数据库链接?29-8 Why use database link ? 为什么使用数据库链接?Global Database Names in Database links 数据库链接中的全局数据库名称29-9 Names for dabase links 数据库链接的名称29-10 Types of Database Links 数据库链接的种类29-11 Users of Database Links 数据库链接的用户29-13 Creation of Database Links :Examples 创建数据库链接的例子29-14 Schema objects and Database Links 模式中的对象和数据库链接的关系29-15 Database Link Restrictions 数据库链接的限制二,对文档的详细解释2.1 什么是数据链接?这个就不用说了,值得提的就是,它们是单向的作用的。

2.2 什么是共享数据库链接?关于这个描述还是比较复杂的,这是oracle文档为什么老是这么多的缘故之一,A:共享数据库链接是本地服务器进程和远程数据库之间的连接,但是多个的客户端进程可以共享它。

B:本地的服务器和远端的服务器可以是各种的模式(shared server or decicated s erver),共有四种组合C:不同的用户可以通过一个网络连接来访问远程的模式对象。

D:一个共享的数据库链接可以在不同的会话间共享。

而非共享的数据库连接不能。

E:如果服务器是共享型配置的,共享连接是直接在共享服务器上的一个进程上建立的。

而非共享类型的数据库链接必须通过分发器来创建,需要分发器的上下文切换,数据也必须通过这个分发器。

2.3 为什么用数据库链接?这个是想当然的,您不必要成为远程数据库的用户就可以访问远程数据库的对象。

2.4 数据库链接中的全局数据命名。

关于这个则必须了解每个数据库的全局命名。

一个数据库的全局数据库命名,在创建的时候已经建立起来了,它是被初始化参数DOMAIN_NAME,DB_NAME. 最终它们的组成方式和一般的站点的组成是一样的,越大的放在越后面。

譬如某个数据库的名称可以使2.5 数据库链接的命名方式。

这是和初始化参数global_names密切相关的,如果是TRUE,则本地的DBLINK必须和远程的服务器的GLOBAL NAME同名,否则就可以是任意的。

ORACLE 建议您使用全局的命名方式,因为许多的特性都要求使用这个,包括数据的复制。

2.6 类型分为PRIVATE ,PUBLIC,和GLOBAL 。

PRIVATE只能在某个数据库中的某个模式下创建,并且也只能在这个模式下使用。

用户是特定的。

PUBLIC可以被一个数据库中的不同用户使用,创建者必须是PUBLIC.GLOBAL可以被一个ORACLE网络中的所有服务器使用,但是这个网络中必须有目录服务器(DIRECTORYSERVER),而这个数据库链接就是被自动创建和存储在目录服务器上的。

创建者必须是目录服务器上的PUBLIC.2.7 链接中的用户。

指的是链接串中用户。

譬如Create database link SP connect to User using 'Sp';这个connect to后面连接的用户可以是当前连接的用户(不输入用户(,也可以是关键字current_user ,也可以指定了用户的。

关于用户的内容有许多,具体的看pdf.2.8 模式对象和链接的关系。

使用schema.object@global_database_name来访问远程的数据对象。

2.9 限制或者局限。

Grant privileges on remote objects 不能分配权限■ Execute DESCRIBE operations on some remote objects. The following remot eobjects, however, do support DESCRIBE operations:–Tables–Views–Procedures–Functions不能对表格,视图,过程和函数使用desc操作■ Analyze remote objects 不能分析远程对象■ Define or enforce referential integrity 不能定义或者强制关系一致性■ Grant roles to users in a remote database 不能给非远程用户赋予角色■ Obtain nondefault roles on a remote database. F or example, if jane connectstothe local database and executes a stored procedure that uses a fixed user link connecting as scott, jane receives scott's default roles on the remote database.Jane cannot issue SET ROLE to obtain a nondefault role. 不能获得远程服务器上的非默认对象,当用指定链接的时候。

相关主题