您的位置:首页 > 数据库 > Oracle

创建和管理Oracle初始化参数文件pfile、spfile

2012-08-16 10:31 876 查看

创建和管理Oracle初始化参数文件pfile、spfile

分类:
Oracle—管理Oracle实例 2012-06-11 17:09
96人阅读 评论(0)
收藏
举报

知识点:
创建和管理初始化参数文件
启动和关闭例程
监视和使用诊断文件

参数文件
要启动一个Oracle例程,Oracle服务器必须读取初始化参数文件

查询参数的两种方式
SQL> select name,type,value from v$parameter where name like '%sga%';
NAME TYPE VALUE
-------------------- ---------- ------------------------------
sga_max_size 6 637534208
pre_page_sga 1 FALSE
lock_sga 1 FALSE
sga_target 6 0

SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 608M
sga_target big integer 0

PFILE —— initSID.ora
PFILE是可使用标准的操作系统编辑器进行维护的文本文件。
PFILE在例程启动过程中是只读的。如果文件发生修改,则必须关闭然后重新启动例程以使新的参数值生效。
PFILE缺省情况下,位于 $ORACLE_HOME/dbs 目录中,文件名是 initSID.ora
[oracle@oracle11g ~]$ cd dbs;
[oracle@oracle11g dbs]$ ls -l
总计 44
-rw-rw---- 1 oracle oinstall 1544 06-11 09:51 hc_wilson.dat
-rw-r--r-- 1 oracle oinstall 12920 2001-05-03 initdw.ora
-rw-r--r-- 1 oracle oinstall 8385 1998-09-11 init.ora
-rw-r----- 1 oracle oinstall 24 06-05 21:40 lkWILSON
-rw-r----- 1 oracle oinstall 1536 06-05 21:49 orapwwilson
-rw-r----- 1 oracle oinstall 2560 06-11 09:51 spfilewilson.ora
没有initwilson.ora

创建PFILE
通过init.ora来构造pfile:做一个init.ora的拷贝,然后修改其中的参数值
[oracle@oracle11g old]$ cp init.ora ../initwilson.ora

通过SPFILE来创建PFILE
1.进入$ORACLE_HOME/dbs目录,查看文件如下,可以看见存在spfile不存在pfile
[oracle@oracle11g dbs]$ ls
hc_wilson.dat initdw.ora init.ora lkWILSON orapwwilson spfilewilson.ora

2.将spfilewilson.ora备份为spfilewilson_bak.ora
[oracle@oracle11g dbs]$ mv spfilewilson.ora spfilewilson_bak.ora
hc_wilson.dat init.ora orapwwilson
initdw.ora lkWILSON spfilewilson_bak.ora

3.进入sqlplus,启动数据库,可以发现因为缺少初始化参数文件数据库无法启动
SQL> startup;
ORA-01078: 处理系统参数失败
LRM-00109: 无法打开参数文件 '/u01/oracle/dbs/initwilson.ora'

4.通过spfile创建pfile
SQL> create pfile='/u01/oracle/dbs/initwilson.ora' from spfile='/u01/oracle/dbs/spfilewilson_bak.ora';
文件已创建。

5.查看$ORACLE_HOME/dbs目录,可见initwilson.ora已经创建了
[oracle@oracle11g dbs]$ ls
hc_wilson.dat init.ora lkWILSON spfilewilson_bak.ora
initdw.ora initwilson.ora orapwwilson

6.进入sqlplus,启动数据库来验证是否pfile创建成功
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 636100608 bytes
Fixed Size 1301784 bytes
Variable Size 314573544 bytes
Database Buffers 314572800 bytes
Redo Buffers 5652480 bytes
数据库装载完毕。
数据库已经打开。

SPFILE —— spfileSID.ora
SPFILE简介
SPFILE是二进制文件,它位于$ORACLE_HOME/dbs目录中,缺省名称为spfileSID.ora
SPFILE由Oracle 服务器进行维护
SPFILE始终驻留在服务器端
SPFILE所做更改永久有效,不受关闭和启动的影响
SPFILE可以自行调节参数值
使恢复管理器能够备份初始化参数文件
[oracle@oracle11g ~]$ cd dbs;
[oracle@oracle11g dbs]$ ls -l
总计 44
-rw-rw---- 1 oracle oinstall 1544 06-11 09:51 hc_wilson.dat
-rw-r--r-- 1 oracle oinstall 12920 2001-05-03 initdw.ora
-rw-r--r-- 1 oracle oinstall 8385 1998-09-11 init.ora
-rw-r----- 1 oracle oinstall 24 06-05 21:40 lkWILSON
-rw-r----- 1 oracle oinstall 1536 06-05 21:49 orapwwilson
-rw-r----- 1 oracle oinstall 2560 06-11 09:51 spfilewilson.ora

查看spfile的内容,strings命令提取一个二进制文件中可打印字符
[oracle@oracle11g dbs]$ strings spfilewilson.ora | more
wilson.__db_cache_size=314572800
wilson.__java_pool_size=12582912
wilson.__large_pool_size=4194304
wilson.__oracle_base='/u01'#ORACLE_BASE set from environment
......

通过pfile来创建spfile
1.进入$ORACLE_HOME/dbs目录,查看文件如下,可以看见存在pfile不存在spfile
[oracle@oracle11g dbs]$ ls
hc_wilson.dat init.ora lkWILSON spfilewilson_bak.ora
initdw.ora initwilson.ora orapwwilson

2.将initwilson.ora备份为sinitwilson_bak.ora
[oracle@oracle11g dbs]$ mv initwilson.ora initwilson_bak.ora
[oracle@oracle11g dbs]$ ls
hc_wilson.dat init.ora lkWILSON spfilewilson_bak.ora
initdw.ora initwilson_bak.ora orapwwilson

3.进入sqlplus,启动数据库,可以发现因为缺少初始化参数文件数据库无法启动
SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL> startup;
ORA-01078: failure in processing system parameters
LRM-00109: 无法打开参数文件 '/u01/oracle/dbs/initwilson.ora'

4.通过pfile创建spfile
SQL> create spfile='/u01/oracle/dbs/spfilewilson.ora' from pfile='/u01/oracle/dbs/initwilson_bak.ora';
文件已创建。

5.查看$ORACLE_HOME/dbs目录,可见spfilewilson.ora已经创建了
[oracle@oracle11g dbs]$ ls
hc_wilson.dat init.ora lkWILSON spfilewilson_bak.ora
initdw.ora initwilson_bak.ora orapwwilson spfilewilson.ora

6.进入sqlplus,启动数据库来验证是否spfile创建成功
SQL> shutdown abort;
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 636100608 bytes
Fixed Size 1301784 bytes
Variable Size 314573544 bytes
Database Buffers 314572800 bytes
Redo Buffers 5652480 bytes
数据库装载完毕。
数据库已经打开。

修改spfile的内容
语法结构
ALTER SYSTEM SET parameter_name = parameter_value [COMMENT 'text'] [SCOPE = MEMORY|SPFILE|BOTH] [deferred] [SID= 'sid '| '* ']
parameter_name:要更改的参数的名称
parameter_value:要将参数更改为的值
COMMENT:添加在SPFILE 中被更改的参数旁的注释
SCOPE:确定应在内存中、在 SPFILE 中还是同时在这两个位置进行更改
MEMORY :只能在当前运行的例程中更改参数值
SPFILE :只能在SPFILE 中更改参数值
BOTH:在当前运行的例程和SPFILE 中均可更改参数值
SID:标识要使用的SPFILE 的ORACLE_SID
'sid':更改SPFILE 时使用的特定 SID
'*':使用缺省SPFILE
deferred:下次生效

例1 修改内存和spfile中的参数值
1. 查看参数值
SQL> show parameter fast_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_io_target integer 0
fast_start_mttr_target integer 0
fast_start_parallel_rollback string LOW

2. 修改参数值
SQL> alter system set fast_start_mttr_target = 300;
系统已更改。

3. 查看内存中参数的值
SQL> show parameter fast_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_io_target integer 0
fast_start_mttr_target integer 300
fast_start_parallel_rollback string LOW

4. 查看spfile文件中参数的值
[oracle@oracle11g dbs]$ strings spfilewilson.ora | more
*.dispatchers='(PROTOCOL=TCP) (SERVICE=wilsonXDB)'
*.fast_start_mttr_target=300
*.memory_target=635437056
......

例2 只修改内存中的参数的值
1. 查看参数值
SQL> show parameter fast_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_io_target integer 0
fast_start_mttr_target integer 300
fast_start_parallel_rollback string LOW

2. 修改参数值
SQL> alter system set fast_start_mttr_target = 250 scope = memory;
系统已更改。

3. 查看内存
SQL> show parameter fast_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_io_target integer 0
fast_start_mttr_target integer 250
fast_start_parallel_rollback string LOW

4. 查看spfile中参数的值
[oracle@oracle11g dbs]$ strings spfilewilson.ora | more
*.dispatchers='(PROTOCOL=TCP) (SERVICE=wilsonXDB)'
*.fast_start_mttr_target=300
*.memory_target=635437056
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: