作者: 何致億
美商甲骨文公司台灣分公司特約顧問
前幾期我們分別探討 Oracle
i 核心要素與數據庫實體組成
相信大家對於 Oracle
i 數據庫服務器已經具有一定程度的了解了
本期我將介紹手動建置 Oracle
i 數據庫的步驟與相關注意事項
本文內容將涵蓋下列主題
n 建立數據庫的前置工作
n 起始參數檔的重要參數
n 手動建立 Oracle
i 數據庫的步驟
n 如何移除 Oracle
i 數據庫
不管原因為何
當您准備自行建立 Oracle
i 數據庫時
都必須事先做好妥善准備
因為手動建立 Oracle
i 數據庫並不是件容易的事
可能的話應該盡量使用 Oracle
i 提供的「數據庫建置輔助精靈」來建立新數據庫
但是要想成為一個合格的 Oracle DBA
您也必須熟稔手動建立數據庫的方式
才能面對建置 Oracle
i 數據庫所可能碰到的任何問題
首先我們先看看建立 Oracle
i 數據庫之前應注意那些事情
建立 Oracle
i 數據庫的前置處理工作
在開始建立新的 Oracle
i 數據庫之前
建議您先做好下列准備工作
n 評估資料表與索引的存放位置
並預估其所需空間(如果可能的話)
n 規劃操作系統下數據庫實體檔案的部署方式 — 良好的檔案配置將大幅改善資料存取效能
不管是安裝 Oracle 服務器軟件或是建置新數據庫時
都必須特別注意這點
例如說
您可以將重置日志文件 (Redo Log files) 置於其它磁盤或是 RAID
磁盤陣列上
而將數據文件置於 RAID
磁盤陣列上
n 選定「全域數據庫名稱」(global database name) — 它是在網際網絡上識別 Oracle
i 數據庫的方式
由 數據庫名稱 與 網域名稱 組成
分別設定在起始參數檔的 DB_NAME 與 DB_DOMAIN 參數內
n 熟悉起始參數檔內較重要的參數
甚至「服務器參數檔」(server parameter file)的使用時機與其功用
n 選定適當的數據庫字符集
所有字符資料都是依照特定字符集存入數據庫
因此您必須在建立數據庫時指定適當字符集 (注[
])
n 選定「標准資料區塊」大小 — 設定在起始參數檔的 DB_BLOCK_SIZE 參數
除了 SYSTEM 資料表空間
其它資料表空間也可以遵循「標准資料區塊」的設定
此外
在 Oracle
i 數據庫中
您可以設定額外四種「非標准資料區塊」
需要注意的是
「標准資料區塊」大小在數據庫建立完成後即無法更改
n 針對未來數據庫的運作情況
訂立一份良好的數據庫備份計劃
以便數據庫毀損時能在最短時間內予以修復
n 熟悉 Oracle
i 數據庫的激活/關閉方式
與其搭配的各種選項(如 STARTUP 指令的 nomount
mount
open 選項)
n 確認物理內存是否足以激活 Oracle
i Instance
n 確認 Oracle
i 服務器機的磁盤空間足夠
以建置新數據庫
除了本文提及的注意事項
您也可以查閱各種操作系統專屬的 Oracle
i 安裝指南
以獲取更詳盡的信息
選擇數據庫建置方式
Oracle
i 數據庫建置過程包含下列三項主要工作
n 建置新的數據庫實體檔案
包含資料文件
重置日志文件
n 建立控制檔
並予以初始化
n 建置 Oracle
i 存取數據庫系統時必要的數據字典(data dictionary)
實際上
您可能經由下列三種方式之一來建置新的 Oracle
i 數據庫時
n 使用 Oracle「數據庫建置組態精靈」(Database Configuration Assistant
DBCA)
Oracle Universal Installer 在安裝過程中會適時激活 DBCA 協助您建立數據庫
視您選擇的安裝種類而定
DBCA 將以圖形接口方式引導您逐步完成 Oracle
i 數據庫的建置工作
若是安裝過程未激活 DBCA
您也可以事後單獨激活 DBCA 建立新數據庫
甚至建立第二個 Oracle
i 數據庫
n 執行指令文件(script)手動建立 Oracle
i 數據庫
如果您手邊恰好保存著上次建立 Oracle
i 數據庫所用的指令文件
那麼您可以直接編修該指令文件
並予以執行
否則
建議您使用 Oracle
i 提供的范例指令文件進行編修
Oracle
i 不僅提供了數據庫建置范例指令文件
也提供了起始參數范例文件
您可視實際需要進行必要調整
n 移轉(migrate)或升級(upgrade)既有數據庫
如果您的應用系統正在存取既有 Oracle 數據庫
除非您需要一個全新的數據庫或是測試用環境
否則應該不需要建立新數據庫
在此情況下
您所面臨的將是數據庫移轉或升級議題
有關這方面的詳盡信息
請參閱《Oracle
i Database Migration》手冊
再談起始參數檔
還記得上一期曾經提過的起始參數檔嗎?因為手動建立 Oracle
i 數據庫之前必須先激活 Oracle
i Instance
因此您必須先建立一個起始參數檔
建立新的起始參數檔時
最快速的方式就是編輯 Oracle
i 提供的范例檔案
然後另存新檔
我較習慣的方式是直接編輯既有起始參數檔之復本
然後視實際需要進行調整
因為起始參數檔可供設定的參數非常多
如果某些參數未經過明確設定
Oracle
i 會自動代入默認值
第一次以手動方式建立 Oracle 數據庫時
建議您盡可能不要修改各起始參數值
等到您熟悉每個參數的意義與使用時機之後
再利用文字編輯器調整或新增其它參數
除此之外
Oracle
i 允許您建立服務器參數文件(以二進制格式存放)
該檔案內的參數可在 Oracle
i Instance 激活後執行 ALTER SYSTEM 指令予以修改
以下是建置新數據庫之前必須新增或編輯的起始參數
包括
n 全域數據庫名稱
n 控制文件名稱與路徑
n 資料區塊大小
n 影響 SGA 容量的起始參數
n 設定處理程序最大數目
n 設定空間回復(Undo)管理方法
設定全域數據庫名稱
Oracle
i 的全域數據庫名稱由「數據庫名稱」與「網域名稱」所組成
其中「數據庫名稱」設定於 DB_NAME 起始參數
而「網域名稱」則是設定於 DB_DOMAIN 參數
這兩個參數合並之後就可以在網際網絡上唯一識別每一個 Oracle
i 數據庫
舉例來說
假設我們欲建立的 Oracle
i 數據庫之全域數據庫名稱為
tw
那麼可在起始參數檔內設定下列兩參數
DB_NAME = mydb
DB_DOMAIN =
tw
Tips
您可以執行 ALTER DATABASE RENAME GLOBAL_NAME 指令更改 Oracle
i 數據庫的全域數據庫名稱
在您更改 DB_NAME 與 DB_DOMAIN 這兩個起始參數後必須將 Oracle
i 數據庫重新激活才會生效
此外
控制檔也必須重新建立
關於 DB_NAME 起始參數
DB_NAME 必須是文字字符串
且不能超過
個字符
在建立數據庫的過程中
DB_NAME 設定值會記錄在資料文件
控制文件
以及重置日志文件之中
如果您激活 Oracle
i Instance 的時候
起始參數檔內設定的 DB_NAME 不同於控制文件內所紀錄的
那麼數據庫將無法激活
關於 DB_DOMAIN 起始參數
DB_DOMAIN 通常是數據庫主機所在位置的網域名稱
如果您欲建立的數據庫將加入分布式數據庫運算環境
請特別注意此參數的設定
設定控制檔
如前所述
控制文件是 Oracle
i 數據庫內相當重要的檔案
因此您必須在新的起始參數檔內加入 CONTROL_FILE 參數以設定控制文件之文件名與路徑
當您執行 CREATE DATABASE 時
列在 CONTROL_FILE 之中的控制檔將隨之建立
如果起始參數檔忽略了此項參數
則 Oracle
i 會在執行 CREATE DATABASE 指令時自動建立控制文件並命名之
然後放在系統預設路徑下
那麼
如果 CONTROL_NAME 內設定的控制文件已經存在於操作系統下該怎麼辦呢?此時 Oracle
i 會自動覆蓋既有的控制檔
如果您想建立全新的控制檔
請確定 CONTROL_NAME 設定的控制文件名不會與操作系統下任何文件名重復
依照過去經驗
Oracle 強烈建議您為每個數據庫至少規劃兩個控制檔
並分散在兩個實體磁盤上
如此可避免任一控制文件毀損時造成系統停擺
設定資料區塊大小
Oracle
i 數據庫內存放資料的最小單位為「資料區塊」(data block)
數據庫內「標准資料區塊」大小是設定在起始參數檔之 DB_BLOCK_SIZE 參數
Oracle
i 數據庫內最重要的 SYSTEM 資料表空間就是以 DB_LOCK_SIZE 設定值為基礎所建立
此外 DB_BLOCK _SIZE 也是建立新資料表空間時預設的資料區塊大小
除了標准資料區塊大小之外
Oracle
i 支持額外
種「非標准資料區塊」大小
關於 DB_BLOCK_SIZE 起始參數
從 Oracle
i 開始
DB_BLOCK_SIZE 所設定的僅是標准資料區塊大小
絕大多數的數據庫環境只需要設定該參數即可
一般來說
DB_BLOCK_SIZE 可設定為
K 或
K
如果此參數未經設定
則 Oracle
i 會自動依照數據庫所在操作系統平台自行決定適當的資
From:http://tw.wingwit.com/Article/program/Oracle/201311/16692.html