看到有人問如何區分RAC 建立後是Admin managed 還是Policy managed 。
首先要看定義:
Administrator-managed: Database administrators define the servers on which databases resource run, and place resources manually as needed. This is the management strategy used in previous releases.
Policy managed: Database administrators specify in which server pool (excluding generic or free) the database resource will run. Oracle Clusterware is responsible for placing the database resource on a server.
(http://docs.oracle.com/cd/E11882_01/install.112/e10813/srvpool.htm#RILIN1065)
就是說11g RAC 首先預設有一個Server Pool,如果你不用自訂設定。RAC 的所有Service 都會按照預設的策略管理,這種管理就叫 Admin managed。
如果你需要對有些服務做定製,或按自己的商業邏輯進行配置,那首先你要自訂一個server pool 然後修改資料庫配置資訊就可以了。
--------------------------------------分割線 --------------------------------------
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2
Oracle Linux 6.3 安裝Oracle 11g R2 筆記
--------------------------------------分割線 --------------------------------------
如何檢查是否Admin managed:
[grid@rac1 bin]$ $GRID_HOME/bin/srvctl config database -d mydb
Database unique name: mydb
Database name: mydb
Oracle home: /opt/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/mydb/spfilemydb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: mydb
Database instances: mydb1
Disk Groups: DATA
Services: Database is administrator managed
這就說明是以Admin Managed 來管理RAC。
如果要修改Admin Managed 的話,首先需要加一個service 到RAC,文法如下:
srvctl add service -d <db_unique_name> -s <service_name>
-r "<preferred_list>" [-a "<available_list>"] [-P {BASIC | NONE | PRECONNECT}]
-g <server_pool> [-c {UNIFORM | SINGLETON}]
[-k <net_num>]
[-l [PRIMARY][,PHYSICAL_STANDBY][,LOGICAL_STANDBY][,SNAPSHOT_STANDBY]]
[-y {AUTOMATIC | MANUAL}]
[-q {TRUE|FALSE}]
[-x {TRUE|FALSE}]
[-j {SHORT|LONG}]
[-B {NONE|SERVICE_TIME|THROUGHPUT}]
[-e {NONE|SESSION|SELECT}]
[-m {NONE|BASIC}]
[-z <failover_retries>]
[-w <failover_delay>]
這些選項不一定都用,但要大體瞭解。基本上只管理資料庫選項 一般用 -l,-u. 如果用TAF 的話需要用-c,-e,-s,-m,-w 等。
下面用一個例子來說明如何加一個Service
[grid@rac1 bin]$ $GRID_HOME/bin/srvctl add serverpool -g mypool -l 2 -u 2
將資料庫加入到自訂的Server Pool 裡面:
[grid@rac1 bin]$ $GRID_HOME/bin/srvctl modify database -d mydb -g mypool
檢查mydb RAC 新的Policy
[grid@rac1 bin]$ $GRID_HOME/bin/srvctl config database -d mydb
Database unique name: mydb
Database name: mydb
Oracle home: /opt/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/mydb/spfilemydb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: mypool
Database instances:
Disk Groups: DATA
Services: Database is policy managed
資料庫已經使用Policy Managed 選項了。
特別提醒:
如果沒有特彆強烈需要就不用自訂加 Policy Managed ,Admin Managed 能相容11g RAC 和之前的版本,更通用。