数据文件之参数文件及实验

参数文件
·记录非默认值的初始化参数(又称特征参数),约束实例的行为
初始化参数:控制实例的属性行为的开关


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';
###########################################################################

=========================================================================================

由于本人能力有限,文章若有书写,表达错误请指正...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值