Rman.applying log 環境搭建

beatony發表於2012-10-03

一、啟庫
1. 生成profile檔案。Copy原庫的profile並修改SID。再根據實際情況修改ORACLE_HOME, ORACLE_BASE等引數。要確保對應的ORACLE_HOME下面的ORACLE版本於原庫完全一致。可以用sqlplus /nolog去檢視。
2. 執行profile檔案。
3. 建立並修改 init檔案。Cd $ORACLE_HOME/dbs, 從生產庫上覆制對應庫的init檔案。
注意修改相關*_dump_dest,control_files, instance_name,instance_name. compatible(只能向下相容) ,注意暫時不改db_name.
記憶體引數調整 原則:
Solaris主機上:重點庫db cache 1G,
約20個資料庫,每個庫Shared pool 600M ,
db cache size 300, 314572800
large pool 80, 83886080
pga 200, 209715200
java pool 60    20971520
總的記憶體大小控制在1g以下

4. 建立相關dump目錄。 $ORACLE_BASE/admin/$ORACLE_SID mkdir adump bdump cdump dpdump udump

5. startup mount
(檢查時間點)(此步需要複核)
select to_char(controlfile_time,'YYYY-MM-DD HH24:MI:SS') FROM V$DATABASE;
select min(checkpoint_time) from v$datafile_header;        - --查詢資料庫最舊的時間點

如果時間點不對,則用命令恢復到指定時間點,需要的log從生產上拷備。
rman target /
recover standby database using backup controlfile until time '2012-09-27 23:50';

rman target /
recover database until time '2012-09-27 23:50';

查需要哪些log,用類似下面的命令去查。
select sequence#,to_char(first_time,'YYYY-MM-DD HH24:MI:SS') from v$archived_log
where first_time between to_date('2011-11-26 10:00:00','yyyy-mm-dd hh24:mi:ss')
and to_date('2011-11-27 10:00:00','yyyy-mm-dd hh24:mi:ss');

6. 更改Datafile路徑。(6至7步,如果datafile,logfile路徑正確則不需要)
a) set pagesize 1000;
b) set linesize 500;
c) spool alter_data_file.sql
d) select 'alter database rename file '||''''||name||''''|| ' to '||''''||&1||'/'||substr(name,instr(name,'/',-1)+1)||''''||';' from v$datafile;
Enter value for 1: '/realpath/ld49hr' 注意帶上引號
e) spool off
f) @alter_data_file.sql

7. 更改logfile路徑。具體操作同6類似。
select 'alter database rename file '||''''||member||''''|| ' to '||''''||&1||'/'||substr(member,instr(member,'/',-1)+1)||''''||';' from v$logfile;

8. alter database open read only; -這步非常重要,如果不能open read only ,說明資料檔案處於不一致狀態,需要進行reocver操作

9. alter database backup controlfile to trace as '/paic/z4as8021/stg/bank/oradata/bsbocp1/cre_cont01.sql' resetlogs;

10. shutdown immediate;
11. 修改重建控制檔案的sql。 主要將reuse orgidbname 改為set newdbname, ,注意不能修改控制檔案中的字符集。
12. 修改init檔案裡對應的db_name 的值。
13. mv 原來的controlfile檔案。
14. 執行重建控制檔案的sql語句。此時db狀態已經到mount狀態了。

15. 查詢各資料檔案狀態是否一致。
set linesize 300 pagesize 0 numformat 999
select file#,error,recover,checkpoint_change# from v$datafile_header;
select hxfil file#,fhsta status,fhscn scn ,fhrba_seq seq# from x$kcvfh;
status 除了 第一號檔案狀態是0 or 8912  ,其餘資料檔案的該欄位都為0,這樣才處於一致性狀態

16. Alter database open resetlogs;

17. 增加temp檔案。
select tablespace_name from dba_tablespaces where  contents like 'TEMPORARY';
SQL>  alter tablespace TEMP add tempfile '/paic/hq/pabank/data/oradata/pabank/temp01.dbf' size 4096M reuse autoextend off;
select file_name from dba_temp_files;

18. 配置listener.ora, tnsnames.ora。 並啟動listener.

二、執行初始化指令碼 ( 更改使用者的密碼及db_link )

spool grant.sql;
set pagesize 500;

select  'alter user ' || username||' identified by hbyl1234 profile default;'  from dba_users where username not in ('DBMGR','SYS','SYSTEM');

select  'alter user ' || username||' identified by duan5lzh0 profile default;'  from dba_users where username  in ('DBMGR','SYS','SYSTEM');


SELECT 'CONN '||OWNER||'/hbyl1234 '||CHR(10)||'DROP DATABASE LINK '||DB_LINK||';' FROM DBA_DB_LINKS;

spoo off;

@grant.sql

三、開啟審計

--- end ----

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22578826/viewspace-745551/,如需轉載,請註明出處,否則將追究法律責任。