科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Oracle数据库在线备份原理(2)

Oracle数据库在线备份原理(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文从ORACLE数据库的基本原理出发,深入的讨论了ORACLE数据库在线备份的基本原理以及利用这些原理为ORACLE数据库的远程复制提供了一种方法,也就是ORACLE远程备份的实现。

作者:changelive 来源:赛迪网技术社区 2007年9月5日

关键字: 备份 数据库 ORACLE

  • 评论
  • 分享微博
  • 分享邮件
2.2ORACLE对DML语句的处理 #? n@_+_  
      有了以上的一些基本概念,我们可以讨论ORACLE在线备份了。在此之前,我们首先来看ORACLE对DML(DELETE、UPDATE、INSERT)语句的处理过程:(该系统的拓扑结构为CLIENT/SERVER模式) 8Ts?-W( f  

  j,Xg+k;  
从上图可以看出,ORACLE数据库对DML语句的出来过程如下: yfIC/SP  
1)   用户(CLIENT)将DML语句传递给服务器(SERVER)。(如图,该DML语句是UPDATE) p 9Eb+}  
2)   SERVER进程将需要的数据块从数据文件读到内存区(SGA区)的DATA BUFFER CACHE中,同时在该区中对数据进行修改。 m3RjE  
3)   将整个修改过程由内存中的DATA BUFFER CACHE 区COPY到内存区的REDO LOG BUFFER。这次COPY不但保存了数据库修改后的值,而且保存数据库修改前的值。   -gLm~ Q?h  
4)   DML语句对数据库的都会有ORACLE的SERVER进程记录到ORACLE的内存结构REDO LOG BUFFER中。因此,我们只要把所有REDO LOG BUFFER 中的信息记录下来,那么我们就记录了所有DML语句对数据库的修改。这个纪录过程由ORACLE的另一个后台进程来完成。如下图:
pfBLt M  
如图所示:把REDO LOG BUFFER保存下来到后台进程是LGWR,LGWR把REDO LOG BUFFER的内容保存到称为REDO LOG FILES中。 REDO LOG FILES 是一组操作系统文件。如图:
 &b j\AH  
!d9$V 2  
该数据库中有三组REDO LOG FILES,每组中有两个成员,这两个成员是相互镜像的。ORACLE 数据库的后台进程写满第一组之后,接着写第二组,写满第二组之后写向第三组。写满地三组之后ORACLE地处处理依据ORACLE运行方式不同而不同。 `nfj.D_ C  
1.   ORACLE运行方式为非归档方式 (^y]3/$  
在这种情况下,ORACLE数据库不会在任何处理接着写向第一组,将第一组原有的数据覆盖掉。因此REDO LOG FILES原有的数据不可用,故数据库在这种情况下不可恢复。 N7Gvu3]  

fos24Bv=`  
  数据库每次写向一组新的REDO LOG FILE 时都会为该组分配一个序号。这个序号是递增,而且唯一的。并且可以按指定的方式REDO LOG FILE的文件名相关。这样如果REDO LOG FILE 在相同的目录下也不会同名。 qKS{4H*qx  
2.   ORACLE 运行方式为归档方式 &wB/uNR-  
在这种情况下,ORACLE数据库接着写向第一组之前,将第一组做一个备份。这个备份就是我们用来做恢复的依据。如图: LuU"$ -o  
93X5B |7D  

i/OOYkj  
归档的REDO LOG FILES (ARCHIVED LOG FILE)是对原REDO LOG FILE 的物理拷贝。这个拷贝是可由数据库的后台进程ARCH自动完成的。(由于每一个REDO LOG FILE的名字中有一个唯一的序号,因此ARCHIVED LOG FILE的名字也有一个唯一序号。这个序号决定了做恢复时的使用ARCHIVED LOG FILE 顺序。) : c$ E  
从上可知: nFVZ1  
1.   DML语句对数据库的修改记录在REDO LOG BUFFER 中 T":Bbe"c  
2.   REDO LOG BUFFER中信息记录在REDO LOG FILE中 &uaT@phL  
3.   REDO LOG FILE 中的信息记录在ARCHIVED LOG FILES 中 c i4HFgmE  
因此,把所有的ARCHIVED LOG FILES 保存下来就保存所有对数据库的修改。 xbX"If8=.  
用归档来考虑备份与恢复时,必须指出: (0Sm^ yH  
1.   如果发出的SQL语句指定了NOLOGGING等将对数据库修改不记入REDOLOGFILE时,这些信息是不能恢复的。此时须借助于其它类型的备份 aF,&'x AG  
归档只记录了对数据库的DML语句修改,因此在做恢复时,必须有一个全备份做基础。归档作用在这个全备份上,重演以前对数据库的DML的修改来达到恢复的目的
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章