linux redhat & Oracleoracle

oracle 逻辑dg备库跳过表空间的处理

2019-12-19  本文已影响0人  重庆思庄

1. Stop SQL apply,

alter database stop logical standby apply;

2. Create skip handler,

CREATE OR REPLACE PROCEDURE SYS.HANDLE_TBS_DDL (

OLD_STMT IN VARCHAR2,

STMT_TYP IN VARCHAR2,

SCHEMA IN VARCHAR2,

NAME IN VARCHAR2,

XIDUSN IN NUMBER,

XIDSLT IN NUMBER,

XIDSQN IN NUMBER,

ACTION OUT NUMBER,

NEW_STMT OUT VARCHAR2

) AS

BEGIN

-- All primary file specification that contains a directory

-- /usr/orcl/primary/dbs

-- should go to /usr/orcl/stdby directory specification

NEW_STMT := REPLACE(OLD_STMT,

'/usr/orcl/primary/dbs',

'/usr/orcl/stdby');

ACTION := DBMS_LOGSTDBY.SKIP_ACTION_REPLACE;

EXCEPTION

WHEN OTHERS THEN

ACTION := DBMS_LOGSTDBY.SKIP_ACTION_ERROR;

NEW_STMT := NULL;

END HANDLE_TBS_DDL;

Procedure created.

SQL> EXECUTE DBMS_LOGSTDBY.SKIP (stmt => 'TABLESPACE',proc_name => 'sys.handle_tbs_ddl');

PL/SQL procedure successfully completed.

3. Start the SQL Apply,

SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;

Database altered.

上一篇 下一篇

猜你喜欢

热点阅读