使用RMAN Duplicate方法搭建异名数据库实验(2)

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

两个实例都可以被监听程序识别。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1835b22663f69ea9006568e7d66f206f.html