CLUSTER_DATABASE_INSTANCES引數
以前一直認為這個引數是設定資料庫允許啟動的例項數,今天才發現並非如此。
今天在測試新增RAC的節點時發現了這個問題,資料庫啟動的例項數,超過了CLUSTER_DATABASE_INSTANCES的設定:
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 4月 20 17:27:10 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> set pages 100 lines 120
SQL> show parameter cluster_database
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 1
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
test1
SQL> select instance_name, status from gv$instance;
INSTANCE_NAME STATUS
---------------- ------------
test1 OPEN
test2 OPEN
SQL> conn test/test@test2
已連線。
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
test2
RAC環境的兩個例項同時在執行,但是CLUSTER_DATABASE_INSTANCES引數的設定為1。開始還以為碰到了bug,或者是11g做了某些改變。
查詢了Oracle的文件,才發現原來的理解一直存在問題。認為CLUSTER_DATABASE_INSTANCES設定的是Oracle所允許執行的最大例項數,完全是想當然的,實際上Oracle透過這個初始化引數設定的值,在執行並行自動調整的情況下,來估算LARGE_POOL_SIZE引數的預設值。
Oracle新增節點這種操作,是不需要重啟資料庫的(當然從非RAC環境新增例項變為RAC環境是例外,因為要修改CLUSTER_DATABASE引數),因為CLUSTER_DATABASE_INSTANCES引數的調整完全可以先在SPFILE中修改,等以後有重啟機會的時候再載入正確的引數設定。不過需要注意,如果在SPFILE中修改了CLUSTER_DATABASE_INSTANCES,那麼隨後任意一個例項需要重啟的時候,所有的其他例項也比較重啟,因為每個例項中這個值的設定必須是一致的:
SQL> conn / as sysdba
已連線。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORACLE 例程已經啟動。
Total System Global Area 776896512 bytes
Fixed Size 2098776 bytes
Variable Size 212523432 bytes
Database Buffers 557842432 bytes
Redo Buffers 4431872 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> conn / as sysdba
已連線。
SQL> alter system set cluster_database_instances = 2 scope = spfile;
系統已更改。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
SQL> startup
ORA-29707: inconsistent value 2 for initialization parameter cluster_database_instances with other instances
這時只有兩種方法,一種是修改SPFILE中的引數設定,使得SPFILE的設定和其他執行的例項中設定一致,另一種方法就是關閉其他所有的例項,然後重啟資料庫。
SQL> exit
從 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options 斷開
bash-3.00$ srvctl stop inst -d test -i test2
bash-3.00$ srvctl start db -d test
bash-3.00$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 4月 20 18:42:14 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連線到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> show parameter cluster_database
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cluster_database boolean TRUE
cluster_database_instances integer 2
SQL> select instance_name from gv$instance;
INSTANCE_NAME
----------------
test1
test2
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-591215/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- python疑問5:位置引數,預設引數,可變引數,關鍵字引數,命名關鍵字引數區別Python
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis
- Java對比有引數和無引數Java
- 引數配置
- python引數Python
- 超引數
- mt引數
- COMPATIBLE引數
- 常用的jvm配置引數 :永久區引數配置JVM
- nginx 常見引數以及重定向引數配置Nginx
- 引數匹配模型——Python學習之引數(二)模型Python
- 引數的定義和引數的傳遞
- c# 方法引數(傳值,傳引用,ref,out,params,可選引數,命名引數)C#
- Bash變數和引數變數
- python變數和引數Python變數
- Nginx編譯引數大全 configure引數中文詳解Nginx編譯
- 函式引數 引數定義函式型別函式型別
- TypeScript 函式可選引數和預設引數TypeScript函式
- C技巧:結構體引數轉成不定引數結構體
- vue17自定義指令(有引數,無引數)Vue
- 引數匹配順序——Python學習之引數(三)Python
- postman 請求引數和 Spring Boot Controller 接受引數PostmanSpring BootController
- Python函式/動態引數/關鍵字引數Python函式
- 小程式內引數和掃碼引數統一
- livewire 中wire:click=test('中文引數')引數報錯
- 引數校驗
- SweepGradient的引數
- Python多值引數Python
- 引數彙總
- (2)python引數Python
- arp命令 引數
- tasklist命令 引數
- JavaWeb引數配置JavaWeb
- ipconfig命令引數
- Oracle 核心引數Oracle
- JavaScript Date() 引數JavaScript
- lr引數化
- Java(三)引數Java