使 用 闪 回 和 LogMiner
课 程 目 标 学 完 本 课 后, 应 能 完 成 以 下 工 作 : 描 述 闪 回 和 LogMiner 的 新 增 功 能 使 用 闪 回 数 据 归 档 创 建 保 护 和 使 用 历 史 记 录 数 据 准 备 数 据 库 创 建 更 改 和 删 除 闪 回 数 据 归 档 查 看 闪 回 数 据 归 档 元 数 据 使 用 闪 回 事 务 处 理 回 退 设 置 闪 回 事 务 处 理 先 决 条 件 查 询 有 相 关 性 及 没 有 相 关 性 的 事 务 处 理 选 择 回 退 选 项 和 闪 回 事 务 处 理 使 用 EM LogMiner 11-2
闪 回 和 LogMiner 的 新 增 功 能 和 增 强 功 能 在 Oracle Database 11g 中 易 于 使 用 : 闪 回 数 据 归 档 功 能 可 自 动 跟 踪 和 安 全 存 储 在 某 个 记 录 的 生 存 期 ( 而 非 应 用 程 序 逻 辑 ) 内 对 该 记 录 进 行 的 所 有 事 务 处 理 更 改 闪 回 事 务 处 理 和 相 关 事 务 处 理 或 作 业 回 退 提 高 了 处 理 还 原 逻 辑 错 误 的 灵 活 性 采 用 与 闪 回 事 务 处 理 集 成 在 一 起 的 基 于 浏 览 器 的 Enterprise Manager (EM) LogMiner 界 面 11-3
闪 回 数 据 归 档 概 览 : Oracle Total Recall 以 非 常 安 全 高 效 且 透 明 的 方 式 跟 踪 对 所 有 Oracle 数 据 的 历 史 记 录 更 改 安 全 无 法 修 改 历 史 记 录 数 据 根 据 规 范 进 行 保 留 基 于 保 留 策 略 自 动 清 除 高 效 采 用 特 殊 的 内 核 优 化, 最 小 化 捕 获 历 史 记 录 数 据 的 性 能 开 销 以 压 缩 形 式 存 储 在 表 空 间 中, 最 小 化 存 储 要 求 对 应 用 程 序 是 完 全 透 明 的 易 于 设 置 11-4
闪 回 数 据 归 档 比 较 主 要 优 点 操 作 闪 回 数 据 归 档 访 问 任 何 时 间 点 的 数 据 而 不 会 更 改 当 前 数 据 联 机 操 作, 启 用 跟 踪, 使 用 最 少 的 资 源 闪 回 数 据 库 使 整 个 数 据 库 实 际 回 退 到 某 个 时 间 点 脱 机 操 作, 需 要 预 配 置 和 资 源 粒 度 表 数 据 库 访 问 时 间 点 每 个 表 任 意 数 目 每 个 数 据 库 一 个 11-5
闪 回 数 据 归 档 : 概 览 对 于 超 过 还 原 保 留 期 的 长 期 保 留 要 求 缓 冲 区 高 速 缓 存 中 的 原 始 数 据 还 原 数 据 DML 操 作 FBDA 存 储 在 表 空 间 中 的 闪 回 数 据 归 档 示 例 : 三 个 闪 回 数 据 归 档, 保 留 期 分 别 为 : 1 年 2 年 5 年 11-6
闪 回 数 据 归 档 : 体 系 结 构 FBDA 使 用 的 DML 更 改 原 来 的 值 缓 冲 区 高 速 缓 存 还 原 1 2 FBDA 3 历 史 记 录 或 归 档 表 : - 压 缩 存 储 - 使 用 自 动 数 字 粉 碎 闪 回 数 据 归 档 11-7
准 备 数 据 库 要 满 足 长 期 保 留 要 求, 请 使 用 闪 回 数 据 归 档 首 先 执 行 下 列 步 骤 : 对 于 归 档 管 理 员 : 为 数 据 归 档 创 建 一 个 或 多 个 表 空 间 并 授 予 对 表 空 间 的 QUOTA 权 限 授 予 创 建 和 维 护 闪 回 归 档 所 需 的 FLASHBACK ARCHIVE ADMINISTER 系 统 权 限 对 于 归 档 用 户 : 授 予 FLASHBACK ARCHIVE 对 象 权 限 ( 用 于 对 给 定 闪 回 归 档 中 的 特 定 表 启 用 历 史 记 录 跟 踪 ) 授 予 查 询 特 定 对 象 所 需 的 FLASHBACK 和 SELECT 权 限 11-8
准 备 数 据 库 保 留 期 :15 分 钟 配 置 还 原 : 创 建 还 原 表 空 间 ( 默 认 设 置 为 : 可 自 动 扩 展 的 表 空 间 ) 启 用 自 动 还 原 管 理 (11g 的 默 认 设 置 ) 了 解 还 原 的 自 动 优 化 : 在 还 原 表 空 间 中 还 原 数 据 固 定 大 小 的 表 空 间 : 可 获 得 最 佳 保 留 期 的 自 动 优 化 可 自 动 扩 展 的 还 原 表 空 间 : 可 获 得 运 行 时 间 最 长 的 查 询 的 自 动 优 化 建 议 对 闪 回 使 用 以 下 设 置 : 固 定 大 小 的 还 原 表 空 间 11-10
闪 回 数 据 归 档 : 工 作 流 1. 创 建 闪 回 数 据 归 档 2. 指 定 默 认 闪 回 数 据 归 档 ( 可 选 ) 3. 启 用 闪 回 数 据 归 档 4. 查 看 闪 回 数 据 归 档 数 据 11-12
使 用 闪 回 数 据 归 档 访 问 历 史 记 录 数 据 的 基 本 工 作 流 : 1. 创 建 闪 回 数 据 归 档 : CREATE FLASHBACK ARCHIVE fla1 TABLESPACE tbs1 QUOTA 10G RETENTION 5 YEAR; 2. 对 FLA1 归 档 中 的 表 启 用 历 史 记 录 跟 踪 : ALTER TABLE inventory FLASHBACK ARCHIVE fla1; 3. 查 看 历 史 记 录 数 据 : SELECT product_number, product_name, count FROM inventory AS OF TIMESTAMP TO_TIMESTAMP ('2007-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS'); 11-13
使 用 默 认 闪 回 归 档 : 1. 创 建 默 认 闪 回 数 据 归 档 : 配 置 默 认 闪 回 数 据 归 档 CREATE FLASHBACK ARCHIVE DEFAULT fla2 TABLESPACE tbs1 QUOTA 10G RETENTION 2 YEAR; 2. 对 表 启 用 历 史 记 录 跟 踪 : ALTER TABLE stock_data FLASHBACK ARCHIVE; 注 : 因 为 使 用 了 默 认 的 闪 回 数 据 归 档, 所 以 不 需 要 提 供 闪 回 数 据 归 档 名 称 3. 禁 用 历 史 记 录 跟 踪 : ALTER TABLE stock_data NO FLASHBACK ARCHIVE; 11-14
填 充 闪 回 数 据 归 档 空 间 闪 回 数 据 归 档 填 满 后, 会 发 生 什 么? 空 间 使 用 率 达 到 90% 引 发 错 误 : ORA-55623 "Flashback Archive \"%s\" is blocking and tracking on all tables is suspended" ORA-55617 "Flashback Archive \"%s\" runs out of space and tracking on \"%s\" is suspended" 生 成 预 警 日 志 条 目 挂 起 跟 踪 11-15
维 护 闪 回 数 据 归 档 1. 增 加 空 间 : ALTER FLASHBACK ARCHIVE fla1 ADD TABLESPACE tbs3 QUOTA 5G; 2. 更 改 保 留 时 间 : ALTER FLASHBACK ARCHIVE fla1 MODIFY RETENTION 2 YEAR; 3. 清 除 数 据 : ALTER FLASHBACK ARCHIVE fla1 PURGE BEFORE TIMESTAMP(SYSTIMESTAMP - INTERVAL '1' day); 4. 删 除 闪 回 数 据 归 档 : DROP FLASHBACK ARCHIVE fla1; 11-16
闪 回 数 据 归 档 : 示 例 1. 强 制 执 行 数 字 粉 碎 : CREATE FLASHBACK ARCHIVE tax7_archive TABLESPACE tbs1 RETENTION 7 YEAR; 2. 访 问 历 史 记 录 数 据 : SELECT symbol, stock_price FROM stock_data AS OF TIMESTAMP TO_TIMESTAMP ('2006-12-31 23:59:00', 'YYYY-MM-DD HH24:MI:SS') 3. 恢 复 数 据 : INSERT INTO employees SELECT * FROM employees AS OF TIMESTAMP TO_TIMESTAMP('2007-06-12 11:30:00','YYYY-MM-DD HH24:MI:SS') WHERE name = 'JOE'; 11-17
闪 回 数 据 归 档 :DDL 限 制 对 启 用 了 闪 回 数 据 归 档 功 能 的 表 使 用 下 述 任 一 DDL 语 句 都 会 导 致 错 误 ORA-55610: 执 行 以 下 任 一 操 作 的 ALTER TABLE 语 句 : 删 除 重 命 名 或 修 改 列 执 行 分 区 或 子 分 区 操 作 将 LONG 列 转 换 为 LOB 列 包 括 UPGRADE TABLE 子 句 ( 不 管 有 无 INCLUDING DATA 子 句 ) DROP TABLE 语 句 TRUNCATE TABLE 语 句 11-18
查 看 闪 回 数 据 归 档 查 看 结 果 : 视 图 名 称 *_FLASHBACK_ARCHIVE *_FLASHBACK_ARCHIVE_TS *_FLASHBACK_ARCHIVE_TABLES 说 明 显 示 有 关 闪 回 数 据 归 档 的 信 息 显 示 闪 回 数 据 归 档 的 表 空 间 显 示 有 关 启 用 了 闪 回 归 档 的 表 的 信 息 11-19
标 准 和 使 用 提 示 查 询 过 去 的 数 据 前 执 行 COMMIT 或 ROLLBACK 使 用 当 前 的 会 话 设 置 使 用 DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER 函 数 获 取 SCN 使 用 以 下 公 式 计 算 过 去 的 某 个 时 间 : (SYSTIMESTAMP - INTERVAL '10' MINUTE) 在 要 求 一 定 精 度 ( 时 间 戳 的 粒 度 为 三 秒 ) 的 情 况 下 使 用 系 统 更 改 号 (SCN) 11-20
闪 回 事 务 处 理 回 退 用 于 回 退 特 定 事 务 处 理 及 其 所 有 相 关 事 务 处 理 的 逻 辑 恢 复 选 项 使 用 还 原 重 做 日 志 以 及 补 充 事 件 记 录 功 能 创 建 并 执 行 校 正 事 务 处 理 您 以 提 交 或 回 退 操 作 来 结 束 更 改 比 费 力 的 手 动 方 法 更 快 更 容 易 相 关 事 务 处 理 包 括 : 连 续 编 写 (WAW) 和 主 键 约 束 条 件, 而 不 是 外 键 约 束 条 件 11-21
闪 回 事 务 处 理 建 立 闪 回 事 务 处 理 的 先 决 条 件 逐 步 完 成 可 能 的 工 作 流 使 用 闪 回 事 务 处 理 向 导 查 询 有 相 关 性 及 没 有 相 关 性 的 事 务 处 理 选 择 回 退 选 项 和 闪 回 事 务 处 理 检 查 结 果 11-22
先 决 条 件 而 且 数 据 库 必 须 处 于 ARCHIVELOG 模 式 11-23
闪 回 事 务 处 理 可 使 用 Enterprise Manager 或 命 令 行 闪 回 事 务 处 理 EM 使 用 闪 回 事 务 处 理 向 导, 该 向 导 使 用 NOCASCADE 选 项 调 用 DBMS_FLASHBACK.TRANSACTION_BACKOUT 过 程 如 果 PL/SQL 调 用 成 功 完 成, 即 意 味 着 事 务 处 理 不 具 有 任 何 相 关 性, 并 且 已 成 功 回 退 单 个 事 务 处 理 11-24
可 能 的 工 作 流 查 看 表 中 的 数 据 发 现 逻 辑 问 题 使 用 闪 回 事 务 处 理 执 行 查 询 选 择 事 务 处 理 闪 回 事 务 处 理 ( 如 果 没 有 冲 突 ) 选 择 其 它 回 退 选 项 ( 如 果 存 在 冲 突 ) 查 看 闪 回 事 务 处 理 结 果 11-25
查 看 数 据 11-26
闪 回 事 务 处 理 向 导 11-27
闪 回 事 务 处 理 向 导 11-29
闪 回 事 务 处 理 向 导 1 2 11-30
闪 回 事 务 处 理 向 导 2 1 11-31
闪 回 事 务 处 理 向 导 COMMIT 11-32
选 择 其 它 回 退 选 项 11-33
选 择 其 它 回 退 选 项 11-34
最 后 步 骤 ( 不 使 用 EM) 选 择 回 退 选 项 后, 会 在 DBA_FLASHBACK_TXN_STATE 和 DBA_FLASHBACK_TXN_REPORT 表 中 生 成 相 关 性 报 告 检 查 显 示 了 已 回 退 的 所 有 事 务 处 理 的 相 关 性 报 表 提 交 更 改 使 其 成 为 永 久 更 改 回 退 以 放 弃 更 改 11-35
查 看 闪 回 事 务 处 理 元 数 据 视 图 名 称 *_FLASHBACK_TXN_REPORT *_FLASHBACK_TXN_STATE 说 明 显 示 相 关 的 XML 信 息 显 示 已 回 退 的 事 务 处 理 的 事 务 处 理 标 识 符 SQL> SELECT * FROM DBA_FLASHBACK_TXN_STATE; COMPENSATING_XID XID BACKOUT_MODE DEPENDENT_XID USER# ---------------- ---------------- ------------ --------------- -------- 0500150069050000 03000000A9050000 4 0 0500150069050000 05001E0063050000 4 03000000A9050000 0 11-36
使 用 LogMiner Oracle DB 中 功 能 强 大 的 审 计 工 具 直 接 访 问 重 做 日 志 用 户 界 面 : SQL 命 令 行 图 形 用 户 界 面 (GUI) 与 Enterprise Manager 集 成 11-37
小 结 在 本 课 中, 您 应 该 已 经 学 会 : 描 述 闪 回 和 LogMiner 的 新 增 功 能 和 增 强 功 能 准 备 数 据 库 以 进 行 闪 回 创 建 更 改 和 删 除 闪 回 数 据 归 档 查 看 闪 回 数 据 归 档 元 数 据 设 置 闪 回 事 务 处 理 先 决 条 件 查 询 有 相 关 性 及 没 有 相 关 性 的 事 务 处 理 选 择 回 退 选 项 和 闪 回 事 务 处 理 使 用 EM LogMiner 11-39
练 习 11: 使 用 闪 回 技 术 概 览 本 练 习 包 含 以 下 主 题 : 使 用 闪 回 数 据 归 档 使 用 闪 回 事 务 处 理 回 退 11-40