两个地方需要修改,一个是online group信息。因为我们是完全关闭数据库,不会有启动之后实例恢复步骤。而且OMF策略的一些文件在一些版本下是不能指定,所以为避免麻烦,删除掉日志文件信息,让Oracle执行过程中重新创建日志。另一个改动是数据文件的目录信息,将其中的ORA11G替换为ORA11CL。
STARTUP NOMOUNT
CREATE CONTROLFILE SET DATABASE "ORA11CL" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 1248
LOGFILE
GROUP 1 SIZE 50M BLOCKSIZE 512,
GROUP 2 SIZE 50M BLOCKSIZE 512,
GROUP 3 SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/u01/app/oradata/ORA11CL/datafile/o1_mf_system_92t6zl2m_.dbf',
'/u01/app/oradata/ORA11CL/datafile/o1_mf_sysaux_92t6zl5k_.dbf',
'/u01/app/oradata/ORA11CL/datafile/o1_mf_undotbs1_92t6zl6d_.dbf',
'/u01/app/oradata/ORA11CL/datafile/o1_mf_users_92t6zl83_.dbf',
'/u01/app/oradata/ORA11CL/datafile/o1_mf_example_92t74b1f_.dbf',
'/u01/app/oradata/ORA11CL/datafile/o1_mf_trcatbl_96mlzz0j_.dbf',
'/u01/app/oradata/ORA11CL/datafile/o1_mf_testtbl_9j2sxn9r_.dbf',
'/u01/app/oradata/ORA11CL/datafile/o1_mf_awp_9khloyod_.dbf'
CHARACTER SET AL32UTF8
;
此外,我们注意在脚本中没有temp tablespace的信息。在trace文件中,我们看到Oracle可以在open reset之后创建表空间。当然,原始Trace文件中包括临时文件的名称信息,笔者也将其删除,促使Oracle自动创建。
ALTER DATABASE OPEN RESETLOGS;
ALTER TABLESPACE TEMP ADD TEMPFILE SIZE 481296384 AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
ALTER TABLESPACE TEMPTEST ADD TEMPFILE SIZE 1024M AUTOEXTEND OFF;
ALTER TABLESPACE TEMPTEST ADD TEMPFILE SIZE 525328384 AUTOEXTEND OFF;
ALTER TABLESPACE AWP_TEMP ADD TEMPFILE SIZE 1024M AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M;
最后是参数文件准备,可以使用ora11g作为范本进行改写。
SQL> create pfile from spfile;
File created.
[oracle@SimpleLinux dbs]$ ls -l | grep init
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r--r-- 1 oracle oinstall 1070 Mar 10 11:17 initora11g.ora
修改其中内容,主要是数据库名称,控制文件参数control_files要进行屏蔽。对应所有与ora11g有关目录需要进行改写。
ora11cl.__db_cache_size=71303168
ora11cl.__Java_pool_size=20971520
ora11cl.__large_pool_size=4194304
ora11cl.__oracle_base='/u01/app'#ORACLE_BASE set from environment
ora11cl.__pga_aggregate_target=113246208
ora11cl.__sga_target=264241152
ora11cl.__shared_io_pool_size=0
ora11cl.__shared_pool_size=150994944
ora11cl.__streams_pool_size=8388608
*.audit_file_dest='/u01/app/admin/ora11cl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
#*.control_files='/u01/app/oradata/ORA11CL/controlfile/o1_mf_92t72zkf_.ctl','/u01/app/fast_recovery_area/ORA11CL/controlfile/o1_mf_92t72zyj_.ctl'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oradata'
*.db_domain=''
*.db_name='ora11cl'
*.db_recovery_file_dest='/u01/app/fast_recovery_area'
*.db_recovery_file_dest_size=10737418240
*.diagnostic_dest='/u01/app'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ora11cloneXDB)'
*.log_checkpoints_to_alert=TRUE
*.memory_max_target=360m
*.memory_target=360m
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_retention=300
*.undo_tablespace='UNDOTBS1'
*.use_large_pages='true'
保存为initora11clone.ora文件。
[oracle@SimpleLinux dbs]$ ls -l | grep init
-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora
-rw-r--r-- 1 oracle oinstall 1127 Mar 10 11:49 initora11clone.ora
-rw-r--r-- 1 oracle oinstall 1070 Mar 10 11:17 initora11g.ora
目录创建,依据前面定位的目录信息,手工创建文件系统目录。
[root@SimpleLinux ~]# mkdir -p /u01/app/admin/ora11cl/adump
[root@SimpleLinux ~]# mkdir -p /u01/app/fast_recovery_area/ORA11CL/controlfile/
[root@SimpleLinux ~]# mkdir -p /u01/app/oradata/ORA11CL/datafile
[root@SimpleLinux ~]# mkdir -p /u01/app/oradata/ORA11CL/onlinelog/
[root@SimpleLinux ~]# mkdir -p /u01/app/fast_recovery_area/ORA11CL/onlinelog/
[root@SimpleLinux ~]# cd /u01
[root@SimpleLinux u01]# chown -R oracle:oinstall /u01