点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!
源端环境检查
1.1 最小附加日志检查:
SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
1.2 检查强制日志是否开启:
select FORCE_LOGGING from v$database;
1.3 开启附加日志和强制日志:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;ALTER DATABASE FORCE LOGGING;
重新添加trandata
ggscidblogin userid ogg,password oggdelete trandata owner.*add trandata owner.*info trandata owner.*
源端数据库备份
3.1 开启抽取和投递进程
Select start_time from gv$transaction where to_date(start_time, 'yyyy-mm-dd hh24:mi:ss')<to_date('2019-03-28 10:20:55', 'yyyy-mm-dd hh24:mi:ss');
3.2 执行数据库备份
run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;allocate channel c4 type disk;allocate channel c5 type disk;allocate channel c6 type disk;allocate channel c7 type disk;allocate channel c8 type disk;sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';backup database format '/backup/db_%U.bak';backup archivelog format '/backup/arc_%U.bak';backup current controlfile format '/backup/controlfile.bak';release channel c1;release channel c2;release channel c3;release channel c4;release channel c5;release channel c6;release channel c7;release channel c8;}
目标端进行数据库恢复
4.1 恢复数据库
4.2 追加归档日志
recover database
目标端添加复制进程
源端检查联机日志
select MAX(first_change#)from v$logwhere status='INACTIVE'and ARCHIVED='YES';
目标端不完全恢复数据库
run{SET UNTIL SCN 11294270011522RECOVER DATABASE;}
Alter database open resetlogs
目标端数据库调整
8.1 禁用触发器:
SQL> declarev_sql varchar2(2000);CURSOR c_trigger IS SELECT 'alter trigger '||owner||'.'||trigger_name||' disable ;' from dba_triggers where owner in ('schema');BEGINOPEN c_trigger;LOOPFETCH c_trigger INTO v_sql;EXIT WHEN c_trigger%NOTFOUND;execute immediate v_sql;end loop;close c_trigger;end;/
8.2 禁用外建:
SQL> declarev_sql varchar2(2000);CURSOR c_trigger IS SELECT 'alter table '||owner||'.'||table_name||' disable constraint '||constraint_name from dba_constraints where constraint_type='R' and owner in ('schema');BEGINOPEN c_trigger;LOOPFETCH c_trigger INTO v_sql;EXIT WHEN c_trigger%NOTFOUND;execute immediate v_sql;end loop;close c_trigger;end;/
8.3 禁用相关scheduler:
SQL>declarev_jobname varchar2(50);err_code NUMBER;ERR_MSG VARCHAR2(256);CURSOR c_trigger ISselect owner || '.' || job_namefrom dba_scheduler_jobswhere owner in ('SCHEMA1', 'SCHEMA2')and enabled = 'TRUE';BEGINOPEN c_trigger;LOOPFETCH c_triggerINTO v_jobname;EXIT WHEN c_trigger%NOTFOUND;begindbms_scheduler.disable(v_jobname);exceptionwhen others thenNULL;err_code := SQLCODE;err_msg := substr(SQLERRM, 1, 200);dbms_output.put_line(sqlcode || '--' || sqlerrm);dbms_output.put_line(v_jobname);end;end loop;close c_trigger;end;/
8.4 禁用DML操作的job:
SELECT 'exec dbms_job.broken( '||JOB||',true);' from dba_jobs s where s.BROKEN='N' and s.SCHEMA_USER='schema';
目标端启动复制进程
start rep_01, aftercsn 11294270011522

本文作者:李亚明
本文来源:IT那活儿(上海新炬王翦团队)

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




