数据库备份和复制

1.1. 数据库复制

1.1.1. 基本概念

复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性

1.1.2. 异构数据库复制技术
1.1.2.1. 基本原理

主要用于分布式数据库技术,采用的主要方式为SQL重现法

SQL重现法需要为每个源表建立触发器,当源表发生修改、插入和删除操作时,触发器被启动,通过调用存储过程,将源表发生的操作还原为SQL语句,向该源表对应的变更轨迹表中插入变更时间和还原后的SQL语句,可大致分为变化捕获和数据分发步骤。

1.1.2.2. 变化捕获

clip_image002

1.1.2.3. 数据分发

将源表发生的变化应用于目标表,执行成功后删除变更轨迹表中对应序号的记录

clip_image004

1.1.3. SQL Server数据库复制技术
1.1.3.1. 基本原理

SQL SERVER 主要采用Publisher、Subscriber的方式来处理复制。源数据所在的服务器是Publisher服务器,负责提供数据。出版服务器把要提供的数据的所有改变情况的拷贝复制到Subscriber服务器,Subscriber服务器包含有一个Subscriber数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给Subscriber服务器。

1.1.3.2. 技术类型

按照复制目标来划分:

1. 快照复制(snapshot)

新建一个快照,放到指定的目录下面供Subscriber访问。

2. 事务复制(transaction)

备份日志,放到指定的目录下面供Subscriber访问。

3. 合并复制(merge)

“基于SQL重现法”,为源数据库中的复制对象(源表或视图)创建变更轨迹表,当源表发生变化时,变更轨迹表中记录了变更情况,再通过事后从变更轨迹表中获取SQL语句,将源表中的数据复制到目标表中。

按照复制方式来划分:

1. SQL Server Agent 提供基于调度的复制

2. 手工复制(写SQL)

1.1.4. 案例

在开发跨地域进销存管理系统时,如何实现不同地区的数据同步,如何保持数据的一致性、及时性成为系统成败的关键。我们成功地解决了这个问题,现介绍如下。

系统环境数据库系统:SQL Server 2005

操作系统:WINDOWS NT 4.0,IIS4.0

网络:销售中心通过一条专线连接到Internet,各地区分销点通过modem拨号连接到Internet。

复制策略综合考虑各种因素,如数据联系的紧密程度、网络的可靠性、费用等,我们选择分散处理数据,定时同步数据的方式。为此,我们把数据分为两类:只需单向复制的数据(例如系统的基础数据、一部分日常处理的数据)需双向复制的数据(一部分日常处理的数据)

不同类型的数据需采用不同的复制策略

只需单向复制的数据又可分为:由销售中心维护,分发给各分销点的数据;由各分销点维护,汇总到销售中心的数据。

由销售中心维护,分发给各分销点的数据在销售中心的SQL Server上设定其自身作为出版服务器和分发服务器,定义好出版物,采用事物复制模型和匿名订阅方式。

在分销点的SQL Server上设定拉式订阅。由各分销点维护,汇总到销售中心的数据在分销点的SQL Server上设定其自身作为出版服务器和分发服务器,销售中心的SQL Server作为订阅服务器。定义好出版物,采用事物复制模型。并设定推式订阅,将数据复制到销售中心

需双向复制的数据在销售中心的SQL Server上设定其自身作为出版服务器和分发服务器,定义好出版物,采用合并复制模型和匿名订阅方式。在分销点的SQL Server上设定拉式订阅。

为什么采用上述复制策略呢?这是因为销售中心的计算机上有固定IP,而分销点的计算机上只有动态IP以及数据有不同的分类

1.2. 数据库备份
1.2.1. 基本概念
1.2.2. 备份方案
  • 完全备份

备份整个数据库中的所有数据,用这个备份文件就可以恢复整个数据库到备份的时间截止的内容.这种备份生成的备份文件最大,需要的时间最长,对实际业务的影响最大(如果数据库大的话)  

  • 差异备份

备份自上次完全备份后,数据库所做的改变.在差异备份前,必须有一次完全备份,而还原时,也必须先恢复完全备份,然后再在完全备份的基础上恢复差异备份,不能用它单独恢复数据库.差异备份生成的文件比完全备份小,需要的时间比较短

  • 日志备份

备份自上次备份后,数据库所做的改变,在进行日志备份前,也必须有一次完全备份.还原的时候,先还原完全备份,再还原日志备份前,完全备份后的最近一次差异备份(如果有的话),然后再依次还原各次日志备份.这种备份生成的备份文件最小,处理时间也最少,对业务的影响很小,可以经常做

  • 文件/文件组备份

这种备份的使用很少,一般适用于重要数据的备份,这要求在设计数据库时,把保存重要的数据的表,放到单独的文件组中,这样就可以单独对重新的表进行备份.这种备份方式很少使用,它的前提也是要一个完全备份

1.2.3. 备份方案比较
 备份文件大小 处理时间 对业务的影响 数据重要性 备注
完全备份 最大最长 最大 任何数据  
差异备份 较小 较短 较小 任何数据 需要完全备份一次
日志备份 最小最短 最小 任何数据 需要完全备份一次
文件/文件组备份 较大 较长 较大重要数据  

1.2.4. 备份方案选择

综上所述,做一个合理的备份方案,应该是这样:  

  •  业务处理空闲的时候做完全备份,备份时间的间隔设置,根据你的数据量和数据重要的程度来设置,比如一个月做一次
  •  业务处理比较空闲的时候,做差异备份,比如一周备份一次
  • 经常做日志备份,比如你的数据很重要,而数据的变化频度又非常快,可以设置5分钟甚至更短的时间备份一次,这个关键看你的数据重要的程度和允许丢失数据的时间长短来确定
  • 备份硬件的配置,除了备份到磁盘(最差的条件),还应该考虑备份到磁带机或是其他服务器,并且定期要将备份的数据刻录到光盘做永久备份,刻录光盘的另一好处是,可以将刻录后的备份文件删除,腾出空间给新的备份用,这样可以减少备份设备的投资
  • 对于重要的数据,要将备份到多
1.2.4.1. 目标
  • 对业务处理的影响要尽可能地小,把需要长时间才能完成的备份放在业务处理的空闲时间
  • 对于重要的数据,要保证可以接受的任何破坏都可以被恢复
  • 数据库出现故障时,要求尽可能地恢复数据
  • 对备份文件的选择要合理,不要盲目地浪费备份硬件,也不会
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值