一、启库
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博客 ” ,链接:https://blog.itpub.net/22578826/viewspace-745551/ ,如需转载,请注明出处,否则将追究法律责任。