数据库灾备与高可用性方案的设计与实现需求、约束、前提★ACME.Com公司需要数据库系统拥有非常高级别的性能、灵活性和可靠性。公司WEB站点每天有2000万次的页面访问量,并且每年都以100%的速度增长。★为了顺应高可用性的要求,ACME.Com需要部署了双节点主动、被动配置的SQLServer2005企业版服务器群集。但是不排除在今后将群集重新配置为主动、主动节点,并且将其中的一个节点专用于OLTP业务,执行频繁的数据修改;另外一个作为只读的服务器,提供快速的只读的业务数据查询,包括财务分析的数据、销售数据等。★群集主节点的数据量非常大,现在已经拥有近100GB的数据量,磁带机的吞吐量是10MB/s,每天的增量数据大约是200MB。文件、文件组与增量规划ACME_DB数据库的文件组、文件配置五个文件组:•主文件组需要一个主数据文件,初始大小为200GB,不允许自动增长,最大值为300GB,放置在D盘;•其他四个文件组各需要一个数据文件,初始大小为200GB,不允许自动增长,最大值为300GB,放置在E盘;•五个日志文件,初始大小为50GB,不允许自动增长,最大值为75GB,放置在C盘;增量数据如何存放,是否考虑分区表,若考虑,如何配置与实施。由于每天的增量数据大约是200MB,因此我考虑分区表,以提高访问性能•1.创建分区函数。根据年份指定分区,并设置其边界值放置位置为右•2.创建分区方案。将分区函数中定义的分区分别分配给上述的五个文件组,并指定第六个文件组为下一个要使用的文件组。•3.创建分区表。•4.将数据插入分区表。•5.查看分区表使用情况备份方案•实施备份方案需要多少个备份设备、类型分别是什么、不同的备份设备用途为何?•实施备份方案需要三个备份设备:BackupFull,BackupDiff,BackupLog•类型分别是完整数据库备份,差异备份和事务日志备份;•完整数据库备份:由于数据量的庞大及数据的重要性,若数据库运行失败,可以还原最新的完整备份以将数据库恢复到完成该备份时的数据库状态。可用情况:1.数据库较小2.数据库具有很少的数据修改操作或是只读数据库注意:1.必须定期清理事务日志2.设置trunclogonchkpt为true,减少事务日志备份方案•实施备份方案需要多少个备份设备、类型分别是什么、不同的备份设备用途为何?•实施备份方案需要三个备份设备:BackupFull,BackupDiff,BackupLog•类型分别是完整数据库备份,差异备份和事务日志备份;•差异备份:当数据库损坏时,此策略可用于减少恢复时间。它比完整数据库备份占用空间更小、速度更快,从而也降低了数据丢失风险。可用情况:1.数据库频繁修改2.数据库需要进行最小化备份时备份方案•实施备份方案需要多少个备份设备、类型分别是什么、不同的备份设备用途为何?•实施备份方案需要三个备份设备:BackupFull,BackupDiff,BackupLog•类型分别是完整数据库备份,差异备份和事务日志备份;•事务日志备份:是自上次备份事务日志后对数据库执行的所有事务的一系列记录。可以使用事务日志备份将数据库恢复到特定的即时点(如输入多余数据前的那一点)或恢复到故障点。注意:1.除非已经至少执行了一次完整数据库备份,否则不用备份事务日志2.如果没有相应的数据库备份,你将无法还原事务日志3.当数据库使用“简单恢复”模式时,你将无法备份事务日志•采用何种备份类型、备份周期如何设置、如何对性能的影响最少、备份有无有效期(何时可以删除旧备份)。采用完整备份+差异备份+事务日志备份的方式:完整备份:每月备份一次差异备份:每周备份一次事务日志备份:每天备份;•实施这个备份方案,并以自动化的方式执行的具体的操作步骤。由于大部分工作的操作是相同的,因此,可决定使用“SQLServer代理”功能,通过创建周期性的维护计划,并为数据库设定警报来进行自动化管理。具体步骤:1.根据周期的不同性创建三个维护计划每月完整备份计划,每周差异备份计划和每天日志备份计划每月完整备份计划:BackupdatabaseACME_DBtoBackupFull每周差异备份计划:BackupdatabaseACME_DBtoBackupDiff每天日志备份计划:BackupdatabaseACME_DBtoBackupLog2.创建警报,响应时以电子邮件的方式通知操作员还原方案•面对不同类型的灾难,如何最快的进行恢复。步骤:要在灾难发生时恢复数据库,必须先还原最新的完整数据库备份:,然后还原最新的差异备份,然后依次还原自该次差异备份之后的所有事务日志,最后还原尾事务日志(使用recovery选项)详细操作步骤:1.将AdventureWorks事务日志的尾部备份到BackupLogs备份设备中,追加方式,并定该备份名称为ACME_DB-TransactionLogTail-Logbackup。步骤:backuplogACME_DBtoBackupLogwithnoinit,no_truncate,norecovery,name=N'ACME_DB-TransactionLogTail-Logbackup'2.通过三个备份设备还原数据库restoredatabaseACME_DBfromBackupFullwithnorecoveryrestoredatabaseACME_DBfromBackupDiffwithnorecoveryrestorelogACME_DBfromBackupLogwithrecovery,file=2高可用性方案前提:•存储设备为“磁盘阵列”;•双节点主动、被动配置的SQLServer2005企业版服务器群集,但是不排除在今后将群集重新配置为主动、主动节点,并且将其中的一个节点专用于OLTP业务,执行频繁的数据修改;另外一个作为只读的服务器,提供快速的只读的业务数据查询,包括财务分析的数据、销售数据等。对于主动/被动模式,只有一台群集虚拟服务器可以访问,在某一时间只有一台物理服务器进行工作,在该物理服务器出故障时,MSCS自动实现切换,虚拟服务器转移到另一台物理服务器。•如果采用主动/主动模式对数据库服务器进行群集后会有两台虚拟数据库服务器,如果群集中的某一个节点出现故作,MSCS控制故障转移,这使另一个正常的节点需要承受两个节点的服务。•两节点间必须有网络的连接,建议每台服务器配置两块网卡。其中一块用于两结点之间的通讯,互相监测,传送称•为“HeartBeat”(心跳)的动作确认信号,一旦某节点没有响应,就认定对方已经出现故障,系统自动将故障节点的作业切换到正常节点上继续进行。这块卡速度不一定要快,有10兆就可以,但性能一定要稳定。另一块面向各工作站,一般都连接到交换器上,非100兆不可。•重要的概念服务器群集:•群集服务是通过提供冗余来实现高可用性日志传送:•日志传送是一种使用标准硬件来创建备用服务器的低成本方法数据库镜像:•数据库镜像是SQLServer2005EnterpriseEdition中的日志传送功能的一个改进形式。日志传送只保护用户数据,并将事物从主服务器应用到辅助服务器;数据库镜像在事物发生后就立即(而不是按预定的时间间隔)将其应用到备用系统。如果主服务器发生故障,镜像集可自动进行故障转移,并且客户端可自动使用该辅助服务器。•影响可用性的因素1.软件故障2.硬件组件故障3.网络故障4.电源故障和自然灾难等环境因素•优化数据库可用性的注意事项1.硬件组件冗余2.网络冗余3.RAID(RAID是一项用于提供硬盘冗余和改进性能的独立服务器解决方案。)4.服务器和数据库冗余步骤:•1.为了保证服务器在整个过程中能够随时可用,为使用交流电的服务器配置一个不间断电源UPS作为备用,一旦停电,系统将自动切换使用UPS作为电源(主要针对硬件组件故障)•2.使用数据库镜像来实现高可靠性具体措施:•1)在三台计算机上分别安装SQLServer实例•2)对主体服务器进行完全备份•3)将备份好的数据库恢复到“镜像服务器”•4)启动配置数据库镜像安全向导,分别配置“主体服务器实例”,“镜像服务器实例”和“见证服务器实例”•3.配置镜像选项为高可用性模式•4.实现日志传送,通过它将主体服务器的事务日志周期性地还原到备份服务器上•在设置日志传送之前,还必须完成如下任务:•1)为事务日志备份创建一个共享文件。为了使主体服务器的可用性最大化,最佳做法是将该备份共享文件放在一个单独的宿主计算机中。•2)为每个辅助服务器创建一个文件夹,日志传送将向该文件夹中复制事务日志备份文件。这些文件夹通常位于各自对应的辅助服务器上。•4.可使用RAID5(带分布式校验的磁盘条带集)保证数据的存储结束!xiexie