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

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

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

RAC 环境下参数文件(spfile)管理的更多相关文章

  1. RAC环境下控制文件损坏重建过程

    处理过程参考了: https://blogs.oracle.com/Database4CN/entry/%E5%A6%82%E4%BD%95%E9%87%8D%E5%BB%BArac%E7%9A%84 ...

  2. 【转】Oracle RAC 环境下的连接管理

    文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...

  3. RAC 环境下的重要参数

    Oracle 数据库启动时会根据参数文件中提供的相关参数启动Oracle实例.这些参数包括数据库名字.sga,pga的分配,控制文件的位置,undo,process等等.Oracle RAC数据库同样 ...

  4. Oracle-11g-R2 RAC 环境下 GPnP Profile 文件

    GPnP Profile 文件的作用: GPnP Profile 文件是一个保存于 $GRID_HOME/gpnp/<hostname>/profiles/peer 目录下的小型 XML ...

  5. Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效

    崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...

  6. 【OGG】 RAC环境下管理OGG的高可用 (五)

    [OGG] RAC环境下管理OGG的高可用 (五) 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道 ...

  7. 利用XAG在RAC环境下实现GoldenGate自动Failover

    概述 在RAC环境下配置OGG,要想实现RAC节点故障时,OGG能自动的failover到正常节点,要保证两点: 1. OGG的checkpoint,trail,BR文件放置在共享的集群文件系统上,R ...

  8. RAC环境修改参数生效测试

    本篇文档--目的:实验测试在RAC环境下,修改数据库参数与单实例相比,需要注意的地方 --举例说明,在实际生产环境下,以下参数很可能会需要修改 --在安装数据库完成后,很可能没有标准化,初始化文档,没 ...

  9. Oracle RAC 环境下的 v$log v$logfile

    通常情况下,在Oracle RAC 环境中,v$视图可查询到你所连接实例的相关信息,而gv$视图则包含所有实例的信息.然而在RAC环境中,当我们查询v$log视图时说按照常理的话,v$log视图应当看 ...

随机推荐

  1. poj 1511(SPFA+邻接表)

    题目链接:http://poj.org/problem?id=1511 思路:题目意思很简单就是要求源点到各点的最短路之和,然后再求各点到源点的最短路之和,其实就是建两个图就ok了,其中一个建反图.1 ...

  2. Include Native *.so Library in APK With Android Studio

    Originally posted on:http://www.kylethielk.com/blog/include-native-so-library-in-apk-with-android-st ...

  3. 20个最受欢迎的Linux命令

    http://code.csdn.net/news/2819566 1.   以 root 帐户执行上一条命令 sudo !! 2.  利用 Python 搭建一个简单的 Web 服务器,可通过 ht ...

  4. EL表达式取整数或者取固定小数位数的简单实现

    EL表达式取整数或者取固定小数位数的简单实现 例如${8/7} ,${6/7} ,${12/7 } 在页面的显示结果分别为: 1.1428571428571428 0.8571428571428571 ...

  5. iOS 开发--转场动画

    "用过格瓦拉电影,或者其他app可能都知道,一种点击按钮用放大效果实现转场的动画现在很流行,效果大致如下:" 本文主讲SWIFT版,OC版在后面会留下Demo下载 在iOS中,在同 ...

  6. JavaPersistenceWithHibernate第二版笔记Getting started with ORM-002Domain层详解及M etaModel

    一.结构 二.配置文件约定 The JPA provider automatically picks up this descriptor if you place it in a META-INF ...

  7. Android笔记——JDK实现WebService服务

    以天气预报为例,国家气象局计算的天气信息后在其服务器Server通过WebService对外暴露天气信息数据,客户端无论是java平台,ios平台,c#平台都可以通过WebService获取数据.体现 ...

  8. Zen Coding 用法

    html:5 或者 ! 生成 HTML5 结构html:xt 生成 HTML4 过渡型html:4s 生成 HTML4 严格型 E 元素名 (div, p);E#id 带id的元素 (div#cont ...

  9. UML系列03之UML时序图

    时序图介绍 时序图(Sequence Diagram),亦称为序列图或循序图,是一种UML行为图.时序图是用来描述系统内部是如何交互运作的,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协 ...

  10. AlarmManager.RTC和ELAPSED_REALTIME的区别

    AlarmManager.RTC,硬件闹钟,不唤醒手机(也可能是其它设备)休眠:当手机休眠时不发射闹钟. AlarmManager.RTC_WAKEUP,硬件闹钟,当闹钟发躰时唤醒手机休眠: Alar ...