1前言
本文从ORACLE数据库的基本原理出发,深入的讨论了ORACLE数据库在线备份的基本原理以及利用这些原理为ORACLE数据库的远程复制提供了一种方法,也就是ORACLE远程备份的实现。本文提供的远程备份实现的过程是从实践中产生的。
|
|
|||
关键词:ORACLE数据库 DML语句 DDL语句 在线备份 远程备份
2 ORACLE 工作机制
在讨论ORACLE在线备份之前,我们先作一些准备工作。
2.1基本概念
由于我们讨论的ORACLE在线备份涉及到以下ORACLE的几个基本而且非常重要的概念。为了说明方便,下面我们对这几个重要的概念作一些说明。
1)数据库的表
表是数据库中最基本而且是最重要的概念,表是数据库用来存放数据的地方。应用业务中的数据就是保存在数据库的表中。
2)数据查询语句
数据查询语句主要是对数据库中的数据进行查询于浏览。也就是对数据库中的表的记录进行查询。在ORACLE数据库中,数据查询的命令是:
SELECT
3)DML语句
在ORACLE数据库中,DML(DATA MANIPULATION LANGUAGE)语句,也就是数据操纵语言,指那些对ORACLE数据库中数据进行修改的语句。这种修改仅限于数据库中的数据,也就是表中的记录。而不是数据库中的对象。从后面可以看书,理解这一点非常重要。DML语句有以下几类:
A)数据的增加
往数据库中增加数据是DML语句一个功能,在数据库中数据的增加表现为数据库中表的记录的增加。ORACLE数据库中增加记录的命令是:
INSERT
B)数据的修改
数据库中的数据并不是一成不变的,有时由于应用或是业务要求的变化,可能需要修改数据库中的数据。数据库中数据的修改表现出来是对数据库的表中的记录进行修改。DML语句可以用来对数据库中的数据进行修改。ORACLE数据库中修改表中的记录的语句是:
UPDATE
C)数据的删除
数据库中的数据不再需要时,要将其从数据库中删除。也就是把记录从数据库的表中删除。ORACLE数据库删除记录的命令是:
DELETE
4)DDL语句
在ORACLE数据库中,对象的创建是由DDL语句完成。DDL (DATA DEFINITION LANGUAGE)语句一经发布,则数据库中将增加一个对象,如表,用户等等。
2.2ORACLE对DML语句的处理
有了以上的一些基本概念,我们可以讨论ORACLE在线备份了。在此之前,我们首先来看ORACLE对DML(DELETE、UPDATE、INSERT)语句的处理过程:(该系统的拓扑结构为CLIENT/SERVER模式)
从上图可以看出,ORACLE数据库对DML语句的出来过程如下:
1) 用户(CLIENT)将DML语句传递给服务器(SERVER)。(如图,该DML语句是UPDATE)
2) SERVER进程将需要的数据块从数据文件读到内存区(SGA区)的DATA BUFFER CACHE中,同时在该区中对数据进行修改。
3) 将整个修改过程由内存中的DATA BUFFER CACHE 区COPY到内存区的REDO LOG BUFFER。这次COPY不但保存了数据库修改后的值,而且保存数据库修改前的值。
4) DML语句对数据库的都会有ORACLE的SERVER进程记录到ORACLE的内存结构REDO LOG BUFFER中。因此,我们只要把所有REDO LOG BUFFER 中的信息记录下来,那么我们就记录了所有DML语句对数据库的修改。这个纪录过程由ORACLE的另一个后台进程来完成。如下图:
如图所示:把REDO LOG BUFFER保存下来到后台进程是LGWR,LGWR把REDO LOG BUFFER的内容保存到称为REDO LOG FILES中。 REDO LOG FILES 是一组操作系统文件。如图:
该数据库中有三组REDO LOG FILES,每组中有两个成员,这两个成员是相互镜像的。ORACLE 数据库的后台进程写满第一组之后,接着写第二组,写满第二组之后写向第三组。写满地三组之后ORACLE地处处理依据ORACLE运行方式不同而不同。
1. ORACLE运行方式为非归档方式
在这种情况下,ORACLE数据库不会在任何处理接着写向第一组,将第一组原有的数据覆盖掉。因此REDO LOG FILES原有的数据不可用,故数据库在这种情况下不可恢复。
数据库每次写向一组新的REDO LOG FILE 时都会为该组分配一个序号。这个序号是递增,而且唯一的。并且可以按指定的方式REDO LOG FILE的文件名相关。这样如果REDO LOG FILE 在相同的目录下也不会同名。
2. ORACLE 运行方式为归档方式
在这种情况下,ORACLE数据库接着写向第一组之前,将第一组做一个备份。这个备份就是我们用来做恢复的依据。如图:
归档的REDO LOG FILES (ARCHIVED LOG FILE)是对原REDO LOG FILE 的物理拷贝。这个拷贝是可由数据库的后台进程ARCH自动完成的。(由于每一个REDO LOG FILE的名字中有一个唯一的序号,因此ARCHIVED LOG FILE的名字也有一个唯一序号。这个序号决定了做恢复时的使用ARCHIVED LOG FILE 顺序。)
从上可知:
1. DML语句对数据库的修改记录在REDO LOG BUFFER 中
2. REDO LOG BUFFER中信息记录在REDO LOG FILE中
3. REDO LOG FILE 中的信息记录在ARCHIVED LOG FILES 中
因此,把所有的ARCHIVED LOG FILES 保存下来就保存所有对数据库的修改。
用归档来考虑备份与恢复时,必须指出:
1. 如果发出的SQL语句指定了NOLOGGING等将对数据库修改不记入REDOLOGFILE时,这些信息是不能恢复的。此时须借助于其它类型的备份
归档只记录了对数据库的DML语句修改,因此在做恢复时,必须有一个全备份做基础。归档作用在这个全备份上,重演以前对数据库的DML的修改来达到恢复的目的
·数据库专栏 (4452篇文章)
·数据库处理专题 (7194篇文章)
·城域网专题 (6645篇文章)
·数据库安全技术专题 (10947篇文章)
·数据库安装与卸载 (8906篇文章)
·Oracle 10g基础应用 (4022篇文章)
·Linux数据库宝典 (11116篇文章)
·数据库相关文章 (4452篇文章)
·数据库备份与恢复 (279篇文章)
·使用一条SQL语句删除表中重复记录 (0次浏览)
·Oracle开发(一).Windows下配置使用ProC (0次浏览)
·Oracle数据库开发(二).Linux下配置使用ProC (0次浏览)
·关于oracle存储过程的若干问题备忘 (0次浏览)
·讲解Oracle里抽取随机数的多种方法 (0次浏览)
·在数据字典中直接修改表列的名称和顺序 (0次浏览)
·数据库中如何使用SQL查询连续号码段 (0次浏览)
·如何使用分析函数进行行列转换 (0次浏览)
·改变非归档模式的Oracle数据库 (0次浏览)
·Oracle-Decode()函数和CASE语句的比较 (18次浏览)
·Oracle数据库如何查询记录时给记录加锁 (12次浏览)
·保持Oracle数据优良性能的若干诀窍 (10次浏览)
·Oracle体系框架及SQL语句性能探讨 (9次浏览)
·如何利用QCTO开发可重复使用的测试库 (8次浏览)
·理解物化视图刷新过程中出现的约束冲突 (8次浏览)
·Oracle数据库删除两表中相同数据的方法 (8次浏览)
·Oracle是波音747还是MySQL丰田汽车呢? (7次浏览)
·利用多个转储文件导出大量Oracle数据 (6次浏览)
·Oracle体系结构:内存结构和进程结构 (248次浏览)
·开启企业殿堂的钥匙 Oracle服务器的安装 (185次浏览)
·将Oracle的数据导入EXCEL中的方法 (167次浏览)
·简单冷备份恢复操作步骤 (130次浏览)
·oracle下导出某用户所有表的方法 (128次浏览)
·ORACLE的客户端如何连接到数据库 (127次浏览)
·详细讲述 Oracle 密码丢失解决方法 (112次浏览)
·Oracle数据库在线备份原理 (103次浏览)
·八个学习点帮助你全面认识Oracle数据库 (91次浏览)
·如何禁用 oracle 的 XDB 06-27
·理解 oracle 的 “lsnrctl status” 06-27
·Oracle查询中rownum与Order by查询的关系 06-27
·实战经验为何数据库归档日志名称为空 06-26
·快速掌握Oracle数据库游标的使用方法 06-26
·Oracle Lite 10g数据库第三版正式问世 06-25
·Oracle 动态SQL返回单条结果和结果集 06-25
·Oracle多行记录字符串综合操作几种方法 06-24
·如何通过实例配置Oracle监听器 06-24
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |




