SQL Server2005 两台服务器上的数据库同步
SQL Server2005数据库复制实现同步备份(技术文档)

通过SQL Server2005数据库复制实现自动备份By wumeilei复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。
使用复制技术,用户可以将一份数据发布到多台服务器上,复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性,间接实现数据库同步备份。
SQL SERVER提供了三种复制类型:快照复制、事务复制、合并复制。
快照复制指在某一时刻给出版数据库中的出版数据照相,然后将数据复制到订阅者服务器。
快照复制是将整个数据集发送给订阅服务器,由于体积大而造成复制周期较长,会形成复制滞后问题。
事务复制使用事务日志来生成将复制到订阅服务器的事务,因为它只复制事务也就是变化,所以滞后也比快照复制低得多。
下面以事务复制为例进行描述。
测试发布服务器:LIUJICHE-7F6D04测试分发服务器:LIUJICHE-7F6D04测试订阅服务器:34CB3FFA485C4FF一、建立发布(在LIUJICHE-7F6D04机器操作)在发布前请确保SQL SERVER代理已经启动、发布数据库的日志是完整模式。
以SA用户登录发布服务器SQL Server。
在左侧树结构中找到【复制】——>【本地发布】节点,点击右键,选择【新建发布】,如下图:弹出如下窗口:点击【下一步】,选择需要复制的数据库,如“acctrue_T_Code”:点击【下一步】,选择“事务性发布”:点击【下一步】,选择需要复制的数据库表,如“CodeContentItem”点击【下一步】,不需要筛选:点击【下一步】,选择“立即创建快照并使快照保持可用状态,以初始化订阅”和“计划在以下时间运行快照代理”。
然后点击【更改】按钮,调整复制时间计划,根据需要进行定义,此次以1分钟间隔为例。
更改后如下图:点击【下一步】:点击【安全设置】按钮,按照下图所示进行选择:设置完成后如下图:点击【下一步】:点击【下一步】,输入发布名称,如“abc”:点击【完成】按钮,系统将创建发布,提示成功后创建发布完成。
将SQLServer2005中的数据同步到Oracle中

将SQLServer2005中的数据同步到Oracle中有时由于项⽬开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。
不同数据库类型之间的数据同步我们可以使⽤链接服务器和SQLAgent来实现。
假设我们这边(SQLServer2005)有⼀个合同管理系统,其中有表contract 和contract_project是需要同步到⼀个MIS系统中的(Oracle9i)那么,我们可以按照以下⼏步实现数据库的同步。
1.在Oracle中建⽴对应的contract 和 contract_project表,需要同步哪些字段我们就建那些字段到Oracle表中。
这⾥需要注意的是Oracle的数据类型和SQLServer的数据类型是不⼀样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运⾏:SELECT *FROM msdb.dbo.MSdatatype_mappingsSELECT *FROM msdb.dbo.sysdatatypemappings来查看SQLServer和其他数据库系统的数据类型对应关系。
第⼀个SQL语句是看SQL转Oracle的类型对应,⽽第⼆个表则更详细得显⽰了各个数据库系统的类型对应。
根据第⼀个表和我们的SQLServer中的字段类型我们就可以建⽴好Oracle表了。
ORACLE bigint NUMBER 19 3 1ORACLE binary BLOB NULL 0 1ORACLE binary RAW -1 4 1ORACLE bit NUMBER 1 3 1ORACLE char CHAR -1 4 1ORACLE char CLOB NULL 0 1ORACLE char VARCHAR2 -1 4 1ORACLE datetime DATE NULL 0 1ORACLE decimal NUMBER -1 3 1ORACLE double precision FLOAT NULL 0 1ORACLE float FLOAT NULL 0 1ORACLE image BLOB NULL 0 1ORACLE int NUMBER 10 3 1ORACLE money NUMBER 19 3 1ORACLE nchar NCHAR -1 4 1ORACLE nchar NCLOB NULL 0 1ORACLE ntext NCLOB NULL 0 1ORACLE numeric NUMBER -1 3 1ORACLE nvarchar NCLOB NULL 0 1ORACLE nvarchar NVARCHAR2 -1 4 1ORACLE nvarchar(max) NCLOB NULL 0 1ORACLE real REAL NULL 0 1ORACLE smalldatetime DATE NULL 0 1ORACLE smallint NUMBER 5 3 1ORACLE smallmoney NUMBER 10 3 1ORACLE sysname NVARCHAR2 128 4 1ORACLE text CLOB NULL 0 1ORACLE timestamp RAW 8 4 1ORACLE tinyint NUMBER 3 3 1ORACLE uniqueidentifier CHAR 38 4 1ORACLE varbinary BLOB NULL 0 1ORACLE varbinary RAW -1 4 1ORACLE varbinary(max) BLOB NULL 0 1ORACLE varchar CLOB NULL 0 1ORACLE varchar VARCHAR2 -1 4 1ORACLE varchar(max) CLOB NULL 0 1ORACLE xml NCLOB NULL 0 1ORACLE bigint NUMBER 19 3 1ORACLE binary BLOB NULL 0 1ORACLE binary RAW -1 4 1ORACLE bit NUMBER 1 3 1ORACLE char CHAR -1 4 1ORACLE char CLOB NULL 0 1ORACLE char VARCHAR2 -1 4 1ORACLE datetime DATE NULL 0 1ORACLE decimal NUMBER -1 3 1ORACLE double precision FLOAT NULL 0 1ORACLE float FLOAT NULL 0 1ORACLE image BLOB NULL 0 1ORACLE int NUMBER 10 3 1ORACLE money NUMBER 19 3 1ORACLE nchar CHAR -1 4 1ORACLE nchar CLOB NULL 0 1ORACLE ntext CLOB NULL 0 1ORACLE numeric NUMBER -1 3 1ORACLE nvarchar CLOB NULL 0 1ORACLE nvarchar VARCHAR2 -1 4 1ORACLE nvarchar(max) CLOB NULL 0 1ORACLE real REAL NULL 0 1ORACLE smalldatetime DATE NULL 0 1ORACLE smallint NUMBER 5 3 1ORACLE smallmoney NUMBER 10 3 1ORACLE sysname VARCHAR2 128 4 1ORACLE text CLOB NULL 0 1ORACLE timestamp RAW 8 4 1ORACLE tinyint NUMBER 3 3 1ORACLE uniqueidentifier CHAR 38 4 1ORACLE varbinary BLOB NULL 0 1ORACLE varbinary RAW -1 4 1ORACLE varbinary(max) BLOB NULL 0 1ORACLE varchar CLOB NULL 0 1ORACLE varchar VARCHAR2 -1 4 1ORACLE varchar(max) CLOB NULL 0 1ORACLE xml CLOB NULL 0 1ORACLE bigint NUMBER 19 3 1ORACLE binary BLOB NULL 0 1ORACLE binary RAW -1 4 1ORACLE bit NUMBER 1 3 1ORACLE char CHAR -1 4 1ORACLE char CLOB NULL 0 1ORACLE char VARCHAR2 -1 4 1ORACLE datetime DATE NULL 0 1ORACLE decimal NUMBER -1 3 1ORACLE double precision FLOAT NULL 0 1ORACLE float FLOAT NULL 0 1ORACLE image BLOB NULL 0 1ORACLE int NUMBER 10 3 1ORACLE money NUMBER 19 3 1ORACLE nchar NCHAR -1 4 1ORACLE nchar NCLOB NULL 0 1ORACLE ntext NCLOB NULL 0 1ORACLE numeric NUMBER -1 3 1ORACLE nvarchar NCLOB NULL 0 1ORACLE nvarchar NVARCHAR2 -1 4 1ORACLE nvarchar(max) NCLOB NULL 0 1ORACLE real REAL NULL 0 1ORACLE smalldatetime DATE NULL 0 1ORACLE smallint NUMBER 5 3 1ORACLE smallmoney NUMBER 10 3 1ORACLE sysname NVARCHAR2 128 4 1ORACLE text CLOB NULL 0 1ORACLE timestamp RAW 8 4 1ORACLE tinyint NUMBER 3 3 1ORACLE uniqueidentifier CHAR 38 4 1ORACLE varbinary BLOB NULL 0 1ORACLE varbinary RAW -1 4 1ORACLE varbinary(max) BLOB NULL 0 1ORACLE varchar CLOB NULL 0 1ORACLE varchar VARCHAR2 -1 4 1ORACLE varchar(max) CLOB NULL 0 1ORACLE xml NCLOB NULL 0 12.建⽴链接服务器。
SQLServer2005两台服务器上地大数据库同步

1.1测试环境1.2发布Server1机上建SQL Server Agent的用户用户名:SQL_Publisher(自己定)密码:123456(自己定)给SQL_Publisher用户添加Administrators管理用户组。
1.3发布机的配置在“开始”菜单中,找到 Microsoft SQL Server 2005=>配置工具=> SQL Server Configuration Manager1.4开启Server1和Server2机的数据库服务器身份验证步骤:打开SQL Server Management Studio=>选择Server1=>右键,选择属性=>选择安全性=>服务器身份验证:选择SQL Server和Windows身份验证模式(S)2发布机Server1配置2.1发布机Server1上的快照文件位置的设置在D:\下建立一个文件夹RepblData,利用Serv-U Ftp工具建立一个Ftp指向该目录:Ftp用户名:ftp_user(自己定)Ftp密码:123456(自己定)权限:读,写,追加发布机Server1上的快照文件位置的设置步骤:打开SQL Server Management Studio=>打开Server1=>打开复制=>右键选择本地发布=>选择分发服务器属性=>选择发布服务器=>将默认快照文件夹设置为D:\RepblData2.2在Server1和Server2分别建立数据库CNBlogsDemo,在Server1上表如下分别在Server1和Server2上的数据库CNBlogsDemo,加入Publisher用户,设置为db_ownerdb_datareader、db_datawriter角色:2.3建立发布快照步骤设置快照的FTP路径、帐号和密码3.订阅服务器Server2上的配置步骤:备份数据库的订阅就建好了!现在来瞧一瞧订阅服务器CNBlogsDB2上的用于复制的数据库CNBlogsDemo:我们在发布服务器上建立的表CNBlogsTest复制过来了。
利用SQLServer2005复制功能实现与Oracle数据库同步方法

利用SQLServer2005复制功能实现与Oracle数据库同步在项目中经常会遇到一个项目操作几个数据库的情况,若是同种类型的数据库也还好说,可以直接链接两个数据库,也可以用数据库的同步功能。
若我们的项目使用SQLServer2005进行开发,而且项目中要用到Oracle数据库中的数据,那么又该怎么实现拉?一般来说方案有以下几种。
1.分别建立链接对数据库进行操作,SQLServer可以用,操作Oracle可以用OLEDB或者用System.Data.OracleClient(需要添加引用才能用)这种方案的优点就是简单,各自写各自的数据库操作代码,缺点就是不能将两个数据库中的表直接进行联合查询,链接Oracle的每台机器必须安装OracleClient 才可以使用。
2.使用同义词操作Oracle数据库。
这种方法的具体操作我在以前的文章中已经写清楚了,这样做一来可以进行表的联合查询,二来不需要每台机器都安装OracleClient,但是还是有一个缺点:效率低,比如对同义词使用like去查找需要的数据,如果是直接连Oracle数据库也许只要0.1秒就可以找到答案,但是用同义词可能就要等10秒20秒或更久。
原来SQLServer并不是直接把查询语句传递给Oracle,让Oracle执行操作,而是将所有数据都取到SQLServer服务器上,边取数据边分析,直到满足查询条件为止。
其实这种数据放在两个服务器上还有一个缺点就是一旦Oracle服务器宕机,即使我们这边的所有服务器都是好的,那么我们的程序中用到Oracle数据的地方就无法使用。
3.直接链接Oracle数据库+同义词+作业+异常跳转方式。
这种方法具体讲就是我们的程序直接用OLEDB(OracleClient)链接Oracle数据库,同时SQLServer服务器也建立了同义词指向Oracle,在SQLServer上建立作业,将同义词中的数据拷贝到SQLServer服务器的表中。
Sql2005双机带盘柜

Windowserver2008x32位+sql2005双机(带盘柜)注意:
1、在配置双机之前需要把数据库的主服务和监听修改成“手动”
2、在两个主机上面同样的目录简历日志文件文件名相同
3、存放数据库的目录完全一样
1、添加主机然后右键“登录”
2、添加节点(输入IP地址名和密码登录)
选择心跳和主机的IP
3、添加站点(输入IP地址和密码)
在链路信息里边选择(心跳和主机IP)
4、添加任务
操作:在基本项里边修改任务名称、选择模式
在源-目录项里边选择源和目标的日志文件夹和数据库存放的文件夹
5、添加包(主界面)
操作:
1、添加IP
(添加虚拟的IP和子网掩码)其他选项默认
2、添加盘柜
操作:在基本项里边添加设备和挂载点(就是添加的盘柜的盘符)、选择存储类型
3、添加数据库主服务
4、添加监听
5、点击保存
用虚拟IP登录数据库。
sql server 2005数据同步(创建域与加入域)

一. 加入域(发布方必须, 订阅方非必须).1.在DC中使用DCPROMO命令创建域:因为目前还没有AD(活动目录),现在是在AD中创建第一个域,所以此项应选择"新域的域控制器":选择"新林中的第一个域":输入域名(不能重名):设置NETBIOS名,为了像WIN98这样的操作系统能够访问此域:选择AD数据库和日志文件的存放位置:存放SYSVOL的存放位置(注意:一定要放在NTFS的分区中哦):注意:AD是离不开DNS服务的,因为客户机加入域和登录域都需要把域名解析为IP地址,这一过程都需要DNS服务器的支持,所以域是离不开DNS的,但反过来是不对的!因为此时DC没有DNS服务器,所以选择第二项让系统在创建DC的同时把DNS服务随之一起安装上.当然你也可以安装DC后自己手动再安装和配置DNS服务器(当时是您给会正确配置D NS服务器),不过我还是建议和DC一起让系统帮我们创建,因为省事并不会因为手动错误的配置DNS带来的麻烦.选择兼容的模式:设置AD的还原密码(为了以后对AD数据库做完备份,开机按F8进入AD还原模式需要的还原密码,如果在此设置了密码,一定切记):2.安装完重起系统后登录界面为:使用域中的管理员和密码登录到域进入系统后查看计算机的状态:查看管理工具会增加DNS和有关AD的工具,以及安全策略:查看NTDS的文件:查看SYSVOL:3.在DC中创建域帐户:首先大家习惯还像在工作组时使用"本地用户和组"工具来创建用户帐户,但发现在DC中没有"本地用户和组",这是因为提升为DC后就没有本地用户和组了,原来的帐户和组都提升为域帐户和域中的组了.所以我们使用DC中的"AD用户和组"工具来创建域帐户,但首先我们先在域中创建一个管理单元(OU),OU可以使用部分来划分,所以我们先来创建一个名为"学术部"的OU,再在该OU中创建一个属于学术部的用户zhangsan,密码:abc123,(为什么要设置这样的密码呢?能否设置空密码呢?不好意思,因为默认的域安全策略的密码策略是这样设置的,长度7位以上,复杂度要开启,复杂度是大/小写字母,数字和特殊符号在密码设置中至少存在其中3种.那能否修改该策略呢,当时是可以的,不过在此我们不做太多的解释,以后有时间在做专门的专题讲解^-^)4.那么要把另一台计算机加入到域了,首先让客户机的IP如图所示: IP和DC的IP地址同一个网段,DNS地址指向DC的IP地址即可首先使用客户机看是否能够PING通DC:选择计算机-属性,修改计算机所属于的域的名字输入刚才创建的域名:出现对话框,输入在AD中创建的域帐号即可,但普通的域帐户只能允许10个客户端加入域,在此输入域管理员和密码:正确后会弹出以下对话框,代表已经加入域成功:需要重起生效:客户机重起后选择登录到域,再输入域帐户和密码就能登录到域了:进入系统和查看计算机的当前状态如下:实验完毕!以下实现复制步骤(以快照复制为例)运行平台SQL SERVER 2005一、准备工作:1.建立一个 WINDOWS 用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。
SQL Server2005实现数据同步

SQL Server2005实现数据同步
sql server2005中对于增、删、改和查询是有某些冲突的,很容易造成死锁。
为了解决这个问题,我们可以使用同步来解决这个问题,将这台数据库分开,我们建立两个FileDetail表,一个用来给增、删、改的程序使用,另一个给查询的程序来调用,这样就可以解决以上的难题。
在SQL Server2005中,微软云服务同步数据需要:发布服务器、分发服务器和订阅服务器,源数据所在的服务器是发布服务器,负责发表数据。
发布服务器把要复制的数据或对象发生的改变复制到分发服务器,分发服务器用来接收数据的所有改变,它包含一个分发数据库,并保存这些改变,再把这些改变分发给订阅服务器。
在复制过程中,发布服务器是一种数据库实例,它通过复制向其他位置提供数据,分发服务器也是一种数据库实例,它起着存储区的作用。
订阅服务器是接收复制数据的数据库实例。
一个订阅服务器可以从多个发布服务器上接收数据。
SQL2005数据库同步复制操作

1.1.1S QL SERVER2005一、同步前的准备:本文档适应于在SQL Server 2005下通过发布订阅,将LeagView主服务器的UniMonDB 数据库同步到LeagView备份服务器上的UniMonDB上。
图中主测试服务器IP地址为10.251.4.9,备份测试服务器IP地址为10.251.4.10。
在配置同步前需要注意:(1)确认备份服务器SQL Server Agent是否运行,如没运行,则先启动运行;(2)需要在计算机管理里面建立用于数据库发布订阅的账号,或者使用Administrator账号。
(3)该方案并不取代数据库备份方案,建议用户配置数据库备份方案,定期备份数据库。
(4)备份服务器上的LeagView系统只需运行“Jboss”服务,“LeagView安全运维服务”不需要启动(5)本文档只适应于SQL Server 2005,操作前请先仔细阅读此文档。
二、发布:(1)在主LeagView服务器上打开Microsoft SQL Server 2005 Management stadio,展开实例号,右键点击“复制—本地订阅”,选择“新建发布”,如图2.1。
出现如图2.2所示界面,点击“下一步”。
图2.1 新建发布图2.2新建发布向导选择数据库服务器作为分发服务器,在此,选择LeagView主服务器所在的数据库服务器作为分发服务器。
如图2.3所示。
图2.3 选择分发服务器(2)选择快照文件夹,一般选择默认文件夹就行,如图2.4所示。
图2.4 选择快照文件夹(3)选择发布的数据库为UniMonDB,如图2.5所示。
图2.5选择发布数据库(4)选择发布类型为“快照发布”,如图2.6所示。
图2.6 发布类型为快照发布(5)选择要发布的对象,在此选择“表和视图”。
如图2.7所示。
图2.7 选择发布的对象(6)点击下一步,直到出现如图2.8所示界面中,勾选“计划在以下时间运行快照代理”和点击“更改”,配置作业计划属性,一般情况下,设定作业在每周星期六00:00更新一次发布过程,如图2.9所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1测试环境
Item 发布机 A 订阅机 B
OS Windows 2003 Server Windows 2003 Server
SQL SQL Server 2005 企业版SQL Server 2005 企业版域无无
IP 192.168.1.2 192.168.1.3
机器名Server1 Server2
工作组Workgroup Workgroup
1.2发布Server1机上建SQL Server Agent的用户
用户名:SQL_Publisher(自己定)
密码:123456(自己定)
给SQL_Publisher用户添加Administrators管理用户组。
1.3发布机的配置
在“开始”菜单中,找到 Microsoft SQL Server 2005=>配置工具=> SQL Server Configuration Manager
1.4开启Server1和Server2机的数据库服务器身份验证
步骤:打开SQL Server Management Studio=>选择Server1=>右键,选择属性=>选择安全性=>服务器身份验证:选择SQL Server和Windows身份验证模式(S)
2发布机Server1配置
2.1发布机Server1上的快照文件位置的设置
在D:\下建立一个文件夹RepblData,利用Serv-U Ftp工具建立一个Ftp指向该目录:
Ftp用户名:ftp_user(自己定)
Ftp密码:123456(自己定)
权限:读,写,追加
发布机Server1上的快照文件位置的设置步骤:
打开SQL Server Management Studio=>打开Server1=>打开复制=>右键选择本地发布=>选择分发服务器属性=>选择发布服务器=>将默认快照文件夹设置为D:\RepblData
2.2在Server1和Server2分别建立数据库CNBlogsDemo,在Server1上表如下
分别在Server1和Server2上的数据库CNBlogsDemo,加入Publisher用户,设置为db_ownerdb_datareader、db_datawriter角色:
2.3建立发布快照步骤
设置快照的FTP路径、帐号和密码
3.订阅服务器Server2上的配置步骤:
备份数据库的订阅就建好了!
现在来瞧一瞧订阅服务器CNBlogsDB2上的用于复制的数据库CNBlogsDemo:
我们在发布服务器上建立的表CNBlogsTest复制过来了。
现在我们去发布服务器CNBlogsDB1上添加一条记录:
再去订阅服务器CNBlogsDB2瞧一瞧:
数据立即同步过来了!。