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所示。
SQL SERVER数据同步方案
基于sql server的订阅和分布功能中的对等事务复制,实现数据实时双向同步。
当用户在数据库上修改数据时,相应的修改会实时显示在公司的数据库上;当开发人员在公司的的数据库中修改数据时,相应的修改在用户的数据库中也会实时显示。
分别以公司服务器上的SQL server2005作为A数据库,sql server 2012作为B数据库,作为测试数据库;通过配置对等事务复制,创建一个由A数据库和B数据库两个节点组成的拓扑,实现数据库的实时同步。
1、首先,在SQL server2005实例中创建TEST数据库,里面包含[dbo].[test_data]表,作为测试数据使用,如图所示:2、确保A、B数据库两个节点都在运行SQL SERVER代理,确保在配置拓扑后运行日志读取器代理和分发代理。
3、在A、B数据库上配置分发4、在第一个节点上创建发布(以A数据库作为第一个节点)4.1展开“复制”文件夹,右键单击“本地发布”文件夹4.2单击“新建发布”4.3在新建发布向导的“发布数据库”页上,选择要发布的数据库(选择TEST数据库)4.4在“发布类型”页上,选择“事务发布”4.5在“项目”页上,选择要发布的数据库对象(选择dbo.test_date)4.6 筛选表行不做配置,直接通过(不支持筛选对等发布)4.7在“快照代理”页上,清除“立即创建快照”(我的理解是快照代理不做配置)4.8在“代理安全性”页上,指定快照代理和日志读取器代理的凭据(点击安全设置按钮,在快照代理安全性中,选择在SQL SERVER代理服务账户下运行、使用以下SQL SERVER 登录名)配置完如下所示4.9在“向导操作”页上,根据需要,可以选择为发布编写脚本4.10在“完成该向导”页上,指定发布的名称(发布名称在整个拓扑上必须相同,原因是配置对等拓扑向导在每个节点上创建发布时使用此名称)指定好发布名称之后,点击确定,就生成了一个发布,相应的会出现在复制文件下的本地发布5 为对等复制启用发布5.1 展开本地发布文件夹5.2右键单击创建的发布,再单击“属性”5.3在“发布属性”对话框中的“订阅选项”页上,为“允许对等订阅”属性选择True 值6、初始化每个节点的架构和数据(备份A实例中TEST数据库,在B实例中还原)在配置拓扑之前,每个节点上必须存在初始数据。
将SQLSERVER2005迁移到新的服务器上(在新的服务器上恢复)
将SQLSERVER2005迁移到新的服务器上(在新的服务器上恢复)SQLSERVER2005迁移到新的服务器上(在新的服务器上恢复)当原先服务器出现故障,已经⽆法启动。
需要将整个SQLSERVER系统紧急迁移到⼀台备⽤服务器上,那么这个迁移步骤怎样做呢?在说之前复习⼀下各个系统数据库的主要作⽤,以便⼤家更清楚恢复这些系统数据库的好处master:记录SQLSERVER系统的所有系统级信息model:在SQLSERVER实例上为所有数据库创建的模版msdb:SQLSERVER代理⽤来安排警报和作业以及记录操作员信息的数据库,msdb数据库还包含历史记录表,错误页suspect_page 以及备份和还原历史记录表resource:包含SQLSERVER附带的所有系统对象副本的只读数据库,resource数据库是不能备份的,⽽且在SSMS⾥是看不见的tempdb:⽤于保存临时或中间结果集的⼯作空间。
每次启动SQLSERVER实例时SQLSERVER都会根据model数据库为蓝本重新创建此数据库。
服务器实例关闭时,将永久删除tempdb数据库中的所有数据---------------------------------------------------------华丽的分割线-----------------------------------------------------------------------好了,现在进⼊正题:先说⼀下具体环境:操作系统Windows2003企业版SP2;备⽤服务器名字叫:SQL2005PC;SQLSERVER是默认实例;数据库:SQL2005企业版备⽤服务器和原服务器不同名,SQLSERVER安装的路径也不⼀样。
(备⽤服务器安装路径为c:\Program Files\Microsoft SQL Server\MSSQL.4\MSSQL)现在⼿头有最新的master,msdb,model数据库备份,以及其他所有⽤户数据库备份将系统数据库恢复,以还原所有数据库系统信息(⽤户,密码,任务等),然后才能恢复⽤户数据库在这种情况下,恢复系统数据库需要修改系统数据库路径,还要修改SQLSERVER记录下⾃⼰的服务器名字友情提⽰:注意:命令⾏下运⾏的指令是⼤⼩写敏感的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!------------------------------------------------------------------华丽的分割线----------------------------------------------------------------正式开始拉!!不好意思让⼤家久等了1、确认备⽤服务器的SQL版本和原服务器⼀致1SELECT@@VERSION返回的号码必须跟原先服务器返回的号码完全⼀样2、确保你备⽤服务器的SQLSERVER在启动的时候没有程序连接进来,不然的话等⼀下连接数据库的时候就会报错以下是错误消息:消息 18461,级别 14,状态 1,服务器 XXX,第 1 ⾏⽤户 'XXX\Administrator' 登录失败。
SQL2005数据库单向同步全自动多重备份---全过程实战
这两天在帮客户研究SQL2005的数据库同步,但尝试过第三方软件和自带的同步和镜像都失败后就想到了用这个笨方法来实现,不管怎么说总算完成任务了。
主机端设置方法:把以下代码存成BAT文件通过计划任务按排每天凌晨两点执行! stop MSSQLSERVER /y2."C:\Program Files\WinRAR\Rar.exe" a -k -r -s -m1 -inul"E:\BAKUP\SQLData\SJQY%date:~0,10%.RAR" "E:\db"3.xcopy "E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\hz65.ldf""E:\BAKUP\SQLData\HZ65" /e /i /q4.xcopy "E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\hz65.mdf""E:\BAKUP\SQLData\HZ65" /e /i /q start MSSQLSERVER start SQLSERVERAGENT7."C:\Program Files\WinRAR\Rar.exe" a -k -r -s -m1 -inul"E:\BAKUP\SQLData\HZ65%date:~0,10%.RAR" "E:\BAKUP\SQLData\HZ65"8.del "E:\BAKUP\SQLData\HZ65\*.*" /s /q9."C:\Program Files\WinRAR\Rar.exe" a -r -s -m1 -o+ -inul"E:\BAKUP\SQLData\sjqy_backup.rar" "E:\BAKUP\SQLData\sjqy_backup.bak"10.del "E:\BAKUP\SQLData\sjqy_backup.bak" /s /q11."C:\Program Files\WinRAR\Rar.exe" a -r -s -m1 -o+ -inul"E:\BAKUP\SQLData\hz65_backup.rar" "E:\BAKUP\SQLData\hz65_backup.bak"12.del "E:\BAKUP\SQLData\hz65_backup.bak" /s /q以下代码是在数据库管理的维护计划内添加,每天凌晨一点开始自动备份!1.BACKUP DATABASE [sjqy] TO DISK = N'E:\BAKUP\SQLData\sjqy_backup.bak' WITHNOFORMAT, INIT, NAME = N'sjqy-完整数据库备份', SKIP, NOREWIND, NOUNLOAD, STATS = 102.GO3.declare @backupSetId as int4.select @backupSetId = position from msdb..backupset where database_name=N'sjqy'and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'sjqy' )5.if @backupSetId is null begin raiserror(N'验证失败。
如何在两个SQLSERVER之间数据同步
如何在两个SQLSERVER之间数据同步在两个SQL Server之间进行数据同步,可以通过多种方法实现,包括使用SQL Server功能和第三方工具。
下面是一种基本的方法,其中包含了使用SQL Server功能进行实时同步和使用第三方工具进行批量同步的步骤:1.实时同步:-使用数据库镜像或事务复制功能进行数据同步。
这种方法适用于需要实时同步的情况,其中一个服务器充当主服务器(发布者),另一个服务器充当从服务器(订阅者)。
在这种情况下,数据更改将立即传播到从服务器。
-配置数据库镜像:在主服务器上创建数据库镜像,并将其配置为主服务器和从服务器之间的同步。
这种方法适用于高可用性和灾难恢复的情况。
- 配置事务复制:使用SQL Server事务复制功能可以将数据更改从主服务器传播到从服务器。
这种方法适用于需要将数据更改传播到多个从服务器的情况。
2.批量同步:-使用复制功能进行数据同步。
这种方法适用于大规模的数据同步,可以在定期的时间间隔内进行批量同步。
-配置事务复制:使用事务复制功能可以将数据更改从一个服务器复制到另一个服务器。
在这种情况下,数据更改将定期复制到另一个服务器。
-配置合并复制:使用合并复制功能可以将多个服务器的数据更改合并到一个服务器。
合并复制适用于多个服务器之间的双向同步。
无论使用哪种方法,需要注意以下几个方面:-确保两个服务器之间的网络连接可靠,可以通过网络监控来保证。
-定期备份数据库:在进行数据同步之前,确保在主服务器和从服务器上都进行了数据库备份。
这是避免数据损坏和数据丢失的重要步骤。
- 监控数据同步:在进行数据同步之后,需要进行监控,确保同步过程稳定可靠。
可以使用SQL Server的系统视图和工具进行监控,如查看系统视图sys.dm_repl_monitor、SQL Server Agent作业日志等。
-搭建测试环境:在进行数据同步之前,最好先在测试环境中进行测试,以确保同步过程不会对生产环境产生负面影响。
SQL Server2005使用订阅发布同步数据库
服务器SQL Server2005使用订阅发布同步数据库小编回来:这两天有一个同事在设计项目的时候考虑到数据量查询和写入都比较大,问我数据库该怎么设计,了解了他们的业务后,我给的建议是发布一个订阅的数据库来分担压力,写下自己的操作步骤分享给大家。
数据库复制涉及发布服务器:数据的来源服务器,维护源数据,决定哪些数据将被分发,检测哪些数据发生了修改,并将这些信息提交给分发服务器。
分发服务器:分发服务器负责把从发布服务器拿来的数据传送至订阅服务器。
订阅服务器:订阅服务器就是发布服务器数据的副本,接收维护数据。
订阅类型推订阅推订阅是指由发布服务器将所有发生修改过的数据复制给订阅者,这种在数据同步性价比较高的场合,推荐使用推订阅。
拉订阅拉订阅是指订阅服务器在经过一段时间就会向发布服务器要求复制出版数据库发生的变化的数据。
发布,分发,订阅可以部署在独立的服务器上面也可以部署在一台sql server 上面,然而分开部署肯定能提高性能。
复制代理:(1) 快照代理快照代理在分发者上创建并存储快照文件,任务是:在分发数据库中准备已发布表的架构和初始数据以及其他对象、存储快照文件并记录出版数据库和订阅服务器之间的同步信息,快照代理运行在分发者服务器上,并与出版者相连接。
每一个出版物都有自己的快照代理。
与各种类型的复制一起使用。
(2) 日志阅读代理日志读取器代理与事务性复制一起使用。
它将发布服务器上的事务日志中标记为复制的事务移至分发数据库中。
使用事务性复制发布的每个数据库都有自己的日志读取器代理,该代理运行于分发服务器上并与发布服务器连接(分发服务器与发布服务器可以是同一台计算机)。
(3) 分发代理分发代理与快照复制和事务性复制一起使用。
它将初始快照应用于订阅服务器,并将分发数据库中保存的事务移至订阅服务器。
分发代理既可以运行于分发服务器(对于推送订阅),也可运行于订阅服务器(对于请求订阅)。
(4) 合并代理:合并代理与合并复制一起使用。
sql server数据库同步的5种方法
sql server数据库同步的5种方法SQL Server数据库同步的5种方法1. 数据备份和还原•使用SQL Server Management Studio (SSMS) 或 Transact-SQL (T-SQL) 命令行工具进行数据库备份。
•将备份文件复制到目标服务器上。
•在目标服务器上使用SSMS或T-SQL命令行工具进行数据库还原。
2. 跨服务器复制•在源服务器和目标服务器上启用数据库复制。
•创建发布者和订阅者之间的连接。
•配置发布者和订阅者之间的交互,确保数据可以在服务器之间同步。
3. 数据迁移工具•使用第三方数据迁移工具,如SQL Server Integration Services (SSIS)。
•在源服务器上导出数据库并保存为包文件。
•在目标服务器上导入并执行包文件,将数据复制到目标数据库中。
4. SQL Server AlwaysOn可用性组•在源服务器上创建可用性组并将其配置为主服务器。
•在目标服务器上加入可用性组作为从属服务器。
•配置可用性组的自动故障转移和数据同步设置,以确保数据始终保持同步。
5. 数据库复制•在源服务器上启用数据库复制。
•创建发布者和订阅者之间的连接。
•配置发布者和订阅者之间的交互,使数据可以在服务器之间同步。
以上是SQL Server数据库同步的五种常用方法,根据实际需求和场景选择合适的方法进行数据库同步操作。
每种方法都有其优缺点,需要根据具体情况进行权衡。
无论选择哪种方法,都需要注意保证数据的完整性和一致性。
1. 数据备份和还原•备份数据库:使用SQL Server Management Studio (SSMS) 或Transact-SQL (T-SQL) 命令行工具来备份数据库,以生成一个备份文件。
备份文件中包含了数据库的所有数据和对象定义。
•复制备份文件:将生成的备份文件复制到目标服务器上的指定位置。
•还原数据库:在目标服务器上使用SSMS或T-SQL命令行工具来还原数据库。
SQLServer数据库同步准实时解决方案
SQLServer数据库同步准实时解决⽅案1. 需求1)如何将在线运营的SQLServer数据库数据及时同步到另外⼀个SQLServer数据库。
2)数据仓库系统的数据抽取会对源系统造成巨⼤压⼒,严重影响性能和响应速度。
如何将⽣产数据快速抽取到历史数据仓库,改善业务系统的性能。
3)分布式数据库,如何将分部的数据库数据复制到总部数据库,以利于总部汇总统计。
这些业务应⽤中常见的SQLServer数据库同步需求,都需专业的复制系统来完成。
2. 同步⽅案浪擎·镜像系统简介浪擎·镜像系统是业界成熟的应⽤系统复制解决⽅案,⽆需源和⽬标硬件规格或配置相同,具有准实时复制、系统和⽹络资源占⽤少、应⽤⽅式灵活等特点。
浪擎·镜像系统⽀持SQLServer数据库、Oracle数据库、⽂件系统等应⽤系统的准实时同步和备份容灾。
产品组件SQLServer 数据库镜像代理(For SQLServer 2000、2005)。
镜像存储服务器(For Windows 2000、2003)。
复制原理浪擎·镜像系统 SQLServer数据库镜像代理实时监控源SQLServer数据库和捕获其变化事务,并将捕获结果传输到⽬标SQLServer数据库,再通过存储进程执⾏到⽬标SQLServer数据库。
⽬标SQLServer处于运⾏状态,能读能写,运⾏的⽬标系统保证了业务数据的⼀致性和完整性。
系统不受操作系统、硬件平台及存储设备的影响,且⽆需源和⽬标保持⼀致。
应⽤部署部署架构图在源SQLServer数据库服务器上安装SQLServer镜像代理;在⽬标SQLServer数据库服务器上均安装镜像服务器。
系统管理员可通过管理端配置镜像策略、全量和增量作业等。
配置策略:第⼀次运⾏基准同步后,以后实时地将源SQLServer数据库数据复制到⽬标数据库。
第⼀次运⾏基准同步:对SQLServer可先进⾏数据库备份,然后在备⽤SQLServer上进⾏恢复即可;对于⽂件系统则进⾏“完全镜像”将所有⽂件复制到⽬标服务器上。
如何实现SQLSERVER2005数据库同步
如何实现SQLSERVER2005数据库同步(数据库镜像)技术SQL Server 2005 是微软5年来具有里程碑性质的企业级数据库产品。
在高可用技术、额外的备份和恢复功能,以及复制增强上的投资使企业能够构建和部署高可用的应用系统。
SQL Server 2005在高可用上的创新有:数据镜像,故障转SQL Server 2005 是微软5年来具有里程碑性质的企业级数据库产品。
在高可用技术、额外的备份和恢复功能,以及复制增强上的投资使企业能够构建和部署高可用的应用系统。
SQL Server 2005在高可用上的创新有:数据镜像,故障转移集群,数据库快照和增强的联机操作,这有助于最小化宕机时间和确保企业的关键系统可用。
下面我们将介绍数据库镜像技术。
一、数据库镜像SQL Server 2005 可通过数据库镜像来支持热备功能。
数据库镜像允许事务日志以连续的方式从主服务器传递到备份服务器上。
当主服务器出现故障时,见证服务器几秒钟内即可检测到主服务器发生了故障,并能立即让备份服务器接受数据库连接。
数据库镜像工作在标准服务器硬件下,不需要特定的存储或控制器。
图1显示了数据库镜像的基本配置。
图 1: 数据库镜像的基本配置二、与传统的集群技术比较故障转移集群是一个高可用解决方案,它使用Microsoft Clustering Services 创建容错虚拟服务器,一旦数据库服务器宕机,便可提供快速故障转移。
在SQL Server 2005中, SQL Server 分析服务,通知服务,与SQL Server复制现在都已支持故障转移集群。
集群节点的最大数量也增加到8个,SQL Server 故障转移集群现已是一个完整的容错服务器解决方案。
从表1中我们可以看出数据库镜像的优点是故障切换时间短,对服务器要求低,无需存储盘柜,所以服务器之间的距离没有要求,甚至可以把服务器一台放在北京,另一台放在上海。
缺点是客户端需要支持 2.0或SQL Native Client,老的应用程序需要升级,需要见证服务器才能实现自动故障转移。
SQL Server2005同步复制设置CDH_2008.7.17
SQL Server2005同步复制设置一、前言本文介绍的数据库同步设置步骤仅为可行性方案,中间可能走了弯路。
由于公司内部的网络环境没有现场的复杂,加之对SQL Server2005了解不多,有些部分没有足够的时间去测试。
现提供现场的状况以便于技术部可以在公司内部适当的模拟现场的直实情况。
现场状况:●各数据库服务器不在同一个网段内,主服务器192.168.1.XXX,子服务器192.168.10.XXX。
●由于没有域名服务器,各服务器之间可以互相Ping通对方的IP地址,Ping对方的机器名失败其它状况(如有域名服务器,在同一网段内)须逐一测试。
二、同步设置之前●在SQL Server2005安装之前,如果安装数据库的机器名为系统默认的长名称,此时可以更改机器名为有意义的机器名,重新启动机器后即可安装SQL Server2005数据库了。
数据库安装完成后,机器名不能再行更改。
●修改RNSS的数据库脚本后,重新生成RNSS数据库。
修改方法是把脚本中的withENCRYPTION替换为--with ENCRYPTION。
三、订阅端及服务服务端设置步骤本节的设置在订阅端及服务端都要执行。
1.新建计算机用户DataCopy,密码为DataCopy。
在桌面上,右击【我的电脑】→【管理】打开下方页面:选中【本地用户和组】→【用户】,在右边区域中右键【新用户】输入“用户名”及“密码”,取消选中“用户下次登录时须更改密码”,选中“用户不能更改密码”和“密码永不过期”。
单击【创建】按钮,关闭对话框。
在右边的用户列表中出现刚才增加的用户。
右键【属性】,打开属性对话框,如下:在【隶属于】选项卡内删除“Users”用户组,增加“Administrators”用户组。
2.修改MSSQLSERVER协议【开始】→【程序】→【Microsoft SQL Servr 2005】→【配置工具】→【SQLServer Configuration Manager】,打开下面的页面:选中【MSSQLSERVER的协议】,如果右边协议列表中的“Named Pipes”的状态为“已禁用”,右键【启用】。
SQL2005分布式发布和订阅同步的配置[1]
SQL2005分布式发布和订阅同步的配置[1]SQL 2005 分布式发布和订阅同步的配置运⾏平台:SQL SERVER 2005⼀、准备⼯作:1.在组件服务——计算机——我的电脑——右键——属性——MSDTC——安全配置中设置如下:2.对于只能⽤IP,不能⽤计算机名的,为其在C:\WINDOWS\system32\drivers\etc\hosts⽂件中注册服务器名称IP地址,在SQL Server 配置管理器中为其配置别名。
3.在发布数据库服务器及订阅数据库服务器上分别建⽴⼀个相同的⽤户名,设置为管理员权限,并设置相同密码,作为发布数据库服务器及订阅数据库服务器发布快照⽂件及订阅快照⽂件的有效访问⽤户。
4.开启SQL Server 2005的⽹络协议TCP/IP和管道命名协议并重启⽹络服务。
5.设置SQL SERVER ⾝份验证,解决连接时的权限问题(发布、订阅服务器均设置),步骤为:对象资源管理器----右击SQL 实例-----属性----安全性----服务器⾝份验证------选“SQL Server和Windows⾝份验证模式”。
6.在SQL Server中创建步骤1中对应的系统⽤户登陆名,作为发布数据库的拥有者(设置为dbo_owner和public)。
7.在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。
发布服务器和订阅服务器互相注册。
8.在发布服务器上建⽴⼀个FTP只读⽬录,作为发布快照⽂件的存放⽬录。
⼆、发布服务器配置(在发布服务器上配置发布具有可更新订阅的事务发布)1.右键本地发布——选择发布数据库——选择发布类型——具有可更新订阅的事务发布。
2.选择要发布的表,不需要数据同步的表不要发布。
3. ⽴即创建快照,并每⼩时更新快照。
4、快照代理、⽇志读取器代理、队列读取器代理设为本机有管理员权限的账号5、完成后,在本发布的属性中设置FTP访问⼆、订阅服务器配置1.右键本地订阅——选择订阅数据库——在分发服务器上运⾏所有代理——选择订阅服务器——分发代理安全性设置:注意:如果是推送订阅,发布和分发代理是发布服务器上的代理程序,需要⽤发布服务器上有管理员权限的账号运⾏,连接订阅服务器则使⽤订阅服务器的⽤户名密码连接。
两台SQLServer数据同步解决方案
两台SQLServer数据同步解决⽅案复制的概念复制是将⼀组数据从⼀个数据源拷贝到多个数据源的技术,是将⼀份数据发布到多个存储站点上的有效⽅式。
使⽤复制技术,⽤户可以将⼀份数据发布到多台上,从⽽使不同的服务器⽤户都可以在权限的许可的范围内共享这份数据。
复制技术可以确保分布在不同地点的数据⾃动同步更新,从⽽保证数据的⼀致性。
SQL复制的基本元素包括出版服务器、订阅服务器、分发服务器、出版物、SQL复制的⼯作原理SQL SERVER 主要采⽤出版物、订阅的⽅式来处理复制。
源数据所在的服务器是出版服务器,负责发表数据。
出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有⼀个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器SQL SERVER复制技术类型SQL SERVER提供了三种复制技术,分别是:1、快照复制(呆会我们就使⽤这个)2、事务复制3、合并复制只要把上⾯这些概念弄清楚了那么对复制也就有了⼀定的理解。
接下来我们就⼀步⼀步来实现复制的步骤。
第⼀先来配置出版服务器(1)选中指定[服务器]节点(2)从[⼯具]下拉菜单的[复制]⼦菜单中选择[发布、订阅服务器和分发]命令(3)系统弹出⼀个对话框点[下⼀步]然后看着提⽰⼀直操作到完成。
(4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加⼀个复制监视器。
同时也⽣成⼀个分发数据库(distribution)第⼆创建出版物(1)选中指定的服务器(2)从[⼯具]菜单的[复制]⼦菜单中选择[创建和管理发布]命令。
此时系统会弹出⼀个对话框(3)选择要创建出版物的数据库,然后单击[创建发布](4)在[创建发布向导]的提⽰对话框中单击[下⼀步]系统就会弹出⼀个对话框。
对话框上的内容是复制的三个类型。
我们现在选第⼀个也就是默认的快照发布(其他两个⼤家可以去看看帮助)(5)单击[下⼀步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进⾏数据复制。
- 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瞧一瞧:
数据立即同步过来了!。