天天看點

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

本節書摘來自異步社群出版社《循序漸進oracle:資料庫管理、優化與備份恢複》一書中的第1章,第1.2節,作者:蓋國強,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

循序漸進oracle:資料庫管理、優化與備份恢複

如果我們之前僅安裝了資料庫軟體(或者也應用了更新檔軟體),在完成安裝之後,可以通過運作dbca(database configuration assistant)來啟動資料庫建立過程。

dbca可以通過“開始”菜單中的選項來啟動,也可以通過指令行方式啟動,在指令行鍵入“dbca”則可以啟動資料庫建立助手界面,如圖1-9所示。

在windows系統上,通過指令行來運作dbca指令,實際上調用的是$oracle_homebin下的dbca.bat批處理檔案,可以簡略地看一下這個批處理檔案的内容(省略了部分内容):

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

可以看到在設定了一系列的環境變量之後,通過調用java運作時環境啟動了java工具dbca。

在unix系統中原理類似,來看下面一段取自sun solaris環境(現在已經變成了oracle solaris)下的代碼:

摘錄一點dbca檔案的代碼:

同樣最後一行指令啟動了java應用dbca工具。以上就是dbca的初始化及啟動。

啟動dbca之後,就可以通過圖形界面進行資料庫各項參數的配置,下面對幾個重要步驟進行一點說明。

在如圖1-10所示的選擇資料庫模闆界面中,可以選擇使用模闆來建立資料庫或者通過自定義方式來建立。注意,右圖來自oracle database 11gr2版本的相同界面,在這個界面上,已經帶有明确的提示文字,指出“帶資料檔案的模闆包含預先建立的資料庫”,使用這樣的模闆可以在數分鐘内建立完資料庫,否則需要一個小時甚至更長時間。這些說明解釋清楚了很多必要的問題。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

我們選擇通過自定義方式建立資料庫,在界面中選擇“定制資料庫”即可。**定制資料庫不包含資料檔案,需要實時建立,使用模闆則會使用“種子資料庫(seed database)”的備份集恢複出預先建立好的資料檔案。

**

接下來的步驟3需要定義一個資料庫名稱和sid,步驟4則引入了自oracle database 10g開始的基于浏覽器的database control項,此處通常選擇預設配置“使用enterprise manger配置資料庫”複選框即可,如圖1-11所示。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

在oracle database 11gr2的步驟4中,增加了一個選項頁,用于定義自動維護任務,在這個頁面,使用者可以選擇是否啟用自動維護任務,這些任務包括“優化程式統計資訊收集和預防性指導報告”,如圖1-12所示。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

oracle的每一個小的改動都有其背後的深層原因,在oracle database 10g中,自動運作的維護任務影響了很多正常的業務運作,導緻故障,是以在這裡,oracle将選擇權交給使用者。觀察oracle的每個變動非常有助于我們了解資料庫的變革。參考1.4小節可以獲得相關診斷案例。

這些預設啟用的任務可以通過dba_autotask_task視圖查詢獲得,以下是oracle 11gr2 11.2.0.2版本的自動任務定義:

我們知道在oracle 9i之前,資料庫會為資料庫使用者指定預設密碼,sys使用者的預設密碼為change_on_install,system的預設密碼為manager,但是由于很多使用者經常忘記修改預設密碼,進而可能為資料庫留下安全隐患,是以從oracle 9i開始,oracle要求使用者在建立資料庫時自行指定使用者密碼。

在圖1-13左圖中可以簡單地為所有初始使用者定義一個預設密碼,但是這樣顯然不夠安全,右圖是oracle 11gr2版本的界面,oracle将左圖中選項上下置換,預設的就要求為所有使用者指定不同的密碼,小小的變化昭示着安全上的重視與增強。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

步驟6是如圖1-14所示的存儲選項界面,該界面用于選擇資料庫的存儲機制,通常可以選擇檔案系統存儲,從oracle 10g開始oracle引入了自動存儲管理(automatic storage management)的新特性,我們将在後面章節詳細介紹這一新特性。從oracle database 11gr2開始,oracle放棄了對于裸裝置的支援,在選擇存儲選項時也就少了一個選項(僅有檔案系統和asm兩個選項),圖1-14的右圖來自oracle 11gr2的安裝截圖。

注意,由于asm技術主要是為rac叢集資料庫開發的,是以在單機上使用asm需要進行一些特殊的配置,在oracle 10g中,需要啟動css服務,在oracle 11gr2中,需要安裝grid infrastructure,圖1-15的左圖是10g中的提示資訊,右圖是11gr2中的提示資訊,詳細内容可以參考本書的第6章。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫
《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

步驟7和步驟8涉及空間位置的設定。其中步驟7指定資料庫檔案所在位置界面,資料庫檔案存儲位置可以選擇“使用oracle管理的檔案”選項,這實際上就是利用了oracle 9i中引入的一個新特新omf(oracle managed files),在oracle 11g的安裝界面中,這個步驟被整合到了步驟6中。步驟8中恢複配置界面,該界面用于指定快速恢複區(flash recovery area),這是oracle 10g的一個新特性,用于簡化使用者的備份管理,快速恢複區可以是磁盤上的一個存儲目錄,也可以使用asm存儲,這裡可以按照具體的需要設定。同時還可以在這個頁面上選擇是否啟動資料庫的歸檔模式,如圖1-16所示。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

單擊“下一步”按鈕,進入如圖1-17所示的選擇資料庫元件和定制腳本界面,oracle的資料庫元件有很多,為了簡化和快速安裝,可以去除大部分選項(這要根據需要進行選擇,如果為了建構一個簡化的測試資料庫,則可以去除多數選件)。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

步驟10中包含了多個選項頁,其中涵蓋了大量重要的配置選項。

進入如圖1-18所示的初始化參數界面,其中記憶體選項可以暫時接受資料庫的初始推薦,這些參數可以在建庫後再進行修改;右圖是11g的設定頁面,變化不大。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

在這個記憶體設定頁面,實際上隐含了oracle資料庫從10g到11g的記憶體管理變化,在10g中,通過設定sga_target參數可以實作對于sga的自動管理,而在11g中,通過設定memory_target參數可以實作對于sga+pga的統一記憶體調整和管理,這一變化隐藏在這一頁面設定的背後,oracle的記憶體管理自動化在不同版本中在不斷改進和增強。

在這個頁面可以為oracle的記憶體使用選擇一個比例,預設的是40%,這是一個較為合理的開始,在資料庫運作中,我們也可以根據需要對資料庫的記憶體使用進行配置更改。

注意:

資料塊大小需要認真選擇,如圖1-19所示,一旦建立資料庫之後,這個參數将不可修改(從oracle 9i開始,oracle支援在同一資料庫中容納不同block_size的表空間,但是初始定義的block_size将用于system、undo等表空間,不可修改)。

字元集部分也需要認真選擇,在中文的windows平台上,預設的字元集就是zhs16gbk,如  圖1-20所示,可以不需要修改,但是在linux/unix下,如果系統語言環境預設不是中文,則這裡需要根據需要進行調整;對于連接配接模式,可以選擇預設的“專用伺服器模式”選項,如右圖所示。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫
《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫
《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

下一個步驟是資料庫存儲界面,如圖1-21所示,給出了存儲及檔案資訊,可以按照需要進行調整,通常選擇預設設定即可。需要注意控制檔案選項,其中定義了對于控制檔案至關重要的幾個參數,這些參數在此一旦确定,以後往往需要重建控制檔案才能修改。

最後一個步驟,可以選擇将此前的設定存儲為一個資料庫模闆,并生成建立資料庫的腳本,如果接受“建立資料庫”的選項,接下來就可以進行資料庫的建立了(此處僅選擇生成了模闆和建立腳本),如圖1-22所示。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

單擊“确定”按鈕,進入如圖1-23所示的界面,資料庫完成了腳本生成工作。如果選擇了建立資料庫,此時将開始資料庫建立工作。

《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫
《循序漸進Oracle:資料庫管理、優化與備份恢複》一一1.2 使用DBCA建立資料庫

在建立資料庫的過程中遇到的錯誤,可以通過查找oracle資料庫的告警日志檔案(alert file) 獲得,某些情況下,還會有詳細的跟蹤檔案(trace file)生成,這些檔案的位置,在oracle 11g之前,由*dump參數指定,告警日志檔案alert_< oracle_sid >.log的位置由參數background_dump_dest定義:

可以在該參數的設定路徑下,找到日志檔案。從oracle11g開始,alert檔案的格式發生了變化,除原有的文本格式外,還引入了xml格式。現在告警日志檔案的存儲位置受到一個新的參數影響,這個參數是diagnostic_dest,原有的*dump參數被廢棄:

diagnostic_dest是oracle11g的新特性自動診斷庫(automatic diagnostic repository,adr)的設定,該目錄用于存放資料庫診斷日志、跟蹤檔案等,通常稱為稱作adr base,該參數的預設值和環境變量oracle_base有關:

如果設定了oracle_base,則diagnostic_dest = oracle_base。

如果未設定oracle_base,則diagnostic_dest = oracle_home/log。

通過該目錄結構,資料庫整合存儲了大量動态變化的日志及跟蹤檔案,友善管理及檢視。在資料庫出現問題時需要優先檢查該檔案,獲得最及時的故障提示資訊等。

查詢v$diag_info視圖可以獲得跟蹤診斷的相關資訊,其中“default trace file”指出程序跟蹤檔案的可能名稱: