SQL Server 2008数据库复制实现数据库同步备份超强图文教程
SQLServer(2008)中通过触发器进行数据同步的设置说明

SQLServer(2008)中通过触发器进行数据同步的设置说明根据公司领导要求,为了减轻数据库服务器上的压力。
特将其中一部分数据分离出来,放到另外一台数据库服务器上。
因此需要对基础数据进行一个同步操作。
要进行数据同步,可以通过代码、触发器、日志复制等。
因为此处涉及到的数据量不大,且不方便修改程序代码。
所有采取的是Sql Server中触发器的一个同步。
下面就对触发器进行数据同步的一些配置做下说明:环境:Sql Server 2008Windows Server 20081.确定两台数据库服务器上要进行同步的数据库及表结构2.在作为数据源的数据库服务器上对应的表上创建触发器:(204.17是数据源服务器,201.17是要同步的服务器)例子中的触发器的作用是将102.1.204.17服务器上test数据库中user表中的数据同步到201.17上的表中去(触发条件是任何添加、修改、删除操作)。
3.启动两台服务器上的Distributed Transaction Coordinator服务(开始--运行--services.msc 回车,找到前面的这个服务--启动)4.MSDTCMSDTC设置windows server 2003设置:windows server 2008设置:5.检查防火墙。
可以关闭防火墙或把MSDTC加入例外。
6.检查两台服务器通信是否正常:a) telnet DbIP 135是否可以通;b) 然后相互Ping IP;c) 再ping 相互的NetBios名称(输入ping -a ip就可以看到对应的NetBios名称),还不通的话d) 可以修改%windir%/system32/etc/hosts,或%windir%/system32/etc/lmhost.sam去掉文件扩展名,进行DB 服务和IP的绑定即可,如下图所示:到这里通过触发器进行数据库分布式开发的环境就准备好了。
SQLsever2008数据库备份完整+差异

SQL sever 2008 数据库备份
完整+差异
1、打开sqlsever2008数据库客户端,选择管理-维护计划-维护计划向导,如下图:
2、点击下一步
3、制定计划名称,填写说明,选择没想任务单独计划,如下图:
4、选择维护计划项(这里选择检查完整性、备份完整数据库及差异数据库),如下图:
5、此处点击下一步即可:
6、这里选择要检查完整性的数据库(数据库完整性重要性也是很高的,如何修复请查阅资料)
7、选定后点击下一步即可
8、选择完整备份数据库
9、选择备份路径及验证完整性(备份完不能用更头疼,最好定期还原一个检查下)
10、差异备份与完整备份基本一致,如下图:
11、日志报告路径,可以查看备份结果及命令:
12、点击下一步
13、所有项都成功,点击关闭即可
14、双击设置好的计划,选择最左边制定执行时间
15、最好选择服务器使用频率最小时候进行完备,完整性和差异可以每天执行一次,选择好了点击确定,如下图:
16、在维护计划中点击执行,会报错,需要在sqlsever代理中执行。
17、如下图一次执行作业开始步骤:
18、执行成功
19、日志、完整备份、差异备份展示
20、数据库还原操作,需还原两次,第一次完整备份,第二次完整+差异,如下图:。
Sql2008数据库自动备份任务计划

Sql2008数据库自动备份任务计划
(1)登录sql2008管理平台,在“管理—维护计划”中,右键选择“新建维护计划”
(2)维护计划的名称可以写“drm_server_bak”,点击“确定”
(3)点击计划名称上面的日期状图标
(4)计划类型选择“重复执行”,执行频率选择“每天”,在每天“0:30:00”时执行,持续时间选择“无结束日期”,最后点击“确定”
(5)把左面的“备份数据库”任务,拖动到任务计划中来
(6)右键“数据库备份”任务,点击“编辑”
(7)数据库选项,勾选要备份的drm_server_bak,点击“确定”
(8)勾选“为每个数据库创建备份文件”,选择备份路径,勾选“验证数据库完整性”,点击“确定”
(9)把左面的“清除维护”任务,拖动到右面,并与“备份数据库”任务,创建关联
(10)右键“清除维护”任务,选择“编辑”
(11)连接选项,选择“本地服务器连接”,勾选“搜索文件夹并根据扩展名删除文件”,选择之前备份的文件夹,文件扩展名选择“bak”,勾选“在任务运行时更加文件保留时间删除文件”,时间是超过“2周”,点击“确定”
(12)备份任务计划设置完成,如下图:
(13)注意:SQL server代理(MSSQLSERVER)服务必须启动,否则任务计划无法运行
(14)立即执行任务计划,测试任务技术设置是否成功
(15)执行维护计划成功
(16)在备份路径E:\BAK目录中,出现自动备份的文件。
第8章SQLServer数据复制-精选

第8章 SQL Server数据复制
图8-20 筛选数据对话框
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
图8-21 筛选表的列对话框
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
图8-22 筛选表的行对话框
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
解决复制过程中的冲突的三个重要方面:
l 系统为要复制的表的每条记录确定为标志字段。 l 增加几个系统表以支持数据跟踪、提高同步效率
以及冲突的检测、解决和报告。 l 在出版者和订购者的服务器上的表上创建触发器,
以便跟踪数据的变化。
上一页
下一页
图8-23 a 指定筛选对话框
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
图8-23 b 允许匿名订阅对话框
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
图8-24 设置快照代理程序调度对话框
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
图8-25 创建发布完成对话框
返回本章首页
第8章 SQL Server数据复制
图8-10 选择发布数据库对话框
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
图8-11 选择发布类型对话框
上一页
下一页
返回本章首页
第8章 SQL Server数据复制
SQL Server 2008维护计划远程备份数据库操作

SQL Server 2008维护计划远程备份数据库操作SQL Server 2008维护计划远程备份数据库操作前期准备工作1、备份将被更新的数据库备份配置:1)进入到数据库管理工具Management Studio,转到管理下维护计划,记录具体维护计划的配置。
2、设置远程备份路径:1)远程备份服务器(ipB)上设置共享目录,确保数据库本地服务器(ipA)可以直接访问,并可以对共享目录进行读写等操作;3、确保数据库本地服务器(ipA)与远程备份服务器(ipB)的用户名/密码一致;具体操作步骤如下:1. 在数据库本地服务器(ipA)打开SQL Server配置管理器,转到SQL Server 2008服务页面,打开服务名SQL Server(MSSQLSERVER)的属性页,在登录页面中将“登陆身份”从原来的“内置账户”改为“本账户”,账户名/密码为本地服务器的的登录名/密码。
更改完后点确定会提示需要重启该服务。
(注:保证要备份到的远程服务器登录名/密码与本地主服务器一样,否则可能无法实现远程备份);2. 打开SQL Server Management Studio Express登录到数据库,以sa/xxxx或Windows账户登录;转到管理下的具体维护计划配置项;3.右键“数据库服务器”选择“方面”,在查看方面中的“方面”处选择“外围应用配置器”,将对应“xpcmdshellEnabled”的值改为“True”,点“确定”返回。
4. 选择具体的维护计划配置项,右键修改打开具体的配置页面,打开“备份数据库任务”,在目标项下将“为每个数据库创建备份文件”的文件夹中的路径值更改为远程备份服务器(ipB)的共享目录,点击确定保存;5. 打开“清除维护任务”页面,将“文件位置”下的“搜索文件夹并根据扩展名删除文件”下的文件夹目录更改为远程备份服务器(ip)的共享目录,点击确定保存;6. 保存维护计划配置修改内容并关闭页面。
SQL Server 2008 备份及还原

练习:从数据库快照中还原数据
在此练习中,您将: 创建数据库快照 恢复数据库
--Creating sales_snapshot1200 as snapshot of the --Sales database: CREATE DATABASE sales_snapshot1200 ON ( NAME = SPri1_dat, FILENAME = 'C:\Program Files\Microsoft SQL Server\mssql.1\mssql\data\SPri1dat_1200.ss'), ( NAME = SPri2_dat, FILENAME = 'C:\Program Files\Microsoft SQL Server\mssql.1\mssql\data\SPri2dt_1200.ss'), ( NAME = SGrp1Fi1_dat, FILENAME = AS SNAPSHOT OF Sales GO USE master; -- Reverting AdventureWorks to AdventureWorks_dbss1800 RESTORE DATABASE AdventureWorks from DATABASE_SNAPSHOT = 'AdventureWorks_dbss1800'; GO
如何还原事务日志
从一个事务日志备份中还原
– 将记录在事务日志中的更改还原到数据库
在要还原的最后一个日志中使用 RECOVERY 选项
RESTORE DATABASE AdventureWorks FROM AWBack WITH NORECOVERY RESTORE LOG AdventureWorks FROM AWBackLog WITH FILE = 1, NORECOVERY RESTORE LOG AdventureWorks FROM AWBackLog WITH FILE = 2, RECOVERY
使用SQL Server 2008的事务日志传送功能备份数据库

使用SQL Server 2008的事务日志传送功能备份数据库一:系统要求数据库服务器,名称Server-DW,Windows Server 2003 X64,安装SQL Server 2008,需要备份的数据库为"JKL_DW"。
备份服务器,名称Server-ETL,Windows Server 2003 X32,安装SQL Server 2008。
二:准备工作1、在Server-ETL上创建文件夹,用于存放备份数据库,此例中命名为"jklDW"。
2、在Server-ETL上创建文件夹,用于存放为备份数据传送过来的事务日志。
此例中命名为"LogBackup",然后共享此文件夹,共享名称为"Server-ETLLogBackup$"。
3、在Server-ETL上创建文件夹,用于存放为还原数据库复制的事务日志。
此例中命名为"LogCopy",然后共享此文件夹,共享名称为"Server-ETLLogCopy$"。
4、为数据库"JKL_DW"创建一个完整备份。
(1)备份数据库─常规页在“目标”处选择将数据库备份文件的路径。
(2)备份数据库─选项页覆盖媒体:改为"备份到新媒体集并清除所有现有备份集",然后随便起一个名称即可。
可靠性:勾选"完成后验证备份"和"写入媒体前检查校验和"这两项。
压缩:选择"压缩备份",可以节省80%左右的空间。
5、将备份好的文件复制到Server-ETL上。
6、还原数据库备份到Server-ETL上。
(1)还原数据库─常规页目标数据库:此例中命名为"jklDW"。
这里多说一句,目标数据库的名称可以与原始数据库名称相同,也可以不同。
本例中名称就是不同的。
SQL_Server_2008_数据库复制_快照的发布和订阅

数据库复制快照发布主机A: JOHN 10.10.10.1主机B: KATE 10.10.10.2发布前准备1,在两台机器之间建立数据库别名.在SQL的配置管理器内-SQL Native Clinet10.0配置-别名,分别设置对方的别名.2,主机A,B各建一个相同的主机账号,比如“copy”.然后把数据库服务启动账号改为此账号.更改后,重起服务.发布数据库前的两个准备工作做好了,然后查看下两台主机间的连接是否有问题,可以用TELNET查看是否能够连通.数据库默认是1433端口.A: telnet 10.10.10.2 1433B: telnet 10.10.10.1 1433能够正常连通就好,如果无法连接的话,则可以查看端口是否正确,系统防火墙是否打开端口,系统管理员是否打开端口策略.开始发布数据1,建立一个发布数据库账号,不建议直接使用SA账号,只需建立db_owner权限的即可.比如要发布的数据库名为‟DataSyn‟,则可以建立拥有该数据库db_owner权限账号‟Data_Syn‟2,复制-本地发布-右击新建发布选择要发布的数据库比如DataSyn,如图下一步.择选发布类型-快照发布下一步,选择要发布的对象下一步,指定何进运行快照,一般都是立即执行.下一步,代理安全性,点击-安全设置.跳出如下选项框快照代理安全性确定,下一步,选对单击‟完成‟后系统奖执行的操作-创建发布选择代理服务账号下运行使用新建的发布账号下一步,输入发布名称,也可以不输,默认则为该数据库名,点击完成,创建发布.如下图OK,这样,快照发布已经完成,剩下的就是订阅了.快照订阅在主机B,企业管理器内,复制-本地订阅-右击新建订阅发布服务器选择…查找SQL SERVER 发布服务器‟,跳出如下选项框,输入发布服务器JOHN的主机名,以及SQL账号.连接,下一步,选择发布的数据,如图,选DataSyn_Alias下一步.选择运行分发代理的位置.下一步选择订阅的数据放在哪个数据库,如图,这是在B主机创建的一个与A主机相同数据库名的空数据库,以存放订阅数据.下一步,指定第个分发代理的进程账户和连接选项.点击红框内..跳出来如图确定,下一步下一步下一步下一步单击-完成这样就完成了快照的整个发布订阅过程.这样就完成了快照的整个发布订阅过程.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
点击OK,这时会在快照文件夹中创建一个ftp文件夹,并在该文件夹中生成快照文件。
Get help: http://help/MSSQL_REPL20011
· Cannot execute as the database principal because the principal "dbo" does not exist, this type of principal cannot be impersonated, or you do not have permission. (Source: MSSQLServer, Error number: 15517)
Get help: http://help/15517
· The process could not execute 'sp_replcmds' on 'YCSERVER006'. (Source:MSSQL_REPL, Error number: MSSQL_REPL22037)
Get help: http://help/MSSQL_REPL22037
OK, Next, Next, Next:
Next, Finish, Success:
备份数据库的订阅就建好了!
现在来瞧一瞧订阅服务器CNBlogsDB2上的用于复制的数据库CNBlogsDemo:
看!我们在发布服务器上建立的表CNBlogsTest复制过来了。
现在我们去发布服务器CNBlogsDB1上添加一条记录:
选择Replication》Local Publications》属性,在出现的窗口中选择Publishers,如下图:
点击红框处的按钮,出现设置窗口:
在Default Snapshot Folder中设置快照文件存放路径。
3.在主数据库服务器创建发布:
在Replication》Local Publications中选择New Publication,出现一个向导。先选择要发布的数据库CNBlogsDemo,然后选择发布类型Transational publication,如下图:
Next,进入“分发代理工作位置”的选择窗口:
我们这里选择pull subscriptions,把数据给拉过来,这样主数据库服务器的负担会轻些。
Next,选择订阅服务器上的数据库,之前我们已经建好同名的数据库,所以系统自己会找到。
Next,进入分发代理安全设置窗口:
点击红框内的按钮,进入设置窗口:
设置如上图,Connect to the Distributor处设置的是发布服务器的sa帐户。
4.设置快照的FTP访问
首先在主数据库服务器上开通FTP服务,建立一个指向快照文件夹的FTP站点,设置好可以远程连接的FTP帐户。然后在这台发布服务器设置一下FTP客户端配置。配置方法如下:
在Replication》Local Publications中选择刚才创建的发布[CNBlogsDemo]:CNBlogsDemo_Publication,选择属性》FTP Snapshot,如下图:
SQL Server 2008数据库复制实现数据库同步备份超强图文教程
原文地址:
/dudu/archive/2010/08/26/1808540.html
SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案。
继续:OK,Next,Next,为这个发布起个名字:
点击Finish,就开始正式创建发布,创建成功就会出现如下窗口:
这时查看快照文件夹,就会看到unc文件夹,快照文件就在这个文件夹中。
这里要考虑这样一个问题,如何让订阅服务器通过网络访问这个快照文件夹。
我们在这个问题上折腾了一些时间,本来想通过共享文件夹的方式,但又不想打开匿名共享,折腾了半天,没搞定订阅服务器访问共享文件夹用户验证的问题。于是采用了FTP的方式,所以,下面介绍一下如何让订阅服务器通过FTP访问快照文件。
Next,进入选择发布服务器的窗口,选择Find SQL Server Publisher,出现服务器连接窗口:
这里要注意的是Server Name中一定要填写发布服务器的计算机名,如果计算机名连接不上,要在hosts文件中加一个IP地发布:
在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制。数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜像服务器。但缺点是配置复杂,镜像数据库中的数据不可见(在SQL Server Management Studio中,只能看到镜像数据库处于镜像状态,无法进行任何数据库操作,最简单的查询也不行。想眼见为实,看看镜像数据库中的数据是否正确都不行。只有将镜像数据库切换主数据库才可见)。如果你要使用数据库镜像,强烈推荐killkill写的SQL Server 2005镜像构建手册,我们就是按照这篇文章完成了数据库镜像部署测试。
再去订阅服务器CNBlogsDB2瞧一瞧:
数据立即同步过来了!搞定!
遇到的问题:
在测试过程中被两个问题折腾了很长时间。
1)发布服务器的Log Reader Agent不能启动,错误信息:
· The process could not execute 'sp_replcmds' on 'YCSERVER006'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20011)
二、主数据库服务器(发布服务器)的配置:
1.在主数据库服务器CNBlogsDB1新建示例数据库CNBlogsDemo(注意Recoverymode要使用默认值Full,只有这个模式才能进行事务复制),然后建立一张测试表,比如:CNBlogsTest。
2.设置存放快照的文件夹:
创建发布之前,先设置一下存放快照的文件夹,创建发布后会在该文件夹生成快照文件,订阅服务器需要在初始化时加载该快照文件。
复制原理:我们采用的是基于快照的事务复制。主数据库服务器生成快照,备份库服务器读取并加载该快照,然后不停地从主数据库服务器复制事务日志。见下图:
图片来自SQL Server联机丛书
安装与配置步骤:
一、在两台服务器上安装好SQL Server 2008 R2,主要安装的组件:Database Engine(含SQL Server Replication),Management Tools。
最终,我们选择了SQL Server 2008数据库复制。
下面通过一个示例和大家一起学习一下如何部署SQL Server 2008数据库复制。
测试环境:Windows Server 2008 R2 + SQL Server 2008 R2(英文版),两台服务器,一台主数据库服务器CNBlogsDB1,一台备份数据库服务器CNBlogsDB2。
开始测试时,附加了一个现有数据库进行复制遇到了这个问题,附加的是一下SQL Server 2005数据库文件,Owner为空,改为sa问题就解决了,如下图:
2)第二个问题就是前面已经描述过的订阅服务器访问发布服务器上的快照文件夹的问题,后来通过FTP的方式解决的。
对于SQL Server 2008数据库复制,目前我就学习了这些,期待园子里有这方面经验的朋友也来分享一下,在分享过程中你也会学到很多。
Next,进入Agent Security:
选择Security Settings,进行相应的帐户设置:
一个是设置运行Snapshot Agent的Windows帐户,我们这里选择与SQL Server Agent同样的帐户。
一个是设置连接发布服务器的SQL帐户,我们这里就用主数据库服务器的sa帐户。
点击Next,出现错误:
原来所有要复制的表都需要有主键,刚才建CNBlogsTest表时,没有建主键。建一下主键,并重新启动向导就可以了。
接着选择要复制的对象:
点Next,Next,进入Snapshot Agent窗口,选择Create a snapshot immediately and keep the snapshot available to initialize subscriptions,见下图:
这样,发布服务器就配置好了,下面配置订阅服务器。
三、备份数据库服务器(订阅服务器)的配置:
进入订阅服务器CNBlogsDB2,创建与发布服务器同名的数据库CNBlogsDemo,使用完全恢复模式。
在Replication》Local Subscriptions中选择New Subscriptions,进入向导。