Oracle与SQL Server数据库镜像比较-备份恢复[Oracle防范]
本文“Oracle与SQL Server数据库镜像比较-备份恢复[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
数据库镜像是将数据库事件处理从一个数据库移动到差别环境中的另一个数据库中.镜像的拷贝是一个备用的拷贝,不能直接拜候,它只用在错误恢复的情形下.Oracle数据库与MSSQL数据操作上有很大的差别,但是,在镜像操作方面有类比的地方.这篇文章关于MSSQL数据库镜像在Oracle数据库中是若何实现的,它们之间存在哪些差别呢.
首先,微软SQL数据库中的镜像数据库近似于Oracle数据库中的备用数据库.我说的只是近似,切当的说,我们需求考虑差别数据库在自己体系中的差别.MSSQL作为一个实例来操作,一个实例包含几个数据库,你首先要登录一个实例,然后挑选哪个数据库作用于该实例.而在Oracle数据库中,简单情势(忽视RAC)就只有一个数据库与一个实例相接洽.因此,可以这么说,在Oracle数据库中,备份数据库(standby database)就美满是主数据库的快照.而在MSSQL中,镜像数据库仅仅是挑选的那个数据库的备份,但没有包含代理,登录,任务(这些大概更多的数据库项目需求单独在数据库镜像上成立大概复制)这些外部数据项.
在服务器数目上,Oracle的主数据库和备用数据库配置最小需求2台.在MSSQL中,最小数据是2个或3个,按照你所挑选的高可用性、高安全性、高性能方法所决意.
高可用性方法:这个操作情势选项答应你在两台服务器上同步事件写入,并支持自动错误恢复.要利用这个选项,你必须还要利用一个证人服务器.
高保护方法:这个选项可以让你在两台服务器上同步事物写入,但是错误恢复是手工的.因为自动的错误恢复不是这个选项的一部份,所以也不会用到证人服务器.
高性能方法:这个选项不关心两台服务器上的写入能否是同步的,因此在性能上有所提高.当利用这个选项的时刻,你只能假定镜像服务器上的全部事情都是成功完成.这个选项只答应手工的错误恢复,因此不会用到证人服务器.
为了保证弊端自动恢复,就需求有第三台服务器,可以称之为目击者(别的两个就是主数据库和镜像数据库),你可以将这个目击者当作聚集合的一个成员.它实现了2比1投票的本领,当我的一个组件不可达,并因此需求举行错误恢复的时刻.证人服务器只有在你想实现自动错误恢复的时刻才需求用到.
在Oracle数据的一个事件中,日记缓冲器在废数据写入数据文件(忽视write-ahead情形)前被革新大概写入到redo日记中.这种革新大概写入到redo日记的行为是有必要的,如像实例失利(利用前滚和回滚恢复历程)这样的事件发生时.MSSQL也承认将日记缓冲器写入到磁盘的重要性.不过这里称之为硬化(hardening).首先将事件日记缓冲器的信息写入到磁盘大概硬化,接着将日记记录块发送到镜像数据库中.镜像数据库接纳到该日记记录块后,将之存入到某个缓冲器中,随后顺次硬化该日记记录块.
当数据发生改变时,MSSQL数据库若何保持主数据库和镜像数据库的一致性呢?
Oracle用户非常熟习SCN,而MSSQL用户通过利用mirroring_failover_lsn机制(大概来说就是一个日记序列号).MSSQL与Oracle差别,MSSQL将事件别离(两个事件在两个机械上),而不是一个分布式事件(在自身提交前需求远程等候提交).
别的一个类似点,但略微有些畸变的反射就是redo日记和事件日记.在Oracle中,完成的redo日记将被发送到远程的服务器中,将完成的redo日记利用到备份数据中去.在MSSQL中,事件日记没有被传输,但是就像我以上提到的,日记缓冲器数据发送到网络上.这就招致别的一个镜像反射:备份和恢复情势.
在Oracle中,当你处于归档情势大概非归档情势的时刻,这些操作是内定的.假如归档redo日记被传输大概提交到一个远程的服务器,那么主数据库明显就是在归档情势下,那些文件就是这么产生的.运行在这种情势下,答应有少量的数据丧失,因为在发生弊端(无论什么样的弊端)前,恢复可以在肆意一个点上履行.在MSSQL中是近似的,但是有三种状况需求挑选.
《SQL Server联机丛书》,像很多别的的在线资源一样,报告了在利用MSSQL时,3种恢复情势的差别点.快速的对比有:MSSQL完好情势对应于Oracle中的归档情势;简单情势对应于非归档情势;bulk情势与利用直接途径插入,增添提醒,大概与nologging情势操作近似.
按照以上三种情势(这三种情势很简单转换,不需求关机大概重启)的描写以及日记缓冲器和归档redo日记的谈论中,很简单断定在MSSQL中举行数据库的镜像需求将数据的答复情势设置成完好情势(full model).简单情势(Simple model)大概也能行,但是这种情势下保持事件日记中的小部份数据,在备份中,假如在日记被删节了,整个镜像历程也就破环了,因为当你在将事件发送到镜像数据库中的时刻,假如日记被删节了,这个历程就不能完成.
说到数据库被破坏该怎么办呢?
这恰是镜像(大概说备份)的主要目的:当主数据库断开大概说碰到弊端时刻我们但愿系统能回到镜像前大概备份前的情况去.这若何才能实现呢?我们能自动实现大概手动实现.想实现这些,需求一些已经完成的设置.在MSSQL中,自动弊端恢复,回到本来状况需求在HA情势,事件安满是full,数据传输是同步,有目击服务器的情形下.这种情势下运行还需求利用企业版的数据库系统.高安全性和高性能在尺度版的情形下也能实现.
MSSQL还有别的版本的挑选,但是这些并不如Oracle的反射"干净",这些版本包含:Developer、Workgroup 和 SQL Express.举个例子,目击服务器可以是任何的版本,但是假如你想给镜像服务器做一个快照,那么你就需求企业大概开辟版的了.
在设置搭档(partner,普通有主数据库和镜像数据库构成)历程中,他们的恢复状况开始起作用.通过利用相同的名字,镜像在远程/镜像服务器上成立(利用配置数据库镜像安全向导是最简单的办法)起来,并且镜像数据库被设置成NORECOVERY,普通它是恢复(recovering)状况的.在MSSQL中,恢复数据库是没有的,因此没有举行上述的设置,是不能被其他用户当作只读数据库来利用的.
为了避免这此中缺陷,你可以给镜像做一个快照,使得该"影像"对用户可见.正如我上述所提到的那样,这需求你的数据库版本是企业(大概开辟)版.这就意味着用户需求有快照数据库的知识,知道若何进入存储它,若何奉告利用程序利用哪个数据库.惯例上来说,配置文件利用的.NET环境,你能成立一个主数据库和一个弊端回滚的辅数据库.假如在Oracle中配置过备份数据库,你就会认为这很近似.
结论
这篇文章内容包含按照Oracle的方法,若何更好的理解在另一种主流的RDBMS上履行镜像大概复制,.试着学习和注释你的RDBMS若何工作的,从别的一种情势来得到你的注意有助于你搞清楚你当前数据库系统运行原理.举个例子,我发现非常有实用代价的是Oracle归档情势和MSSQL三种恢复情势之间的关系.利用在MSSQL中的一些术语(搭档,主数据库,目击,镜像)有助于你构成和辨认Oracle中履行数据库镜像的操作.
为了更好的评价数据库镜像是若何运作,若何实施的,你可以运行两个单独的MSSQL实例,操作系统是XP大概是2003都没有关系.按照MSDN联机丛书的步骤完成一遍.下载大概选用AdventureWorks数据库(近似于Oracle的HR/SH数据库等.这些都没有预安装的),将其镜像到主机服务器上.显目前你眼前的不但仅是别的一个数据的所具有功效特点,你将还会看到MSSQL所具有的操作,得到自己的精确评价(我平常利用的是Oracle数据库,测试用的是MSSQL,反过来说,你平常利用的是MSSQL,目前用Oracle来测试的话,也会有新的发现).
以上是“Oracle与SQL Server数据库镜像比较-备份恢复[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |