简介这份Oracle 19c原题资料PDF第二部分面向备考Oracle数据库认证的DBA与开发人员聚焦多租户架构下的高频考点与实操难点帮助读者在刷题中查漏补缺、巩固企业级数据库管理技能。资源包内含1个PDF文件约350KB内容以考试原题与答案解析为主涵盖Application PDBs创建与同步、PDB跨容器迁移、PDB快照以及RMAN备份、AWR快照等核心模块题目配有正确选项与简要说明便于对照理解。目前已有327人学习下载适合需要系统梳理19c新特性、强化多租户环境排错思路的中高级学习者可作为考前冲刺与日常查阅的参考材料。1. 从一份 19c 原题 PDF 说起它到底能帮你解决什么如果你正在准备 Oracle 19c 的 OCP 升级考试或者单纯想把多租户、RMAN、Flashback 这几块知识从“看过”变成“答得对”那这份原题 PDF 的价值不在“背答案”而在于它把 19c 里最容易混淆的边界条件全摆出来了。我拿到第二部分这份资料时第一反应是题目密度高、选项干扰强尤其是 Application PDB 的创建顺序、PDB 迁移的前置条件、Flashback Data Archive 的保留期修改行为这些点在实际运维里也经常翻车。它适合两类人一是已经用过 12c 多租户、想快速对齐 19c 新特性的 DBA二是刚接触 CDB/PDB 架构、需要一份带正确答案和场景约束的练习题来建立判断标准的从业者。PDF 里每道题都标了 Correct Answer但真正要嚼的是选项背后的“为什么错”这才是这份资料区别于普通题库的地方。2. 多租户架构的题眼Application PDB 创建顺序与同步逻辑2.1 为什么第 1 题的正确答案是 1、5、6 而不是带 application seed 的选项第 1 题问的是创建 SALES_APP1 和 SALES_APP2 两个 Application PDB并让它们访问 SALES_APP 应用的公共表最少需要哪几步。很多人第一眼会选带“创建 application seed”的选项觉得 seed 是标准流程但题目问的是“minimum required steps”。在 19c 里Application PDB 可以直接从 Application Root 创建公共表装在 Application Root 里新建的 Application PDB 通过同步就能拿到这些公共对象。Application Seed 的作用是加速后续 Application PDB 的创建不是访问公共表的必要条件。正确顺序拆开看在 Application Root 里安装 SALES_APP 应用包括公共表。这一步决定了公共数据字典里有哪些应用级对象。创建 SALES_APP1 和 SALES_APP2 这两个 Application PDB。它们初始状态只带自己的本地对象还没有 Application Root 里的公共表。把 SALES_APP1 和 SALES_APP2 与 Application Root 同步。同步动作会把 Application Root 里新增的公共对象传播到 Application PDB。这里的关键参数是SYNC的方向Application PDB 向 Application Root 同步而不是反过来。如果你在 Application PDB 里执行ALTER PLUGGABLE DATABASE APPLICATION SALES_APP SYNC它拉取的是 Application Root 的版本。选项里出现的“sync with application seed”是干扰项因为 seed 本身也要和 root 同步但题目没要求用 seed 来创建 PDB。提示考试里看到“minimum required”先排除掉“可以但不必需”的步骤Application Seed 在只创建两个 PDB 的场景下就是可省略的。2.2 PDB 迁移的前置条件归档模式与本地 UNDO 的硬性组合第 2 题问的是把 PDB1 从 CDB1 迁到 CDB2要求近乎零停机哪三项是必须的。正确答案 BCD 对应CDB2 必须归档模式、CDB1 必须归档模式、CDB1 和 CDB2 都必须本地 UNDO 模式。这里容易错选的是“shared UNDO mode”19c 里 PDB 迁移依赖的是每个 PDB 有自己的 UNDO 表空间也就是 LOCAL UNDO。如果 CDB 还在 shared UNDO 模式PDB 迁移时无法保证事务的一致性边界。实际操作中检查本地 UNDO 的命令是-- 在 CDB$ROOT 中执行确认 UNDO_MODE SHOW PARAMETER undo_management; SELECT property_name, property_value FROM database_properties WHERE property_name LOCAL_UNDO_ENABLED;如果LOCAL_UNDO_ENABLED返回 FALSE需要先切换到本地 UNDO 模式这个操作要求数据库重启。归档模式则是为了保证迁移过程中产生的 redo 能持续归档近零停机的核心是增量传输没有归档就没有增量。迁移本身在 19c 里可以用CREATE PLUGGABLE DATABASE ... FROM ...配合REFRESH模式做多次增量同步最后切一次。但考试只考前置条件不考命令细节。记住一条跨 CDB 迁移 PDB两个 CDB 都必须归档 本地 UNDO缺一不可。2.3 PDB 快照的两种形态完整副本与稀疏副本的依赖差异第 3 题问 PDB 快照哪两个说法正确答案是 B 和 C快照可以是源 PDB 的完整副本也可以是稀疏副本。A 和 D 错在“依赖存储快照”这个表述上。19c 的 PDB 快照分两种模式FULL和SPARSE。FULL 模式复制所有数据文件块SPARSE 模式只复制发生变化的块依赖底层存储的快照能力。但题目里 A 说“PDB 快照依赖于源 PDB 的现有存储快照”这个说法把 SPARSE 的特性强加给了所有快照所以错。D 说“快照复制 PDB 不依赖存储快照”这又否定了 SPARSE 的依赖关系也错。创建快照的典型命令-- 在 CDB$ROOT 中执行为 PDB1 创建完整快照 CREATE PLUGGABLE DATABASE pdb1_snap FROM pdb1 SNAPSHOT COPY FULL;SNAPSHOT COPY是固定语法FULL和SPARSE决定复制方式。SPARSE 要求底层文件系统支持稀疏文件或者存储快照FULL 不要求。考试里如果看到“always depends on storage snapshot”这种绝对化表述基本可以排除。3. RMAN 与 AWR 的边界连接点决定你能备份什么3.1 CDB$ROOT 与 PDB 下 RMAN 备份范围的区别第 4 题问创建 RMAN 备份时哪两个说法正确答案是 A 和 B在线 redo log 备份可以在连接 CDB$ROOT 时创建控制文件备份也可以在 CDB$ROOT 时创建。C 错在BACKUP TABLESPACE不能从 CDB$ROOT 备份 PDB 的表空间必须连接到对应 PDB。D 错在归档 redo log 备份不能从 PDB 发起因为归档日志是 CDB 级别的。E 错在控制文件备份可以从 PDB 发起实际上控制文件备份在 PDB 连接下是不允许的因为控制文件属于整个 CDB。我一般会这样验证当前连接能做什么-- 查看当前容器 SELECT SYS_CONTEXT(USERENV, CON_NAME) FROM dual; -- 在 CDB$ROOT 下备份控制文件和归档日志 BACKUP CURRENT CONTROLFILE; BACKUP ARCHIVELOG ALL; -- 在 PDB 下只能备份该 PDB 的数据文件 BACKUP TABLESPACE users;参数上注意BACKUP TABLESPACE在 PDB 内执行时RMAN 会自动限定在该 PDB 的表空间。如果从 CDB$ROOT 执行并指定 PDB 的表空间名会报 RMAN-05018 或类似错误。考试里常考的就是“连接点决定权限边界”记住控制文件、归档日志、在线 redo 只在 CDB$ROOT 级别操作PDB 表空间备份必须进 PDB。3.2 AWR 快照的生成条件STATISTICS_LEVEL 的三个取值第 5 题问 AWR 快照哪三个说法正确答案是 B、D、F快照总是自动创建、STATISTICS_LEVEL 为 TYPICAL 时生成、STATISTICS_LEVEL 为 ALL 时生成。C 说“总是手动创建”错E 说“BASIC 时生成”错。A 说“可以永久保留”错因为 AWR 快照有保留期限制默认 8 天可以通过DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS调整但不能无限期保留。检查当前设置的 SQL-- 查看 STATISTICS_LEVEL SHOW PARAMETER statistics_level; -- 查看 AWR 保留期和快照间隔 SELECT retention, snap_interval FROM dba_hist_wr_control;STATISTICS_LEVEL设为 BASIC 时很多性能统计不收集AWR 快照也不会自动生成。TYPICAL 是默认值满足绝大多数场景。ALL 会额外收集行级统计开销更大。考试里如果看到“BASIC 下生成 AWR”直接排除。3.3 ADDM 与 AWR 的触发关系自动运行与手动运行第 18 题问 ADDM 哪两个说法正确答案是 B 和 C每次 AWR 快照后自动运行、DBA 可以手动运行。A 错在 ADDM 分析的时间段不是固定 12 小时而是两个快照之间的间隔。D 错在结果写入 AWR 而不是 alert log。E 错在不是分析最后一天而是分析快照对应的时段。手动跑 ADDM 的入口-- 在 CDB$ROOT 中执行指定起止快照 ID VARIABLE task_name VARCHAR2(255); BEGIN :task_name : DBMS_ADDM.ANALYZE_DB( task_name my_addm_task, begin_snap 100, end_snap 101 ); END; /跑完后查DBA_ADVISOR_FINDINGS看结果。ADDM 的自动运行依赖 AWR 快照自动生成如果STATISTICS_LEVEL是 BASICAWR 不生成ADDM 也不会自动跑。这个链条在考试里经常被拆开考。4. Flashback 家族UNDO 依赖与保留期修改的坑4.1 哪些 Flashback 操作依赖 UNDO 数据第 15 题问哪组语句依赖 undo 表空间里的相关 undo 数据答案是 B1、2、5。拆开看语句 1FLASHBACK TABLE ... TO TIMESTAMP依赖 undo因为要回滚到过去某个时间点。语句 2SELECT ... AS OF SCN依赖 undo因为要构造过去的一致性读。语句 5SELECT ... VERSIONS BETWEEN SCN依赖 undo因为要展示行在多个 SCN 之间的版本。语句 3FLASHBACK TABLE ... TO BEFORE DROP依赖 recyclebin不依赖 undo。语句 4FLASHBACK DATABASE依赖 flashback logs 和归档不依赖 undo。语句 6ALTER TABLE ... FLASHBACK ARCHIVE是启用 FDA不依赖 undo。这个区分在运维里很实用如果 undo 表空间被覆盖语句 1、2、5 会报 ORA-01555。语句 3 只要 recyclebin 没清空就能恢复。语句 4 需要FLASHBACK DATABASE的前提条件满足。4.2 Flashback Data Archive 保留期从 4 年改 2 年会发生什么第 13 题问把 FDA 的保留期从 4 年改成 2 年结果是什么。答案是 A超过 2 年的历史数据会被清除。B 说报错错。C 说所有 FDA 被清除错。D 说归档到 flashback logs错。修改保留期的命令ALTER FLASHBACK ARCHIVE fda1 MODIFY RETENTION 2 YEAR;执行后后台进程会清理超过 2 年的历史数据。这个操作不可逆如果误改保留期超过新保留期的数据就没了。我一般会在修改前先查当前最老的数据时间SELECT MIN(versions_starttime) FROM employees VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP(2000-01-01 00:00:00, YYYY-MM-DD HH24:MI:SS) AND SYSTIMESTAMP;确认最老数据还在新保留期内再改。考试里考的是“修改保留期会立即清理超期数据”这个行为在 19c 里没有后悔药。4.3 Flashback Transaction 的两个前置条件第 12 题问执行 Flashback Transaction 的两个前提答案是 B 和 D用户被授予DBMS_FLASHBACK包的 EXECUTE 权限、主键上启用了 supplemental log。A 错在 Fast Recovery Area 不是必须的。C 错在 undo retention guarantee 不是必须的。E 重复了 D。授权和启用 supplemental log 的命令-- 授予权限 GRANT EXECUTE ON DBMS_FLASHBACK TO hr; -- 启用主键 supplemental log ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;Flashback Transaction 需要知道事务影响了哪些行主键 supplemental log 提供了这个映射。没有它DBMS_FLASHBACK.TRANSACTION_BACKOUT会报错。考试里常把“必须”和“可选”混在一起记住这两个硬条件。5. 避坑与排查原题里那些容易记反的边界5.1 坑一把 Application Seed 当成创建 Application PDB 的必经步骤现象看到“创建 Application PDB”就选带 seed 的选项结果错。 原因Application Seed 是为了加速批量创建不是访问公共表的必要条件。题目问“minimum required”时seed 是可省略的。 解决先看题目问的是“最少步骤”还是“完整步骤”。最少步骤只保留 Application Root 安装、创建 PDB、同步三步。5.2 坑二PDB 迁移时漏掉本地 UNDO 模式现象选了归档模式但没选本地 UNDO答案少一项。 原因19c 的 PDB 迁移依赖每个 PDB 有独立 UNDOshared UNDO 模式下无法保证迁移一致性。 解决跨 CDB 迁移前两个 CDB 都执行SELECT property_value FROM database_properties WHERE property_nameLOCAL_UNDO_ENABLED必须返回 TRUE。5.3 坑三在 PDB 里备份控制文件或归档日志现象RMAN 连接 PDB 后执行BACKUP CURRENT CONTROLFILE报错。 原因控制文件和归档日志属于 CDB 级别PDB 连接下不可操作。 解决备份控制文件、归档日志、在线 redo 时先ALTER SESSION SET CONTAINERCDB$ROOT再执行 RMAN 命令。5.4 坑四把 AWR 快照当成可以永久保留现象以为 AWR 快照不会丢结果超过保留期后被自动清理。 原因AWR 默认保留 8 天DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS可以调整但有上限。 解决需要长期保留时定期导出 AWR 报告或者用DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE创建基线。5.5 坑五修改 FDA 保留期前不检查最老数据现象把保留期从 4 年改成 2 年后发现 3 年前的数据没了。 原因ALTER FLASHBACK ARCHIVE ... MODIFY RETENTION会立即清理超过新保留期的数据。 解决修改前先查VERSIONS BETWEEN TIMESTAMP的最老时间确认在新保留期内再执行。6. 把 PDF 用成训练场我的刷题节奏与验证习惯这份 PDF 第二部分我前后刷了三遍第一遍按顺序做第二遍只做错题第三遍把每道题的正确答案还原成可执行的 SQL 或命令。第三遍最慢但效果最好。比如第 1 题我会在测试环境里真的建一个 Application Root装一张公共表再建两个 Application PDB跑一次同步看DBA_PDB_SYNC_INFO里的状态变化。第 2 题我会检查两个 CDB 的LOCAL_UNDO_ENABLED和归档状态确认前置条件。第 13 题我会建一个 FDA插几条数据改保留期看DBA_FLASHBACK_ARCHIVE里的保留时间和实际数据保留情况。具体节奏建议阶段目标验证方式第一遍按考试时间做标记不确定的题记录每道题耗时和犹豫选项第二遍只做错题和标记题对照正确答案写出每个错误选项的排除理由第三遍把正确答案还原成操作在测试库执行 SQL观察输出是否与题目描述一致第三遍里我一般会建一个临时 PDB 专门用来折腾做完就删。这样不会污染现有环境也能反复验证。比如验证 PDB 快照的 SPARSE 模式需要底层文件系统支持如果测试环境不支持就只验证 FULL 模式SPARSE 的依赖关系靠文档确认。还有一个习惯每道题的正确选项如果涉及参数我会去V$PARAMETER或DBA_VIEWS里确认这个参数在 19c 里的默认值和可改范围。比如STATISTICS_LEVEL的默认值是 TYPICALUNDO_RETENTION的默认值是 900 秒这些数字在考试里不会直接考但理解它们能帮你判断选项的合理性。从那以后我每次拿到一份题库都会先问自己这道题的正确答案如果让我在真库上复现我需要哪些权限、哪些参数、哪些前置状态。问完再做题正确率会稳很多。希望帮到你。本文还有配套的精品资源点击获取