2020年8月6日 星期四

2.4 建立資料庫

Oracle 提供了 DBCA (Database Configuration Assistant) 這項輔助工具來方便我們建立資料庫,於 Unix 平台設定好相關環境變數與 XWindow 之後執行 dbca,便會出現 Database Configuration Assistant 的歡迎畫面了:

SNAG-0045

 

如果為 Windows 平台,則由 開始 –> 程式集 選擇 “資料庫組態輔助程式" 執行之:

SNAG-0026

 

略過歡迎畫面,選擇新建資料庫:

SNAG-0027

 

在 11g 的版本當中,Oracle 提供了兩個樣板 (Genernal Purpose or Transaction Processing 與 Data Warehouse) 方便我們建立資料庫,樣版當中已有預設的參數設定、資料庫功能(Option),以及資料檔(datafile),若透過樣板建立資料庫,Oracle 所使用的是還原資料檔(restore) 的方式將樣版還原,若不使用樣板,則可以選擇Custom Database 這項設定來建立資料庫。

SNAG-0028

 

接下來我們便要設定資料庫名稱,SID 代表的是 Instance Name,也就是我們在作業系統中指定 ORACLE_SID 這個環境變數所對應的名稱;資料庫的全域名稱(Global Database Name) 為資料庫名稱加上 db_domain 這個資料庫參數的設定值,假使我們資料庫名稱設定為 orcl 而 db_domain 這個參數設定值為 “oracle.com",則資料庫的全域名稱為 “orcl.oracle.com",若沒有設定 db_domain 這個參數,則資料庫全域名稱與資料庫名稱相同。

SNAG-0029

 

若要在資料庫建立的過程當中順便建立 Database Control,則必須把 Configure Enterprise Manager 這個選項勾選起來,反之則不:

SNAG-0030

 

接下來便要設定資料庫管理者的密碼,我們可以將所有管理者設定同一個密碼,或是將不同管理者的密碼區分開來,若在上個步驟有勾選 Configure Enterprise Manager這個選項,則必須要設定 Enterprise Manager 的管理者密碼 (DBSNMP 與 SYSMAN),若上個步驟沒有勾選 Configure Enterprise Manager ,則這邊只會出現 SYS 與 SYSTEM 這兩個資料庫管理者而已。

SNAG-0031

 

接下來要選擇資料檔(datafile) 所要建立的位置,可以選擇建立在與樣板同樣的位置 (Use Database File Locations from Template)、自訂位置 (Use Common Location for All Database Files),或是使用 Oracle 管理檔案 (Use Oracle Managed-Files),若使用的是 Oracle 管理檔案,則資料檔(datafile) 的名稱將會依照 Oracle 標準命名規則來建立。

SNAG-0032

 

這個步驟詢問我們是否要設定 Flash Recovery Area,Flash Recovery Area 所設定的只是一個目錄位置,這個名詞從 Oracle 10g 開始出現,目的在於 Oracle 希望能把與資料庫復原相關的檔案(如資料庫備份、archivelog…等) 放置在同個目錄來集中管理,因此將這個目錄的名稱取做 Flash Recovery Area,不過 Flash Recovery Area 所能使用的空間大小將受到 db_recovery_file_dest_size 這個參數的限制,例如db_recovery_file_dest_size 這個參數設置為 4G,假使作業系統上實際的空間有10G,但是 Flash Recovery Area 這個目錄也只能存放4G的資料,超過的話 Oracle 資料庫將會出現錯誤訊息。

SNAG-0033

 

接下來我們可以選擇是否要建立 Sample Schema,如果勾選的話,資料庫將會新增一個名為 Example 的表格空間。

SNAG-0034

 

這個步驟總共有四個頁簽須做設定,第一個頁簽要設定的是資料庫所使用的記憶體大小,11g 這個版本已將 SGA 與 PGA 合併為一個參數叫 “memory_target" ,只需設定總共的記憶體大小,其中SGA 與 PGA 將由系統動態來調配,若不使用 memory_target,則可以選擇 Custom 選項來自行定義各記憶體參數的大小。

SNAG-0035

 

第二個頁簽設定的是資料庫的區塊大小(Block Size) 與 process 數量,Block Size 可以設定的範圍在 2k ~ 32k ,預設為 8k (8192 bytes),若透過樣板來建立資料庫,在此便無法更改這個設定,所以如果我們要自行定義資料庫的區塊大小,在之前的步驟二就必須選擇 Custom 這個選項來建立資料庫。

SNAG-0036

 

第三個頁簽設定的是資料庫的字元集,字元集的選擇決定資料儲存的 “長度" ,例如一個中文字在 ZHT16BIG5 這個字元集下儲存的長度為 2 bytes,而在 UTF8 這個字元集下則為 3 bytes。字元集在資料庫建立之後便無法更改,雖然 Oracle 提供了 “alter database character set" 這個指令,但是在實質上是沒有辦法變更資料在資料庫中的長度,因此字元集的選擇在資料庫建立的過程中顯得格外重要。

SNAG-0037

 

第四個頁簽則是選擇將資料庫建立成專屬伺服器模式(Dedicated Server Mode) 或是共享伺服器模式(Shared Serer Mode),差別在於專屬伺服器模式將針對每一個客戶端連線(Client) 均建立一個 Server Process,例如有10個客戶端連線,則系統上將會建立10個Server Process,而共享伺服器模式則是客戶端連線(Client) 必須共用所有已經存在系統上的 Server Process,例如於共享伺服器上設定10個Server Process,則不論有多少個客戶端連線(Client) ,都必須透過調度者(Dispatcher) 來分配這10個Server Process供客戶端使用。

SNAG-0038

 

接下來要設定的是資料庫的檔案位置,首先是控制檔(Control File),因為控制檔紀錄著資料庫的一些相關設定,包括資料庫名稱、資料檔(datafile)位置、交易日誌檔(Redo Log)位置…等,一般建議控制檔最好有兩個複本以上並存放在不同的磁碟陣列(RAID)上,避免控制檔的遺失造成資料庫損毀,在Oracle 10g 之前的版本,控制檔預設有三個複本,而在 Oracle 11g 這個版本,控制檔預設為二個複本,一個放置於資料檔(datafile) 存放的路徑,另一個放置於 Flash Recovery Area,我們可以從這裡變更控制檔存放的位置與複本數量。

SNAG-0039

 

第二個要設定的是資料檔(datafile) 的位置:

SNAG-0040

 

最後要設定的是交易日誌檔(Redo Log) 的位置、數量與大小,交易日誌群組(Redo Log Group)預設為 3 個,每個交易日誌檔大小為 50M。預設的交易日誌群組與交易日誌檔不一定符合各種應用系統的需求,在此需評估應用系統的特性與交易量,適度的來增加交易日誌群組與交易日誌檔的大 小,防止日後因交易過於頻繁而產生出效能上的問題。

SNAG-0041

 

在完成一系列的設定之後,便可以開始建立資料庫了,同時也可以為這個資料庫建立一個樣板(Template) 來儲存這些客製化的設定。

SNAG-0042

 

由於使用的是樣板來建立資料庫,因此在資料庫建立的過程中我們看到的是 “Copying database files" 而非 “Creating database files" 這個字樣。

SNAG-0043

 

資料庫建立完成時便會告知我們一些相關的訊息,包含資料庫名稱、Database Control 的 URL …等。

SNAG-0044

到此我們便完成了資料庫的建立。

 

既然建立完了資料庫,那麼要如何確認資料庫是否有正常的運行?

 

1.  檢查監聽器(Listener)是否有資料庫服務:

當 Listener 使用的是預設的 1521 port 時,資料庫在開啟時便會自動的,動態的註冊到監聽器上,此時我們可以利用 lsnrctl status 來查看監聽器的狀態,如果有資料庫的服務存在且 status 為 “Ready" ,代表資料庫有正常運行。

 

2. 使用 SQL*PLUS登入資料庫查看 v$instance :

SQL> select instance_name,status,startup_time from v$instance;

若 status 為 open,則代表資料庫有正常運行。

 

3. 若為Windows平台,則可以檢查資料庫服務的狀態,若為 “啟動" 則代表資料庫有正常運行。

SNAG-0046

 

4. 最後我們還可以檢查資料庫的 alert.log,由 alert.log 可以確認資料庫開起的過程以及檢查是否有其他的錯誤。



沒有留言:

張貼留言