數(shù)據(jù)庫程序員面試分類真題16_第1頁
數(shù)據(jù)庫程序員面試分類真題16_第2頁
數(shù)據(jù)庫程序員面試分類真題16_第3頁
數(shù)據(jù)庫程序員面試分類真題16_第4頁
數(shù)據(jù)庫程序員面試分類真題16_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)庫程序員面試分類真題16簡答題1.

什么是OCR?正確答案:Oracle集群使用兩種類型的文件來管理集群資源和節(jié)點:OCR(OracleClusterRegistry,Oracle集群注(江南博哥)冊表)和VF(VotingFile,表決磁盤文件)。這兩種文件必須存放在共享存儲上。其中,OCR相當(dāng)于集群的控制文件,用于解決健忘問題,VF用于解決腦裂問題。在Oracle11.2中引入一個新的文件,稱作OLR(OracleLocalRegistry,Oracle本地注冊表),它只允許存放在本地。

Oracle集群軟件(Clusterware)把整個集群的配置信息放在共享存儲上,這個存儲就是OCR磁盤(OCRDisk)。OCR是OracleRAC配置信息倉庫,它管理集群節(jié)點的相關(guān)信息及實例到節(jié)點的映射信息。因此,OCR的內(nèi)容非常重要,對OCR的操作必須確保OCR內(nèi)容完整性。在整個集群運行過程中,并不是所有節(jié)點都能操作OCR磁盤,而只有一個節(jié)點能對OCR磁盤進行讀寫操作,這個節(jié)點叫作MasterNode。在每個節(jié)點的內(nèi)存中都有一份OCR內(nèi)容的拷貝,這份拷貝叫作OCRCache。同時,每個節(jié)點都有一個OCRProcess來讀寫OCRCache,但只有一個節(jié)點的OCRProcess能讀寫OCR磁盤中的內(nèi)容。當(dāng)OCR內(nèi)容發(fā)生改變時,由MasterNode的OCRProcess負(fù)責(zé)更新本地和其他節(jié)點的OCRCache內(nèi)容。

需要注意的是,OCR和VF的信息不會被分布到多塊磁盤上,如果用一塊磁盤保存OCR或VF,那么一定會保存完整的OCR和VF信息。

所有需要OCR內(nèi)容的其他進程,比如OCSSD、EVM等都被叫作ClientProcess。這些進程不會直接訪問OCRCache,而是向OCRProcess發(fā)送請求,借助OCRProcess獲得內(nèi)容。如果想要修改OCR內(nèi)容,也要由該節(jié)點的OCRProcess向MasterNode的OCRProcess提交申請,由MasterOCRProcess完成物理的讀寫,并同步所有節(jié)點OCRCache中的內(nèi)容。

OCR的結(jié)構(gòu)如下圖所示。

OCR中保存著整個集群中絕大部分資源的配置信息,配置信息以“Key-Value”并且采用樹形結(jié)構(gòu)來保存,所以,并沒有類似于數(shù)據(jù)文件的塊的概念。在OracleClusterware安裝的過程中,安裝程序會提示用戶指定OCR位置。用戶指定的這個位置會被記錄在/etc/oracle/ocr.loc(Linux或AIX)或者/var/opt/oracle/ocr.loc(Solaris系統(tǒng))文件中。OracleClusterware在啟動時會根據(jù)這里面的內(nèi)容從指定位置讀入OCR內(nèi)容。

其中,ocrconfig_loc指定OCR的位置。如果為OCR指定了鏡像(Mirror),那么還會出現(xiàn)選項ocrmirrorconfig_loc,用于定義OCR鏡像的位置。loca_only指定是否是RAC系統(tǒng),如果這個值為FALSE,那么表示是RAC系統(tǒng),如果這個值為TRUE,那么表示是單實例系統(tǒng)(在使用ASM時需要)。

整個OCR的信息是樹形結(jié)構(gòu),有3個大分支,分別是SYSTEM、DATABASE和CRS。每個分支下面又有許多小分支。OCR記錄的信息只能由root用戶修改。[考點]RAC

2.

如何備份及恢復(fù)OCR?正確答案:與Oracle數(shù)據(jù)庫的備份恢復(fù)相似,OCR的備份也有物理備份和邏輯備份,因此有兩種備份方式和兩種恢復(fù)方式。物理備份是自動進行的,邏輯備份需要手動進行。

因為OCR的內(nèi)容如此重要,所以O(shè)racle每4個小時對其做一次物理備份,并且保留最后的3個物理備份,以及前一天、前一周的最后一個物理備份。用戶不能自定義物理備份頻率以及備份文件的副本數(shù)。這個備份由MasterNodeCRSD進程完成,備份的默認(rèn)位置在$GRID_HOME/cdata/<cluster_name>目錄下,也可由命令ocrconfig-showbackup獲取備份的位置。每次備份后,備份文件名自動更改,以反映備份時間順序,最近一次的備份叫作backup00.ocr。這些備份文件除了保存在本地,DBA還應(yīng)該在其他存儲設(shè)備上保留一份,以防止意外的存儲故障。備份目錄可以通過命令“ocrconfig-backuploc<directory_name>”修改。

使用ocrconfig-export方式產(chǎn)生的備份,統(tǒng)稱為邏輯備份。對于OCR的配置發(fā)生重大的變化前后,如添加刪除節(jié)點、修改集群資源、創(chuàng)建數(shù)據(jù)庫等,都建議使用邏輯備份。對于由于錯誤配置而導(dǎo)致的OCR被損壞的情形,可以使用ocrconfig-import方式進行恢復(fù)。邏輯備份的恢復(fù)方式和物理備份的恢復(fù)方式一致,這里不再贅述。

對OCR的恢復(fù)還可以采用dd、kfed及md_restore命令進行,這里不再詳述。[考點]RAC

3.

什么是OLR?正確答案:OCR是用于保存CRSD所管理的資源的注冊表,但是在CRSD啟動之前集群還有很多初始化資源(例如ASM實例)需要啟動,所以,只有OCR是不夠的。因此,Oracle在11gR2版本中推出了另一種注冊表OLR(OracleLocalRegistry,Oracle本地注冊表)。OLR類似于Oracle集群注冊表,但是OLR只存儲與本地節(jié)點有關(guān)的信息。OLR不與集群中的其他節(jié)點共享。OLR存儲了集群啟動初期ohasd(OracleHighAvailabilityService)使用的重要環(huán)境,如Oracle集群件的版本、配置等。如果OLR丟失或損壞,那么將會導(dǎo)致ohasd進程啟動失敗。所以,OLR的主要作用就是為ohasd守護進程提供集群的配置信息和初始化資源的定義信息。

Oracle在一個名為/etc/oracle/olr.loc(Linux或AIX)或者/var/opt/oracle/olr.loc(Solaris系統(tǒng))的文本文件中存儲了OLR配置文件的位置。當(dāng)集群啟動時,ohasd會從該文件中讀取OLR的位置。對于集群環(huán)境(GICluster)而言,OLR的文件名一般為$GRID_HOME/cdata/<hostname.olr>,而對于單節(jié)點(GIStandalone,OracleRestart)而言,OLR的文件名一般為$GRID_HOME/cdata/localhost/<hosmame.olr>。下例為集群環(huán)境的配置:

[grid@rae02/]$more/etc/oracle/olr.loc

olrconfig_loc=/u01/app/11.2.0/grid/cdata/rac02.olr

crs_home=/u01/app/11.2.0/grid

OLR的結(jié)構(gòu)仍然沿用了和OCR相同的樹形結(jié)構(gòu),而且其中的信息組織形式和OCR也是相同的。所以,其維護類似于OCR的維護過程。它們常用到的維護工具有ocrconfig、ocrdump和ocrcheck。其中,加上-local表示對OLR的操作,否則是對OCR的操作。

1)ocrcheck對OCR/OLR執(zhí)行快速健康檢查,并輸出空間使用統(tǒng)計信息。

2)ocrdump將OCR/OLR的內(nèi)容轉(zhuǎn)儲到一個操作系統(tǒng)文件。

3)ocrconfig對OCR/OLR執(zhí)行導(dǎo)入、導(dǎo)出、添加、替換、刪除、恢復(fù)和顯示備份操作。[考點]RAC

4.

OLR如何進行備份恢復(fù)?正確答案:OLR的備份策略和OCR的有所不同,默認(rèn)情況下GI在初始安裝時會在路徑SGRID_HOME/cdata/<節(jié)點名>下產(chǎn)生一個備份。

[root@orclalhrorclalhr]#cd

[root@orclalhr~]#cd/u01/app/11.2.0/grid/cdata/orclalhr

[root@orclalhrorclalhr]#11

total5608

-rw-------1gridoinstall5742592May1

2015backup_20150501_174602.olr

OLR不會被自動備份,如果在集群的一些配置信息發(fā)生改變后,需要使用下面的命令手動進行備份:

[root@orclathrorclalhr]#ocrconfig-local-manualbackup

orclalhr

2017/03/0910:21:51

/u01/app/11.2.0/grieVedata/orclalhr/baekup_20170309_102151.olr

orclalhr

2015/05/0117:46:02

/u01/app/11.2.0/grid/cdata/orclalhr/backup_20150501_174602.olr

建議在集群的重要配置信息(例如,集群私網(wǎng)配置)發(fā)生改變之后,使用命令ocrconfig-local-manualbackup手動備份OLR。當(dāng)OLR丟失之后,可以使用命令“ocrconfig-local-restore<OLR備份文件>”來恢復(fù),不能從集群的其他節(jié)點復(fù)制OLR到本地節(jié)點,這是因為OLR中保存的一些信息是針對本地節(jié)點的。如果需要驗證OLR的一致性,那么可以使用ocrcheck-local命令。簡單地說,所有適用于OCR的命令同樣適用于OLR,但是需要增加-local選項。

對于OLR的備份恢復(fù)簡單過程如下(M0s:1193643.1和1368382.1):

<GI_HOME>/bin/ocrconfig-local-manualbackup

<GI_HOME>/bin/ocrconfig-local-showbackup

ps-ef|grepohasd.bin

<GI_HOME>/bin/crsct1stopcrs<============forGICluster

<GI_HOME>/bin/crsct1stophas<============forStandalone

<GI_HOME>/bin/ocrconfig-local-restore<o(jì)lr-backup>

<GI_HOME>/bin/crsctlstartors<============forGICluster

<GI_HOME>/bin/crsct1starthas<=============forGIStandalone,thismustbedoneasgriduser.[考點]RAC

5.

什么是VF(VotingFile)?正確答案:表決磁盤(VotingDisk)也叫仲裁盤(QuorumDisk),表決磁盤的作用是保存VF(VotingFile,表決磁盤文件)。VF的作用是實現(xiàn)集群的磁盤心跳,主要用于記錄節(jié)點成員狀態(tài)信息,例如,包含哪些節(jié)點成員,節(jié)點添加刪除信息的記錄等。在集群出現(xiàn)腦裂時,VF可以用來決定哪個節(jié)點獲得控制權(quán),其他的節(jié)點必須從集群中剔除,即在集群出現(xiàn)腦裂時,可以提供解決方案。表決磁盤存儲在ASM中,有如下幾點要求:

1)表決磁盤文件必須全部放入ASM中。

2)表決磁盤存在ASM中的個數(shù)不能修改,而是通過ASM的NORMAL、HIGH、EXTERNAL冗余級別決定的。例如,在NORMAL中必須有3個故障組3個表決磁盤,在HIGH中必須要有5個故障組5個表決磁盤,在EXTERNAL只有1個表決磁盤。

3)表決磁盤文件在Oracle11gR2中不再支持dd命令對其進行備份和還原,而是支持crsct1相關(guān)命令或自動備份。在Oracle11gR2之前的版本,如果要備份表決磁盤的內(nèi)容,那么只有使用dd命令進行備份。

4)表決磁盤文件的個數(shù)必須是奇數(shù),便于投票選舉,且表決磁盤文件的個數(shù)最多為15個,但一般沒必要超過5個。

在安裝集群時也會提示指定表決磁盤的位置。安裝完成后可以通過如下命令來查看表決磁盤的位置:

另外,也可以從V$ASM_DISK這個視圖中查詢,VOTING_FILE列為Y的表示包含表決磁盤。

表決磁盤的配置位置是在GPnPprofile文件中。對于表決磁盤的維護有很多命令,這里不再詳述。

最后需要說明的一點是,如果表決磁盤損壞,而OCR或OLR的備份不可用,那么可以通過重新執(zhí)行root.sh腳本的方式來修復(fù)OCR,修復(fù)之后除OCR磁盤組外的所有磁盤組,只要磁盤頭沒有損壞,就都可以直接對磁盤組進行MOUNT操作來恢復(fù)業(yè)務(wù)數(shù)據(jù)庫。因此,強烈建議OCR磁盤和其他存放數(shù)據(jù)庫數(shù)據(jù)的磁盤分開存放。

下表對OCR和VF做簡單比較。

OCR(OracleClusterRegistry,Oracle集群注冊表)VF(VotingFile,表決磁盤文件)簡介OCR相當(dāng)于集群的控制文件,保存了集群中絕大部分資源的配置信息,用于解決健忘問題。在Oracle11.2中引入一個新的文件,稱作OLR(OracleLocalRegistry,Oracle本地注冊表),它只允許存放在本地表決磁盤(VotingDisk)的作用是保存VF。VF的作用是實現(xiàn)集群的磁盤心跳,主要用于記錄節(jié)點成員狀態(tài)信息。在集群出現(xiàn)腦裂時,VF可以提供解決方案查找命令ocrcheckcrsct1querycssvotedisk解決健忘問題腦裂問題共性O(shè)CR和VF的信息不會分布到多塊磁盤上都可以通過root.sh腳本來修復(fù)[考點]RAC

6.

集群中的MasterNode體現(xiàn)在哪兩個方面?正確答案:在RAC中有兩種Masters,一種是Clusterware層面的,另一種是Block層面的Masters。

首先,對于Clusterware層面的MasterNode來說,OCRMaster是負(fù)責(zé)更新OCR的,而且也只有OCRMaster才可以更新OCR的內(nèi)容。默認(rèn)集群中首先啟動的節(jié)點就是OCRMaster。當(dāng)OCRMaster的crsd.bin進程停止或重啟的時候,此時集群中其他存活的crsd.bin進程的節(jié)點中NodeNumber最小的就成為新的OCRMaster。

有兩種辦法可以查詢OCRMaster。

第一種辦法是查詢?nèi)罩荆?/p>

grep"OCRMASTER"$ORA_CRS_HOML/log/$HOST/crsd/crsd.1*

第二種辦法是查詢OCR的自動備份。OCR自動備份只發(fā)生在MasterNode。如果MasterNode備份OCR失敗,那么OCR備份會在新的Master上進行??赏ㄟ^執(zhí)行如下命令查看OCR備份信息:

$ocrcontig-showbackup

----OCR自動備份默認(rèn)每4小時一次

對于Block層面的Masters主要用于CacheFusion。任何節(jié)點都可以成為特定Block的MasterNode,可以通過V$GES_RESOURCE中的MASTER_NODE列查詢。[考點]RAC

7.

cluvfy工具的作用是什么?正確答案:cluvfy(ClusterVerificationUtility,集群檢驗工具),簡稱CVU,是隨Oracle集群管理軟件一起發(fā)布的檢查工具。它的功能是對整個集群系統(tǒng)實施過程的各個階段以及各個組件進行檢查,并驗證是否滿足Oracle的要求。cluvfy能對集群提供非常廣泛的檢查,包括OS硬件配置、內(nèi)核參數(shù)設(shè)置、用戶資源限制設(shè)置、網(wǎng)絡(luò)設(shè)置、NTP設(shè)置、RAC組件健康性等。cluvfy在進行檢查時并不會修改系統(tǒng)配置,所以不會對系統(tǒng)造成影響。cluvfy檢查的內(nèi)容可以從兩個角度進行分類:階段(Stage)和組件(Component)。

使用命令cluvfystage-list可以查看所有階段。使用命令cluvfycomp-list可以查看所有組件。將list修改為help可以查看相應(yīng)的命令。

比較常用的就是使用cluvfy命令進行安裝集群之前的系統(tǒng)檢查,如下:

$ORACLE_HOME/bin/cluvfystage

--precrsinst-nall-r11gR2-verbose-fixup

其中,-n選項表示需要檢查的節(jié)點列表。這里需要所有列出的節(jié)點之間的用戶等效性已經(jīng)配置成功。

-r表示需要安裝的軟件版本,可以使用help查看支持的軟件版本。

-verbose表示列出檢查內(nèi)容的詳細信息。[考點]RAC

8.

cvuqdisk包的作用是什么?正確答案:在安裝RAC的過程中,如果沒有安裝cvuqdisk包,那么集群檢驗工具(ClusterVerificationUtility,CVU)就不能發(fā)現(xiàn)共享磁盤。而且,如果沒有安裝該包或者安裝的版本不對,那么當(dāng)運行集群檢驗工具的時候就會報“PRVF-10037:Failedtoretrievestoragetypefor"<devicepath>"onnode"<node>"”“Couldnotgetthetypeofstorage”或“PRVF-07017:Packagecvuqdisknotinstalled”的錯誤。cvuqdisk的RPM包含在OracleGridInfrastructure安裝介質(zhì)上的rpm目錄中。以root用戶在RAC的2個節(jié)點上都進行安裝,如下:

exportCVUQDISK_GRP=oinstall

rpm-ivcvuqdisk-1.0.9-1.rpm[考點]RAC

9.

哪個列可以用來區(qū)別V$視圖和GV$視圖?正確答案:GV$視圖中的INST_ID列指明集群環(huán)境中具體的某個實例(INSTANCE)。[考點]RAC

10.

oraInventory目錄的作用是什么?正確答案:由于Oracle支持將多個Oracle軟件(或者多版本的數(shù)據(jù)庫軟件)安裝到同一臺服務(wù)器上,這就需要一個位置統(tǒng)一記錄安裝的軟件信息。中央目錄(CentralInventory)實際上就是一臺主機上安裝的Oracle產(chǎn)品清單。在這個清單里記錄了每一個Oracle軟件主目錄的名稱和位置、安裝的組件,以及一些其他的信息。OUI在安裝產(chǎn)品時會讀取中央目錄來確認(rèn)已經(jīng)安裝過的產(chǎn)品信息,確保新安裝的產(chǎn)品不會和已存在的產(chǎn)品沖突,而且不會覆蓋掉原有的產(chǎn)品。另外,Oracle的集群和數(shù)據(jù)庫軟件在進行升級時,OUI也是通過讀取中央目錄中的信息來確認(rèn)哪些軟件應(yīng)被安裝。中央目錄所有的Oracle軟件安裝都依賴于該目錄,所以,要確保該目錄已經(jīng)備份,刪除或丟失oraInventory目錄的內(nèi)容,都有可能導(dǎo)致安裝或升級報錯。另外,Oracle的軟件產(chǎn)品通常比較復(fù)雜,包含很多組件,所以還需要一個更加細致的清單來記錄每一個ORACLE_HOME下所安裝的產(chǎn)品組件。而本地目錄(LocalInventory)就是這樣一個清單,它記錄了每個產(chǎn)品所安裝的組件,以及每個組件上應(yīng)用過的補丁程序信息。

oraInventory目錄的位置是由oraInst.loc文件決定的。

●AIX和Linux平臺:/etc/oraInst.loc;

●Solaris和HP-UX平臺:/var/opt/oracle/OraInst.loc;

●Windows平臺:HKEY_LOCAL_MACHINE/Software/Oracle/inst.loc。

默認(rèn)情況下它保存在$ORACLE_BASE上一層路徑的oraInventory路徑下,例如:

[oracle@orclalhr~]$more/etc/oraInst.loc

inventory_loc=/u01/app/oraInventory

inst_group=oinstall

一旦中央目錄文件出現(xiàn)了損壞,可嘗試使用以下的兩種方式恢復(fù)該文件。

方式1:如果其他節(jié)點的inventory.xml沒有損壞,可以將其復(fù)制到本地節(jié)點以覆蓋原有文件。

方式2:使用$GRID_HOME/oui/bin/runInstaller工具重建inventory.xml文件。例如:

步驟1:添加GI_HOME。

./runInstaller-silent-ignoreSysPrereqs-attachHomeORACLE_HOME="/u01/app/11.2.0/grid"ORACLE_HOME_NAME="OraGI11Home1"CLUSTER_NODES=test1,test2CRS=true"INVENTORY_LOCATION=/u01/app/oraInventory"LOCAL_NODE=test1

步驟2:添加RDBMS_HOME。

./runInstaller-silent-ignomSysPrereqs-attachHomeORACLE_HOME="/u02/app/oracle/product/11.2.0/db_1"ORACLE_HOME_NAME="OraDB11Home1"CLUSTER_NODES=test1,test2CRS=true"INVENTORY_LOCATION=/u01/app/oraInventory"LOCAL_NODE=test1

作者就曾遇到過一次與該目錄有關(guān)的異常:在RAC環(huán)境中,無論使用DBCA圖形界面還是采用靜默方式來創(chuàng)建數(shù)據(jù)庫,最終創(chuàng)建的數(shù)據(jù)庫都是單實例數(shù)據(jù)庫,不能成功創(chuàng)建所需要的RAC庫,最后查到的原因竟然是/u01/app/oraInventory/ContentsXML/inventory.xml文件中缺少了DB的部分。

這里順便介紹一下LocalInventory的作用。LocalInventory用于保存某一個ORACLE_HOME下所安裝的組件清單,它位于$ORACLE_HOME/inventory下。由于LocalInventory針對特定的軟件主目錄,所以并不存在inventory.xml文件。文件$ORACLE_HOME/inventory/ContentsXML/comps.xml記錄了對應(yīng)主目錄下安裝的所有組件。通常情況下,由于每一個Oracle產(chǎn)品都包含了很多組件,所以comps.xml文件的結(jié)構(gòu)也很復(fù)雜。[考點]RAC

11.

談?wù)剬racle中RAC用到的CacheFusion的理解。正確答案:CacheFusion即緩存融合,它能實現(xiàn)RAC在各個節(jié)點之間同步SGA中的緩存信息,從而達到提高訪問速度的效果,也保證了數(shù)據(jù)的一致性。要發(fā)揮CacheFusion的作用,要有一個前提條件,那就是網(wǎng)絡(luò)的速度要比訪問磁盤的速度要快;否則,沒有引入CacheFusion的意義。

CacheFusion就是通過集群私網(wǎng)在各節(jié)點的SGA之間進行塊傳遞,以避免首先將塊推送到磁盤,然后再重新讀入其他實例的緩存中這樣一種低效的實現(xiàn)方式。當(dāng)一個塊被讀入RAC環(huán)境中某個實例的緩存時,該塊會被賦予一個鎖資源(與行級鎖不同),以確保其他實例知道該塊正在被使用。之后,如果另一個實例請求該塊的一個副本,而該塊已經(jīng)處于前一個實例的緩存內(nèi),那么該塊會通過私網(wǎng)直接被傳遞到另一個實例的SGA。如果內(nèi)存中的塊已經(jīng)被改變,但改變尚未提交,那么將會傳遞一個CR(ConsistentRead)副本。這就意味著只要可能,數(shù)據(jù)塊無須寫回磁盤即可在各實例的緩存之間移動,從而避免了同步多實例的緩存所花費的額外I/O。很明顯,不同的實例緩存的數(shù)據(jù)可以是不同的,也就是在一個實例要訪問特定塊之前,而它又從未訪問過這個塊,那么它要么從其他實例CacheFusion過來,要么從磁盤中讀入。[考點]RAC

12.

集群安裝過程中的$GRID_HOME/root.sh腳本的作用是什么?正確答案:該腳本主要執(zhí)行CRS的配置、格式化OCR磁盤、更新/etc/inittab文件、啟動ocssd進程、新建/etc/oracle/ocr.loc文件等,是RAC安裝過程中非常重要的一步。若后期OCR、OLR或表決磁盤出現(xiàn)問題都可以通過重新執(zhí)行root.sh腳本來修復(fù)集群的配置信息。

重新執(zhí)行root.sh腳本的過程如下:

$GRID_HOME/crs/install/rootcrs.pl-deconfig-force-verbose

--卸載配置信息

--$GRID_HOME/crs/install/rootcrs.pl-deconfig-force-verbose-lastnode-keepdg

--最后一個節(jié)點可以保留磁盤組

ddif=/dev/zeroof=/dev/rhdiskNbs=1024kcount=1024

--清理磁盤頭

$DRID_HOME/root.sh

-重新執(zhí)行

另外,deconfig執(zhí)行完后可以考慮刪除以下文件:

ls-1$GRID_BASE/Clusterware/ckptGridHA*

fredSGRID_HOME/gpnp/*-typef

find$GRID_HOMF/gpnp/*-typef-execrm-rf{}\;

集群的配置信息包含在文件$GRID_HOME/crs/install/crsconfig_params中,root.sh腳本根據(jù)該文件的配置信息設(shè)置OCR的內(nèi)容。在執(zhí)行root.sh腳本的過程中產(chǎn)生的日志在目錄$GRID_HOME/cfgtoollogs/crsconfig/下。[考點]RAC

13.

如何徹底清除OCR的配置信息?正確答案:根據(jù)MOS文檔“HowtoProceedfromFailed11gR2GridInfrastructure(CRS)Installation(文檔ID942166.1)”的描述,若要重新執(zhí)行root.sh腳本,可以如下操作:

1)在除最后一個節(jié)點外的所有節(jié)點執(zhí)行:$GRID_HOME/crs/instail/rootcrs.pl-deconfig-force-verbose

2)在最后一個節(jié)點執(zhí)行:$GRID_HOME/crs/install/rootcrs.pl-deconfig-force-verbose-lastnode

3)重啟所有節(jié)點后再執(zhí)行:$GRID_HOME/root.sh

需要注意的一點是,在執(zhí)行完$GRID_HOME/crs/install/rootcrs.pl-deconfig-force-verbose后需要刪除如下文件:

[考點]RAC

14.

如果$GRID_HOME下的權(quán)限被人為修改過,那么如何來修復(fù)該權(quán)限問題?正確答案:使用chown-R誤操作將整個$GRID_BASE的權(quán)限修改了,或者刪除了$GRID_HOME/log文件夾下的所有內(nèi)容,導(dǎo)致集群不能啟動。在這種情況下可以根據(jù)MOS文檔:TipsforcheckingfilepermissionsonGRIDenvironment(ID1931142.1)來修復(fù)該問題。

該文檔中描述到,在$GRID_HOME/crs/utl(Oracle11.2及12.1.0.1)或<GRID_HOME>/crs/utl/<hosmame>(Oracle12.1.0.2)下面的crsconfig_dirs和crsconfig_fileperms文件中記錄了整個$GRID_HOME下面的文件和目錄的相關(guān)權(quán)限。

可以通過命令“cluvfycompsoftware-nall-verbose”來校驗集群的權(quán)限是否正確。

所以要解決這個問題其實并不難,大致可以通過如下幾種方法來解決:

1)根據(jù)MOS文檔提供的建議,通過$GRID_HOME/crs/install/rootcrs.pl-init或rootbas.pl-init進行解決。rootcrs.pl-init是在PSU>11.2.0.3.6下執(zhí)行的,如果PSU<11.2.0.3.6,則可以執(zhí)行如下兩條命令來實現(xiàn)同樣的效果。

<GRID_HOME>/crs/install/rootcrs.pl-unlock

<GRID_HOME>/crs/install/rootcrs.pl-patch

2)采用MOS文檔1515018.1上提供的腳本在正常庫上生成腳本,然后將生成的腳本在異常庫上執(zhí)行,從而來修復(fù)權(quán)限問題。

3)Oracle11gR2可以刪除CRS的配置,然后重新運行root.sh即可。如果OCR和數(shù)據(jù)庫不在同一個磁盤組里,那么重新運行root.sh腳本并不影響數(shù)據(jù)庫,所以無須擔(dān)心。

$GRID_HOME/crs/install/rootcrs.pl-deconfig-force-verbose

$GRID_HOME/root.sh

4)MOS文檔1515018.1上提供了一個修復(fù)腳本:permission.pl。可以根據(jù)該腳本來修復(fù)。

在安裝有GI的環(huán)境下,權(quán)限、屬主是嚴(yán)格被設(shè)定的,任何對它們的錯誤修改容易引發(fā)一系列的問題,而且這些問題往往都很詭異,很難按照常規(guī)的思路去診斷。一旦出現(xiàn)權(quán)限的問題,作者建議按第1)和第3)種方式來修改。

如果可執(zhí)行文件$ORACLE_HOME/bin/oracle的屬主或權(quán)限設(shè)定出了問題,那么可能會造成很多問題。例如,無法登錄到數(shù)據(jù)庫、ora-600錯誤、“TNS-12518:TNS:listenercouldnothandoffclientconnection”“LinuxError:32:Brokenpipe”“ORA-12537:TNS:connectionclosed”、訪問ASM磁盤出錯等。解決辦法很簡單,可以在grid用戶下運行setasmgidwrap命令重新配置$ORACLE_HOME/bin/oracle可執(zhí)行文件的權(quán)限和屬主,或者直接將oracle文件的權(quán)限修改為6751。$ORACLE_HOME/bin/oracle可執(zhí)行文件正確屬主應(yīng)該是oracle:asmadmin,并且權(quán)限必須有s共享才可以,如下:

[考點]RAC

15.

在Linux下如何快速卸載RAC?正確答案:卸載RAC可以通過普通的腳本方式,如下:

1)卸載GRID軟件,grid用戶執(zhí)行:$ORACLE_HOME/deinstall/deinstall。

2)卸載ORACLE軟件,oracle用戶執(zhí)行:$ORACLE_HOME/deinstall/deinstall。

但是,腳本的方式卸載慢,多半卸載不成功,所以這個時候就需要手工進行卸載。手工卸載的方式就是手工刪除一系列的RAC軟件及配置信息。在Linux下手工卸載RAC的步驟如下:

①rm-rf/etc/ora*。

②rm-rf/var/tmp/.oracle。

③修改/etc/inittab文件,若是Oracle10g則刪除以下3行:

h1:2:respawn:/etc/init.evmdrun>/dev/null2>&1</dev/null

h2:2:respawn:/etc/init.cssdfatal>/dev/null2>&1</dev/null

h3:2:respawn:/etc/init.crsdrun>/dev/null2>&1</dev/null

若是Oracle11g則刪除以下1行:

h1:35:respawn:/etc/init.d/init.ohasdrun>/dev/null2>&1</dev/null

④rm-rf/tmp/*。

⑤rm-rf/u01/app/grid/*

--刪除GRID目錄。

⑥r(nóng)m-rf/u01/app/oracle/*

--刪除Oracle目錄。

⑦rm-rf/u01/app/oraInventory/*。

⑧清除OCR、Voting及數(shù)據(jù)庫使用過的磁盤。

ddif=/dev/zeroof=/dev/raw/raw1bs=104857600count=1

ddif=/dev/zeroof=/dev/raw/raw2bs=104857600count=1

最后,重啟2個節(jié)點。以上手工卸載的步驟也可以用于卸載單實例的數(shù)據(jù)庫和GRID。[考點]RAC

16.

在Windows下如何快速干凈地卸載Oracle軟件?正確答案:在Windows下手工卸載RAC的步驟如下:

①開始->設(shè)置->控制面板->管理工具->服務(wù),或運行services.msc打開服務(wù),停止所有Oracle服務(wù)。

②刪除Oracle和GRID的安裝目錄。

③刪除C:\ProgramFiles\Oracle目錄。

④刪除C:\windows\temp和C:\temp以及C:\Users\Administrator\Oracle下的文件。

⑤運行regedit,打開注冊表編輯器,選擇HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,刪除該項。

⑥運行regedit,打開注冊表編輯器,選擇HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滾動這個列表,刪除所有Oracle開頭的項。

⑦運行regedit,打開注冊表編輯器,選擇HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,刪除所有Oracle入口。

⑧開始->設(shè)置->控制面板->系統(tǒng)->高級->環(huán)境變量,刪除環(huán)境變量CLASSPATH和PATH中有關(guān)Oracle的設(shè)定。

⑨從桌面上、STARTUP(啟動)組、程序菜單中,刪除所有有關(guān)Oracle的組和圖標(biāo)。

⑩重新啟動計算機,重啟后才能完全刪除Oracle所在目錄。

若個別文件不能刪除,則說明該文件與某個Windows服務(wù)相關(guān)聯(lián),可以先把相關(guān)聯(lián)的服務(wù)停止后再刪除。

以上手工卸載的步驟也可以用于卸載單實例的數(shù)據(jù)庫和GRID。[考點]RAC

17.

在RAC環(huán)境中,如何在當(dāng)前的實例下殺掉另外一個實例的會話?正確答案:在Oracle11g中很好實現(xiàn),只需要在命令“ALTERSYSTEMKILLSESSION'SID,SERIAL#'IMMEDIATE;”中的SERIAL#后加上實例號即可。如果要殺掉實例2上的“71,20925”的會話,那么在任意一個節(jié)點上執(zhí)行:“ALTERSYSTEMDISCONNECTSESSION'71,20925,@2'IMMEDIATE;”即可,但是Oracle11g以下版本的RAC中就只能連接到相應(yīng)的實例上才能殺掉當(dāng)前實例的會話。其實,有一種折中的辦法就是創(chuàng)建JOB,讓該JOB在指定的實例上運行KILLSESSION的命令,這個具體代碼留給讀者來完成。[考點]RAC

18.

RAC等待事件gcbufferbusyacquire和gcbufferbusyrelease的區(qū)別是什么?正確答案:gcbufferbusy是RAC數(shù)據(jù)庫中常見的等待事件,從Oracle11g開始gcbufferbusy分為gcbufferbusyacquire和gcbufferbusyrelease。

gcbufferbusyacquire是當(dāng)會話1嘗試請求訪問遠程實例上的數(shù)據(jù)塊,但是在會話1之前已經(jīng)有相同實例上另外一個會話2請求訪問了相同的數(shù)據(jù)塊,并且沒有完成,那么會話1等待gcbufferbusyacquire。

gcbufferbusyrelease是在會話1之前已經(jīng)有遠程實例的會話2請求訪問了相同的數(shù)據(jù)塊,并且沒有完成,那么會話1等待gcbufferbusyrelease。[考點]RAC

19.

有哪些角色可以管理ASM實例,它們之間的區(qū)別有哪些?正確答案:能夠管理ASM實例的角色有如下三種:組描述OS指定的組具有的權(quán)限簡介OSASMasmadminSYSASMASM所有管理工作OSDBAasmdbaSYSDBA訪問磁盤組上的文件,數(shù)據(jù)庫實例所在用戶必須是此組成員,因為要對數(shù)據(jù)文件進行操作,注意只有基于數(shù)據(jù)庫層面的操作權(quán)限,沒有底層磁盤組層面的操作權(quán)限,且不能肩停ASM實例OSOPERasmoperSYSOPERSTARTUP、SHUTDOWN、MOUNT、DISMOUNT和檢查磁盤組

通常oracle用戶和grid用戶必須是asmdba組成員,此外,grid用戶還必須是asmadmin、asmoper組的成員。安裝ASM或RAC時默認(rèn)創(chuàng)建ASMSNMP用戶,該用戶為OPEN狀態(tài)并被賦予了SYSDBA權(quán)限。OEM需要該用戶來監(jiān)控ASM實例并從ASM實例相關(guān)的數(shù)據(jù)字典中獲取數(shù)據(jù)。在ASM實例中,通過視圖V$PWFILE_USERS可以查看該用戶的信息。[考點]RAC

20.

RAC節(jié)點被踢出可能有哪些原因?正確答案:可能的原因包括服務(wù)器負(fù)載嚴(yán)重或內(nèi)核HANG住、網(wǎng)絡(luò)心跳丟失、磁盤心跳丟失、CSSD進程HANG住。[考點]RAC

21.

RAC環(huán)境下的Redo文件可以放在節(jié)點本地嗎?正確答案:不能。同單實例的系統(tǒng)一樣,在RAC環(huán)境中,每個節(jié)點實例都需要至少兩組Redo日志文件,且每個節(jié)點實例有自己獨立的Redo日志線程(由初始化參數(shù)THREAD定義),例如:

RAC環(huán)境中的Redo日志文件必須部署到共享存儲中,而且需要保證可被集群內(nèi)的所有節(jié)點實例訪問到。當(dāng)某個節(jié)點實例進行實例恢復(fù)或介質(zhì)恢復(fù)的時候,該節(jié)點上的實例將可以應(yīng)用集群下所有節(jié)點實例上的Redo日志文件,從而保證恢復(fù)可以在任意可用節(jié)點進行。[考點]RAC

22.

RAC環(huán)境下“ALTERSYSTEMSWITCHLOGFILE;”與“ALTERSYSTEMARCHIVELOGCURRENT;”有什么區(qū)別?正確答案:“ALTERSYSTEMSWITCHLOGFILE;”僅對當(dāng)前發(fā)布節(jié)點上的對應(yīng)RedoThread進行日志切換并歸檔?!癆LTERSYSTEMARCHIVELOGCURRENT;”對集群內(nèi)所有節(jié)點實例上的RedoThread進行切換并歸檔(在節(jié)點實例可用情況下,分別歸檔到各節(jié)點主機的歸檔目的地,當(dāng)節(jié)點不可用時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論