Welcome 微信登录

首页 / 数据库 / MySQL / RAC环境中使用create pfile form spfile出现问题

一、问题解决1、  查看正常RAC中有关,parameter记录节点spfile 位置SQL> show parameter pfileNAME                 TYPE        VALUE------------------------------------ ----------- ------------------------------spfile                 string   +BACKUP_DISK/racdb/spfileracdb                                               .ora服务器上pfile内容[ora@rac1-21 dbs]$ cat initracdb1.oraSPFILE="+BACKUP_DISK/racdb/spfileracdb.ora"2、  使用create pfile from spfile;SQL> create pfile from spfile;File created.此时服务器上pfile内容[ora@rac1-21 dbs]$ cat initracdb1.ora
SPFILE="+BACKUP_DISK/racdb/spfileracdb.ora"
[ora@rac1-21 dbs]$ cat initracdb1.ora
racdb2.__db_cache_size=121634816
racdb1.__db_cache_size=121634816
racdb2.__java_pool_size=4194304
racdb1.__java_pool_size=4194304
racdb2.__large_pool_size=4194304
racdb1.__large_pool_size=4194304
racdb2.__shared_pool_size=88080384
racdb1.__shared_pool_size=88080384
racdb2.__streams_pool_size=0
racdb1.__streams_pool_size=0
*.audit_file_dest="/u01/Oracle/admin/racdb/adump"
*.background_dump_dest="/u01/oracle/admin/racdb/bdump"
*.cluster_database_instances=2
*.cluster_database=true
*.compatible="10.2.0.1.0"
*.control_files="+BACKUP_DISK/racdb/controlfile/current.256.871700359"
*.core_dump_dest="/u01/oracle/admin/racdb/cdump"
*.db_block_size=8192
*.db_create_file_dest="+BACKUP_DISK"
*.db_domain=""
*.db_file_multiblock_read_count=16
*.db_name="racdb"
*.dispatchers="(PROTOCOL=TCP) (SERVICE=racdbXDB)"
racdb2.instance_number=2
racdb1.instance_number=1
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=73400320
*.processes=150
*.remote_listener="LISTENERS_RACDB"
*.remote_login_passwordfile="exclusive"
*.sga_target=220200960
racdb2.thread=2
racdb1.thread=1
*.undo_management="AUTO"
racdb1.undo_tablespace="UNDOTBS1"
racdb2.undo_tablespace="UNDOTBS2"
*.user_dump_dest="/u01/oracle/admin/racdb/udump"**.undo_management="AUTO"  为共享的参数racdb2.thread=2racdb1.thread=1为节点单独使用的重启之后,oracle使用了节点本地的pfile,不能使用共享存储上spfile了,这样很不方便以后的管理。SQL> show parameter pfileNAME                               TYPE        VALUE------------------------------------ ----------- ------------------------------spfile                 stringoracle使用节点本地的参数文件,而不使用共享存储的参数文件,这样的问题怎么解决呢?3、  解决方法:修改oracle中pfile指向位置为共享存储的参数文件即可。(指针)[ora@rac1-21 dbs]$ cat initracdb1.orasPFILE="+BACKUP_DISK/racdb/spfileracdb.ora" 重启数据库SQL> show parameter pfileNAME                    TYPE        VALUE------------------------------------ ----------- ------------------------------spfile                 string      +BACKUP_DISK/racdb/spfileracdb                                      .oraOK!问题解决了。二、思考与总结思考:RAC启动参数文件位置的奥秘?RAC中,启动参数文件是不是ORACLE先去找本地的参数文件,然后本地指向共享存储中的文件,这样的方式,参数文件才得以在共享磁盘上多个节点进行共享呢?为了证明我的想法,觉得把pfile修改名。看看oracle能否找到共享存储中的参数文件呢?[ora@rac1-21 dbs]$ mv initracdb1.ora initracdb1.ora_bkSQL> startupORA-01078: failure in processing system parametersLRM-00109: could not open parameter file "/u01/oracle/product/10.2.0/db_1/dbs/initracdb1.ora"恢复pfile的名称 [ora@rac1-21 dbs]$ mv initracdb1.ora_bk initracdb1.oraSQL> startupORACLE instance started.Total System Global Area  222298112 bytesFixed Size                  1218628 bytesVariable Size              96470972 bytesDatabase Buffers          121634816 bytesRedo Buffers                2973696 bytesDatabase mounted.Database opened.显然,数据库开启使用节点本地的pfile,只要本地的参数文件或指向参数文件正确。数据库就可以启动总结:RAC数据库启动也是先使用默认的位置SPFILE,PFILE等文件。如果有指向,oracle就会使用指向共享存储的位置parameter文件。更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址