参数文件
:
·记录非默认值的初始化参数(又称特征参数),约束实例的行为
初始化参数:控制实例的属性行为的开关
sys@ORCL>desc v$parameter
Name Null? Type
------------------ -------------------
NUM
#参数ID
NUMBER
NAME
#参数名字
VARCHAR2(80)
TYPE
#参数数据类型
NUMBER
VALUE
#参数状态值
VARCHAR2(4000)
DISPLAY_VALUE
#显示参数值是否是一个友好格式,如1024B显示1K
VARCHAR2(4000)
ISDEFAULT
#是否是默认值
VARCHAR2(9)
ISSES_MODIFIABLE
#显示参数是否可以改变,使用alter session
VARCHAR2(5)
ISSYS_MODIFIABLE
#显示参数是否可以改变,使用alter system
VARCHAR2(90)
IMMEDIATE
——参数可以改变了ALTER SYSTEM无论使用何种类型的参数文件启动实例。 更改立即生效。
DEFERRED
——参数可以改变了ALTER SYSTEM无论使用何种类型的参数文件启动实例。 在以后的会议更改生效。
FALSE
——参数不能改变ALTER SYSTEM除非服务器参数文件是用来启动实例。 更改生效在随后的实例。
ISINSTANCE_MODIFIABLE
#集群参数
VARCHAR2(5)
ISMODIFIED
#表示实列启动后,参数是否被修改
VARCHAR2(10)
MODIFIED
——参数已经被修改
ALTER SESSION
SYSTEM_MOD
——参数已经被修改
ALTER SYSTEM
(这导致所有当前登录会话的值被修改)
FALSE
——参数实例启动后
没有被修改
ISADJUSTED
#oracle调整输入的值是否更合适的值
VARCHAR2(5)
ISDEPRECATED
#参数是否已经弃用
VARCHAR2(5)
ISBASIC
#参数是否为基本参数
VARCHAR2(5)
DESCRIPTION
#参数的描述
VARCHAR2(255)
UPDATE_COMMENT
#参数的评论和最近更新
VARCHAR2(255)
#参数的散列值名称
NUMBER
查看所有初始化参数
select name,value from v$parameter;
查看非默认值的初始化参数
select NAME,VALUE from v$parameter
where ISDEFAULT<>'TRUE';
动态参数:内存值可以被修改
select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE<>'FALSE' order by 2 desc;
ISSYS_MODIFIABLE<>'FALSE' -->
alter system set 参数=值 scope(范围)=memory/spfile
IMMEDIATE:修改之后全局生效
DEFERRED:修改之后对已持续连接无效,对新启动的连接生效!
静态参数:内存值中的当前值不可以修改
select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE='FALSE';
*参数当前在内存中的值才是有效的值!
====================================================================
参数文件的种类:
pfile :parameter file
·是
ascii格式
·可以放在服务器端也可以放在客户端
·只能使用文本编辑器修改
·只能放在文件系统下
·副本多,一致性不好
spfile:server parameter file
·是二进制文件
·只能放在服务器端
·只能使用
alter system set ... 命令来直接修改
·不受存储格式限制
·修改方便,一致性好
spfile命名规则:
spfile<$ORACLE_SID>.ora
$ORACLE_SID值相同能使用
spfile.ora
任何实例都能使用
pfile命名规则:
init<$ORACLE_SID>.ora
只用$ORACLE_SID值相同才能使用
参数文件存放的默认路径:
$ORACLE_HOME/dbs/
基本查看
查看参数内存值
show
parameter
open_cursors
查看参数在
spfile中的值
show
spparameter
open_cursors
查看丢弃的参数
select NAME from v$parameter where
ISDEPRECATED
='TRUE';
基本修改
*使用spfile启动的实例,如何修改动态参数的内存值
alter system set open_cursors=400 scope=memory;
*使用spfile启动的实例,如何修改静态参数在参数文件中的值
alter system set open_cursors=500 scope=spfile;
*使用spfile启动的实例,如何同时修改动态参数的内存值和参数文件中的值
alter system set open_cursors=300 scope=both;
alter system set open_cursors=300;
*使用spfile启动的实例,如何修改静态参数在参数文件中的值,需要重新启动实例,
参数文件中的新值才会被读取
alter system set memory_max_target=900m scope=spfile;
*从
spfile中挖掉一个参数
alter system reset db_writer_processes scope=spfile sid='*';
创建
pfile:
create
pfile
from
spfile;
create
pfile
from
memory;
create
spfile
from
pfile
;
思考问题
*使用pfile启动的实例,如何修改动态参数的内存值
*如果使用pfile启动实例,alter system set命令没有scope选项!只能修改内存!
*使用pfile启动的实例,如何修改动态参数在参数文件中的值
使用
vi直接修改参数文件!
*使用pfile启动的实例,如何同时修改动态参数的内存值和参数文件中的值
需要分两步实现:先使用
alter system set修改内存值,再使用vi修改参数文件!
*使用pfile启动的实例,如何修改静态参数在参数文件中的值,需要重新启动实例,
参数文件中的新值才会被读取
使用
vi直接修改参数文件!
修改
pfile的路径:
startup pfile='/home/oracle/orcl.ora'spfileorcl.ora
修改
spfile的路径:
create spfile='/u01/app/oracle/1.ora' from pfile='/home/oracle/orcl.ora';
vi /home/oracle/orcl.ora
---------------------------------
spfile='/u01/app/oracle/1.ora'
---------------------------------
startup pfile='/home/oracle/orcl.ora'
========================================================================================
查看数据库启动顺序
lsof | grep control01.ctl/system01.dbf/redo01.log
shut immediate
startup nomount
alter database mount
alter database open
查看警告日志,查找
parameter参数修改记录。
show parameter background 中background_dump_dest的值
cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace
vi alert_orcl.log
Parameter 非default值的(又可称为特征参数)
Select name,value from v$parameter where isdefault <>’TRUE’;
NAME VALUE
------------------------------ ------------------------------
所有进程的数量最大值
processes 150
内存指标
memory_target 780140544
控制文件的位置
control_files /u01/app/oracle/oradata/sales/
control01.ctl, /u01/app/oracle
/fast_recovery_area/sales/cont
rol02.ctl
数据块的大小
db_block_size 8192
兼容版本
compatible 11.2.0.4.0
数据库恢复(闪回)区
db_recovery_file_dest /u01/app/oracle/fast_recovery_
area
数据库恢复(闪回)区空间大小
db_recovery_file_dest_size 4039114752
Undo表空间位置
undo_tablespace UNDOTBS1
远端登录
password文件
remote_login_passwordfile EXCLUSIVE
数据库域名
db_domain
网络服务
dispatchers (PROTOCOL=TCP) (SERVICE=salesX
DB)
审计信息
audit_file_dest /u01/app/oracle/admin/sales/ad
ump
登录审计记录
audit_trail DB
数据库的名称
db_name sales
打开游标的数量
open_cursors 300
跟踪文件的位置
diagnostic_dest /u01/app/oracle
创建
pfile:
create pfile from memory;
创建
pfile启动一个新实例demo:
export ORACLE_SID=demo
vi $ORACLE_HOME/dbs/initdemo.ora
--------------------------------
db_name=demo
--------------------------------
sqlplus / as sysdba
SYS> create spfile from pfile;
SYS> startup
将参数文件写入字符设备:
制作二进制文件
dd if=/dev/zero of=/u01/app/oracle/disk bs=1M count=20
二进制文件变块设备
losetup /dev/loop1 /u01/app/oracle/disk
块设备变字符设备
raw /dev/raw/raw1 /dev/loop1
修改属组
chown oracle. /dev/raw/raw1
将
spfile写入字符设备
create spfile='/dev/raw/raw1' from pfile;
将
spfile参数指向字符设备
vi $ORACLE_HOME/dbs/initdemo.ora
--------------------------------
spfile='/dev/raw/raw1'
--------------------------------
启动数据库
startup
查看
spfile
SYS> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- --------------------------
spfile string /dev/raw/raw1
使用
ifile集中管理公用参数
vi initdemo.ora
----------------------
#私有参数
db_name='demo'
#公有参数
ifile='/u01/app/oracle/product/11.2.0/db_1/dbs/1.ora'
----------------------
vi inittest.ora
----------------------
#私有参数
db_name='test'
#公有参数
ifile='/u01/app/oracle/product/11.2.0/db_1/dbs/1.ora'
----------------------
vi 1.ora
----------------------
sga_target=800m
open_cursors=500
----------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
使用
spfile.ora启动多个实例,通过ORACLE_SID选择参数值
vi /home/oracle/2.ora
-----------------------
demo.db_name='demo'
demo.memory_target=800m
test.db_name='test'
test.memory_target=700m
*.open_cursors=500
-----------------------
create spfile='/u01/app/oracle/product/11.2.0/db_1/dbs/spfile.ora' from pfile='/home/oracle/2.ora';
alter system set memory_target=700m scope=spfile sid='test';
alter system set memory_target=800m scope=spfile sid='demo';
###########################################################################
=========================================================================================
由于本人能力有限,文章若有书写,表达错误请指正...