位置: 编程技术 - 正文

通过SQL Server 2008数据库复制实现数据库同步备份

编辑:rootadmin

推荐整理分享通过SQL Server 2008数据库复制实现数据库同步备份,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

SQL Server 数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案。

在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 的数据库镜像和SQL Server 数据库复制。数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜像服务器。但缺点是配置复杂,镜像数据库中的数据不可见(在SQL Server Management Studio中,只能看到镜像数据库处于镜像状态,无法进行任何数据库操作,最简单的查询也不行。想眼见为实,看看镜像数据库中的数据是否正确都不行。只有将镜像数据库切换主数据库才可见)。如果你要使用数据库镜像,强烈推荐killkill写的SQL Server 镜像构建手册,我们就是按照这篇文章完成了数据库镜像部署测试。

最终,我们选择了SQL Server 数据库复制。

下面通过一个示例和大家一起学习一下如何部署SQL Server 数据库复制。

测试环境:Windows Server R2 + SQL Server R2(英文版),两台服务器,一台主数据库服务器CNBlogsDB1,一台备份数据库服务器CNBlogsDB2。

复制原理:我们采用的是基于快照的事务复制。主数据库服务器生成快照,备份库服务器读取并加载该快照,然后不停地从主数据库服务器复制事务日志。见下图:

图片来自SQL Server联机丛书

安装与配置步骤:

一、在两台服务器上安装好SQL Server R2,主要安装的组件:Database Engine(含SQL Server Replication),Management Tools。

二、主数据库服务器(发布服务器)的配置:

1. 在主数据库服务器CNBlogsDB1新建示例数据库CNBlogsDemo(注意Recovery mode要使用默认值Full,只有这个模式才能进行事务复制),然后建立一张测试表,比如:CNBlogsTest。

2. 设置存放快照的文件夹:

创建发布之前,先设置一下存放快照的文件夹,创建发布后会在该文件夹生成快照文件,订阅服务器需要在初始化时加载该快照文件。

选择Replication》Local Publications》属性,在出现的窗口中选择Publishers,如下图:

点击红框处的按钮,出现设置窗口:

在Default Snapshot Folder中设置快照文件存放路径。

3. 在主数据库服务器创建发布:

在Replication》Local Publications中选择New Publication,出现一个向导。先选择要发布的数据库CNBlogsDemo,然后选择发布类型Transational publication,如下图:

点击Next,出现错误:

原来所有要复制的表都需要有主键,刚才建CNBlogsTest表时,没有建主键。建一下主键,并重新启动向导就可以了。

接着选择要复制的对象:

点Next,Next,进入Snapshot Agent窗口,选择Create a snapshot immediately and keep the snapshot available to initialize subscriptions,见下图:

Next,进入Agent Security:

选择Security Settings,进行相应的帐户设置:

一个是设置运行Snapshot Agent的Windows帐户,我们这里选择与SQL Server Agent同样的帐户。

一个是设置连接发布服务器的SQL帐户,我们这里就用主数据库服务器的sa帐户。

继续:OK,Next,Next,为这个发布起个名字:

点击Finish,就开始正式创建发布,创建成功就会出现如下窗口:

这时查看快照文件夹,就会看到unc文件夹,快照文件就在这个文件夹中。

这里要考虑这样一个问题,如何让订阅服务器通过网络访问这个快照文件夹。

我们在这个问题上折腾了一些时间,本来想通过共享文件夹的方式,但又不想打开匿名共享,折腾了半天,没搞定订阅服务器访问共享文件夹用户验证的问题。于是采用了FTP的方式,所以,下面介绍一下如何让订阅服务器通过FTP访问快照文件。

4. 设置快照的FTP访问

通过SQL Server 2008数据库复制实现数据库同步备份

首先在主数据库服务器上开通FTP服务,建立一个指向快照文件夹的FTP站点,设置好可以远程连接的FTP帐户。然后在这台发布服务器设置一下FTP客户端配置。配置方法如下:

在Replication》Local Publications中选择刚才创建的发布[CNBlogsDemo]:CNBlogsDemo_Publication,选择属性》FTP Snapshot,如下图:

选中Allow Subscribers to download snapshot files using FTP,并设置一下FTP客户端连接参数,订阅服务器就是通过这里的设置连接FTP服务器的(注:Path from the FTP root folder的设置要和上图一样,设置为:/ftp)。

点击OK,这时会在快照文件夹中创建一个ftp文件夹,并在该文件夹中生成快照文件。

这样,发布服务器就配置好了,下面配置订阅服务器。

三、备份数据库服务器(订阅服务器)的配置:

进入订阅服务器CNBlogsDB2,创建与发布服务器同名的数据库CNBlogsDemo,使用完全恢复模式。

在Replication》Local Subscriptions中选择New Subscriptions,进入向导。

Next,进入选择发布服务器的窗口,选择Find SQL Server Publisher,出现服务器连接窗口:

这里要注意的是Server Name中一定要填写发布服务器的计算机名,如果计算机名连接不上,要在hosts文件中加一个IP地址解析。

成功连接发布服务器之后,就可以看到刚才在主数据库服务器上创建的发布:

Next,进入“分发代理工作位置”的选择窗口:

我们这里选择pull subscriptions,把数据给拉过来,这样主数据库服务器的负担会轻些。

Next,选择订阅服务器上的数据库,之前我们已经建好同名的数据库,所以系统自己会找到。

Next,进入分发代理安全设置窗口:

点击红框内的按钮,进入设置窗口:

设置如上图,Connect to the Distributor处设置的是发布服务器的sa帐户。

OK, Next, Next, Next:

Next, Finish, Success:

备份数据库的订阅就建好了!

现在来瞧一瞧订阅服务器CNBlogsDB2上的用于复制的数据库CNBlogsDemo:

看!我们在发布服务器上建立的表CNBlogsTest复制过来了。

现在我们去发布服务器CNBlogsDB1上添加一条记录:

再去订阅服务器CNBlogsDB2瞧一瞧:

数据立即同步过来了!搞定!

遇到的问题:

在测试过程中被两个问题折腾了很长时间。

1)发布服务器的Log Reader Agent不能启动,错误信息:

· The process could not execute 'sp_replcmds' on 'YCSERVER'. (Source: MSSQL_REPL, Error number: MSSQL_REPL) Get help: · 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: ) Get help: · The process could not execute 'sp_replcmds' on 'YCSERVER'. (Source: MSSQL_REPL, Error number: MSSQL_REPL) Get help: Server 数据库文件,Owner为空,改为sa问题就解决了,如下图:

2)第二个问题就是前面已经描述过的订阅服务器访问发布服务器上的快照文件夹的问题,后来通过FTP的方式解决的。

对于SQL Server 数据库复制,目前我就学习了这些,期待园子里有这方面经验的朋友也来分享一下,在分享过程中你也会学到很多。

SqlServer 数据库同步的两种方式(发布、订阅使用方法) 上篇中说了通过SQLJOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作。发布订阅份为两个步骤:1

SQL Server 备份数据库、还原数据库的方法 SQLServer备份数据库:1.打开SQL,找到要备份的数据库,右键任务备份2.弹出[备份数据库对话框],如图:3.点击添加[按钮].如下图:4.选择要备份的路径和备份

SQL Server 存储过程示例 --有输入参数的存储过程--createprocGetComment(@commentidint)asselect*fromCommentwhereCommentID=@commentid--有输入与输出参数的存储过程--createprocGetCommentCount@newsidint,@counti

标签: 通过SQL Server 2008数据库复制实现数据库同步备份

本文链接地址:https://www.jiuchutong.com/biancheng/319174.html 转载请保留说明!

上一篇:SQL Server 2008中的数据表压缩功能详细介绍(SQL server 2008中的数据库能否只包含数据文件)

下一篇:SqlServer2008 数据库同步的两种方式(发布、订阅使用方法)(sqlserver2008数据库文件路径)

  • 个人私活 要交个人所得税吗
  • 契税是什么意思契税是过户费吗
  • 增值税专用发票抵扣期限
  • 货物运输发票抵税多少
  • 让渡资产使用权是指资产的所有者将
  • 深圳增值税普通发票查询真伪
  • 增值税专用发票电子版
  • 购房契税应该交给谁
  • 两处以上取得工资如何交社保
  • 无形资产摊销和累计摊销一样吗
  • 增值税普通发票和普通发票的区别怎么交税
  • 加工企业购入辅料记入什么科目?
  • 怎么结转销项税额
  • 支付专家劳务费什么意思
  • 哪些单位可以开专票
  • 发票上的二维码可以扫金额吗
  • 体检合同属于什么合同
  • 技术转让所得减去成本吗
  • 如何正确理解新制度经济学与新古典经济学的关系
  • 哪些理财产品能赎回
  • 房产企业可计入开发成本的利息如何确定?
  • 待抵扣进项税额借贷方向
  • 没进项发票要交多少税
  • 技术转让减免所得额
  • 资源综合利用企业税收优惠
  • 建设单位对工程施工的评价意见
  • 新手会计怎么入门做账
  • 政府投资农业项目
  • 收到拆迁补偿款现金流量表在哪里体现
  • 质押已至票据到期日
  • win8.1怎么用
  • 供应商收费标准
  • php命令行执行文件
  • 上海中秋活动2021
  • 大陆公司如何开离岸账户
  • php数组函数有哪些
  • 工程改造怎么做账
  • win11预览版dev改beta
  • 巴黎先贤祠的名言
  • php新手入门教程
  • 房地产企业结转收入企业所得税处理
  • 金融业的特殊性指的是
  • 亚美尼亚格加尔德修道院
  • 公司车辆缴纳车船税需要什么资料
  • 客户要回扣
  • 垃圾清运费属于什么服务
  • 房屋装修固定资产置换
  • vue2.
  • 增值税发票开票系统数据与实际报税数不一致的原因?
  • python wraps函数
  • mysql常用表
  • 其他收益在报表列示的项目是
  • 工会经费发放奖励个税处理
  • 医院交什么保险
  • Sqlserver 2005使用XML一次更新多条记录的方法
  • 施工企业会计成本费用论文3000字
  • 暂扣员工工资应怎么处理
  • 个人垫付社保会计分录
  • 资产负债表中应交税费为负数是什么意思
  • 滞纳金在年报的营业外支出的哪一项?
  • 注册公司没交社保
  • sqlserver如何更改数据类型
  • 使用权资产
  • mysql登陆error2002
  • sqlserver CONVERT()函数用法小结
  • sql中存储过程的用法
  • tcp window 0
  • 高端电脑品牌
  • ubuntu 14.10
  • 格式化快速格式化好吗
  • linux shell awk 流程控制语句(if,for,while,do)详细介绍
  • SpamSubtract.exe - SpamSubtract是什么进程
  • 电脑windows自动关闭
  • python实现人脸识别代码
  • javascript的代码
  • 组织收入原则三个务必
  • 税务绩效管理存在不足
  • 成都税务局网站首页
  • 电子税务怎么弄
  • 固定资产处置要开票交税么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设