登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』OCP认证考试指南(1ZO-063) Oracle Database 12c 高级管理

書城自編碼: 2812574
分類: 簡體書→大陸圖書→計算機/網絡數據庫
作者: [美] Bob Bryla[OCP] 著 郭俊凤 译
國際書號(ISBN): 9787302435181
出版社: 清华大学出版社
出版日期: 2016-05-01
版次: 1 印次: 1
頁數/字數: 419/704
書度/開本: 16开 釘裝: 平装

售價:NT$ 510

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
唐代玄宗肃宗之际的中枢政局
《 唐代玄宗肃宗之际的中枢政局 》

售價:NT$ 420.0
能源与动力工程测试技术(穆林)
《 能源与动力工程测试技术(穆林) 》

售價:NT$ 442.0
大学问·明清江南商业的发展
《 大学问·明清江南商业的发展 》

售價:NT$ 498.0
金庸评传
《 金庸评传 》

售價:NT$ 941.0
西方哲学史
《 西方哲学史 》

售價:NT$ 498.0
中国财富管理发展指数(2022)
《 中国财富管理发展指数(2022) 》

售價:NT$ 325.0
希腊神话和仪式中的结构与历史
《 希腊神话和仪式中的结构与历史 》

售價:NT$ 437.0
周制与秦制
《 周制与秦制 》

售價:NT$ 717.0

建議一齊購買:

+

NT$ 413
《 Oracle PL/SQL性能调优诀窍与方法 》
+

NT$ 822
《 Python金融大数据分析 》
+

NT$ 656
《 数据科学中的R语言(R语言应用系列) 》
+

NT$ 496
《 OCA认证考试指南 1Z0-061 :Oracle Database 12c SQL 基础 》
+

NT$ 540
《 Access数据库应用技术(Access2010版) 》
編輯推薦:
备战OCP认证考试1Z0-063的完整学习体系
Oracle官方出品
20年的IT经验、Oracle认证专家级DBA全新作品

配套学习资源下载
模拟考卷:150多道试题
测试引擎:提供模拟考题,以及按章节或考点归纳的测试题
內容簡介:
备战OCP认证考试1Z0-063的完整学习体系
本书旨在帮助读者备战Oracle Certifi ed Professional Oracle Database 12c Advanced Administration考试。书中的每一章都提供了极具挑战性的练习、认证小结、知识点回顾和自测题,以强化该章所介绍的主题。这本权威指南不仅可以帮助读者顺利通过考试,还可以作为工作中必不可少的参考手册。本书全面覆盖了1Z0-063考试的所有OCP目标,其中包括:
● 配置和管理Oracle恢复管理器Oracle RMAN
● 使用Oracle RMAN恢复目录
● 执行备份和恢复
● 诊断数据库故障,使用自动诊断仓库
● 加密、保护、监视和调整Oracle RMAN备份
● 配置和使用闪回功能
● 传输和复制表空间和数据库
● 创建和管理多租户容器数据库和可插入数据库
● 使用Oracle Data Pump、SQL *Loader和审核功能
關於作者:
Bob
Bryla是一位Oracle 9i、10g、11g
和12c认证人员,在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的经验。他编著了多本Oracle DBA以及Oracle
Database 11g 和12c的认证学习指南。
目錄
Bob
Bryla是一位Oracle 9i、10g、11g
和12c认证人员,在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的经验。他编著了多本Oracle DBA以及Oracle
Database 11g 和12c的认证学习指南。
內容試閱
第1

数据库备份解决方案和ASM
认证目标
● 解释 Oracle 的备份和恢复解决方案
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
2
ASMAutomatic Storage Management,自动存储管理是一项十分重要的Oracle 数据库技术,
它适用于各种环境,甚至适用于仅有一个数据库和一个数据库实例的环境。ASM 是所有健壮
而完善的备份解决方案的关键所在。通过集成服务器文件系统和Oracle 数据库文件专用的卷管
理器,磁盘管理和调整成为一项轻松愉悦的任务:ASM 会对每个文件对象实施条带化和镜像
化处理来优化性能。此外,可在卷联机时完成几乎所有ASM 卷管理任务,例如在用户访问某
个卷时,将此卷扩展或移至另一磁盘上,而这几乎不影响性能。ASM 群集的多路复用功能通
常比手动将重要文件和备份保存在不同物理磁盘的做法更高效,并且最大限度地减少了丢失数
据的可能性。还可使用一个ASM 实例及对应的磁盘组服务多个数据库实例,以尽量压缩磁盘
硬件方面的投资。
在详细阐释ASM 的工作原理以及如何在你的环境中使用ASM 前,本章讨论了可用的
Oracle 备份解决方案,然后简要介绍了Oracle Database 体系结构,包括实例内存结构、逻辑数
据库结构和物理数据库结构。为了全面了解和领会ASM 的工作原理,以及ASM 对于广泛的
Oracle 备份和恢复解决方案有怎样的贡献,需要透彻了解Oracle Database 体系结构。
1.1 解释Oracle 的备份和恢复解决方案
在具体了解 ASM 以及各种备份和恢复场景之前,需要透彻地了解Oracle Database 及其相
关联的内存和进程结构。本节首先介绍Oracle 物理存储结构,包括数据文件、控制文件、重做
日志文件和归档重做日志文件,以及运行Oracle Database 需要的非数据库文件,如初始化文件
和日志文件。本节接着介绍Oracle 实例中的重要内存结构,以及物理存储结构与内存结构之间
的关系。最后将介绍Oracle Database 12c 中官方推荐的备份和恢复解决方案。
1.1.1 Oracle 逻辑存储结构
Oracle Database 中的数据文件被组合成一个或多个表空间。数据文件是物理结构,可进而
分成区间和块。一个表空间有点像一组数据文件的逻辑包装器。表空间包含粒度更小的逻辑数
据库结构,如表和索引。使用的另一个术语是段,在Oracle Database 中,此术语用来描述表或
索引占用的物理空间。Oracle Database 的条块划分方式允许更高效地控制磁盘空间的使用。图
1-1 显示数据库中逻辑存储结构之间的关系。
1. 表空间
Oracle表空间由一个或多个数据文件组成;数据文件必须正好是一个表空间的一部分。
Oracle Database 12c的安装会至少创建两个表空间:SYSTEM和SYSAUX表空间。Oracle
Database 12c的默认安装创建6个表空间。
Oracle Database 12c以及自Oracle Database 10g 以来的数据库允许创建名为大文件表空
间的特殊类型的表空间,此表空间的大小可达128TB。使用大文件后,表空间管理对于数据
库管理员DBA完全透明;也就是说,DBA 可将表空间作为一个单元进行管理,而无须考虑
底层数据文件的大小和结构。
第1 章 数据库备份解决方案和ASM
3
数据库
区间1
区间2


表空间
段1
SYSTEM表空间 USERS 表空间SYSAUX表空间
段3
段5
段2
段4
段6
图1-1 逻辑存储结构
使用Oracle 管理文件Oracle Managed Files,OMF,管理表空间数据文件将变得更容易。
有了OMF,DBA 在文件系统中指定保存数据文件、控制文件和重做日志文件的一个或多个位
置,Oracle 会自动处理这些文件的命名和管理。
如果表空间是临时的,只是表明表空间中保存的段是临时的,而表空间本身是永久的。可
将临时表空间用于排序操作和仅在用户会话期间存在的表,为这些操作类型专门指定表空间有
助于减少临时段和另一个表空间中存储的永久段如表的IO 争用。
表空间可以是字典管理的表空间或本地管理的表空间。在字典管理的表空间中,会将区间
管理记录在数据字典表中。因此,即使所有应用程序表在USERS 表空间中,仍然是访问SYSTEM
表空间来管理应用程序表上的数据操作语言Data Manipulation Language,DML。由于所有用
户和应用程序必须使用SYSTEM 表空间来管理区间,对于密集执行写操作的应用程序而言,
这成为一个潜在的瓶颈。而在本地管理的表空间中,Oracle 在表空间的每个数据文件的头中维
护一个位图来跟踪空间可用性。只在数据字典中管理配额,这极大地降低了数据字典表的争
用率。
从Oracle 9i 开始,如果在本地管理SYSTEM 表空间,那么,如果要在其他所有表空间上
同时执行读写操作,则必须在本地管理这些表空间。在本地管理SYSTEM 表空间的情况下,
数据库中字典管理的表空间必须是只读的。
2. 块
数据库块是Oracle 中的最小存储单元。块的大小是数据库给定表空间中的特定存储字
节数。
为提高磁盘IO 性能的效率,Oracle 块的大小通常是操作系统块大小的倍数。默认块大小
由Oracle 初始化参数DB_BLOCK_SIZE 指定。大多数操作系统允许在数据库的其他表空间中
定义另外4 种块大小。一些高端操作系统允许使用5 种块大小。SYSTEM、SYSAUX 和任何临
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
4
时表空间中的块大小必须是DB_BLOCK_SIZE。
3. 区间
区间是下一个级别的数据库逻辑分组。一个区间由一个或多个数据库块组成。扩大数据库
对象时,为对象添加的空间作为区间进行分配。Oracle 在数据文件级别管理区间。
4. 段
下一个逻辑分组级别是段。段是一组区间,这些区间形成Oracle 视为一个单元的数据库对
象,如表或索引。因此,段通常是数据库最终用户将要处理的最小存储单元。Oracle 数据库中
的4 种段类型是:数据段、索引段、临时段和撤消段。
数据库中的每个表保存在单个数据段中,一个数据段由一个或多个区间组成;对于分区表
或群集表,Oracle 会为表分配多个段。数据段包括LOBlarge object,大对象段,此段存储表
段中的LOB 定位器列引用的LOB 数据如果未将LOB 以内联方式存储在表中。
每个索引存储在自己的索引段中。与分区表一样,分区索引的每个分区存储在专门的段中。
这种类别包括LOB 索引段。表的非LOB 列、表的LOB 列和LOB 的相关索引均可以保存在不
同的表空间不同的段中以提高性能。
如果用户的SQL 语句需要磁盘空间来完成操作,例如内存中容纳不下的排序操作,Oracle
会分配临时段。仅在执行SQL 语句期间存在临时段。
从Oracle 10g 开始,只有SYSTEM 表空间中存在手动回滚段,但DBA 通常不必维护SYSTEM
回滚段。在前面的Oracle 版本中,会创建回滚段,以便在回滚事务时保存数据库DML 操作的
旧值,并维护旧映像数据,以便为其他访问此表的用户提供表数据的读一致性视图。在恢
复数据库期间,为回滚在数据库实例崩溃或异常终止时处于活动状态的未提交事务,也会使用
回滚段。
在Oracle 10g 到12c 中,自动撤消管理Automatic Undo Management处理撤消表空间中的
回滚段的自动分配和管理。在撤消表空间中,撤消段的结构与回滚段类似,只是这些段的管理
细节由Oracle 控制,而非由DBA 管理这样做效率通常不高。从Oracle9i 开始使用自动撤消
管理,但在Oracle 10g 中仍然可以使用手动管理的回滚段。但是,从 Oracle 10g 开始不赞成使
用此手动功能。在Oracle Database 12c 中,会默认启用自动撤消管理;另外,提供了
PLSQLProcedural LanguageStructured Query
Language,过程语言结构化查询语言过程来帮助
调整UNDO 表空间的大小。
提示:
如果开始使用 Oracle Database 12c,你真正需要了解的是:手动回滚是多余的,
在未来版本中会予以取消。另外,自动撤消管理是Oracle Database 12c 的一项
标准功能。
1.1.2 Oracle 物理存储结构
Oracle Database 使用磁盘上的多个物理存储结构来保存和管理用户事务的数据。其中一些
存储结构,如数据文件、重做日志文件和归档重做日志文件保存真正的用户数据。而其他一些
结构,如控制文件,则维护数据库对象的状态。基于文本的警报和跟踪文件包含数据库中的例
第1 章 数据库备份解决方案和ASM
5
行事件和错误条件的记录信息。图1-2 显示这些物理结构与逻辑存储结构之间的关系。数据库
文件是控制文件、数据文件或者联机重做日志文件。其他对于数据库的成功运行并不重要的文
件包括参数文件、口令文件、备份文件、归档重做日志文件、跟踪文件和警报日志文件。
内存结构
后台进程
数据库
数据文件 控制文件 重做日志文件归档重做日志文件
数据文件1 数据文件2 数据文件3 数据文件4
SYSAUX
表空间
USERS 表空间
SYSTEM
表空间
数据库
物理数据库结构
实例
逻辑数据库
结构
图1-2 Oracle 物理存储结构
1. 数据文件
Oracle Database 至少必须包含一个数据文件。一个Oracle 数据文件对应于磁盘上的一个物
理操作系统文件。Oracle Database 中的每个数据文件正好是一个表空间的成员。但是,一个表
空间可以包含多个数据文件。大文件表空间是例外情况,这个表空间正好包含一个数据文件。
如果DBA 使用AUTOEXTEND 参数创建数据文件,那么在空间不足的情况下,Oracle 数
据文件可以自动扩展。另外,使用ALTER DATABASE DATAFILE 命令,可以手动扩展事件
文件。DBA 还可以使用MAXSIZE 参数来限制给定数据文件的扩展量。在任意一种情况下,
数据文件的大小最终都会受到其所在的磁盘容量大小的限制。
数据文件是数据库中所有数据的最终栖息之地。数据文件中频繁访问的块都会缓存到内存
中。同样,新数据块并非直接写入数据文件,而是根据数据库写入器进程的激活时间写入到数
据文件中。在用户的事务完成前,会将事务的更改写入重做日志文件。
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
6
2. 重做日志文件
每次在表、索引或其他Oracle 对象中添加、删除或更改数据时,都会将一个条目写入当前
的重做日志文件中。由于Oracle 以循环方式重用重做日志文件,Oracle 数据库至少必须有两个
重做日志文件。在一个重做日志文件填满重做日志条目时,如果实例恢复仍需要使用此当前日
志文件,就将此文件标记为ACTIVE;如果实例恢复不需要此文件,就将其标记为INACTIVE。
接着会按顺序从头使用下一个日志文件,并将此文件标记为CURRENT。
在理想状况下,永远都不会使用重做日志文件中的信息。但是,如果发生了停电故障或其
他一些服务器故障,从而导致Oracle 实例失败,那么数据库缓冲区缓存中的新数据块或更新的
数据块可能尚未写入到数据文件中。重新启动Oracle 实例时,会在前滚操作中将重做日志文件
中的条目应用于数据库数据文件,以便将数据库的状态恢复到发生故障时的状态。
为了能够在一个重做日志组的一个重做日志文件丢失时执行恢复,可以在不同的物理磁盘
上保存重做日志文件的多个副本。你将在本章后面了解到,可以实现重做日志文件、归档日志
文件和控制文件的多路复用,以便确保Oracle 数据库的可用性和数据完整性。简而言之,多路
复用的意思是拥有多个结构副本,以便提高性能和可用性。
3. 控制文件
Oracle Database 至少有一个控制文件,此文件维护数据库的元数据。元数据是数据库本身
的物理结构的数据。除其他外,控制文件还包含数据库名称、创建数据库的时间,以及所有数
据文件和重做日志文件的名称和地址。另外,控制文件维护恢复管理器Recovery Manager,
RMAN使用的信息,如持久性RMAN 设置以及数据库上已经执行的备份类型。每当数据库结
构发生任何改动时,更改信息会立即在控制文件中反映出来。
由于控制文件对数据库的运行如此重要,因此也可以对控制文件进行多路复用可以复制
一个或多个控制文件。但是,无论有多少个控制文件的副本与一个实例相关,都只有一个控
制文件主要用于检索数据库元数据。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE 命令是另一种备份控制文件的
方式。它生成SQL 脚本,如果由于发生了灾难性故障造成控制文件的所有多路复用二进制版
本丢失,则可以使用此脚本来重新创建数据库控制文件。
还可以使用此跟踪文件在以下情况下重新创建控制文件:需要重命名数据库,或更改各种
数据库限制如果不重新创建整个数据库,不能以其他方式更改。
4. 归档日志文件
Oracle Database 可按以下两种模式运行:ARCHIVELOG 或NOARCHIVELOG 模式。如果
数据库处于NOARCHIVELOG 模式,则循环重用重做日志文件又称联机重做日志文件将意味
着,在出现硬盘故障或其他与介质相关的故障时,重做条目以前事务的内容不再可用。以
NOARCHIVELOG 模式运行可以在实例发生故障或系统崩溃时保护数据库的完整性,因为只能
在联机重做日志文件中使用已经提交但尚未写入数据文件的所有事务。因此,崩溃恢复的范围
仅限于联机重做日志中的当前条目。如果在最早的重做日志文件之前数据文件最近一次备份发
生故障,将无法恢复数据库。
与此相反,ARCHIVELOG 模式将填满的重做日志文件发送到一个或多个指定目标,可以
第1 章 数据库备份解决方案和ASM
7
在数据库介质发生故障时,在任何特定的时间点使用备份文件重新构造数据库。例如,如果包
含数据文件的硬盘发生崩溃,有了最新的备份数据文件、重做日志文件和归档日志文件在备
份后生成,则可将数据库的内容恢复到崩溃前的一个时间点。
为填满的重做日志文件使用多个归档日志目标对于Oracle 中名为Oracle Data Guard以前
称为Oracle Standby Database的高可用性功能至关重要。
5. 初始化参数文件
启动数据库实例时,会为 Oracle 实例分配内存,并会打开两类初始化参数文件中的一个:
基于文本的文件initSID.ora通常称为init.ora 或PFILE或服务器参数文件SPFILE。实例首
先在操作系统的默认位置 例如, Unix 上的$ORACLE_HOMEdbs 查找SPFILE 文件
spfileSID.ora 或spfile.ora。如果这些文件都不存在,实例会查找名为initSID.ora
的PFILE。
另外,STARTUP 命令可显式指定在启动Oracle 时使用的PFILE。
无论采用哪种格式,初始化参数文件都指定跟踪文件、控制文件和填满的重做日志文件等
的位置。它们还设置系统全局区域System Global Area,SGA中各种结构的大小,以及允许多
少用户同时连接到数据库。
一直到Oracle Database 9i,只能使用init.ora 文件来指定实例的初始化参数。虽然可以使用
文本编辑器方便地进行编辑,但是此文件存在一些缺点。如果在命令行使用ALTER SYSTEM
命令更改动态系统参数,DBA 必须记住更改init.ora 文件,以便下次重新启动实例时新参数值
可以生效。
SPFILE 使DBA 可以更方便高效地管理参数。如果运行的实例正在使用SPFILE,那么,
如果任何ALTER SYSTEM 命令更改初始化参数,将自动更改SPFILE 中的初始化参数可以仅
针对运行的实例,也可能针对两者。无须编辑SPFILE 文件,甚至也无法对其进行编辑否则
会损坏SPFILE。
虽然本质上无法对参数文件或SPFILE 进行镜像操作,但可将SPFILE 备份为init.ora 文件。
应该使用传统的操作系统命令备份Oracle 实例的init.ora 和SPFILE对于SPFILE,可以使用恢
复管理器。
使用DBCADatabase Configuration Assistant,数据库配置助手工具来创建数据库时,会默
认创建SPFILE。
6. 警报和跟踪日志文件
出现故障时,Oracle 可以而且经常会将消息写到警报日志文件,对于后台进程或用户会话,
则会写入跟踪日志文件。
警报日志文件位于BACKGROUND_DUMP_DEST 初始化参数指定的目录中,包含最重要
的例行状态消息以及重要错误条件。在启动或关闭数据库时,会将消息以及一系列未采用默认
值的初始化参数记录到警报日志中。还会记录DBA 发送的任何ALTER DATABASE 或ALTER
SYSTEM 命令。此处还会记录涉及表空间及其数据文件的操作,例如,添加表空间、删除表空
间以及将数据文件添加到表空间中。错误条件,例如表空间的空间不足或重做日志文件受损等
这些都是重要条件也会记录在此处。
Oracle 实例后台进程的跟踪文件也位于BACKGROUND_DUMP_DEST 中。例如,
PMONprocess monitor,进程监视器和SMONsystem monitor,系统监视器的跟踪文件包含错
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
8
误发生时间的条目,或SMON 需要执行实例恢复操作的时间的条目。QMONqueue monitor,
队列监视器的跟踪文件包含何时产生新进程的消息。
也为各个用户会话或数据库连接创建跟踪文件,这些跟踪文件位于初始化参数USER_
DUMP_DEST 指定的目录中。在两种情况下为用户进程创建跟踪文件:由于权限问题,用户会
话发生了一些类型的错误或用户进程的运行空间不足。也可以使用以下的命令显式创建跟踪
文件,以帮助诊断问题:
ALTER SESSION SET SQL_TRACE=TRUE;
为用户执行的每条SQL 语句生成跟踪信息,在调整用户的SQL 语句时,跟踪信息会起到
帮助作用。
可以随时删除或重命名警报日志文件;下次生成警报日志消息时会重新创建此文件。DBA
经常通过操作系统机制Oracle Database 内部调度机制或Oracle Enterprise Manager 的调度程
序,设置一项日常批处理作业,在日常工作中重命名和归档警报日志。
从Oracle Database 11g 第1 版开始,实例的诊断信息被集中到初始化参数DIAGNOSTIC_
DEST 指定的单个目录中,并且忽略USER_DUMP_DEST 和BACKGROUND_DUMP_DEST。
7. 备份文件
可以从多个来源,例如操作系统复制命令或Oracle RMAN 生成备份文件。如果DBA 执行
冷备份,那么备份文件只是数据文件、重做日志文件、控制文件和归档重做日志文件等的操作
系统副本。
除了数据文件的逐位映像副本RMAN 的默认操作外,RMAN 可以生成数据文件、控制文
件、归档重做日志文件和特殊格式的SPFILE 的完整和增量备份,称为备份集,备份集仅供
RMAN 读取。RMAN 备份集备份通常比原始的数据文件小,因为RMAN 不备份未使用过的块。
RMAN 是管理备份和恢复的标准,但在RMAN 备份处理会对性能产生不利影响的情况下除外。
1.1.3 Oracle 内存结构
Oracle 使用服务器的物理内存来保存Oracle 实例的很多信息:Oracle 可执行代码本身、会
话信息、与数据库关联的各个进程以及进程之间共享的信息例如数据库对象上的锁。另外,
内存结构包含用户和数据字典SQL 语句,以及最终永久存储在磁盘上的缓存信息,如数据库
段中的数据块以及有关数据库中已完成事务的信息。为Oracle 实例分配的数据区域称为系统全
局区System Global Area,SGA。Oracle 可执行文件位于软件代码区域。另外,称为程序全局
区Program Global Area,PGA的区域专供每个服务器和后台进程使用;为每个用户会话或服
务器进程分配一个PGA。
图1-3 显示这些Oracle 内存结构之间的关系。
1. 系统全局区
SGA 是Oracle 实例的一组共享内存结构,由数据库实例的多位用户共享。启动Oracle 实
例时,会根据初始化参数文件中指定的值或Oracle 软件中的硬编码为SGA 分配内存。用于控
制SGA 各个部分大小的很多参数是动态的可在实例运行时立即改变;但是,如果指定
SGA_MAX_SIZE 参数,所有SGA 区域的总大小就不得超过SGA_MAX_SIZE 的值。如果未
第1 章 数据库备份解决方案和ASM
9
指定SGA_MAX_SIZE,但指定了SGA_TARGET 参数,Oracle 会自动调整SGA 组件的大小,
以便分配的内存总量等于SGA_TARGET。SGA_TARGET 是一个动态参数,可在实例运行时
更改。Oracle 11g 中引入的新参数MEMORY_TARGET 在SGA 和PGA 之间平衡Oracle 的所
有可用内存,以便优化性能。
KEEP 缓冲区池
RECYCLE 缓冲区池
数据库缓冲区缓存
(默认大小)
数据库缓冲区缓存大小nk
数据库缓冲区缓存大小nk
流池
重做日志缓冲区缓存
大池
Java 池
软件代码区
共享池 保留的池
库缓存
共享的SQL 区域
PLSQL
过程和包
数据字典缓存
控制结构
固定的SGA
栈空间 会话信息 排序、散列、归并区域
PGA
非共享内存
共享内存
SGA
图1-3 Oracle 逻辑内存结构
SGA 中的内存按粒度单元分配。粒度可以是4MB 或16MB,具体取决于SGA 的总大小。
如果SGA 小于等于128MB,则粒度是4MB;否则粒度是16MB。随后几节将介绍Oracle 如何
使用SGA 中的每个部分的要点。
缓冲区缓存Buffer Cache 数据库缓冲区缓存保存最近从磁盘读取的用于满足SELECT
语句要求的数据块,或包含已修改块已经从DML 语句更改或添加的数据块。从Oracle
Database 9i 开始,SGA 中保存这些数据块的内存区域是动态的。这是一件好事,假如数据库的
多个表空间的块大小不是默认块大小。Oracle 允许表空间最多使用5 种不同的块大小一种块大
小是默认的,其余类型的最多有4 种。每个块大小都需要自己的缓冲区缓存。如果一天或一
周中处理和事务需求发生了变化,将可以动态更改DB_CACHE_SIZE 和DB_nK_CACHE_SIZE
的值而无须重新启动实例,以便提高使用给定块大小的表空间的性能。
Oracle 可以使用其他两种块大小与默认块大小DB_CACHE_SIZE相同的缓存:KEEP 缓冲
区池和RECYCLE 缓冲区池。从Oracle Database 9i 开始,这两个池都独立于SGA 中的其他
缓存分配内存。
创建表时,可以通过在STORAGE 子句中使用BUFFER_POOL_KEEP 或BUFFER_POOL_
RECYCLE 子句,来指定表的数据块将要驻留的池。对于整天频繁使用的表,有利的做法是将
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
10
表放在KEEP 缓冲区池中,以尽量减少检索表中的块需要的IO 数量。
共享池Shared Pool 共享池包含两个主要的子缓存:库缓存和数据字典缓存。共享池的
大小由SHARED_POOL_SIZE初始化参数确定。只要SGA总大小小于SGA_MAX_SIZE或
SGA_TARGET,这便是另一种可以调整大小的动态参数。
库缓存保存有关针对数据库运行的SQL 和PLSQL 语句的信息。库缓存由所有用户共享,
所以不同数据库用户可能共享同一SQL 语句。
SQL 语句及其执行计划存储在库缓存中。当同一用户或另一用户第二次运行同一SQL 语
句时,由于已经计算出执行计划,查询或DML 语句的执行效率将会提高。
如果库缓存过小,则可以将频繁使用的执行计划转出缓存,只需频繁地将SQL 语句重新
加载到库缓存中。
数据字典是数据库表的集合,归SYS 和SYSTEM 模式所有,其中包含有关数据库、数据
库结构以及数据库用户权限和角色的元数据。数据字典缓存保存第一次将数据字典表读入缓冲
区缓存后数据字典表的列的子集。连续使用数据字典中的表的数据块,以便帮助处理用户查询
和其他DML 命令。
如果数据字典缓存过小,在请求数据字典中的信息时,会引发附加的IO 操作;这些与IO
相关的数据字典请求称为递归调用,可通过正确设置数据字典缓存的大小来避免递归
调用。
重做日志缓冲区 重做日志缓冲区包含数据文件中的数据块的最新更改信息。如果重做日
志缓冲区的满度达到13或每隔3 秒,Oracle 会将重做日志记录写入重做日志文件中。另外,
从Oracle Database 10g 开始,如果已将1MB 重做信息存储在重做日志缓冲区中,Log Writer日
志写入器,LGWR进程会将重做日志记录写入重做日志文件中。一旦将重做日志缓冲区中的
条目写入重做日志文件,那么,如果在将更改后的数据块从缓冲区缓存写入数据文件前实例发
生了崩溃,这些条目对恢复数据库会起到至关重要的作用。在将重做日志条目成功写入重做日
志文件后,才认为用户提交的事务是完整的。
大池Large Pool 大池是SGA 中的可选区域。它用于与多个数据库交互的事务、执行并
行查询的进程的消息缓冲区,以及RMAN 并行备份和还原操作。顾名思义,大池使需要每次
分配大内存块的操作可以使用大内存块。
初始化参数LARGE_POOL_SIZE 控制大池的大小,该参数是一个动态参数。
Java池Java Pool Oracle JVMJava Virtual Machine,Java虚拟机为用户会话中的所有
Java代码和数据使用Java池。在Java池中存储Java代码和数据与在共享池中缓存SQL和PLSQL
代码是相似的。
流池Streams Pool 从Oracle 10g 开始,通过初始化参数STREAMS_ POOL_SIZE 来设
置其大小。流池保存数据和控制结构,以便支持Oracle Enterprise Edition 的Oracle 流功能。Oracle
流管理分布式环境中数据和事件的共享。如果未初始化STREAMS_ POOL_SIZE 初始化参数或
将其设置为0,则从共享池分配流操作使用的内存,内存占用量最多可达共享池的10%。
2. 程序全局区
PGAProgram Global Area,程序全局区专门用于一组相互联系的进程,是自行分配动态
部分的内存区域。PGA 的配置取决于Oracle 数据库的连接配置:共享服务器或专用服务器。
在共享服务器配置中,多个用户共享与数据库的连接,此时,对服务器的内存使用量降至
第1 章 数据库备份解决方案和ASM
11
最低,但用户请求的响应时间可能受到影响。在共享服务器环境中,SGA而非PGA保存用户
的持久会话信息。如果同时有大量用户连接到数据库,请求频率不高或时间短,那么共享服务
器环境就是理想环境。
在专用服务器环境中,每个用户进程独自连接到数据库,PGA 中包含此配置的会话内存。
PGA 中还包含一个排序区域,如果用户请求需要排序、位图归并或散列连接操作,将使用此
区域。
从Oracle Database 9i 开始,PGA_AGGREGATE_TARGET 参数连同WORKAREA_SIZE_
POLICY 初始化参数一起允许DBA 选择所有工作区的总大小,并使Oracle 在所有用户进程间
分配和管理内存,以此来简化系统管理工作。如本章前面所述,MEMORY_TARGET 参数从总
体上管理PGA 和SGA 内存以便优化性能,该参数可以帮助从总体上管理PGA 和SGA 的大小
调整。简而言之,PGA 在Oracle 9i 中实现了自动化,而SGA 在10g 中实现了自动化。从Oracle
11g 起,SGA 和PGA 作为一个整体实现了自动化。即使经验丰富的DBA 也会发现,使用自动
化的内存结构,可以更有效地管理内存分配。
3. 软件代码区
软件代码区存储作为 Oracle 实例一部分运行的Oracle 可执行文件。这些代码区域本质是
静态的,只有在安装新软件版本时才会发生变化。Oracle 软件代码区通常位于享有特权的内存
区,此内存区与其他用户程序分开放置。
Oracle 软件代码完全是只读的,可按共享或不共享形式进行安装。如果以共享形式安装
Oracle 软件代码,当多个Oracle 实例在同一软件版本级别和相同服务器上运行时,可以节省
内存。
4. 后台进程
启动 Oracle 实例时,会启动多个后台进程。后台进程是一个用于执行特定任务的可执行代
码块。图1-4 显示后台进程、数据库和Oracle SGA 之间的关系。与前台进程如SQL*Plus 会话
或Web 浏览器形成对照,后台进程在后台运行。SGA 与后台进程共同构成了Oracle 实例。
SMON 如果由于断电或CPU故障导致系统崩溃或实例故障,那么SMONsystem monitor,
系统监视器进程通过将联机重做日志文件中的条目应用于数据文件,在崩溃后执行恢复。另
外,在重新启动系统时,会清除所有表空间中的临时段。
如果表空间由字典管理,则SMON 的一个例行任务是定期组合表空间中的可用空间在
Oracle Database 或12c 数据库中,这种情况很少出现或根本不存在。
PMON 如果用户连接断开或用户进程失败,那么PMONprocess monitor,进程监视器
将执行清理工作。它清除数据库缓冲区缓存以及用户连接曾使用的其他任何资源。例如,假如
一个用户会话正在更新一个表中的一些行,在一行或多行上设置了锁。用户桌面突然断电,在
工作站断电时SQL*Plus 会话消失。PMON 会在数毫秒内检测到连接不再存在,并执行以下
任务:
● 回滚断电时正在进行的事务。
● 在缓冲区缓存中将事务的块标记为可用。
● 从表中受影响的行上删除锁。
● 从一系列活动进程中删除断开连接的进程的进程 ID。
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
12
用户进程
用户进程
系统全局区
脱机存
储设备
恢复进程
进程监视器
系统监视器
检查点
归档进程
数据库写入器
日志写入器
调度程序进程
用户进程
共享服务
器进程
专用服务
器进程
数据库缓冲区缓存
重做日志
缓冲区
图例:
控制
文件
重做日
志文件
数据
文件
图1-4 Oracle 后台进程
PMON 通过提供有关传入连接请求的实例的状态信息与侦听器进行交互。
DBWn 早期 Oracle 版本的数据库写入器database writer,DBWR进程将缓冲区缓存中的
新数据块或更改过的数据块称为脏块写入数据文件中。使用LRULeast Recently Used,最近
最少使用算法,DBWn 首先写入时间最早、活动性最差的块。结果,最常请求的块即使是脏
块会在内存中。
最多可以启动100 个DBWn 进程,DBW0 到DBW9、DBWa 到DBWz,以及BW36 到BW99。
DBWn 进程的数量由DB_WRITER_PROCESSES 参数控制。
LGWR LGWRLog Writer,日志写入器负责管理重做日志缓冲区。在DML 活动频繁的
实例中,LGWR 是活动最密集的进程之一。在LGWR 将重做信息包括提交记录成功写入重
做日志文件后,才认为事务已经完成。另外,在LGWR 写入重做信息后,DBWn 才能将缓冲
区缓存中的脏缓冲区写入数据文件中。
如果将重做日志文件分组,而且一个组中的多路复用重做日志文件受损,LGWR 会写入到
组中的其余成员中,并在警报日志文件中记录错误。如果组中所有成员均不可用,将造成LGWR
进程失败,在更正问题前,整个实例将挂起。
ARCn 如果数据库处于 ARCHIVELOG 模式,那么,归档程序进程archiver process,ARCn
会在重做日志填满然后开始将重做信息顺序填充到下一个重做日志中时,将重做日志复制到一
个或多个目标目录、设备或网络位置。理想情况下,归档进程会在归档下一个填满的重做日志
前完成。否则会发生严重的性能问题:在条目写入重做日志文件前,用户无法完成事务,而重
做日志文件无法接受新条目,因为正在将其写入到归档位置。至少可以采用3 种可能解决该问
题的方案:增加重做日志文件的大小、增加重做日志组的数量和增加ARCn 进程的数量。通过
第1 章 数据库备份解决方案和ASM
13
增加LOG_ARCHIVE_MAX_PROCESSES 初始化参数的值,可以为每个实例启动更多ARCn
进程,启动的ARCn 进程的最大数量是10 个。
CKPT 检查点checkpoint process,CKPT进程有助于减少恢复实例的用时。执行检查点
期间,CKPT 更新控制文件和数据文件的头,以便反映最后的成功系统更改编号System Change
Number,SCN。每次填满一个重做日志文件,Oracle 开始循环填充下一个日志文件时,会自
动执行检查点操作。
DBWn 进程不时写入脏缓冲区,以便前移作为恢复实例开始位置的检查点,减少平均恢复
时间Mean Time to Recovery,MTTR。
RECO 恢复程序进程recoverer process,RECO处理分布式事务更改多个数据库的表的
故障。如果CCTRcontact center,联系中心数据库中的一个表以及WHSE数据仓库数据库中
的一个表都发生了变化,而且数据库之间的网络连接在更新WHSE 数据库的表之前出现故障,
那么,RECO 将回滚此失败的事务。
1.1.4 描述ASM
ASM是一个多路复用解决方案,它通过将数据文件、控制文件和重做日志文件分布在多个
可用的磁盘上来自动布置这些文件。在将新磁盘添加到ASM群集中时,将自动在所有磁盘卷上
重新分布数据库文件来提高性能。ASM群集的多路复用功能最大限度地减少了丢失数据的可能
性,通常比手工方案将重要文件和备份文件放在不同的物理磁盘上更高效。ASM磁盘的一个
重要组件是磁盘组,磁盘组是多个磁盘的集合,由ASM作为一个单元进行管理。
在创建新的表空间或其他数据库结构如控制文件或重做日志文件时,可将磁盘组而不是
操作系统文件指定为数据库结构的存储区域。ASM具有OMF的易用性,并将OMF与镜像和条
带化功能组合在一起以提供可靠的文件系统和逻辑卷管理器,ASM甚至可以在Oracle
RACReal Application Cluster,真实应用程序群集中支持多个节点。有了ASM,将无须购买第
三方逻辑卷管理器。
ASM 不仅通过将数据库对象自动分布在多个设备上来提高性能,还由于允许在不关闭数
据库的情况下将新磁盘设备添加到数据库而拥有提高可用性的能力;几乎不需要干预,ASM
就可以自动地重新分布文件以达到平衡目的。
以下各节介绍ASM 体系结构,讨论如何创建特殊类型的Oracle 实例来支持ASM,以及如
何启动和关闭ASM 实例。
1.1.5 ASM 体系结构
ASM 将数据文件和其他数据库结构分成区间,将区间分配到磁盘组中的所有磁盘上来提
高性能和可靠性。并非是镜像整个磁盘卷,ASM 会镜像数据库对象以提供根据类型镜像和条
带化数据库对象的灵活性。如果底层磁盘硬件已经启用了RAID,或是存储区域网络storage area
network,SAN的一部分,或是网络附加存储network-attached storage,NAS设备的一部分,
就会根据情况完全不条带化对象。
ASM 的另一项重要功能是自动重新平衡。如果需要增加磁盘空间,可以将其他磁盘设备
添加到磁盘组中,ASM 会将相称的文件数量从一个或多个现有磁盘移到新磁盘上,来维护整
个IO 在所有磁盘上的平衡。这一切操作在后台进行,而磁盘文件中包含的数据库对象依然联
机,可供用户使用。如果重新平衡操作期间对IO 子系统影响颇大,可以使用初始化参数来降
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
14
低重新平衡的速度。
ASM 要求使用特殊类型的Oracle 实例来提供传统Oracle 实例和文件系统之间的接口;
ASM 软件组件随Oracle 数据库软件提供,在选择整个数据库的存储类型和创建数据库时,始
终可以选择该组件。
使用ASM 时,也可以将ASM 磁盘组与手动Oracle 数据文件管理技术结合使用。例如,
ASM 存储中可能有所有的表空间,但有在一个服务器的文件系统上创建的表空间,以便能更
方便地将其传输到另一个数据库中。无论如何,ASM 的易用性和性能为最终使用ASM 磁盘组
来满足所有存储需求提供了强有力的依据。
Oracle Database 10g 中引入的两个Oracle 后台进程支持ASM实例:重新平衡程序rebalancer,
RBAL和ARBn。RBAL 协调磁盘组的磁盘活动,在添加或卸下磁盘时执行重新平衡操作。
ARBn 中的n 可以是数字0 到9,该进程在磁盘组中的磁盘之间执行实际区间移动。
从Oracle Database 10g 开始,对于使用ASM 磁盘的RDBMS 实例,有两个新的后台进程:
ASMB 和RBAL。ASMB 执行数据库和ASM 实例间的通信,而RBAL 代表数据库打开和关闭
磁盘组中的磁盘。这是与ASM 实例中的RBAL 相同的进程,它们执行相关但不同的功能。
换言之,进程行为因实例类型而异。
练习1-1
查找 ASM 和RDBMS 实例中与ASM 相关的新进程
在本练习中,你将在Linux 服务器上确定RDBMS 实例和ASM 实例的新后台进程。在Linux
上,每个Oracle 进程都有自己的线程。可以联合Oracle 动态性能视图V$BGPROCESS 和
V$SESSION,也可以使用Linux ps ef 命令,并搜索包含ASM 或RDBMS 实例名的命令名。
1 查询etcoratab 来了解ASM 和RDBMS 实例的名称:
[oracle@oel63 ~]$ tail etcoratab
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
ASM:u01appproduct12.1.0grid:N: # line added by Agent
complref:u01apporacleproduct12.1.0dbhome_1:N: # line added by
Agent
cdb01:u01apporacleproduct12.1.0dbhome_1:N: # line added by Agent
[oracle@oel63 ~]$
2 为RDBMS 实例设置ORACLE_SID 环境变量,在本例中是complref:
[oracle@dw ~]$ export ORACLE_SID=complref
3 连接到RDBMS 实例,并查询V$SESSION 和V$BGPROCESS 以获得一系列正在运行
的进程:
[oracle@dw ~]$ sqlplus as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sun Feb 2 22:40:52 2014
第1 章 数据库备份解决方案和ASM
15
Copyright c 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced
Analytics and Real Application Testing options
SQL select sid, serial#, process, name, description
2 from v$session join v$bgprocess usingpaddr;
SID SERIAL# PROCESS NAME DESCRIPTION
---------- ---------- --------- ------
-----------------------------------
237 1 2886 PMON process cleanup
1 1 2893 VKTM Virtual Keeper of TiMe process
119 1 2897 GEN0 generic0
. . .
238 1 2899 MMAN Memory Manager
358 1 2912 DBW0 db writer process 0
127 3 3005 TMON Transport Monitor
3 1 2914 LGWR Redo etc.
121 1 2916 CKPT checkpoint
6 7 3011 FBDA Flashback Data Archiver Process
4 1 2922 SMON System Monitor Process
362 1 3009 SMCO Space Manager Process
. . .
360 1 2928 RBAL ASM Rebalance master
5 1 2930 ASMB ASM Background
124 1 2942 MARK mark AU for resync coordinator
123 1 2932 MMON Manageability Monitor Process
242 1 2934 MMNL Manageability Monitor Process 2
24 rows selected.
SQL
注意列表底部的RBAL 和ASMB 进程。
4 可以使用PID 列来确定Linux 进程号,并直接查询此Linux 进程:
SQL !ps -f -p 2928
UID PID PPID C STIME TTY TIME CMD
oracle 2928 1 0 21:31 ? 00:00:00 ora_rbal_complref
SQL
5 接下来,通过为ASM 实例 ASM设置ORACLE_SID 环境变量来检查ASM 后台进程:
[oracle@oel63 ~]$ . oraenv
ORACLE_SID = [ ASM] ? ASM
6 连接到ASM 实例,查询V$SESSION 和V$BGPROCESS 来获得一系列正在运行的进程:
[oracle@dw ~]$ sqlplus as sysasm
. . .
SQL select sid, serial#, process, name, description
2 from v$session join v$bgprocess usingpaddr;
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
16
SID SERIAL# PROCESS NAME DESCRIPTION
---------- ------- -------- ----- ------------------------------
283 1 2810 PMON process cleanup
1 1 2814 VKTM Virtual Keeper of TiMe process
3 1 2832 CKPT checkpoint
4 1 2840 GMON diskgroup monitor
142 1 2818 GEN0 generic0
425 1 2812 PSP0 process spawner 0
145 1 2842 MMON Manageability Monitor Process
427 1 2830 LGWR Redo etc.
284 1 2820 MMAN Memory Manager
285 1 2828 DBW0 db writer process 0
428 1 2838 RBAL ASM Rebalance master
287 1 2844 MMNL Manageability Monitor Process 2
144 1 2834 SMON System Monitor Process
143 1 2826 DIA0 diagnosibility process 0
2 1 2824 DIAG diagnosibility process
286 1 2836 LREG Listener Registration
147 1 2868 ASMB ASM Background
17 rows selected.
SQL
注意列表中的新进程RBAL 和ASMB。ARBn 进程将在启动重新平衡操作时启动。
1.1.6 数据库故障和备份解决方案
数据库难免会出现某种故障,导致实例失败,这可能是网络故障、用户错误、磁盘驱动器
故障或者内存损坏。应对这种几乎无法避免的场景,最好的方法是准备一个备份和恢复计划。
并且应该定期测试这个备份和恢复计划,以确保当需要用到恢复技术时,它们能够成功。
要想创建成功的备份和恢复策略,首先必须理解故障的类型,以及Oracle 如何响应每种类
型:一些故障不需要用户立即干预,一些则需要。使用哪种备份和恢复解决方案要取决于多种
因素,包含从故障恢复的时间以及想要分配给该解决方案多少资源。对恢复基础设施的投入与
数据库有一天、一个小时或一分钟不可用时造成的生产率或收入损失成比例。
故障分类
故障或错误的类型分为两大类:物理上的和逻辑上的。物理错误通常是硬件错误,或者使
用数据库的应用程序的软件错误,而逻辑错误则通常发生在终端用户数据库用户或管理员。
下面列出了故障的分类:
● 语句故障:由于权限、语法或资源限制,用户的 SELECT 或DML 语句失败。
● 用户错误:用户误删了一个表或者表中错误的行。
● 用户进程故障:由于客户端断开连接或者意外关闭,数据库的连接失败。
● 网络故障:顾名思义,由于网络硬件或协议错误,客户端和服务器数据库之间的连接
失败了。
● 实例故障:由于 bug、操作系统错误、内存损坏甚至服务器掉电,数据库实例崩溃。
● 介质故障:发生了磁盘驱动器物理错误或者控制器硬件故障。
第1 章 数据库备份解决方案和ASM
17
这里按照从最轻微、最容易恢复到最严重、最难恢复的顺序列出了故障分类。具体来说,
语句故障是最容易恢复的,因为它们几乎总是由用户管理:重写SELECT 或INSERT 语句,使
其不会出现语法错误!如果不小心删除了一个重要的表,那么根据被删除的表是否仍在回收站
中,以及DBA 是否允许用户使用各种闪回功能,该表可由用户或数据库管理员恢复。从网络、
实例或介质故障恢复则必须执行多种动作,但是具体是什么动作则要取决于丢失的数据的重要
性和严重性。
备份和恢复策略需要考虑到所有的故障,即使其中一些故障要比其他故障更容易恢复。例
如,由于掉电而发生的实例故障。只要联机重做日志文件完整且是多路复用的,那么恢复已提
交的事务相对简单,可自动完成。
Oracle 备份和恢复解决方案
恢复时间目标recovery time objective,RTO是一个目标,在此目标时间内必须完成恢复操
作,以满足客户的服务水平协议service level agreement,SLA。RTO 的不同,决定了需要应用
不同的Oracle 工具和技术:
● 几天或几小时:如果由于自然灾害或磁盘故障,整个数据库都丢失,那么RMAN也可
以使用Oracle 安全备份可以在几天或几小时内恢复数据库。
● 几小时或几分钟:当数据库仍对其他用户可用时,用户或DBA 均可使用各种闪回技术
来恢复数据库对象。虽然需要临时关闭数据库,但是通过使用闪回数据库,DBA 可将
整个数据库回滚到当天早些时候或者几周以前,不过这要取决于快速恢复区可用的存
储以及定义的还原点。
● 几分钟或几秒:如果数据库必须连续可用,关闭时间不能超过几分钟,那么Data Guard
或Active Data Guard 等Oracle 解决方案可故障转移到一个备份数据库,而不需要DBA
干预或者只需要少量干预。
● 恢复分析:无论故障类型和RTO 是什么,Oracle 数据恢复顾问Data Recovery Advisor
能够方便而快速地确定故障的类型,以及从特定类型的故障恢复时可用的最快方法。
恢复管理器 恢复管理器是用来在表级别Oracle Database 12c 新增功能、数据文件级别、
表空间级别以及数据库级别备份、还原和恢复数据库的主要工具。除了备份和恢复,RMAN 还
有许多用途,包括将数据库克隆或复制到另一个位置。
RMAN 有一个关键组件,称为快速恢复区fast recovery area,FRA,它是保存备份和恢复
对象的一个特殊位置,第2 章中将详细介绍。理想情况下,这个区域是ASM 中的一个磁盘组,
但是也可以位于操作系统的文件系统中。无论在什么位置,它都是存储所有备份和恢复对象的
一个集中区域。FRA 的管理基于大小和恢复目标,而恢复目标可能指定了恢复窗口或者需要保
留的备份数。
Oracle 安全备份 Oracle 安全备份Oracle Secure Backup,OSB与RMAN 结合使用时,能
够将FRA 中的RMAN 备份复制到磁带设备或者云存储中,以避免在数据中心发生灾难性故障
时导致数据丢失。OSB 还在操作系统级别提供了一个RMAN 扩展,用来备份Linux 服务器以
及任何连接的存储,例如NAS 设备中的存储。
Oracle Data Guard Oracle Data Guard 是Oracle
的高可用性high-availability,HA解决方
案之一,用于在主数据库发生故障时确保接近实时的可用性,或者防止数据库损坏。备用数据
库收到主数据库的归档重做日志文件,并维护主数据库的一个副本,除了用于灾难恢复,还可
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
18
以把该副本用在其他许多场景中。例如,在计划维护窗口中,向主数据库的服务器添加新的磁
盘阵列时,可把备用数据库切换为主数据库。在OLTP 环境中,当执行报表功能时,可以让备
用数据库临时担任主数据库的只读副本,从而释放主数据库上的资源,来实现更快的响应。这
种配置是一种特殊类型的Data Guard 配置,称为Active Data Guard。
一个主数据库可以更新多达30 个备用数据库如果算上LOG_ARCHIVE_DEST_n 参数定
义的本地归档重做日志目标,则是31 个。可以实时更新一个备用数据库,而在30 分钟或更
晚时间以后更新另一个备用数据库,以防止主数据库上的逻辑错误传播出去。
还有一种备用数据库称为逻辑备用数据库。逻辑备用数据库并不会连续地将归档重做日志
文件应用到主数据库的物理副本上,而是只收到提交到主数据库的DML SQL 语句。因此,
备用数据库在逻辑上与主数据库相同,但是其物理结构与主数据库的物理结构几乎肯定不会
相同。
1.2 本章小结
本章开头简要介绍Oracle 数据库体系结构。虽然前一门课程中已经讲述了其中的一些内
容,但通过阅读本章,你可以温故知新,更好地完成日常的数据库管理工作。更重要的是,要
了解ASM 磁盘组存储和管理Oracle 表空间的方式,先要了解基本的Oracle 表空间基础结构知
识。此外,了解基本Oracle 后台进程体系结构正好与ASM 和RDBMS 实例中使用的ASM 相
关后台进程吻合。
Oracle 提供了许多备份和恢复工具来满足任意恢复时间目标,可能是几天、几小时或几分
钟。这些工具以恢复管理器为中心,并包括快速恢复区和RMAN 的扩展,例如Oracle 安全备
份。Oracle Data Guard 通过将物理的归档重做日志文件或逻辑的SQL DML 语句更新发送到
一个或多个备用数据库可用于故障转移或报表请求的卸载,实现了连续保护主数据库。
1.3 本章知识点回顾
解释 Oracle 备份和恢复解决方案
● Oracle 数据库逻辑结构包括表空间、段、区间和块按粒度等级排列。
● 数据库必须至少包含一个 SYSTEM 和一个SYSAUX 表空间。
● Oracle 数据库物理结构包括数据文件、重做日志文件、控制文件、归档日志文件、初
始化参数文件、警报跟踪文件和备份文件。
● Oracle 内存结构包括系统全局区SGA、程序全局区PGA和软件代码区。
● 主要 Oracle 后台进程包括SMON、PMON、DBWn、LGWR、ARCn、CKPT 和RECO。
● 支持 ASM 实例的后台进程是RBAL 和ARBn;使用ASM 磁盘的RDBMS 包含ASMB
和RBAL 后台进程。
● ASM 需要一个专门用于管理共享磁盘的实例,即ASM 实例。
● 在针对ASM 磁盘组添加或删除磁盘时,会自动地在后台重新平衡ASM 磁盘组中的
磁盘。
第1 章 数据库备份解决方案和ASM
19
● ASM 实例的RBAL 后台进程协调磁盘组的磁盘活动。ARBn 进程在磁盘组的磁盘之间
执行实际的区间移动操作。
● RDBMS 实例中的ASMB 后台进程执行数据库与ASM 实例之间的通信;RBAL 后台进
程为RDBMS 实例执行打开和关闭磁盘组中的磁盘的操作。
● ASM 实例有一个初始化参数文件和一个密码文件,但由于ASM 实例不存在数据文件,
所以不存在数据字典;ASM 实例的所有连接使用操作系统身份验证。
● ASM 实例的新SYSASM 权限促进了ASM 实例的存储管理与数据库管理的分离。
● 恢复管理器提供了一个灵活的工具集合,用于备份和恢复数据库,以及克隆数据库。
● Oracle 安全备份可将RMAN 备份、本地文件系统和对象从NAS 设备复制到磁带或云
备份。
● Oracle Data Guard 可将连续更改从主数据库发送到多达30 个位置备用数据库和一个
本地目标。
● 备用数据库可以是物理的,也可以是逻辑的。Active Data Guard物理的数据库通过归
档重做日志文件维护,而逻辑备用数据库则使用SQL DML 语句。
● 可在只读模式下使用 Active Data Guard 来支持报表需求,以释放主数据库上的资源。
1.4 自测题
以下练习题将测试你对本章学习内容的理解程度。正确答案可能不止一个。请认真分析所
有选项,并为每个问题选择所有正确答案。
解释Oracle 数据库的备份和恢复解决方案
1. 在Oracle Database 12c 安装中,下面的哪些表空间是必需的选择所有正确的答案?
A. USERS
B. SYSTEM
C. SYSAUX
D. TEMP
E. UNDOTBS1
F. RMAN
2. 在Oracle 数据库实例中,最多有几个数据库写入器进程DBWn?
A. 1
B. 100
C. 20
D. 无,只有ASM 实例中才有数据库写入器进程。
3. 下面的哪些后台进程同时存在于ASM 实例和RDBMS 实例中,并且同时支持ASM 磁
盘组选择所有正确的答案?
A. ASMB
B. RBAL
C. ARBn
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
20
D. LGWR
E. ARCn
4. ASM 执行哪个级别的镜像操作?
A. 数据库对象级别
B. 表空间级别
C. 磁盘卷级别
D. ASM 不支持镜像操作,它仅支持具备RAID 功能的磁盘硬件。
5. ASM 实例的SPFILE或init.ora 文件中的INSTANCE_TYPE 的值是多少?
A. RDBMS
B. ASM
C. ASM
D. NOMOUNT
E. 不存在INSTANCE_TYPE 这样一个初始化参数
6. 以SYSOPER 身份通过连接的RDBMS 实例连接到ASM 实例,并运行以下命令:
SQL shutdown immediate
会发生什么情况?
A. 立即关闭ASM 实例,使用ABORT 选项关闭所有已经连接的RDBMS 实例
B. 立即关闭ASM 实例,使用IMMEDIATE 选项关闭所有已经连接的RDBMS 实例
C. 会忽略此命令,原因在于SYSOPER 角色无权启动或关闭ASM 实例
D. 由于至少有一个已经连接的RDBMS 实例,所以不会关闭ASM 实例
7. ASM 实例的初始化参数ASM_DISKGROUPS 的值是DATA、RECOV 和DATA2。启动
ASM 实例时会出现什么情况选择一个最佳答案?
A. 发出ALTER DISKGROUP MOUNT 命令前什么都不会发生
B. ASM 实例自动安装磁盘组,可以手动安装未在列表中列出的任何磁盘组
C. ASM_DISKGROUPS 仅对RDBMS 实例有效
D. DATA、RECOV 和DATA2 磁盘设备可用于创建新磁盘组
8. 在下面的参数中,哪些是ASM 实例的必需参数选择所有正确的答案?
A. INSTANCE_NAME
B. INSTANCE_TYPE
C. ASM_DISKGROUPS
D. ASM_POWER_LIMIT
E. ASM_PREFERRED_READ_FAILURE_GROUPS
9. 下面的哪些故障是用户错误选择所有正确的答案?
A. 实习生获得了数据库上的一个用户账户,试图在HR.EMPLOYEES 表中更新自己的
工资
B. 由于掉电,夜间执行报表批处理时报表服务器关闭,无法生成大部分日常报表
C. 一些用户认为数据库被升级到Oracle Database 12c,并尝试创建一个表,表中的一个
VARCHAR2 列包含超过4000 个字符
D. 一个数据库用户正在对数据仓库运行一个SELECT 语句,但是Linux 管理员不小心
第1 章 数据库备份解决方案和ASM
21
关闭了属于该数据库用户的一个操作系统进程
E. 一个数据仓库程序员走进服务器室,取下了主数据库服务器的网卡
10. 当主数据库内的所有磁盘都发生故障时,哪些Oracle 高可用性技术最适合进行接近实
时的故障转移?
A. 逻辑备用数据库
B. Oracle Active Data Guard 只读访问
C. Oracle 闪回数据库
D. Oracle Active Data Guard 物理备用数据库
1.5 自测题答案
解释 Oracle 备份和恢复解决方案
1. 正确答案是B 和C。SYSTEM 和SYSAUX 表空间是必需的。
A、D、E 和F 是错误的。虽然要将应用程序表放在其表空间中,USERS 表空间是十分可
取的,但此表空间不是必需的。TEMP、USERS 和UNDOTBS1 在Oracle Database 11g 的默认
安装中创建。在Oracle Database 11g 安装中,不创建RMAN 表空间,此表空间也不是必需的。
2. 正确答案是B。数据库写入器进程是DBW0 到DBW9,如有必要,也可以是DBWa 到
DBWj 和BW36 到BW99适用于大多数操作系统平台。
A、C 和D 是错误的。数据库写入器仅存在于RDBMS 实例中。
3. 正确答案是B。只有RBAL 进程同时存在于ASM 和RDBMS 实例中以执行ASM 操作。
RBAL 协调ASM 实例的磁盘组的磁盘活动。RBAL 代表数据库打开和关闭RDBMS 实例的磁
盘组中的磁盘。
A、C、D、E 是错误的。A 是错误的,因为ASMB 仅存在于使用ASM 磁盘的RDBMS 实
例中。C 是错误的,因为ARBn 只存在于ASM 实例中,并在磁盘组的磁盘之间移动区间。D
是错误的,因为LGWR 仅存在于RDBMS 实例中,与ASM 无关;它将重做信息写入联机重做
日志文件。E 是错误的,因为ARCn 仅存在于RDBMS 实例中,与ASM 无关;如果数据库处
于ARCHIVELOG 模式,那么它将联机重做日志文件写入归档重做日志文件。
4. 正确答案是A。ASM 仅镜像数据库对象。
B、C 和D 是错误的。ASM 镜像数据库对象的目的是根据类型灵活地镜像化或条带化每个
数据库对象。如果RAID 硬件或操作系统已经镜像了给定对象的底层对象,则ASM 无须镜像
此对象。
5. 正确答案是B。正如你可能期望的,对ASM 实例而言,INSTANCE_TYPE 的值是ASM。
A、C、D 和E 是错误的。A 仅适用于RDBMS数据库实例。C 是ASM 实例的
DB_UNIQUE_NAME 的值。D 是STARTUP 命令的选项。而E 错误的原因是,有一个初始化
参数INSTANCE_TYPE,其默认值为RDBMS。
6. 正确答案是D。在使用IMMEDIATE 选项关闭ASM 实例前,必须关闭所有连接的
RDBMS 实例。如果使用ABORT 选项停止ASM 实例,则必须停止所有已经连接的RDBMS
实例。
A、B、C 是错误的。A 是错误的,因为只有使用ABORT 选项关闭ASM 实例或ASM 实
OCP 认证考试指南1Z0-063 Oracle Database 12c 高级管理
22
例崩溃时,才使用ABORT 关闭RDBMS 实例。B 是错误的,因为必须首先显式关闭已经连接
的RDBMS 实例。C 是错误的,因为SYSOPER 虽不及SYSDBA 或SYSASM 权限大,但有权
启动和关闭ASM 实例。
7. 正确答案是B。ASM 实例会自动安装指定的磁盘组,可以手动安装未在列表中列出的
任何磁盘组。
A、C、D 是错误的。A 是错误的,因为ASM_DISKGROUPS 有助于在启动时自动安装指
定的磁盘组。C 是错误的,因为ASM_DISKGROUPS 仅适用于ASM 实例。D 是错误的,因为
ASM_DISKGROUPS 参数包含现有的磁盘组,而不包含磁盘组的原始设备。
8. 正确答案是B。只有INSTANCE_TYPE 参数是必需的,其值必须是ASM。
A、C、D 和E 是错误的。ASM_DISKGROUPS 可为空,但必须在启动ASM 实例后手动
安装磁盘组。如果未设置ASM_POWER_LIMIT,则ASM_POWER_LIMIT 的默认值是1;
ASM_PREFERRED_ READ_FAILURE_GROUPS 是Oracle Database 11g 引入的新参数,它指定
与实例的节点最接近的首选故障组,以便提高群集ASM 环境中的性能。
9. 正确答案是A 和C。用户错误通常是SQL 语法的逻辑错误、数据库对象上的权限错误,
以及试图使用数据库的当前版本所不具备的功能。
B、D 和E 是错误的。B 是一个进程故障,因为客户端在本例中是批处理报表生成器发
生故障,断开了与数据库的连接。D 是一个用户进程故障,只是发生故障的原因是操作系统管
理员错误关闭了进程。如果操作系统管理员关闭了一个全局数据库进程,那么该故障很可能被
认为是一个实例故障。E 是硬件或网络故障,而不是用户故障。用户很可能要在其他地方找工
作了。
10. 正确答案是D。Oracle Active Data Guard 物理备用数据库将归档重做日志文件连续应
用到一个或多个多达30 个远程位置备用位置,并可被配置为在主数据库发生灾难性故障时,
几乎立即接管主数据库的角色。任何备用位置都可以被配置为在预定义的延迟后应用归档重做
日志,以避免数据库发生潜在的逻辑损坏,即使主数据库上没有发生灾难性故障。
A、B 和C 是错误的。A 适合读写访问报表写入器或开发器,但它不是主数据库的精确物
理副本。B 是错误的,因为使用Active Data Guard 数据库来服务只读查询并不是提供了灾难性
故障后的故障转移,而是使主数据库可以卸载部分或全部报表负载,以减轻主数据库的压力。
C 是恢复数据库、表空间或单独数据库对象到前一个状态的可行选项,但是不提供主数据库故
障的实时故障转移。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.