rac环境下参数文件(spfile)管理

author author     2022-08-05     587

关键词:

  RAC环境下,初始化参数文件与但实例下参数文件有些异同,主要表现在初始化参数可以为多个实例公用,也可以单独设置各个实例的初始化参数。对于那些非共用的初始化参数则必须要单独设置,而共用的则可以单独设置,但一般不建议这么用。本文描述RAC 环境下参数文件(spfile)的相关管理工作。

        有关RAC环境下的重要参数描述,请参考:RAC 环境下重要参数

[python] view plain copy
 
 print?
  1. 1、参数文件的位置  
  2.   
  3.   SQL> show parameter instance_name  
  4.     
  5.   NAME                                 TYPE        VALUE  
  6.   ------------------------------------ ----------- ------------------------------  
  7.   instance_name                        string      ora10g1  
  8.   SQL> show parameter spfile;  
  9.     
  10.   NAME                                 TYPE        VALUE  
  11.   ------------------------------------ ----------- ------------------------------  
  12.   spfile                               string      +DG1/ora10g/spfileora10g.ora  
  13.     
  14.   SQL> show parameter instance_name  
  15.     
  16.   NAME                                 TYPE        VALUE  
  17.   ------------------------------------ ----------- ------------------------------  
  18.   instance_name                        string      ora10g2  
  19.   SQL> show parameter spfile   
  20.     
  21.   NAME                                 TYPE        VALUE  
  22.   ------------------------------------ ----------- ------------------------------  
  23.   spfile                               string      +DG1/ora10g/spfileora10g.ora  
  24.     
  25.   SQL> show parameter cluster  
  26.     
  27.   NAME                                 TYPE        VALUE  
  28.   ------------------------------------ ----------- ------------------------------  
  29.   cluster_database                     boolean     TRUE  
  30.   cluster_database_instances           integer     2  
  31.     
  32.     
  33.   [email protected]:~> cd /u01/oracle/admin/ora10g  
  34.   [email protected]:/u01/oracle/admin/ora10g> ls  
  35.   adump  bdump  cdump  dpdump  hdump  pfile  udump  
  36.   [email protected]:/u01/oracle/admin/ora10g> cd pfile  
  37.   [email protected]:/u01/oracle/admin/ora10g/pfile> ls -hltr  
  38.   total 4.0K  
  39.   -rw-r----- 1 oracle oinstall 2.7K 2012-09-27 12:12 init.ora.8272012121245  
  40.   [email protected]:/u01/oracle/admin/ora10g/pfile> cd $ORACLE_HOME/dbs  
  41.   [email protected]:/u01/oracle/db/dbs> ls *.ora  
  42.   init+ASM1.ora  initdw.ora  initGOBO1A_tmp.ora  initGOBO4A.ora  init.ora  initora10g1.ora  
  43.   [email protected]:/u01/oracle/db/dbs> more initora10g1.ora  
  44.   SPFILE=‘+DG1/ora10g/spfileora10g.ora‘  
  45.   [email protected]:/u01/oracle/db/dbs> more initora10g2.ora  
  46.   SPFILE=‘+DG1/ora10g/spfileora10g.ora‘  
  47.     
  48.   #由上面的查询可知RAC环境下的参数文件通常都存放在RAW或者ASM中,缺省路径为$ORACLE_HOME/dbs/init{ORACLE_SID}.ora  
  49.   #各个实例只是存放pfile文件,pfile文件的内容是指向spfile文件的位置,即告诉,兄弟,你去xx去找那个spfile吧,哈哈,,,  
  50.   #注,Oracle数据库启动时会先找spfile${ORACLE_SID.ora},如果对应的spfile不存在则找spfile.ora  
  51.   #如果spfile.ora找不到,则找相应的pfile(init{ORACLE_SID}.ora)  
  52.   #那,要是都找不到呢,那就是用缺省的init.ora尝试启动实例  
  53.   
  54. 2、参数文件的备份  
  55.   参数文件备份的方式有很多种,一般情况下当启用了RMAN自动备份控制文件时,会自动备份参数文件。  
  56.   其次是手工备份参数文件,这种方式通常是将spfile内容转换为pfile,说简单点,转为文本文件保存,文件名任意。  
  57.   建议在修改参数文件之前先手工备份参数文件,使用命令: create pfile=[‘<dir>‘] from spfile;  
  58.   注,单实例情形下,如果使用spfile文件启动实例,可以通过上面的方式直接备份,RAC环境下这么干,那就把pfile文件给覆盖了  
  59.   因此,RAC环境下建议为pfile文件指定不同的文件名。如当前为initora10g1.ora,则可以指定为initora10g1.ora.bak  
  60.   SQL> create pfile=‘/u01/oracle/db/dbs/initora10g1.ora.bak‘ from spfile;  
  61.   
  62.   File created.  
  63.   
  64.   SQL> ho ls /u01/oracle/db/dbs/*ora10g*  
  65.   /u01/oracle/db/dbs/hc_ora10g1.dat   /u01/oracle/db/dbs/initora10g1.ora.bak  
  66.   /u01/oracle/db/dbs/initora10g1.ora  /u01/oracle/db/dbs/orapwora10g1  
  67.     
  68.   SQL> ho more /u01/oracle/db/dbs/initora10g1.ora.bak  
  69.   ora10g2.__db_cache_size=142606336  
  70.   ora10g1.__db_cache_size=163577856  
  71.   ora10g1.__java_pool_size=4194304  
  72.   ora10g2.__java_pool_size=4194304  
  73.   ora10g1.__large_pool_size=4194304  
  74.   ora10g2.__large_pool_size=4194304  
  75.   ora10g2.__shared_pool_size=180355072  
  76.   ora10g1.__shared_pool_size=159383552  
  77.   ora10g1.__streams_pool_size=0  
  78.   ora10g2.__streams_pool_size=0  
  79.   *.audit_file_dest=‘/u01/oracle/admin/ora10g/adump‘  
  80.   *.background_dump_dest=‘/u01/oracle/admin/ora10g/bdump‘  
  81.   *.cluster_database_instances=2  
  82.   *.cluster_database=true  
  83.   *.compatible=‘10.2.0.3.0‘  
  84.   *.control_files=‘+DG2/ora10g/controlfile/current.286.795096347‘,  
  85.     ‘+REV/ora10g/controlfile/current.295.795096347‘  
  86.   *.core_dump_dest=‘/u01/oracle/admin/ora10g/cdump‘  
  87.   *.db_block_size=8192  
  88.   *.db_create_file_dest=‘+DG2‘  
  89.   *.db_domain=‘‘  
  90.   *.db_file_multiblock_read_count=16  
  91.   *.db_name=‘ora10g‘  
  92.   *.db_recovery_file_dest=‘+REV‘  
  93.   *.db_recovery_file_dest_size=2147483648  
  94.   *.dispatchers=‘(PROTOCOL=TCP) (SERVICE=ora10gXDB)‘  
  95.   ora10g2.instance_number=2  
  96.   ora10g1.instance_number=1  
  97.   *.job_queue_processes=10  
  98.   ora10g1.local_listener=‘local_lsnr_ora10g1‘  
  99.   ora10g2.local_listener=‘local_lsnr_ora10g2‘  
  100.   *.open_cursors=300  
  101.   *.pga_aggregate_target=112197632  
  102.   *.processes=150  
  103.   *.remote_listener=‘REMOTE_LSNR_ORA10G‘  
  104.   *.remote_login_passwordfile=‘exclusive‘  
  105.   *.sga_target=337641472  
  106.   ora10g2.thread=2  
  107.   ora10g1.thread=1  
  108.   *.undo_management=‘AUTO‘  
  109.   ora10g2.undo_tablespace=‘UNDOTBS2‘  
  110.   ora10g1.undo_tablespace=‘UNDOTBS1‘  
  111.   *.user_dump_dest=‘/u01/oracle/admin/ora10g/udump‘  
  112.     
  113.   对于上面的参数文件里列出的信息,如果参数前面带有星号,则表明当前的参数为共用参数,前面有实例名的则为实例参数  
  114.     
  115. 3、参数文件的修改  
  116.   参数文件中参数修改方式如下:  
  117.   alter system|session set parametername = values scope = memory | spfile |both sid = ‘sid‘ | ‘*’;  
  118.   
  119.     scope   
  120.        memory : 只对当前有效,下次启动则失效  
  121.        spfile : 只对spfile 修改,必须经过下一次启动才生效,当前的实例没有修改  
  122.        both :内存与参数文件都将修改,当不指定scope时,缺省为both.  
  123.   system | session  
  124.        system : system级别有效,影响整个系统及所有使用者  
  125.     session : 仅当前session有效,一旦退出之后将实效  
  126.   ‘sid‘ | ‘*’    
  127.     这个在RAC环境下使用的较为频繁,指定sid_name则当前指定的实例生效,如果指定 ‘*‘,则所有实例生效  
  128.     注,缺省情况下为sid=‘*‘,因此修改是不要忘了,如果没有指定sid,则RAC上的所有实例都会被修改  
  129.   
  130.   下面是修改示例      
  131.   SQL> show parameter instance_name  
  132.     
  133.   NAME                                 TYPE        VALUE  
  134.   ------------------------------------ ----------- -------------------  
  135.   instance_name                        string      ora10g1  
  136.     
  137.   SQL> show parameter pga  
  138.     
  139.   NAME                                 TYPE        VALUE  
  140.   ------------------------------------ ----------- -------------------  
  141.   pga_aggregate_target                 big integer 107M  
  142.     
  143.   SQL> alter system set pga_aggregate_target=100m scope=both sid=‘ora10g1‘;  -->将ora10g1的pga改为100m  
  144.     
  145.   System altered.  
  146.     
  147.   SQL> alter system set pga_aggregate_target=90m sid=‘ora10g2‘;   -->将ora10g2的pga改为90m  
  148.     
  149.   System altered.  
  150.     
  151.   SQL> show parameter pga      -->当前的pga已经被改为100m  
  152.     
  153.   NAME                                 TYPE        VALUE  
  154.   ------------------------------------ ----------- ------------------------------  
  155.   pga_aggregate_target                 big integer 100M  
  156.     
  157.   SQL> conn system/[email protected]  -->连接到实例 ora10g2  
  158.   Connected.  
  159.   SQL> show parameter instance_name  
  160.     
  161.   NAME                                 TYPE        VALUE  
  162.   ------------------------------------ ----------- ------------------------------  
  163.   instance_name                        string      ora10g2  
  164.   SQL> show parameter pga     -->此时pga的值显示为90m  
  165.     
  166.   NAME                                 TYPE        VALUE  
  167.   ------------------------------------ ----------- ------------------------------  
  168.   pga_aggregate_target                 big integer 90M  
  169.     
  170.   SQL> create pfile=‘/u01/oracle/db/dbs/initora10g1.ora.emp‘ from spfile;  
  171.   create pfile=‘/u01/oracle/db/dbs/initora10g1.ora.emp‘ from spfile  
  172.   *  
  173.   ERROR at line 1:  
  174.   ORA-01031: insufficient privileges    -->缺乏权限,因为当前连接的是instance ora10g2  
  175.     
  176.   SQL> conn system/[email protected]  
  177.   Connected.  
  178.     
  179.   SQL> create pfile=‘/u01/oracle/db/dbs/initora10g1.ora.tmp‘ from spfile;                        
  180.     
  181.   File created.  
  182.     
  183.   SQL> ho cat /u01/oracle/db/dbs/initora10g1.ora.tmp |grep pga    
  184.   *.pga_aggregate_target=112197632         #新的pfile文件中同时存在pga的值  
  185.   ora10g1.pga_aggregate_target=104857600   #有两个指定了实例名,此时谁生效呢?我们前面已经查询出了结果  
  186.   ora10g2.pga_aggregate_target=94371840    #同一参数,有实例名的值将优先有带*的参数值  
  187.     
  188.   SQL> alter system reset pga_aggregate_target sid=‘ora10g1‘;-->使用reset方式重置pga,或恢复缺省值  
  189.                                                  -->如果需要保留两个新改的参数,建议reset之前的共用参数以避免混淆   
  190.   System altered.                                -->在reset原来的参数时,不指定sid或sid=‘*‘     
  191.   SQL> show parameter pga  
  192.     
  193.   NAME                                 TYPE        VALUE  
  194.   ------------------------------------ ----------- ------------------------------  
  195.   pga_aggregate_target                 big integer 100M  
  196.     
  197.   SQL> conn system/[email protected]  
  198.   Connected.  
  199.   SQL> alter system reset pga_aggregate_target sid=‘ora10g2‘;  
  200.     
  201.   System altered.  
  202.     
  203.   #Author : Robinson  
  204.   #Blog   : http://blog.csdn.net/robinson_0612  
  205.     
  206.   SQL> show parameter pga  
  207.     
  208.   NAME                                 TYPE        VALUE  
  209.   ------------------------------------ ----------- ------------------------------  
  210.   pga_aggregate_target                 big integer 90M  
  211.   
  212.   [email protected]:~> srvctl stop instance -d ora10g -i ora10g1  
  213.   [email protected]:~> srvctl start instance -d ora10g -i ora10g1    
  214.   SQL> show parameter instance_name  
  215.     
  216.   NAME                                 TYPE        VALUE  
  217.   ------------------------------------ ----------- -------------------  
  218.   instance_name                        string      ora10g1  
  219.     
  220.   SQL> show parameter pga  
  221.     
  222.   NAME                                 TYPE        VALUE  
  223.   ------------------------------------ ----------- -------------------  
  224.   pga_aggregate_target                 big integer 107M  
  225.   
  226. 4、spfile文件位置的修改   
  227.   SQL> show parameter spfile;  
  228.     
  229.   NAME                                 TYPE        VALUE  
  230.   ------------------------------------ ----------- ------------------------------  
  231.   spfile                               string      +DG1/ora10g/spfileora10g.ora  
  232.      
  233.   SQL> create spfile=‘+REV/ORA10G/spfileora10g.ora‘  
  234.     2  from pfile=‘/u01/oracle/db/dbs/initora10g1.ora.bak‘;  
  235.     
  236.   File created.  
  237.     
  238.   SQL> ho echo "spfile=‘+REV/ORA10G/spfileora10g.ora‘" >/u01/oracle/db/dbs/initora10g1.ora  
  239.     
  240.   SQL> ho more /u01/oracle/db/dbs/initora10g1.ora  
  241.   spfile=‘+REV/ORA10G/spfileora10g.ora‘  
  242.     
  243.   SQL> startup force;  
  244.   SQL> show parameter spfile;  
  245.     
  246.   NAME                                 TYPE        VALUE  
  247.   ------------------------------------ ----------- ------------------------------  
  248.   spfile                               string      +REV/ora10g/spfileora10g.ora  
  249.   SQL> shutdown immediate;  
  250.   SQL> exit  
  251.   [email protected]:~> ssh bo2dbs  
  252.   Last login: Fri Sep 28 15:42:59 2012 from 192.168.1.108  
  253.   [email protected]:~> echo "spfile=‘+REV/ORA10G/spfileora10g.ora‘" >/u01/oracle/db/dbs/initora10g2.ora  
  254.   [email protected]:~> srvctl stop database -d ora10g  
  255.   [email protected]:~> srvctl start database -d ora10g  
  256.   [email protected]:~> export ORACLE_SID=ora10g2  
  257.   [email protected]:~> sqlplus / as sysdba  
  258.   SQL> show parameter pfile;   -->查看时还是使用之前的spfile文件  
  259.     
  260.   NAME                                 TYPE        VALUE  
  261.   ------------------------------------ ----------- ------------------------------  
  262.   spfile                               string      +DG1/ora10g/spfileora10g.ora  
  263.     
  264.   [email protected]:~> srvctl config database -d ora10g -a  
  265.   bo2dbp ora10g1 /u01/oracle/db  
  266.   bo2dbs ora10g2 /u01/oracle/db  
  267.   DB_NAME: ora10g  
  268.   ORACLE_HOME: /u01/oracle/db  
  269.   SPFILE: +DG1/ora10g/spfileora10g.ora  
  270.   DOMAIN: null  
  271.   DB_ROLE: null  
  272.   START_OPTIONS: null  
  273.   POLICY:  AUTOMATIC  
  274.   ENABLE FLAG: DB ENABLED  
  275.   #下面将参数文件路径更新到ocr,此时数据库并未shutdown,生产环境建议先停止数据库然后再修改  
  276.   [email protected]:~> srvctl modify database -d ora10g -p ‘+REV/ORA10G/spfileora10g.ora‘   
  277.   [email protected]:~> srvctl stop database -d ora10g  
  278.   [email protected]:~> srvctl config database -d ora10g -a  
  279.   bo2dbp ora10g1 /u01/oracle/db  
  280.   bo2dbs ora10g2 /u01/oracle/db  
  281.   DB_NAME: ora10g  
  282.   ORACLE_HOME: /u01/oracle/db  
  283.   SPFILE: +REV/ORA10G/spfileora10g.ora  
  284.   DOMAIN: null  
  285.   DB_ROLE: null  
  286.   START_OPTIONS: null  
  287.   POLICY:  AUTOMATIC  
  288.   ENABLE FLAG: DB ENABLED  
  289.   [email protected]:~> srvctl start database -d ora10g  
  290.   [email protected]:~> sqlplus / as sysdba  
  291.   SQL> show parameter spfile;  
  292.     
  293.   NAME                                 TYPE        VALUE  
  294.   ------------------------------------ ----------- ------------------------------  
  295.   spfile                               string      +REV/ora10g/spfileora10g.ora  
  296.   
  297.   #使用srvctl start启动时,不会依赖类似于单实例环境或rac环境下的sqlplus启动数据库时按顺序寻找spfile文件,  
  298.   #而是直接根据ocr中spfile文件位置启动数据库。  
  299. 转: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,重启实例。 查看详情