Environment Linux 5.8 10.2.0.5 RAC, two nodes can only mount a node, if you try to mount another node on the report ORA-01105 and ORA-01606 error
Database version
The code is as follows |
Copy Code |
Sql> select * from V$version;
BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.5.0-64bi Pl/sql Release 10.2.0.5.0-production CORE 10.2.0.5.0 Production TNS for Linux:version 10.2.0.5.0-production Nlsrtl Version 10.2.0.5.0-production |
CRS Resource situation
The code is as follows |
Copy Code |
[Oracle@node1 dbs]$ $ORA _crs_home/bin/crs_stat-t
Name Type Target State Host
------------------------------------------------------------
Ora ..... D1.inst Application OFFLINE OFFLINE
Ora ..... D2.inst Application Online Online Node2
Ora. Prod.db Application Online Online Node2
Ora ..... Sm1.asm Application Online Online Node1
Ora ..... E1.lsnr Application Online Online Node1
ORA.NODE1.GSD Application Online Online Node1
Ora.node1.ons Application Online Online Node1
ORA.NODE1.VIP Application Online Online Node1
Ora ..... Sm2.asm Application Online Online Node2
Ora ..... E2.lsnr Application Online Online Node2
ORA.NODE2.GSD Application Online Online Node2
Ora.node2.ons Application Online Online Node2
ORA.NODE2.VIP Application Online Online Node2 |
Node 1 mount Error
The code is as follows |
Copy Code |
Sql> Startup ORACLE instance started.
Total System Global area 171966464 bytes Fixed Size 2094832 bytes Variable Size 113248528 bytes Database buffers 50331648 bytes Redo buffers 6291456 bytes Ora-01105:mount is incompatible with mounts by other instances Ora-01606:gc_files_to_locks not identical to that of another mounted instance Error:ora 1105
Text:mount is incompatible with mounts by other instances
-------------------------------------------------------------------------------
Cause:an attempt is made to mount the database, but another instance has, already mounted
A database by the same name, and the mounts are not compatible.
Dditional messages would accompany this message to the why mounts are.
Action:see the accompanying messages for the appropriate action to take.
Error:ora 1606
Text:gc_files_to_locks not identical to that of another mounted instance
-------------------------------------------------------------------------------
Cause:the initialization parameter gc_files_to_locks is not the same as
Another instance mounted in parallel mode.
This parameter must is the same as that to all shared instances.
Action:modify the parameter to being compatible with the other instances, then
Shut down and restart the instance. |
Based on this error, the query for the gc_files_to_locks parameter of the two nodes is null (default), which means the value is the same
The code is as follows |
Copy Code |
Sql> Show parameter gc_files_to_locks;
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ Gc_files_to_locks string |
Check the GC-related suppressed parameters of two nodes and find that all values are also consistent
The code is as follows |
Copy Code |
NAME DESCRIPTION VALUE
------------------------------ --------------------------------------------------------------------- -------
_gc_affinity_limit Dynamic Affinity Limit 50
_gc_affinity_minimum dynamic affinity minimum activity per minute 6000
_gc_affinity_time If non zero, enable dynamic object Affinity 10
_gc_async_memcpy if TRUE, use async memcpy FALSE
_gc_check_bscn If true, check for stale blocks TRUE
_gc_coalesce_recovery_reads If true, coalesce recovery reads true
_gc_defer_time how long to defer down converts for hot buffers 3
_gc_dissolve_undo_affinity if TRUE, dissolve undo affinity after a offline FALSE
_gc_dynamic_affinity_locks If true, get dynamic affinity locks TRUE
_gc_element_percent Global cache Element percent 103
_GC_GLOBAL_LRU turn global LRU off, make it automatic, or turn it on AUTO
_gc_initiate_undo_affinity if True, initiate undo affinity after on online TRUE
_gc_integrity_checks set the integrity check level 1
_gc_keep_recovery_buffers If true, make recovery buffers current TRUE
_gc_latches number of latches per LMS process 8
_gc_maximum_bids maximum number of bids which can be prepared 0
_gcs_fast_reconfig If true, enable fast reconfiguration for GCS Locks TRUE
_gcs_latches number of GCS resource hash latches to is allocated per LMS process 64
_gcs_pkey_history number of pkey remastering history 4000
_gcs_process_in_recovery If true, process GCS requests during instance recovery TRUE
_gcs_resources Number of GCs allocated
_gcs_shadow_locks number of PCM shadow locks to is allocated
_gc_statistics If true, KCL statistics are maintained TRUE
_gcs_testing GCS Testing Parameter 0
_gc_tsn_undo_affinity If true, use TSN undo Affinity TRUE
_gc_undo_affinity If true, enable dynamic undo affinity TRUE
_gc_undo_affinity_locks if true, get affinity locks for undo 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 |
Compare database parameters carefully to find the undo exception
The code is as follows |
Copy Code |
--Node 1
Sql> Show Parameter Undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
Undo_management string MANUAL
Undo_retention Integer 900
Undo_tablespace string SYSTEM
--Node 2
Sql> Show Parameter Undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
Undo_management string AUTO
Undo_retention Integer 900
Undo_tablespace string UNDOTBS1 |
This is clear because the undo_* correlation parameters of two nodes are incorrectly configured, causing the database to mount only one node. Further locating the problem, it turns out that the DBA was careless in editing the parameter file of node 1 to lose the undo_*-related parameters, so that the database used the default value Undo_management=manual,undo_tablespace=system