关键词:
RAC环境下,初始化参数文件与但实例下参数文件有些异同,主要表现在初始化参数可以为多个实例公用,也可以单独设置各个实例的初始化参数。对于那些非共用的初始化参数则必须要单独设置,而共用的则可以单独设置,但一般不建议这么用。本文描述RAC 环境下参数文件(spfile)的相关管理工作。
有关RAC环境下的重要参数描述,请参考:RAC 环境下重要参数
- 1、参数文件的位置
- SQL> show parameter instance_name
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- instance_name string ora10g1
- SQL> show parameter spfile;
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- spfile string +DG1/ora10g/spfileora10g.ora
- SQL> show parameter instance_name
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- instance_name string ora10g2
- SQL> show parameter spfile
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- spfile string +DG1/ora10g/spfileora10g.ora
- SQL> show parameter cluster
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- cluster_database boolean TRUE
- cluster_database_instances integer 2
- [email protected]:~> cd /u01/oracle/admin/ora10g
- [email protected]:/u01/oracle/admin/ora10g> ls
- adump bdump cdump dpdump hdump pfile udump
- [email protected]:/u01/oracle/admin/ora10g> cd pfile
- [email protected]:/u01/oracle/admin/ora10g/pfile> ls -hltr
- total 4.0K
- -rw-r----- 1 oracle oinstall 2.7K 2012-09-27 12:12 init.ora.8272012121245
- [email protected]:/u01/oracle/admin/ora10g/pfile> cd $ORACLE_HOME/dbs
- [email protected]:/u01/oracle/db/dbs> ls *.ora
- init+ASM1.ora initdw.ora initGOBO1A_tmp.ora initGOBO4A.ora init.ora initora10g1.ora
- [email protected]:/u01/oracle/db/dbs> more initora10g1.ora
- SPFILE=‘+DG1/ora10g/spfileora10g.ora‘
- [email protected]:/u01/oracle/db/dbs> more initora10g2.ora
- SPFILE=‘+DG1/ora10g/spfileora10g.ora‘
- #由上面的查询可知RAC环境下的参数文件通常都存放在RAW或者ASM中,缺省路径为$ORACLE_HOME/dbs/init{ORACLE_SID}.ora
- #各个实例只是存放pfile文件,pfile文件的内容是指向spfile文件的位置,即告诉,兄弟,你去xx去找那个spfile吧,哈哈,,,
- #注,Oracle数据库启动时会先找spfile${ORACLE_SID.ora},如果对应的spfile不存在则找spfile.ora
- #如果spfile.ora找不到,则找相应的pfile(init{ORACLE_SID}.ora)
- #那,要是都找不到呢,那就是用缺省的init.ora尝试启动实例
- 2、参数文件的备份
- 参数文件备份的方式有很多种,一般情况下当启用了RMAN自动备份控制文件时,会自动备份参数文件。
- 其次是手工备份参数文件,这种方式通常是将spfile内容转换为pfile,说简单点,转为文本文件保存,文件名任意。
- 建议在修改参数文件之前先手工备份参数文件,使用命令: create pfile=[‘<dir>‘] from spfile;
- 注,单实例情形下,如果使用spfile文件启动实例,可以通过上面的方式直接备份,RAC环境下这么干,那就把pfile文件给覆盖了
- 因此,RAC环境下建议为pfile文件指定不同的文件名。如当前为initora10g1.ora,则可以指定为initora10g1.ora.bak
- SQL> create pfile=‘/u01/oracle/db/dbs/initora10g1.ora.bak‘ from spfile;
- File created.
- SQL> ho ls /u01/oracle/db/dbs/*ora10g*
- /u01/oracle/db/dbs/hc_ora10g1.dat /u01/oracle/db/dbs/initora10g1.ora.bak
- /u01/oracle/db/dbs/initora10g1.ora /u01/oracle/db/dbs/orapwora10g1
- SQL> ho more /u01/oracle/db/dbs/initora10g1.ora.bak
- ora10g2.__db_cache_size=142606336
- ora10g1.__db_cache_size=163577856
- ora10g1.__java_pool_size=4194304
- ora10g2.__java_pool_size=4194304
- ora10g1.__large_pool_size=4194304
- ora10g2.__large_pool_size=4194304
- ora10g2.__shared_pool_size=180355072
- ora10g1.__shared_pool_size=159383552
- ora10g1.__streams_pool_size=0
- ora10g2.__streams_pool_size=0
- *.audit_file_dest=‘/u01/oracle/admin/ora10g/adump‘
- *.background_dump_dest=‘/u01/oracle/admin/ora10g/bdump‘
- *.cluster_database_instances=2
- *.cluster_database=true
- *.compatible=‘10.2.0.3.0‘
- *.control_files=‘+DG2/ora10g/controlfile/current.286.795096347‘,
- ‘+REV/ora10g/controlfile/current.295.795096347‘
- *.core_dump_dest=‘/u01/oracle/admin/ora10g/cdump‘
- *.db_block_size=8192
- *.db_create_file_dest=‘+DG2‘
- *.db_domain=‘‘
- *.db_file_multiblock_read_count=16
- *.db_name=‘ora10g‘
- *.db_recovery_file_dest=‘+REV‘
- *.db_recovery_file_dest_size=2147483648
- *.dispatchers=‘(PROTOCOL=TCP) (SERVICE=ora10gXDB)‘
- ora10g2.instance_number=2
- ora10g1.instance_number=1
- *.job_queue_processes=10
- ora10g1.local_listener=‘local_lsnr_ora10g1‘
- ora10g2.local_listener=‘local_lsnr_ora10g2‘
- *.open_cursors=300
- *.pga_aggregate_target=112197632
- *.processes=150
- *.remote_listener=‘REMOTE_LSNR_ORA10G‘
- *.remote_login_passwordfile=‘exclusive‘
- *.sga_target=337641472
- ora10g2.thread=2
- ora10g1.thread=1
- *.undo_management=‘AUTO‘
- ora10g2.undo_tablespace=‘UNDOTBS2‘
- ora10g1.undo_tablespace=‘UNDOTBS1‘
- *.user_dump_dest=‘/u01/oracle/admin/ora10g/udump‘
- 对于上面的参数文件里列出的信息,如果参数前面带有星号,则表明当前的参数为共用参数,前面有实例名的则为实例参数
- 3、参数文件的修改
- 参数文件中参数修改方式如下:
- alter system|session set parametername = values scope = memory | spfile |both sid = ‘sid‘ | ‘*’;
- scope
- memory : 只对当前有效,下次启动则失效
- spfile : 只对spfile 修改,必须经过下一次启动才生效,当前的实例没有修改
- both :内存与参数文件都将修改,当不指定scope时,缺省为both.
- system | session
- system : system级别有效,影响整个系统及所有使用者
- session : 仅当前session有效,一旦退出之后将实效
- ‘sid‘ | ‘*’
- 这个在RAC环境下使用的较为频繁,指定sid_name则当前指定的实例生效,如果指定 ‘*‘,则所有实例生效
- 注,缺省情况下为sid=‘*‘,因此修改是不要忘了,如果没有指定sid,则RAC上的所有实例都会被修改
- 下面是修改示例
- SQL> show parameter instance_name
- NAME TYPE VALUE
- ------------------------------------ ----------- -------------------
- instance_name string ora10g1
- SQL> show parameter pga
- NAME TYPE VALUE
- ------------------------------------ ----------- -------------------
- pga_aggregate_target big integer 107M
- SQL> alter system set pga_aggregate_target=100m scope=both sid=‘ora10g1‘; -->将ora10g1的pga改为100m
- System altered.
- SQL> alter system set pga_aggregate_target=90m sid=‘ora10g2‘; -->将ora10g2的pga改为90m
- System altered.
- SQL> show parameter pga -->当前的pga已经被改为100m
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- pga_aggregate_target big integer 100M
- SQL> conn system/[email protected] -->连接到实例 ora10g2
- Connected.
- SQL> show parameter instance_name
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- instance_name string ora10g2
- SQL> show parameter pga -->此时pga的值显示为90m
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- pga_aggregate_target big integer 90M
- SQL> create pfile=‘/u01/oracle/db/dbs/initora10g1.ora.emp‘ from spfile;
- create pfile=‘/u01/oracle/db/dbs/initora10g1.ora.emp‘ from spfile
- *
- ERROR at line 1:
- ORA-01031: insufficient privileges -->缺乏权限,因为当前连接的是instance ora10g2
- SQL> conn system/[email protected]
- Connected.
- SQL> create pfile=‘/u01/oracle/db/dbs/initora10g1.ora.tmp‘ from spfile;
- File created.
- SQL> ho cat /u01/oracle/db/dbs/initora10g1.ora.tmp |grep pga
- *.pga_aggregate_target=112197632 #新的pfile文件中同时存在pga的值
- ora10g1.pga_aggregate_target=104857600 #有两个指定了实例名,此时谁生效呢?我们前面已经查询出了结果
- ora10g2.pga_aggregate_target=94371840 #同一参数,有实例名的值将优先有带*的参数值
- SQL> alter system reset pga_aggregate_target sid=‘ora10g1‘;-->使用reset方式重置pga,或恢复缺省值
- -->如果需要保留两个新改的参数,建议reset之前的共用参数以避免混淆
- System altered. -->在reset原来的参数时,不指定sid或sid=‘*‘
- SQL> show parameter pga
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- pga_aggregate_target big integer 100M
- SQL> conn system/[email protected]
- Connected.
- SQL> alter system reset pga_aggregate_target sid=‘ora10g2‘;
- System altered.
- #Author : Robinson
- #Blog : http://blog.csdn.net/robinson_0612
- SQL> show parameter pga
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- pga_aggregate_target big integer 90M
- [email protected]:~> srvctl stop instance -d ora10g -i ora10g1
- [email protected]:~> srvctl start instance -d ora10g -i ora10g1
- SQL> show parameter instance_name
- NAME TYPE VALUE
- ------------------------------------ ----------- -------------------
- instance_name string ora10g1
- SQL> show parameter pga
- NAME TYPE VALUE
- ------------------------------------ ----------- -------------------
- pga_aggregate_target big integer 107M
- 4、spfile文件位置的修改
- SQL> show parameter spfile;
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- spfile string +DG1/ora10g/spfileora10g.ora
- SQL> create spfile=‘+REV/ORA10G/spfileora10g.ora‘
- 2 from pfile=‘/u01/oracle/db/dbs/initora10g1.ora.bak‘;
- File created.
- SQL> ho echo "spfile=‘+REV/ORA10G/spfileora10g.ora‘" >/u01/oracle/db/dbs/initora10g1.ora
- SQL> ho more /u01/oracle/db/dbs/initora10g1.ora
- spfile=‘+REV/ORA10G/spfileora10g.ora‘
- SQL> startup force;
- SQL> show parameter spfile;
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- spfile string +REV/ora10g/spfileora10g.ora
- SQL> shutdown immediate;
- SQL> exit
- [email protected]:~> ssh bo2dbs
- Last login: Fri Sep 28 15:42:59 2012 from 192.168.1.108
- [email protected]:~> echo "spfile=‘+REV/ORA10G/spfileora10g.ora‘" >/u01/oracle/db/dbs/initora10g2.ora
- [email protected]:~> srvctl stop database -d ora10g
- [email protected]:~> srvctl start database -d ora10g
- [email protected]:~> export ORACLE_SID=ora10g2
- [email protected]:~> sqlplus / as sysdba
- SQL> show parameter pfile; -->查看时还是使用之前的spfile文件
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- spfile string +DG1/ora10g/spfileora10g.ora
- [email protected]:~> srvctl config database -d ora10g -a
- bo2dbp ora10g1 /u01/oracle/db
- bo2dbs ora10g2 /u01/oracle/db
- DB_NAME: ora10g
- ORACLE_HOME: /u01/oracle/db
- SPFILE: +DG1/ora10g/spfileora10g.ora
- DOMAIN: null
- DB_ROLE: null
- START_OPTIONS: null
- POLICY: AUTOMATIC
- ENABLE FLAG: DB ENABLED
- #下面将参数文件路径更新到ocr,此时数据库并未shutdown,生产环境建议先停止数据库然后再修改
- [email protected]:~> srvctl modify database -d ora10g -p ‘+REV/ORA10G/spfileora10g.ora‘
- [email protected]:~> srvctl stop database -d ora10g
- [email protected]:~> srvctl config database -d ora10g -a
- bo2dbp ora10g1 /u01/oracle/db
- bo2dbs ora10g2 /u01/oracle/db
- DB_NAME: ora10g
- ORACLE_HOME: /u01/oracle/db
- SPFILE: +REV/ORA10G/spfileora10g.ora
- DOMAIN: null
- DB_ROLE: null
- START_OPTIONS: null
- POLICY: AUTOMATIC
- ENABLE FLAG: DB ENABLED
- [email protected]:~> srvctl start database -d ora10g
- [email protected]:~> sqlplus / as sysdba
- SQL> show parameter spfile;
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- spfile string +REV/ora10g/spfileora10g.ora
- #使用srvctl start启动时,不会依赖类似于单实例环境或rac环境下的sqlplus启动数据库时按顺序寻找spfile文件,
- #而是直接根据ocr中spfile文件位置启动数据库。
- 转:http://blog.csdn.net/leshami/article/details/8278931
rac环境密码文件管理
...备sysdba和sysoper权限的用户,即oracle的sys和system用户。RAC环境中多个节点的密码文件应该保证一致,否则在以DBA权限登陆数据库的时候可能造成问题。密码文件位置:linux/unix:[[email protected]~]$ls$ORACLE_HOME/dbs/orapw$ORACLE_SIDwi 查看详情
linux下oracle数据库spfile参数配置文件丢失问题解决,“ora-32001:writetospfilerequestedbutnospfileisinuse“问题处理(代码片段)
ORA-32001:writetoSPFILErequestedbutnoSPFILEisinuse译:写入SPFILE请求,但没有使用SPFILESELECTNAME,VALUE,DISPLAY_VALUEFROMV$PARAMETERWHERENAME='spfile';可以看到没有spfile配置文件。createspfilefrompfi 查看详情
oracle实验四—初始化参数文件与控制文件管理(代码片段)
...容1、采用不同的方法查询Oracle数据库当前使用的初始化参数文件和控制文件查询当前使用的初始化参数文件查询控制文件2、练习从spfile创建pfile,以及pfile创建spfile3、以open_cursor初始化参数为例,学习修改当前实例、spfile、以... 查看详情
04管理数据库实例
初始化参数文件 --spfile:首选初试换参数文件,可由数据库服务器写入和读取的二进制文件,不能手动编辑,默认名称spfile<sid>.ora --pfile:由数据库服务器读取,但不由其写入。默认名称init<SID>.ora。启动数据库... 查看详情
数据库参数文件pfile和spfile(代码片段)
PFILE和SPFILE都是Oracle数据库的参数文件;PFILE格式为文本文件,可以直接编辑文件修改,Oracle9i以前只能用PFILE来指定和修改数据库初始化参数;SPFILE格式为二进制文件,只能通过SQL命令修改,Oracle从 9i开始,引入了SPFILE. 1... 查看详情
oraclerac如何把spfile参数文件放共享存储上
先建一个pfile文件,然后用pfile启动,然后根据pfile生成在共享存储上的spfile,这样在共享存储上就能看到这个spfile文件了。然后在pfile文件里指定一行spfile的路径,重启数据库: 查看详情
oraclerac如何把spfile参数文件放共享存储上
先建一个pfile文件,然后用pfile启动,然后根据pfile生成在共享存储上的spfile,这样在共享存储上就能看到这个spfile文件了。然后在pfile文件里指定一行spfile的路径,重启数据库: 查看详情
oraclespfile参数文件(代码片段)
目录📚前言☀️spfile介绍⭐️spfile参数文件位置🌛启动优先级❄️实例讲解①从pfile切换为spfile启动数据库②使用spfile启动数据库后修改参数错误,导致数据库无法启动问题重现解决步骤📚前言上篇讲了Oraclepfile... 查看详情
oraclespfile参数文件(代码片段)
目录📚前言☀️spfile介绍⭐️spfile参数文件位置🌛启动优先级❄️实例讲解①从pfile切换为spfile启动数据库②使用spfile启动数据库后修改参数错误,导致数据库无法启动问题重现解决步骤📚前言上篇讲了Oraclepfile... 查看详情
第五章:管理数据库实例
...NRECOVER-启动实例并立即开始完整的介质恢复3:nomount? 参数文件顺序1.srvctlconfigdatabase2.spfileORACLE_SID.ora3.spfile.ora4.initORACLE_SID.oraSTARTUPNOMOUNT;STARTUPPFILE=/u01/oracle/dbs/init.ora4:nomount?在默认位置找服务器参数文件,如果未找到,则搜... 查看详情
oracle里。createspfile,spfile是啥意思?
...PFILE干什么用的?麻烦详细讲讲参考技术Aspfile是存储初始参数的文件,oracle中有大约200多个初始参数,都存在这里,还有一种叫pfile的文件也是存储初始参数的文件,两者的区别是,spfile是server端维护的,pfile是客户端维护的,sp... 查看详情
11gr2rac环境重建asmspfile
有关11gR2ASMspfile说明能够看http://blog.csdn.net/robo23/article/details/41930051 下面粘出spfile重新启动过程:+++1)当前集群资源执行状态[[email protected]~]$crsctlstatres-t------------------------------------ 查看详情
10pfile和spfile文件详解
10.1、介绍:1、Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指... 查看详情
pfile与spfile
...顺序:dbs下的init-->dbs下的spfile如果pfile中没有指定spfile参数,那么数据库以pfile方式启动如果pfile中指定spfile参数,那么数据库以pfile指定的spfile启动如果pfile中指定spfile,但dbs目录下仍有spfile,则startup时以dbs下的spfile启动create... 查看详情
oracle9i用spfile备份的pfile启动出错
...师却不置可否,这是什么意思?第一点,pfile和spfile都是参数文件,不过spfile是二进制参数文件,他们是同一个东西的不同存在形式;第二点,当存在spfile时oracle启动默认读取spfile,要想读取pfile的话将spfile删掉即可;force是强制... 查看详情
参数文件控制文件日志文件归档文件
参数文件DatabaseAdministration----Reference----PartIInitializationParameterspfile和spfile区别文件名不同文本参数文件pfile:命令规则init+sid.ora例如:initorcl.ora服务器参数文件spfile:命名规则spfile+sid.ora例如:spfileorcl.ora类型不同pfile:文本文件spf 查看详情
oracle怎么创建口令密码文件
...apcms40\' password=oracleentries=5force=y; 说明: ●FILE参数指定口令文件存放的全路径及文件名。口令文件的命名也应该遵循Oracle公司指定的规范:orapw,在例子中实例名是orcl ●PASSWORD指定超级用户SYS的密码 ●ENTRIES为... 查看详情
oracle怎么设置自动管理内存
...的就是让实例启动时使用的是pfile4、viinit$oracle_sid.ora动态参数文件pfile,注释掉memory_target和memory_max_target5、启动实例,最好是在startupmount;-----至于为什么,自己想6、showparametermemory查看一下是否成功7、生成spfile,重启实例。 查看详情