yangtingkun
===========================================================
为RAC不同的实例指定不同的SPFILE
===========================================================

RAC的多个实例可以分别用不同的SPFILE进行启动。

RAC环境中的初始化文件:http://yangtingkun.itpub.net/post/468/293782


首先需要说明的是,不推荐这种做法,因为这种方法需要手工同步多个不同的SPFILE,使得SPFILE的优势丧失。

写这篇文章的主要目的是回到一个网友的问题:http://www.itpub.net/thread-1015167-1-1.html

不过不同实例指定不同的SPFILE也不是一点意义都没有,比如两个实例的工作性能不同,不希望对一个实例的参数修改影响另一个实例,那么可以考虑使用这种方法。

一个简单的例子:

SQL> conn system@testrac1输入口令: ****已连接。
SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
testrac1

SQL> select name from v$database;

NAME
---------
TESTRAC

SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DISK/testrac/spfiletestrac.ora
SQL> conn system@testrac2
输入口令: ****已连接。
SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
testrac2

SQL> select name from v$database;

NAME
---------
TESTRAC

SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DISK/testrac/spfiletestrac.ora

这时默认情况,下面在其他位置构造一个SPFILE

bash-2.03$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 5 2 19:09:28 2008

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> create pfile='/export/home/oracle/inittestrac2.ora' from spfile;

文件已创建。

SQL> create spfile='/export/home/oracle/spfiletestrac2.ora' from pfile='/export/home/oracle/inittestrac2.ora';

文件已创建。

SQL> shutdown immediate数据库已经关闭。已经卸载数据库。
ORACLE
例程已经关闭。
SQL> host
$ vi inittemp.ora
"inittemp.ora" [New file]
spfile=/export/home/oracle/spfiletestrac2.ora
"inittemp.ora" [New file] 1 line, 46 characters
$ exit

SQL> startup pfile=/export/home/oracle/inittemp.ora
ORACLE
例程已经启动。

Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 536871048 bytes
Database Buffers 1593835520 bytes
Redo Buffers 14745600 bytes
数据库装载完毕。数据库已经打开。

现在再来检查一下两个实例的SPFILE

SQL> CONN SYSTEM@TESTRAC1输入口令: ****已连接。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac1

SQL> SELECT NAME FROM V$DATABASE;

NAME
---------
TESTRAC

SQL> SHOW PARAMETER SPFILE

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DISK/testrac/spfiletestrac.ora
SQL> CONN SYSTEM@TESTRAC2
输入口令: ****已连接。
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;

INSTANCE_NAME
----------------
testrac2

SQL> SELECT NAME FROM V$DATABASE;

NAME
---------
TESTRAC

SQL> SHOW PARAMETER SPFILE

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /export/home/oracle/spfiletestrac2.ora

yangtingkun 发表于:2008.07.07 23:31 ::分类: ( ORACLE ) ::阅读:(230次) :: 评论 (2)
re: 为RAC不同的实例指定不同的SPFILE [回复]

每一次都要用:
startup pfile=/export/home/oracle/inittemp.ora
才能用这个 spfile启动 ?
能不能让rac启动的时候自动 启用这个inittemp.ora
文件? 

simple 评论于: 2008.07.13 14:48
re: 为RAC不同的实例指定不同的SPFILE [回复]

可以,在$ORACLE_HOME/dbs/目录下不用设置SPFILE,然后建立一个inittestrac2.ora文件,指向一个非默认的spfile即可。

你去看看Oracle启动时候读取参数文件的默认顺序就明白了

yangtingkun 评论于: 2008.07.14 14:59

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...