找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

344

积分

0

好友

46

主题
发表于 5 天前 | 查看: 10| 回复: 0

在 Oracle Data Guard 的逻辑 Standby 数据库环境中,有时出于特定的应用架构或数据管理需求,我们需要阻止某些表的更改从主库同步到备库。例如,可能需要在备库上对某些报表表进行独立的维护操作,而不希望主库的DML操作将其覆盖。

那么,若要实现在逻辑 Standby 端跳过对某张表的指定 DML 操作(INSERT, UPDATE, DELETE),应该使用以下哪个工具?

A、ALTER DATABASE SKIP

B、DBMS_LOGSTDBY.SKIP

C、无需配置,自动跳过不支持的操作

D、LOG_ARCHIVE_DEST_n 的 SKIP 属性

正确答案与解析

正确答案是 B、DBMS_LOGSTDBY.SKIP

DBMS_LOGSTDBY 是 Oracle 提供的一个用于管理逻辑 Standby 数据库的内置PL/SQL包。其中的 SKIP 过程正是专门用于在逻辑 Standby 端配置“跳过”规则的核心工具。

基本语法如下:

BEGIN
  DBMS_LOGSTDBY.SKIP(
    stmt => 'DML', -- 要跳过的语句类型,如 ‘DML’, ‘SCHEMA_DDL’
    schema_name => ‘SCOTT’, -- 表所属的用户名
    object_name => ‘EMP’, -- 需要跳过的表名
    proc_name => NULL -- 可选,用于更复杂处理的自定义过程名
  );
END;
/

执行此过程后,逻辑 Standby 数据库的 SQL Apply 进程将不再应用主库对指定表(如 SCOTT.EMP)发出的 DML 操作,从而实现了“跳过”。

其他选项解析

  • A、ALTER DATABASE SKIP:此语句不存在,ALTER DATABASE 命令主要用于修改数据库的物理属性或状态,不用于控制逻辑 Standby 的 SQL Apply 规则。
  • C、无需配置,自动跳过不支持的操作:逻辑 Standby 的 SQL Apply 进程会尝试应用所有从主库接收到的、在备库支持的操作。对于明确需要跳过的操作,必须进行手动配置,不会自动跳过。
  • D、LOG_ARCHIVE_DEST_n 的 SKIP 属性:该属性用于配置物理 Standby 环境中的日志传输,例如 SKIP 选项可用于跳过指定数据库对象的日志应用,但其主要作用于物理级别的日志块,不适用于控制逻辑 Standby 中基于 SQL 语句的精确跳过,且语法和用途与题目所述场景不符。

因此,在逻辑 Standby 中精细控制对某张表的 DML 操作同步,必须使用 DBMS_LOGSTDBY.SKIP 过程进行配置。




上一篇:ASM坏块修复实战:解析asm_preferred_read_failure_groups参数的核心作用与误区
下一篇:MySQL联合索引最左前缀原则详解:面试必问的原理与优化
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-7 03:06 , Processed in 0.090503 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表