my_sir 发表于 2010-01-11 21:15

oralce如何更改spfile路径

oracle以spfile启动
SQL*Plus: Release 11.1.0.6.0 - Production on Mon Jan 11 20:57:22 2010

Copyright (c) 1982, 2007, Oracle.All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> show parameters spfile

NAME                                 TYPE      VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /home/oracle/product/11g/dbs/spfilesmsgdb.ora

SQL>create pfile='/home/oracle/test.ora' from spfile='//home/oracle/product/11g/dbs/spfilesmsgdb.ora';

File created.

SQL> create spfile='/dev/mapper/smsgvg-lv_spfile' from pfile='/home/oracle/test.ora';

File created.

现在我要把数据库以spfile启动的spfile指向更改到 /dev/mapper/smsgvg-lv_spfile 上,该怎么做啊?

my_sir 发表于 2010-01-11 21:43

用sql语句可查:
select * from v$parameters where name='spfile'
里面有spfile的路径

但是没找到view v$parameters 的基表,似乎更改这个基表的内容就可以达到效果

山野村夫 发表于 2010-01-11 22:18

最简单的办法:

编辑$ORACLE_HOME/dbs/init<sid>.ora

里面只写一行:SPFILE='/dev/mapper/smsgvg-lv_spfile'

my_sir 发表于 2010-01-11 22:40

回复 #3 山野村夫 的帖子

嗯,这是一个不错的办法
SQL>shutdown immediate

$ mv $ORACLE_HOME/dbs/spfile<sid>.ora $ORACLE_HOME/dbs/spfile<sid>.ora.bak

$ echo 'spfile=/dev/raw/raw7'>$ORACLE_HOME/dbs/initsmsgdb.ora

##我的smsg-lv_spfile与/dev/raw/raw7 做了绑定的

SQL>startup
ORACLE instance started.

Total System Global Area422670336 bytes
Fixed Size                  1300352 bytes
Variable Size             251660416 bytes
Database Buffers          163577856 bytes
Redo Buffers                6131712 bytes
Database mounted.
Database opened.
SQL> show parameters spfile

NAME                                 TYPE      VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /dev/raw/raw7

还有一种就是建一个软连接
$ ln -s /dev/raw/raw7 $ORACLE_HOME/dbs/spfile<sid>.ora
$ ls -l
lrwxrwxrwx1 oracle oinstall    13 Jan 11 22:04 spfilesmsgdb.ora -> /dev/raw/raw7
SQL>startup
.....
.....
SQL> show parameters spfile

NAME                                 TYPE      VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /home/oracle/product/11g/dbs/spfilesmsgdb.ora


从表面上看SPFILE还是在本地,但实际上是由裸设备接替了

不知还有其他方法没有?实现SPFILE的重定向,比较直接一点的

枫叶无霜 发表于 2010-01-12 09:39

SQL>shutdown immediate

$ mv $ORACLE_HOME/dbs/spfile<sid>.ora $ORACLE_HOME/dbs/spfile<sid>.ora.bak

$ echo 'spfile=/dev/raw/raw7'>$ORACLE_HOME/dbs/initsmsgdb.ora

##我的smsg-lv_spfile与/dev/raw/raw7 做了绑定的

改完了不?

看似小纯洁 发表于 2010-01-12 14:55

startupspfile='/xx/xx/xxxxx'

山野村夫 发表于 2010-01-12 20:04

回复 #4 my_sir 的帖子

从原理上讲,还是我那个方法比较合适

oracle启动就是从dbs目录下寻找init.ora或者spfile.ora

headon 发表于 2010-03-09 17:42

感谢大家,学习了。

fixlee 发表于 2010-03-15 22:42

学习了

p392114766 发表于 2013-03-06 15:29

回复 7# 山野村夫


   

那windows的要在哪儿改呢?
页: [1]
查看完整版本: oralce如何更改spfile路径