溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Oracle 11g RAC如何使用Manual和Policy Managed方法配置

發(fā)布時(shí)間:2021-11-10 09:59:21 來源:億速云 閱讀:109 作者:小新 欄目:關(guān)系型數(shù)據(jù)庫(kù)

小編給大家分享一下Oracle 11g RAC如何使用Manual和Policy Managed方法配置,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

軟件環(huán)境:

操作系統(tǒng):Red Hat Enterprise Linux 5.4(Tikanga)
Oracle:11gR2 11.2.0.4.0 RAC
數(shù)據(jù)庫(kù)名稱: racdb
RAC集群兩節(jié)點(diǎn)名稱:racdb01,racdb02

Policy-Managed方式介紹
基于策略的管理方式,是以服務(wù)器池(Server Pools)為基礎(chǔ)的,簡(jiǎn)單地說,就是先定義一些服務(wù)器池,池中包含一定量的服務(wù)器,然后再定義一些策略,根據(jù)這些策略O(shè)racle會(huì)自動(dòng)決定讓多少數(shù)據(jù) 庫(kù)實(shí)例運(yùn)行在池中的幾臺(tái)機(jī)器上。數(shù)據(jù)庫(kù)實(shí)例名后綴、數(shù)據(jù)庫(kù)實(shí)例個(gè)數(shù)、所運(yùn)行的主機(jī),這些都是通過策略決定的,而不是數(shù)據(jù)庫(kù)管理員事先定好的。
何種環(huán)境適合使用這種新的方式進(jìn)行管理?
當(dāng)管理大量的服務(wù)器集群,并且在這些集群中運(yùn)行著多種不同重要程度,不同策略的RAC數(shù)據(jù)庫(kù)時(shí),為了簡(jiǎn)化管理,建議使用Policy- Managed方式,實(shí)際上Oracle也建議只有在超過3臺(tái)的服務(wù)器的時(shí)候才使用Policy-Managed來管理整個(gè)數(shù)據(jù)庫(kù)集群。想象一下使用 Policy-Managed方式可以達(dá)到的效果:如果我們有10臺(tái)服務(wù)器組成,根據(jù)不同的應(yīng)用的重要性定義服務(wù)器池的關(guān)鍵程度,然后在其中某些機(jī)器意外 停機(jī)的情況下,仍然可以自動(dòng)地保持足夠多的機(jī)器給重要的系統(tǒng)提供數(shù)據(jù)庫(kù)服務(wù),而將不關(guān)鍵的系統(tǒng)數(shù)據(jù)庫(kù)服務(wù)器個(gè)數(shù)降低到最低限度。

策略管理:DBA指定數(shù)據(jù)庫(kù)資源運(yùn)行在哪個(gè)服務(wù)器池(排除generic or free)。Oracle Clusterware負(fù)責(zé)將數(shù)據(jù)庫(kù)資源放在一臺(tái)服務(wù)器。
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.

服務(wù)器以如下次序被分配入服務(wù)器池:
Generic server pool
User assigned server pool
Free
Oralce Clusterware使用服務(wù)器池的重要性決定分配服務(wù)器次序:

  1. 按重要性次序分配服務(wù)器給所有服務(wù)器池,直到滿足服務(wù)器池的最小數(shù)目要求

  2. 按重要性次序分配服務(wù)器給服務(wù)器池,直到它們滿足服務(wù)器池的最大數(shù)目要求

  3. 默認(rèn),任何剩下的服務(wù)器加入FREE服務(wù)器池

策略管理數(shù)據(jù)庫(kù)背后的目標(biāo)是刪除到1個(gè)特定實(shí)例或服務(wù) 服務(wù)的硬編碼
數(shù)據(jù)庫(kù)可以和1個(gè)服務(wù)器池關(guān)聯(lián)(而不是特定的節(jié)點(diǎn)集)。服務(wù)器池決定被資源(數(shù)據(jù)庫(kù),服務(wù),第三方應(yīng)用程序)所需的最小和最大服務(wù)器數(shù)目。
數(shù)據(jù)庫(kù)實(shí)例將運(yùn)行在已被分配給服務(wù)器池的服務(wù)器上。(使用min_size決定數(shù)據(jù)庫(kù)必需運(yùn)行在哪些服務(wù)器,以及必需運(yùn)行在多少服務(wù)器上)
既然被分配給服務(wù)器池的服務(wù)器可以動(dòng)態(tài)地變更,這允許Oracle基于集群可用的服務(wù)器總數(shù)動(dòng)態(tài)地交付服務(wù)。
數(shù)據(jù)庫(kù)實(shí)例將啟動(dòng)在足夠多的服務(wù)器上(受制于服務(wù)器的可用性)。無需硬編碼規(guī)定數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在哪些服務(wù)器上。
數(shù)據(jù)庫(kù)的任何實(shí)例可以運(yùn)行在任何節(jié)點(diǎn)上。在實(shí)例號(hào)和節(jié)點(diǎn)之間無固定的映射關(guān)系。
當(dāng)服務(wù)器被釋放/添加/刪除時(shí),他們按之前提及的規(guī)則被分配到存在的服務(wù)器池中。
理論上的例子
例如,如果1個(gè)集群,總共有8個(gè)節(jié)點(diǎn)組成,并且支持3個(gè)RAC數(shù)據(jù)庫(kù)。每個(gè)數(shù)據(jù)庫(kù)將定義服務(wù)器的最小和最大數(shù)目。
假設(shè)DB1定義最小4臺(tái)、最多6臺(tái)服務(wù)器(重要性為10),
假設(shè)DB2定義最小2臺(tái)、最多3臺(tái)服務(wù)器(重要性為7),
假設(shè)DB3定義最小2臺(tái)、最多3臺(tái)服務(wù)器(重要性為5)。
初始8節(jié)點(diǎn)將被配置成節(jié)點(diǎn)1-4被分配給DB1,節(jié)點(diǎn)5-6被分配給DB2,節(jié)點(diǎn)7-8被分配給DB3。如果節(jié)點(diǎn)3由于某種原因發(fā)生故障,系統(tǒng)將分配節(jié)點(diǎn)7或8給DB1,因?yàn)槠浔菵B3有更高的重要性而且最小需要4臺(tái)服務(wù)器,即使將導(dǎo)致DB3降到最小服務(wù)器水平以下。如果節(jié)點(diǎn)3被重新激活,將被立即分配給DB3以使數(shù)據(jù)庫(kù)恢復(fù)到最小所需的服務(wù)器數(shù)。
如果第9個(gè)節(jié)點(diǎn)被添加到集群,將被分配給DB1,因?yàn)槠渲匾宰罡叨椅礉M足最大服務(wù)器數(shù)。

Admin-Managed方式介紹
實(shí)際上上面的表述已經(jīng)明確說明了,Policy-Managed和Admin-Managed方式的差別。讓我們?cè)倩仡櫼幌拢谝酝覀儎?chuàng)建一個(gè)RAC數(shù) 據(jù)庫(kù)大概是怎樣的方法,我們?cè)赿bca的界面中會(huì)選擇要將數(shù)據(jù)庫(kù)實(shí)例運(yùn)行在整個(gè)集群中的幾臺(tái)機(jī)器上,或者是2臺(tái)或者是3臺(tái),甚或是更多,但是只要在安裝的 時(shí)候選定幾臺(tái)機(jī)器,那么以后如果不做增減節(jié)點(diǎn)的操作,就始終會(huì)在這幾臺(tái)機(jī)器上運(yùn)行。而且,通常會(huì)根據(jù)主機(jī)名稱的排序自動(dòng)將每臺(tái)主機(jī)上的數(shù)據(jù)庫(kù)實(shí)例依次命名 為dbname1到dbnameN。這些在管理員安裝完畢以后,都不會(huì)再自動(dòng)變化,這就是Admin-Managed方式。

管理員管理:DBA指定數(shù)據(jù)庫(kù)資源運(yùn)行的所有服務(wù)器,并且按需手動(dòng)放置資源。這是之前版本Oracle數(shù)據(jù)庫(kù)使用的管理策略。
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方式和Admin-Managed方式Service使用例子
1,如何檢查是否Admin managed方式:
[grid@racdb01 ~]$ srvctl config database -d racdb
Database unique name: racdb
Database name: racdb
Oracle home: /app/product/oracle/11.2.0.4/db_1
Oracle user: oracle
Spfile: /app/product/oracle/11.2.0/db_1/dbs/spfileracdb1.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: racdb
Database instances: racdb1,racdb2
Disk Groups: ASM_DATA,ASM_FRA
Mount point paths: 
Services: rac_first,rac_second
Type: RAC
Database is administrator managed

這就說明是以Admin Managed 來管理RAC。

2,下面舉例子來說明如何檢查和修改數(shù)據(jù)庫(kù)服務(wù)器池及Service
A,添加服務(wù)器池mypool(最小數(shù)目0,最大數(shù)目2)
[oracle@racdb01 ~]$ srvctl add serverpool -g mypool -l 0 -u 2
將數(shù)據(jù)庫(kù)加入到自定義的Server Pool 里面:

B,修改數(shù)據(jù)庫(kù)racdb的服務(wù)器池
[oracle@racdb01 ~]$ srvctl modify database -d racdb -g mypool

C,檢查RAC數(shù)據(jù)庫(kù)racdb新的Policy
[grid@racdb02 ~]$ srvctl config database -d racdb
Database unique name: racdb
Database name: racdb
Oracle home: /app/product/oracle/11.2.0.4/db_1
Oracle user: oracle
Spfile: /app/product/oracle/11.2.0/db_1/dbs/spfileracdb1.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: mypool
Database instances: 
Disk Groups: ASM_DATA,ASM_FRA
Mount point paths: 
Services: rac_first,rac_second
Type: RAC
Database is policy managed
發(fā)現(xiàn)數(shù)據(jù)庫(kù)已經(jīng)使用Policy Managed 選項(xiàng)了。

特別提醒:
如果沒有特別強(qiáng)烈需要就不用自定義加 Policy Managed ,Admin Managed 能兼容11g RAC 和之前的版本,更通用。

D,使用crsctl檢查服務(wù)器池的狀態(tài)

已變更為
[grid@racdb02 ~]$ crsctl status serverpool -p 
NAME=Free
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:rwx,pgrp:oinstall:rwx,other::r-x

NAME=Generic
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:r-x,pgrp:oinstall:r-x,other::r-x

NAME=ora.mypool
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=2
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r—

E,使用srvctl檢查服務(wù)器池的狀態(tài)
[grid@racdb01 ~]$ srvctl config serverpool -g Free 
Server pool name: Free
Importance: 0, Min: 0, Max: -1
Candidate server names:

[grid@racdb01 ~]$ srvctl config serverpool -g Generic 
PRKO-3160 : Server pool Generic is internally managed as part of administrator-managed database configuration and therefore cannot be queried directly via srvpool object.

[grid@racdb01 ~]$ srvctl config serverpool -g mypool
Server pool name: mypool
Importance: 0, Min: 0, Max: 2
Candidate server names:
注意:MIN_SIZE屬性指定資源的基數(shù)(數(shù)據(jù)庫(kù)等),假設(shè)min_size為2,數(shù)據(jù)庫(kù)實(shí)例可以運(yùn)行在服務(wù)器池的兩臺(tái)服務(wù)器上。
另一個(gè)重要的注意事項(xiàng):使用crsctl添加服務(wù)器池到集群(警告:使用crsctl添加服務(wù)器池將對(duì)應(yīng)用服務(wù)器等非數(shù)據(jù)庫(kù)資源效力,對(duì)數(shù)據(jù)庫(kù)資源,需使用srvctl創(chuàng)建服務(wù)器池,請(qǐng)參考文檔 here)

F,添加服務(wù)器池
For non-database resources,
[grid@racdb02 ~]$ crsctl add serverpool sp1 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=1" -f
CRS-2673: Attempting to stop 'ora.racdb.db' on 'racdb01'
CRS-2677: Stop of 'ora.racdb.db' on 'racdb01' succeeded

檢查服務(wù)器池狀態(tài)
[grid@racdb02 ~]$ crsctl status serverpool -p 
NAME=Free
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:rwx,pgrp:oinstall:rwx,other::r-x

NAME=Generic
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:r-x,pgrp:oinstall:r-x,other::r-x

NAME=ora.mypool
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=2
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r--

NAME=sp1
IMPORTANCE=1
MIN_SIZE=1
MAX_SIZE=1
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:rwx,pgrp:oinstall:rwx,other::r—

刪除服務(wù)器池:
[grid@racdb02 ~]$ crsctl delete serverpool sp1

[grid@racdb02 ~]$ crsctl add serverpool sp2 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=2"

刪除服務(wù)器池:

注意:觀察差異,當(dāng)使用crsctl時(shí),你不能指定個(gè)別的或你希望的主機(jī),而當(dāng)使用srvctl時(shí)可以。

G,查看服務(wù)器狀態(tài)
[grid@racdb01 ~]$ crsctl status server -f 
NAME=racdb01
STATE=ONLINE
ACTIVE_POOLS=Generic ora.racdb ora.racdb_rac_first
STATE_DETAILS=

NAME=racdb02
STATE=VISIBLE
ACTIVE_POOLS=Generic ora.racdb ora.racdb_rac_second
STATE_DETAILS=

轉(zhuǎn)換Policy-Managed Database為Administrator-Managed Database
A,檢查所有服務(wù)和數(shù)據(jù)庫(kù)的當(dāng)前配置(如果犯錯(cuò)需要恢復(fù),那么你可以知道當(dāng)你開始時(shí)配置如何),如下:
 [oracle@racdb01 ~]$ srvctl config database -d racdb
Database unique name: racdb
Database name: racdb
Oracle home: /app/product/oracle/11.2.0.4/db_1
Oracle user: oracle
Spfile: /app/product/oracle/11.2.0/db_1/dbs/spfileracdb1.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: mypool
Database instances: 
Disk Groups: ASM_DATA,ASM_FRA
Mount point paths: 
Services: rac_first,rac_second
Type: RAC
Database is policy managed

文檔說:
你不能直接轉(zhuǎn)換a policy-managed database為administrator-managed database。而是,你可以使用srvctl remove database和srvctl remove service 命令刪除policy-managed配置,然后使用srvctl add database和srvctl add instance命令注冊(cè)該數(shù)據(jù)庫(kù)為一個(gè)administrator-managed database。一旦你注冊(cè)了數(shù)據(jù)庫(kù)和實(shí)例,必需使用srvctl add service 命令添加回服務(wù)。

1.使用SRVCTL工具刪除數(shù)據(jù)庫(kù)
[oracle@racdb01 ~]$ srvctl remove database -d racdb
PRKO-3141 : Database racdb could not be removed because it was running  
如果數(shù)據(jù)庫(kù)正在運(yùn)行可以使用-f(force)刪除正在運(yùn)行的數(shù)據(jù)庫(kù)。但是不推薦使用該方式。
停止數(shù)據(jù)庫(kù)并刪除
[oracle@racdb01 ~]$ srvctl remove database -d racdb
PRKO-3141 : Database racdb could not be removed because it was running
[oracle@racdb01 ~]$ srvctl stop database -d racdb   
[oracle@racdb01 ~]$ srvctl status database -d racdb   
Instance racdb_1 is not running on node racdb01
Instance racdb2 is not running on node racdb02
[oracle@racdb01 ~]$ srvctl remove database -d racdb
Remove the database racdb? (y/[n]) y
[oracle@racdb01 ~]$ srvctl status database -d racdb   
PRCD-1120 : The resource for database racdb could not be found.
PRCR-1001 : Resource ora.racdb.db does not exist

2.添加administrator-managed數(shù)據(jù)庫(kù)
[oracle@racdb01 ~]$ srvctl add database -d racdb -o /app/product/oracle/11.2.0.4/db_1 -y automatic
[oracle@racdb01 ~]$ srvctl config database -d racdb 
Database unique name: racdb
Database name: 
Oracle home: /app/product/oracle/11.2.0.4/db_1
Oracle user: oracle
Spfile: 
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: racdb
Database instances: 
Disk Groups: 
Mount point paths: 
Services: 
Type: RAC
Database is administrator managed

3.添加數(shù)據(jù)庫(kù)實(shí)例
[oracle@racdb01 ~]$ srvctl add instance -d racdb -i racdb1 -n racdb01  
[oracle@racdb01 ~]$ srvctl add instance -d racdb -i racdb2 -n racdb02  
[oracle@racdb01 ~]$ srvctl start database -d racdb   
[oracle@racdb01 ~]$ srvctl status database -d racdb 
Instance racdb1 is running on node racdb01
Instance racdb2 is running on node racdb02
[oracle@racdb01 ~]$ srvctl config database -d racdb 
Database unique name: racdb
Database name: 
Oracle home: /app/product/oracle/11.2.0.4/db_1
Oracle user: oracle
Spfile: 
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: racdb
Database instances: racdb1,racdb2
Disk Groups: ASM_DATA,ASM_FRA
Mount point paths: 
Services: 
Type: RAC
Database is administrator managed
如果有非默認(rèn)service需使用srvctl add service 命令添加回服務(wù)
4.你必需在最后一步配置Oracle Enterprise Manager

以上是“Oracle 11g RAC如何使用Manual和Policy Managed方法配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI