生产环境,Oracle Linux 6.4 RAC 11.2.4.0,今天出现了grid集群因为OCR磁盘组不能访问而不能通过命令来显示集群状态信息,在手动mount OCR磁盘组后,准备重启节点2时出现了ORA-01105,ORA-01606错误,具体信息如下:
SQL> startup
ORACLE instance started.
Total System Global Area 5.3447E+10 bytes
Fixed Size 2265864 bytes
Variable Size 1.3019E+10 bytes
Database Buffers 4.0265E+10 bytes
Redo Buffers 160698368 bytes
ORA-01105: mount is incompatible with mounts by other instances
ORA-01606: parameter not identical to that of another mounted instance
查看错误详细说明,根据错误描述可知是由于2号实例与1号实例由于某些参数设置一样所导致的
[oracle@db2 dbs]$ oerr ora 1105
01105, 00000, "mount is incompatible with mounts by other instances"
// *Cause: An attempt to mount the database discovered that another instance
// mounted a database by the same name, but the mount is not
// compatible. Additional errors are reported explaining why.
// *Action: See accompanying errors.
[oracle@db2 dbs]$ oerr ora 1606
01606, 00000, "parameter not identical to that of another mounted instance"
// *Cause: A parameter was different on two instances.
// *Action: Modify the initialization parameter and restart.
使用spfile文件来创建文本格式的pfile文件
SQL> create pfile='rlcs.ora' from spfile;
File created.
[oracle@db2 dbs]$ cat rlcs.ora
*._serial_direct_read='AUTO'
*._swrf_mmon_flush=TRUE
*._use_adaptive_log_file_sync='FALSE'
*.audit_file_dest='/u01/app/oracle/admin/RL/adump'
*.audit_trail='NONE'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='+DATA/rl/controlfile/current.260.926786537','+ARCH/rl/controlfile/current.256.926786537'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_file_name_convert='+data/rl/','+data/rldg/'
*.db_name='RL'
*.db_recovery_file_dest='+ARCH'
*.db_recovery_file_dest_size=10737418240
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=RLZYXDB)'
*.fal_server='yb_st'
RL1.instance_number=1
RL2.instance_number=2
*.listener_networks=''
*.log_archive_config='dg_config=(rl,rldg)'
*.log_archive_dest_1='location=+ARCH valid_for=(all_logfiles,all_roles) db_unique_name=rl'
*.log_archive_dest_2='service=yb_st valid_for=(online_logfiles,primary_role) db_unique_name=rldg'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arch'
*.log_file_name_convert='+data/rl/','+data/rldg/','+arch/rl/','+arch/rldg/'
*.open_cursors=300
*.parallel_adaptive_multi_user=TRUE
*.parallel_degree_policy='AUTO'
*.parallel_force_local=FALSE
*.pga_aggregate_target=21474836480
*.processes=2000
*.remote_listener='scan-ip:1521'
*.remote_login_passwordfile='exclusive'
*.service_names='rl'
*.sessions=2205
*.sga_max_size=53687091200
*.sga_target=53687091200
*.standby_file_management='manual'
RLZY2.thread=2
RLZY1.thread=1
*.undo_retention=7200
RLZY2.undo_tablespace='UNDOTBS2'
RLZY1.undo_tablespace='UNDOTBS1'
*.utl_file_dir='/rmanbak/utl'
从文本参数文件看不出来有什么参数是两个实例不一致的。
通过执行下面的语句来查看2号实例与gc相关的参数
SQL> set linesize 333
SQL> col name for a35
SQL> col description for a66
SQL> col value for a30
SQL> SELECT i.ksppinm name,
2 i.ksppdesc description,
3 CV.ksppstvl VALUE
4 FROM sys.x$ksppi i, sys.x$ksppcv CV
5 WHERE i.inst_id = USERENV ('Instance')
6 AND CV.inst_id = USERENV ('Instance')
7 AND i.indx = CV.indx
8 AND i.ksppinm LIKE '/_gc%' ESCAPE '/'
9 ORDER BY REPLACE (i.ksppinm, '_', '');
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gc_affinity_locking if TRUE, enable object affinity TRUE
_gc_affinity_locks if TRUE, get affinity locks TRUE
_gc_affinity_ratio dynamic object affinity ratio 50
_gc_async_memcpy if TRUE, use async memcpy FALSE
_gc_bypass_readers if TRUE, modifications bypass readers TRUE
_gc_check_bscn if TRUE, check for stale blocks TRUE
_gc_coalesce_recovery_reads if TRUE, coalesce recovery reads TRUE
_gc_cpu_time if TRUE, record the gc cpu time FALSE
_gc_cr_server_read_wait if TRUE, cr server waits for a read to complete TRUE
_gc_defer_ping_index_only if TRUE, restrict deferred ping to index blocks only TRUE
_gc_defer_time how long to defer pings for hot buffers in milliseconds 0
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gc_delta_push_compression if delta >= K bytes, compress before push 3072
_gc_delta_push_max_level max delta level for delta push 100
_gc_delta_push_objects objects which use delta push 0
_gc_disable_s_lock_brr_ping_check if TRUE, disable S lock BRR ping check for lost write protect TRUE
_gc_down_convert_after_keep if TRUE, down-convert lock after recovery TRUE
_gc_element_percent global cache element percent 110
_gc_escalate_bid if TRUE, escalates create a bid TRUE
_gc_fg_merge if TRUE, merge pi buffers in the foreground TRUE
_gc_flush_during_affinity if TRUE, flush during affinity TRUE
_gc_fusion_compression compress fusion blocks if there is free space 1024
_gc_global_checkpoint_scn if TRUE, enable global checkpoint scn TRUE
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gc_global_cpu global cpu checks TRUE
_gc_global_lru turn global lru off, make it automatic, or turn it on AUTO
_gc_global_lru_touch_count global lru touch count 5
_gc_global_lru_touch_time global lru touch time in seconds 60
_gc_integrity_checks set the integrity check level 1
_gc_keep_recovery_buffers if TRUE, make single instance crash recovery buffers current TRUE
_gc_latches number of latches per LMS process 8
_gc_log_flush if TRUE, flush redo log before a current block transfer TRUE
_gc_long_query_threshold threshold for long running query 0
_gc_max_downcvt maximum downconverts to process at one time 256
_gc_maximum_bids maximum number of bids which can be prepared 0
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gc_no_fairness_for_clones if TRUE, no fairness if we serve a clone TRUE
_gc_object_queue_max_length maximum length for an object queue 0
_gc_override_force_cr if TRUE, try to override force-cr requests TRUE
_gc_persistent_read_mostly if TRUE, enable persistent read-mostly locking TRUE
_gc_policy_minimum dynamic object policy minimum activity per minute 1500
_gc_policy_time how often to make object policy decisions in minutes 10
_gc_read_mostly_flush_check if TRUE, optimize flushes for read mostly objects FALSE
_gc_read_mostly_locking if TRUE, enable read-mostly locking FALSE
_gcr_enable_high_cpu_kill if TRUE, GCR may kill foregrounds under high load FALSE
_gcr_enable_high_cpu_rm if TRUE, GCR may enable a RM plan under high load FALSE
_gcr_enable_high_cpu_rt if TRUE, GCR may boost bg priority under high load FALSE
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gcr_high_cpu_threshold minimum amount of CPU process must consume to be kill target 10
_gcr_use_css if FALSE, GCR wont register with CSS nor use any CSS feature TRUE
_gc_sanity_check_cr_buffers if TRUE, sanity check CR buffers FALSE
_gcs_disable_remote_handles disable remote client/shadow handles FALSE
_gcs_disable_skip_close_remastering if TRUE, disable skip close optimization in remastering FALSE
_gc_serve_high_pi_as_current if TRUE, use a higher clone scn when serving a pi TRUE
_gcs_fast_reconfig if TRUE, enable fast reconfiguration for gcs locks TRUE
_gcs_latches number of gcs resource hash latches to be allocated per LMS proces 64
s
_gcs_pkey_history number of pkey remastering history 4000
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gcs_process_in_recovery if TRUE, process gcs requests during instance recovery TRUE
_gcs_resources number of gcs resources to be allocated
_gcs_res_per_bucket number of gcs resource per hash bucket 4
_gcs_shadow_locks number of pcm shadow locks to be allocated
_gc_statistics if TRUE, kcl statistics are maintained TRUE
_gcs_testing GCS testing parameter 0
_gc_transfer_ratio dynamic object read-mostly transfer ratio 2
_gc_undo_affinity if TRUE, enable dynamic undo affinity TRUE
_gc_undo_block_disk_reads if TRUE, enable undo block disk reads TRUE
_gc_use_cr if TRUE, allow CR pins on PI and WRITING buffers TRUE
_gc_vector_read if TRUE, vector read current buffers TRUE
64 rows selected.
查看1号实例与gc相关的参数
SQL> set linesize 333
SQL> col name for a35
SQL> col description for a66
SQL> col value for a30
SQL> SELECT i.ksppinm name,
2 i.ksppdesc description,
3 CV.ksppstvl VALUE
4 FROM sys.x$ksppi i, sys.x$ksppcv CV
5 WHERE i.inst_id = USERENV ('Instance')
6 AND CV.inst_id = USERENV ('Instance')
7 AND i.indx = CV.indx
8 AND i.ksppinm LIKE '/_gc%' ESCAPE '/'
9 ORDER BY REPLACE (i.ksppinm, '_', '');
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gc_affinity_locking if TRUE, enable object affinity TRUE
_gc_affinity_locks if TRUE, get affinity locks TRUE
_gc_affinity_ratio dynamic object affinity ratio 50
_gc_async_memcpy if TRUE, use async memcpy FALSE
_gc_bypass_readers if TRUE, modifications bypass readers TRUE
_gc_check_bscn if TRUE, check for stale blocks TRUE
_gc_coalesce_recovery_reads if TRUE, coalesce recovery reads TRUE
_gc_cpu_time if TRUE, record the gc cpu time FALSE
_gc_cr_server_read_wait if TRUE, cr server waits for a read to complete TRUE
_gc_defer_ping_index_only if TRUE, restrict deferred ping to index blocks only TRUE
_gc_defer_time how long to defer pings for hot buffers in milliseconds 0
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gc_delta_push_compression if delta >= K bytes, compress before push 3072
_gc_delta_push_max_level max delta level for delta push 100
_gc_delta_push_objects objects which use delta push 0
_gc_disable_s_lock_brr_ping_check if TRUE, disable S lock BRR ping check for lost write protect TRUE
_gc_down_convert_after_keep if TRUE, down-convert lock after recovery TRUE
_gc_element_percent global cache element percent 110
_gc_escalate_bid if TRUE, escalates create a bid TRUE
_gc_fg_merge if TRUE, merge pi buffers in the foreground TRUE
_gc_flush_during_affinity if TRUE, flush during affinity TRUE
_gc_fusion_compression compress fusion blocks if there is free space 1024
_gc_global_checkpoint_scn if TRUE, enable global checkpoint scn TRUE
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gc_global_cpu global cpu checks TRUE
_gc_global_lru turn global lru off, make it automatic, or turn it on AUTO
_gc_global_lru_touch_count global lru touch count 5
_gc_global_lru_touch_time global lru touch time in seconds 60
_gc_integrity_checks set the integrity check level 1
_gc_keep_recovery_buffers if TRUE, make single instance crash recovery buffers current TRUE
_gc_latches number of latches per LMS process 8
_gc_log_flush if TRUE, flush redo log before a current block transfer TRUE
_gc_long_query_threshold threshold for long running query 0
_gc_max_downcvt maximum downconverts to process at one time 256
_gc_maximum_bids maximum number of bids which can be prepared 0
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gc_no_fairness_for_clones if TRUE, no fairness if we serve a clone TRUE
_gc_object_queue_max_length maximum length for an object queue 0
_gc_override_force_cr if TRUE, try to override force-cr requests TRUE
_gc_persistent_read_mostly if TRUE, enable persistent read-mostly locking TRUE
_gc_policy_minimum dynamic object policy minimum activity per minute 1500
_gc_policy_time how often to make object policy decisions in minutes 10
_gc_read_mostly_flush_check if TRUE, optimize flushes for read mostly objects FALSE
_gc_read_mostly_locking if TRUE, enable read-mostly locking TRUE
_gcr_enable_high_cpu_kill if TRUE, GCR may kill foregrounds under high load FALSE
_gcr_enable_high_cpu_rm if TRUE, GCR may enable a RM plan under high load FALSE
_gcr_enable_high_cpu_rt if TRUE, GCR may boost bg priority under high load FALSE
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gcr_high_cpu_threshold minimum amount of CPU process must consume to be kill target 10
_gcr_use_css if FALSE, GCR wont register with CSS nor use any CSS feature TRUE
_gc_sanity_check_cr_buffers if TRUE, sanity check CR buffers FALSE
_gcs_disable_remote_handles disable remote client/shadow handles FALSE
_gcs_disable_skip_close_remastering if TRUE, disable skip close optimization in remastering FALSE
_gc_serve_high_pi_as_current if TRUE, use a higher clone scn when serving a pi TRUE
_gcs_fast_reconfig if TRUE, enable fast reconfiguration for gcs locks TRUE
_gcs_latches number of gcs resource hash latches to be allocated per LMS proces 64
s
_gcs_pkey_history number of pkey remastering history 4000
NAME DESCRIPTION VALUE
----------------------------------- ------------------------------------------------------------------ ------------------------------
_gcs_process_in_recovery if TRUE, process gcs requests during instance recovery TRUE
_gcs_resources number of gcs resources to be allocated
_gcs_res_per_bucket number of gcs resource per hash bucket 4
_gcs_shadow_locks number of pcm shadow locks to be allocated
_gc_statistics if TRUE, kcl statistics are maintained TRUE
_gcs_testing GCS testing parameter 0
_gc_transfer_ratio dynamic object read-mostly transfer ratio 2
_gc_undo_affinity if TRUE, enable dynamic undo affinity TRUE
_gc_undo_block_disk_reads if TRUE, enable undo block disk reads TRUE
_gc_use_cr if TRUE, allow CR pins on PI and WRITING buffers TRUE
_gc_vector_read if TRUE, vector read current buffers TRUE
64 rows selected.
通过对比发现_gc_read_mostly_locking参数在1号实例中为true,2号实例为false
将所有实例中的_gc_read_mostly_locking参数设置为true
SQL> alter system set "_gc_read_mostly_locking"=true scope=spfile sid='*';
System altered.
重启2号实例成功
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 5.3447E+10 bytes
Fixed Size 2265864 bytes
Variable Size 1.3019E+10 bytes
Database Buffers 4.0265E+10 bytes
Redo Buffers 160698368 bytes
Database mounted.
Database opened.
原因是因为之前有人修改过_gc_read_mostly_locking隐藏参数,只是只修改了1号实例。