ITPub博客

首页 > 数据库 > Oracle > ORACLE DG 日常维护常用SQL

ORACLE DG 日常维护常用SQL

原创 Oracle 作者:gxlineji 时间:2016-08-31 17:14:58 1 删除 编辑


-- 启用DG日志应用
alter database start logical standby apply immediate;
-- 停止DG日志应用
alter database stop logical standby apply; 
-- 跳过出错的 事务
 select * from  DBA_LOGSTDBY_EVENTS t order by t.event_time desc;
 begin dbms_logstdby.skip_transaction(70,15,721998);end;

-- 指定的表不同步
BEGIN dbms_logstdby.skip(stmt => 'DML',schema_name => 'OWNER_XXX',object_name => 'TABLENAMEXXX') ;END;
-- 取消指定表的不同步
BEGIN dbms_logstdby.unskip(stmt => 'DML',schema_name => 'OWNER_XXX',object_name => 'TABLENAMEXXX') ;END;

-- 重新同步指定的表
begin dbms_logstdby.instantiate_table(schema_name => 'OWNER_XXX',table_name => 'TABLENAMEXXX',dblink => 'RACLINK');end;

--   重新同 步指定的表的整个流程 (需要先停止日志应用)
BEGIN
   dbms_logstdby.skip(stmt => 'DML',schema_name => 'OWNER_XXX',object_name => 'MKT_KPI_INDEX_QUARTER') ;
   dbms_logstdby.instantiate_table(schema_name => 'OWNER_XXX',table_name => 'MKT_KPI_INDEX_QUARTER',dblink => 'RACLINK');
   dbms_logstdby.unskip(stmt => 'DML',schema_name => 'OWNER_XXX',object_name => 'MKT_KPI_INDEX_QUARTER') ;
end;
/

-- 常用的DG 视图
 select * from  DBA_LOGSTDBY_EVENTS t order by t.event_time desc;
select  t.applied,t.* from   gv$archived_log t order by t.first_time desc;
 select t.applied,t.* from dba_logstdby_log t order by t.first_time desc;
 select * from V$DATAGUARD_STATS ;
 select * from V$LOGSTDBY_PROCESS ;
 select * from V$LOGSTDBY_PROGRESS ;
 select * from V$LOGSTDBY;
 select * from V$LOGSTDBY_STATE ;
 select * from V$LOGSTDBY_STATS ;

--逻辑备用数据库中SQL应用操作的进展。
select * from dba_logstdby_progress;
 select * from dba_logstdby_skip ;
 select * from dba_logstdby_history;
 select * from dba_logstdby_unsupported;
 select * from dba_logstdby_not_unique;
 select * from dba_logstdby_skip_transaction;
 select * from dba_logmnr_log ;
 select * from dba_logmnr_purged_log;
 select * from dba_logmnr_session;


逻辑dg参数:
select * from dba_logstdby_parameters;
注意这两个参数:LOG_AUTO_DELETE、LOG_AUTO_DEL_RETENTION_TARGET
exec DBMS_LOGSTDBY.APPLY_SET('LOG_AUTO_DEL_RETENTION_TARGET', 720);

DATAGUARD状态:
select guard_status from gv$database;
-- 改变DG状态
alter database guard standby;
--  DG状态说明
在standby或all状态下,所有非sys用户,都无法对logical standby的数据进行修改,
关于alter database guard [standby|all|none] 几个参数的解释如下:
ALTER DATABASE GUARD ALL - prevents users making any changes - DEFAULT
ALTER DATABASE GUARD STANDBY - prevents users making changes to data maintained by data guard sql apply,即对DBMS_LOGSTDBY.SKIP 跳过的表可进行DML操作,而其他需要SQL 

APPLY的对象都不能进行变更操作。
ALTER DATABASE GUARD NONE - normal security


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10995764/viewspace-2124288/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-09-11

  • 博文量
    48
  • 访问量
    76657