4、参数文件设置和路径创建
参数文件是保证数据库启动到nomount状态和实例创建重要对象。我们进行auxiliary过程,要“模拟”出数据库实例。这个时候,可以选择使用target的参数文件模板进行修改。
SQL> create pfile from spfile; --在oratest上进行
File created.
在$Oracle_HOME/dbs中,定位到initoratest.ora文本参数文件,修改其中内容,保存为initoraaux.ora。注意下面标红部分:
db_name = ORAAUX
oraaux.__db_cache_size=159383552
oraaux.__Java_pool_size=4194304
oraaux.__large_pool_size=4194304
oraaux.__shared_pool_size=75497472
oraaux.__streams_pool_size=0
oraaux.db_file_name_convert = ('ORATEST','ORAAUX')
oraaux.log_file_name_convert = ('ORATEST','ORAAUX')
*.audit_file_dest='/u01/app/oracle/admin/oraaux/adump'
*.background_dump_dest='/u01/app/oracle/admin/oraaux/bdump'
*.compatible='10.2.0.1.0'
*.core_dump_dest='/u01/app/oracle/admin/oraaux/cdump'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle/oradata'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=10485760000
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oraauxXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=81788928
*.processes=400
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=445
*.sga_target=247463936
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/oraaux/udump'
注意三个问题:一个是目录,笔者依然是遵照OFA的创建原则。所以将原来的oratest的目录对象修改为oraaux。二是对于db_file_convert和log_file_convert的设置。在Oracle中,数据库对于文件名称的理解是包括目录结构的,所以在这个过程中需要设置映射规则。最后是control_files参数从参数文件中删去,主要是考虑希望使用OMF自定义名称的方式(这样的策略在后面也引起一些问题)。
创建目录,使用root账号将需要的各种路径创建好。
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/admin/oraaux/adump
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/admin/oraaux/bdump
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/oradata/ORAAUX/controlfile
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/admin/oraaux/cdump
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/flash_recovery_area/ORAAUX/controlfile
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/admin/oraaux/cdump
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/admin/oraaux/udump
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/oradata/ORAAUX/onlinelog
[root@SimpleLinuxUp /]# mkdir -p /u01/app/oracle/flash_recovery_area/ORATEST/onlinelog
[root@SimpleLinuxUp /]# chown -R oracle:oinstall /u01
5、密码文件创建
密码文件是用于在不适用操作系统层面验证的时候,或者数据库不存在(只有实例启动nomount)状态下,进行系统登录验证的工具。
我们需要手工创建oratest和oraaux两个实例的密码文件。
[oracle@SimpleLinuxUp dbs]$ orapwd file=orapworatest password=oracle force=y
[oracle@SimpleLinuxUp dbs]$ orapwd file=orapworaaux password=oracle force=y
[oracle@SimpleLinuxUp admin]$ cd $ORACLE_HOME/dbs
[oracle@SimpleLinuxUp dbs]$ ls -l | grep orapw
-rw-r----- 1 oracle oinstall 1536 Mar 5 10:23 orapworaaux
-rw-r----- 1 oracle oinstall 1536 Mar 5 10:13 orapworatest
注意:对于密码文件的创建和定位,Oracle是有自己的规则的。这个和参数文件选择顺序很像。查找目录都是在$ORACLE_HOME/dbs目录,如果是linux环境,文件格式是orapw<SID>,注意是小写orapw,而且这个SID是和系统定义环境变量$ORACLE_SID要求完全相同!如果是Windows环境下,命名为ORAPW<SID>。确认密码文件是否成功设置的最好方法就是手工grant sysdba to sys,如果报错就证明创建过程有问题。
6、启动auxiliary实例
使用参数文件initoraaux.ora和ORACLE_SID,可以将auxiliary数据库启动到nomount状态。
[oracle@SimpleLinuxUp dbs]$ export ORACLE_SID=oraaux
[oracle@SimpleLinuxUp dbs]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 5 09:04:10 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup nomount pfile=initoraaux.ora
ORACLE instance started.
Total System Global Area 247463936 bytes
Fixed Size 1218772 bytes
Variable Size 83887916 bytes
Database Buffers 159383552 bytes
Redo Buffers 2973696 bytes
[oracle@SimpleLinuxUp dbs]$ ps -ef | grep pmon
oracle 2591 1 0 08:59 ? 00:00:00 ora_pmon_oratest
oracle 2642 1 0 09:04 ? 00:00:00 ora_pmon_oraaux
oracle 2670 2549 0 09:05 pts/0 00:00:00 grep pmon
此时,动态注册监听器状态如下。
[oracle@SimpleLinuxUp dbs]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 05-MAR-2014 09:58:29
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 05-MAR-2014 09:07:36
Uptime 0 days 0 hr. 50 min. 53 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SimpleLinuxUp)(PORT=1521)))
Services Summary...
Service "ORAAUX_XPT" has 1 instance(s).
Instance "oraaux", status BLOCKED, has 1 handler(s) for this service...
Service "oraaux" has 1 instance(s).
Instance "oraaux", status BLOCKED, has 1 handler(s) for this service...
Service "oratest" has 1 instance(s).
Instance "oratest", status READY, has 1 handler(s) for this service...
Service "oratest_XPT" has 1 instance(s).
Instance "oratest", status READY, has 1 handler(s) for this service...
The command completed successfully
两个实例都可以被监听程序识别。