国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

更多QQ空间微信QQ好友腾讯朋友复制链接
您的位置:首頁(yè)/技術(shù)文章
文章詳情頁(yè)

手動(dòng)建立 Oracle9i 數(shù)據(jù)庫(kù)

【字号: 作者:豬豬瀏覽:124日期:2023-11-27 08:20:26
手動(dòng)建立 Oracle9i 數(shù)據(jù)庫(kù)(轉(zhuǎn)載)(原文刊登于2002年03月Linuxer雜志)作者: 何致億, 美商甲骨文公司臺(tái)灣分公司特約顧問(wèn)前幾期我們分別探討 Oracle9i 核心要素與數(shù)據(jù)庫(kù)實(shí)體組成,相信大家對(duì)于 Oracle9i 數(shù)據(jù)庫(kù)服務(wù)器已經(jīng)具有一定程度的了解了。本期我將介紹手動(dòng)建置 Oracle9i 數(shù)據(jù)庫(kù)的步驟與相關(guān)注重事項(xiàng)。本文內(nèi)容將涵蓋下列主題:n; 建立數(shù)據(jù)庫(kù)的前置工作n; 起始參數(shù)檔的重要參數(shù)n; 手動(dòng)建立 Oracle9i 數(shù)據(jù)庫(kù)的步驟n; 如何移除 Oracle9i 數(shù)據(jù)庫(kù)不管原因?yàn)楹危?dāng)您預(yù)備自行建立 Oracle9i 數(shù)據(jù)庫(kù)時(shí),都必須事先做好妥善預(yù)備。因?yàn)槭謩?dòng)建立 Oracle9i 數(shù)據(jù)庫(kù)并不是件輕易的事,可能的話(huà)應(yīng)該盡量使用 Oracle9i 提供的「數(shù)據(jù)庫(kù)建置輔助精靈」來(lái)建立新數(shù)據(jù)庫(kù)。但是要想成為一個(gè)合格的 Oracle DBA,您也必須熟稔手動(dòng)建立數(shù)據(jù)庫(kù)的方式,才能面對(duì)建置 Oracle9i 數(shù)據(jù)庫(kù)所可能碰到的任何問(wèn)題。首先我們先看看建立 Oracle9i 數(shù)據(jù)庫(kù)之前應(yīng)注重那些事情。建立 Oracle9i 數(shù)據(jù)庫(kù)的前置處理工作在開(kāi)始建立新的 Oracle9i 數(shù)據(jù)庫(kù)之前,建議您先做好下列預(yù)備工作:n; 評(píng)估資料表與索引的存放位置,并預(yù)估其所需空間(假如可能的話(huà))。n; 規(guī)劃操作系統(tǒng)下數(shù)據(jù)庫(kù)實(shí)體檔案的部署方式 — 良好的檔案配置將大幅改善資料存取效能。不管是安裝 Oracle 服務(wù)器軟件或是建置新數(shù)據(jù)庫(kù)時(shí),都必須非凡注重這點(diǎn)。例如說(shuō),您可以將重置日志文件 (Redo Log files) 置于其它磁盤(pán)或是 RAID 1磁盤(pán)陣列上;而將數(shù)據(jù)文件置于 RAID 5磁盤(pán)陣列上。n; 選定「全域數(shù)據(jù)庫(kù)名稱(chēng)」(global database name) — 它是在網(wǎng)際網(wǎng)絡(luò)上識(shí)別 Oracle9i 數(shù)據(jù)庫(kù)的方式,由 數(shù)據(jù)庫(kù)名稱(chēng) 與 網(wǎng)域名稱(chēng) 組成,分別設(shè)定在起始參數(shù)檔的 DB_NAME 與 DB_DOMAIN 參數(shù)內(nèi)。n; 熟悉起始參數(shù)檔內(nèi)較重要的參數(shù),甚至「服務(wù)器參數(shù)檔」(server parameter file)的使用時(shí)機(jī)與其功用。n; 選定適當(dāng)?shù)臄?shù)據(jù)庫(kù)字符集。所有字符資料都是依照特定字符集存入數(shù)據(jù)庫(kù),因此您必須在建立數(shù)據(jù)庫(kù)時(shí)指定適當(dāng)字符集 (注[1])。n; 選定「標(biāo)準(zhǔn)資料區(qū)塊」大小 — 設(shè)定在起始參數(shù)檔的 DB_BLOCK_SIZE 參數(shù)。除了 SYSTEM 資料表空間,其它資料表空間也可以遵循「標(biāo)準(zhǔn)資料區(qū)塊」的設(shè)定。此外,在 Oracle9i 數(shù)據(jù)庫(kù)中,您可以設(shè)定額外四種「非標(biāo)準(zhǔn)資料區(qū)塊」。需要注重的是,「標(biāo)準(zhǔn)資料區(qū)塊」大小在數(shù)據(jù)庫(kù)建立完成后即無(wú)法更改。n; 針對(duì)未來(lái)數(shù)據(jù)庫(kù)的運(yùn)作情況,訂立一份良好的數(shù)據(jù)庫(kù)備份計(jì)劃,以便數(shù)據(jù)庫(kù)毀損時(shí)能在最短時(shí)間內(nèi)予以修復(fù)。n; 熟悉 Oracle9i 數(shù)據(jù)庫(kù)的激活/關(guān)閉方式,與其搭配的各種選項(xiàng)(如 STARTUP 指令的 nomount、mount、open 選項(xiàng))。n; 確認(rèn)物理內(nèi)存是否足以激活 Oracle9i Instance。n; 確認(rèn) Oracle9i 服務(wù)器機(jī)的磁盤(pán)空間足夠,以建置新數(shù)據(jù)庫(kù)。 除了本文提及的注重事項(xiàng),您也可以查閱各種操作系統(tǒng)專(zhuān)屬的 Oracle9i 安裝指南,以獲取更詳盡的信息。選擇數(shù)據(jù)庫(kù)建置方式Oracle9i 數(shù)據(jù)庫(kù)建置過(guò)程包含下列三項(xiàng)主要工作:n; 建置新的數(shù)據(jù)庫(kù)實(shí)體檔案,包含資料文件、重置日志文件。n; 建立控制檔,并予以初始化。n; 建置 Oracle9i 存取數(shù)據(jù)庫(kù)系統(tǒng)時(shí)必要的數(shù)據(jù)字典(data dictionary)。實(shí)際上,您可能經(jīng)由下列三種方式之一來(lái)建置新的 Oracle9i 數(shù)據(jù)庫(kù)時(shí):n; 使用 Oracle「數(shù)據(jù)庫(kù)建置組態(tài)精靈」(Database Configuration Assistant,DBCA)。Oracle Universal Installer 在安裝過(guò)程中會(huì)適時(shí)激活 DBCA 協(xié)助您建立數(shù)據(jù)庫(kù),視您選擇的安裝種類(lèi)而定。DBCA 將以圖形接口方式引導(dǎo)您逐步完成 Oracle9i 數(shù)據(jù)庫(kù)的建置工作。若是安裝過(guò)程未激活 DBCA,您也可以事后單獨(dú)激活 DBCA 建立新數(shù)據(jù)庫(kù),甚至建立第二個(gè) Oracle9i 數(shù)據(jù)庫(kù)。n; 執(zhí)行指令文件(script)手動(dòng)建立 Oracle9i 數(shù)據(jù)庫(kù)假如您手邊恰好保存著上次建立 Oracle9i 數(shù)據(jù)庫(kù)所用的指令文件,那么您可以直接編修該指令文件,并予以執(zhí)行。否則,建議您使用 Oracle9i 提供的范例指令文件進(jìn)行編修。Oracle9i 不僅提供了數(shù)據(jù)庫(kù)建置范例指令文件,也提供了起始參數(shù)范例文件。您可視實(shí)際需要進(jìn)行必要調(diào)整。n; 移轉(zhuǎn)(migrate)或升級(jí)(upgrade)既有數(shù)據(jù)庫(kù)。假如您的應(yīng)用系統(tǒng)正在存取既有 Oracle 數(shù)據(jù)庫(kù),除非您需要一個(gè)全新的數(shù)據(jù)庫(kù)或是測(cè)試用環(huán)境,否則應(yīng)該不需要建立新數(shù)據(jù)庫(kù)。在此情況下,您所面臨的將是數(shù)據(jù)庫(kù)移轉(zhuǎn)或升級(jí)議題。有關(guān)這方面的詳盡信息,請(qǐng)參閱《Oracle9i Database Migration》手冊(cè)。再談起始參數(shù)檔還記得上一期曾經(jīng)提過(guò)的起始參數(shù)檔嗎?因?yàn)槭謩?dòng)建立 Oracle9i 數(shù)據(jù)庫(kù)之前必須先激活 Oracle9i Instance,因此您必須先建立一個(gè)起始參數(shù)檔。建立新的起始參數(shù)檔時(shí),最快速的方式就是編輯 Oracle9i 提供的范例檔案,然后另存新檔。我較習(xí)慣的方式是直接編輯既有起始參數(shù)檔之復(fù)本,然后視實(shí)際需要進(jìn)行調(diào)整。因?yàn)槠鹗紖?shù)檔可供設(shè)定的參數(shù)非常多,假如某些參數(shù)未經(jīng)過(guò)明確設(shè)定,Oracle9i 會(huì)自動(dòng)代入默認(rèn)值。第一次以手動(dòng)方式建立 Oracle 數(shù)據(jù)庫(kù)時(shí),建議您盡可能不要修改各起始參數(shù)值。等到您熟悉每個(gè)參數(shù)的意義與使用時(shí)機(jī)之后,再利用文字編輯器調(diào)整或新增其它參數(shù)。除此之外,Oracle9i 答應(yīng)您建立服務(wù)器參數(shù)文件(以二進(jìn)制格式存放)。該檔案內(nèi)的參數(shù)可在 Oracle9i Instance 激活后執(zhí)行 ALTER SYSTEM 指令予以修改。以下是建置新數(shù)據(jù)庫(kù)之前必須新增或編輯的起始參數(shù),包括:n; 全域數(shù)據(jù)庫(kù)名稱(chēng)n; 控制文件名稱(chēng)與路徑n; 資料區(qū)塊大小n; 影響 SGA 容量的起始參數(shù)n; 設(shè)定處理程序最大數(shù)目n; 設(shè)定空間回復(fù)(Undo)治理方法設(shè)定全域數(shù)據(jù)庫(kù)名稱(chēng)Oracle9i 的全域數(shù)據(jù)庫(kù)名稱(chēng)由「數(shù)據(jù)庫(kù)名稱(chēng)」與「網(wǎng)域名稱(chēng)」所組成,其中「數(shù)據(jù)庫(kù)名稱(chēng)」設(shè)定于 DB_NAME 起始參數(shù),而「網(wǎng)域名稱(chēng)」則是設(shè)定于 DB_DOMAIN 參數(shù)。這兩個(gè)參數(shù)合并之后就可以在網(wǎng)際網(wǎng)絡(luò)上唯一識(shí)別每一個(gè) Oracle9i 數(shù)據(jù)庫(kù)。舉例來(lái)說(shuō),假設(shè)我們欲建立的 Oracle9i 數(shù)據(jù)庫(kù)之全域數(shù)據(jù)庫(kù)名稱(chēng)為 mydb.uuu.com.tw,那么可在起始參數(shù)檔內(nèi)設(shè)定下列兩參數(shù):DB_NAME = mydbDB_DOMAIN = uuu.com.twTips:您可以執(zhí)行 ALTER DATABASE RENAME GLOBAL_NAME 指令更改 Oracle9i 數(shù)據(jù)庫(kù)的全域數(shù)據(jù)庫(kù)名稱(chēng);在您更改 DB_NAME 與 DB_DOMAIN 這兩個(gè)起始參數(shù)后必須將 Oracle9i 數(shù)據(jù)庫(kù)重新激活才會(huì)生效。此外,控制檔也必須重新建立。關(guān)于 DB_NAME 起始參數(shù)DB_NAME 必須是文字字符串,且不能超過(guò) 8 個(gè)字符。在建立數(shù)據(jù)庫(kù)的過(guò)程中,DB_NAME 設(shè)定值會(huì)記錄在資料文件、控制文件、以及重置日志文件之中。假如您激活 Oracle9i Instance 的時(shí)候,起始參數(shù)檔內(nèi)設(shè)定的 DB_NAME 不同于控制文件內(nèi)所紀(jì)錄的,那么數(shù)據(jù)庫(kù)將無(wú)法激活。關(guān)于 DB_DOMAIN 起始參數(shù)DB_DOMAIN 通常是數(shù)據(jù)庫(kù)主機(jī)所在位置的網(wǎng)域名稱(chēng)。假如您欲建立的數(shù)據(jù)庫(kù)將加入分布式數(shù)據(jù)庫(kù)運(yùn)算環(huán)境,請(qǐng)非凡注重此參數(shù)的設(shè)定。設(shè)定控制檔 如前所述,控制文件是 Oracle9i 數(shù)據(jù)庫(kù)內(nèi)相當(dāng)重要的檔案。因此您必須在新的起始參數(shù)檔內(nèi)加入 CONTROL_FILE 參數(shù)以設(shè)定控制文件之文件名與路徑。當(dāng)您執(zhí)行 CREATE DATABASE 時(shí),列在 CONTROL_FILE 之中的控制檔將隨之建立。假如起始參數(shù)檔忽略了此項(xiàng)參數(shù),則 Oracle9i 會(huì)在執(zhí)行 CREATE DATABASE 指令時(shí)自動(dòng)建立控制文件并命名之,然后放在系統(tǒng)預(yù)設(shè)路徑下。那么,假如 CONTROL_NAME 內(nèi)設(shè)定的控制文件已經(jīng)存在于操作系統(tǒng)下該怎么辦呢?此時(shí) Oracle9i 會(huì)自動(dòng)覆蓋既有的控制檔。假如您想建立全新的控制檔,請(qǐng)確定 CONTROL_NAME 設(shè)定的控制文件名不會(huì)與操作系統(tǒng)下任何文件名重復(fù)。依照過(guò)去經(jīng)驗(yàn),Oracle 強(qiáng)烈建議您為每個(gè)數(shù)據(jù)庫(kù)至少規(guī)劃兩個(gè)控制檔,并分散在兩個(gè)實(shí)體磁盤(pán)上。如此可避免任一控制文件毀損時(shí)造成系統(tǒng)停擺。設(shè)定資料區(qū)塊大小Oracle9i 數(shù)據(jù)庫(kù)內(nèi)存放資料的最小單位為「資料區(qū)塊」(data block)。數(shù)據(jù)庫(kù)內(nèi)「標(biāo)準(zhǔn)資料區(qū)塊」大小是設(shè)定在起始參數(shù)檔之 DB_BLOCK_SIZE 參數(shù)。Oracle9i 數(shù)據(jù)庫(kù)內(nèi)最重要的 SYSTEM 資料表空間就是以 DB_LOCK_SIZE 設(shè)定值為基礎(chǔ)所建立。此外 DB_BLOCK _SIZE 也是建立新資料表空間時(shí)預(yù)設(shè)的資料區(qū)塊大小。除了標(biāo)準(zhǔn)資料區(qū)塊大小之外,Oracle9i 支持額外 4 種「非標(biāo)準(zhǔn)資料區(qū)塊」大小。關(guān)于 DB_BLOCK_SIZE 起始參數(shù)從 Oracle9i 開(kāi)始,DB_BLOCK_SIZE 所設(shè)定的僅是標(biāo)準(zhǔn)資料區(qū)塊大小;絕大多數(shù)的數(shù)據(jù)庫(kù)環(huán)境只需要設(shè)定該參數(shù)即可。一般來(lái)說(shuō),DB_BLOCK_SIZE 可設(shè)定為 4K 或 8K。假如此參數(shù)未經(jīng)設(shè)定,則 Oracle9i 會(huì)自動(dòng)依照數(shù)據(jù)庫(kù)所在操作系統(tǒng)平臺(tái)自行決定適當(dāng)?shù)馁Y料區(qū)塊大小。需要注重的是,標(biāo)準(zhǔn)資料區(qū)塊大小在數(shù)據(jù)庫(kù)建立之后就無(wú)法改變 — 除非重建數(shù)據(jù)庫(kù)。假如數(shù)據(jù)庫(kù)的「資料區(qū)塊」大小不同于「操作系統(tǒng)區(qū)塊」大小,那么建議您將 DB_BLOCK_SIZE 設(shè)為「操作系統(tǒng)區(qū)塊」大小之整數(shù)倍。假定操作系統(tǒng)區(qū)塊大小為 4K,則不妨設(shè)定 DB_BLOCK_SIZE = 8192。在某些情況下,這樣的組態(tài)方式將會(huì)顯著地提升資料存取效能。何謂「非標(biāo)準(zhǔn)資料區(qū)塊」?由「非標(biāo)準(zhǔn)資料區(qū)塊」構(gòu)成的資料表空間可經(jīng)由 CREATE TABLESPACE 指令搭配 BLOCKSIZE 子句建立之;其區(qū)塊大小設(shè)定值可為 2K、4K、8K、16K、32。需注重的是此類(lèi)型資料區(qū)塊將受到操作系統(tǒng)環(huán)境限制,不是所有操作系統(tǒng)都可以設(shè)定上述所有區(qū)塊大小。欲使用「非標(biāo)準(zhǔn)資料區(qū)塊」時(shí),您還必須適當(dāng)組態(tài) SGA 內(nèi)數(shù)據(jù)庫(kù)緩沖區(qū)的子緩沖區(qū),方式是藉由 DB_nK_CACHE_SIZE 參數(shù)所設(shè)定(此參數(shù)容后說(shuō)明)。此項(xiàng)機(jī)制是 Oracle9i 提出的新功能,在轉(zhuǎn)移數(shù)據(jù)庫(kù)時(shí)非凡好用。舉例來(lái)說(shuō),您的 OLTP 數(shù)據(jù)庫(kù)也許將資料區(qū)塊大小設(shè)定為 4K,但是資料倉(cāng)儲(chǔ)系統(tǒng)使用的數(shù)據(jù)庫(kù)卻將資料區(qū)塊大小設(shè)定為 8K。藉由「非標(biāo)準(zhǔn)資料區(qū)塊」的機(jī)制,您就可以平順地將 OLTP 數(shù)據(jù)庫(kù)的資料轉(zhuǎn)移到資料倉(cāng)儲(chǔ)系統(tǒng)的數(shù)據(jù)庫(kù)。影響 SGA 容量的起始參數(shù)此類(lèi)型起始參數(shù)將控制內(nèi)存內(nèi)「系統(tǒng)全域區(qū)」(System Global Area,SGA) 的大小,除了 SGA_MAX_SIZE 之外,其它參數(shù)幾乎都可以經(jīng)由 ALTER SYSTEM 指令動(dòng)態(tài)地更改。借著此項(xiàng)特性,您可以在 Oracle9i Instance 運(yùn)作時(shí)動(dòng)態(tài)地增加或縮小 SGA 容量。設(shè)定「數(shù)據(jù)庫(kù)緩沖區(qū)」大小一般情況下,Oracle9i 數(shù)據(jù)庫(kù)緩沖區(qū)(database buffer cache)大小是由起始參數(shù)檔 DB_CACHE_SIZE 參數(shù)所決定。此時(shí)數(shù)據(jù)庫(kù)緩沖區(qū)是以「標(biāo)準(zhǔn)資料區(qū)塊」作為資料存取單位。假如您想在 Oracle9i 數(shù)據(jù)庫(kù)使用多重資料區(qū)塊大小,則必須設(shè)定一組 DB_BLOCK_SIZE 與 DB_nK_CACHE_SIZE 參數(shù)。假如上述兩項(xiàng)參數(shù)在起始參數(shù)檔未明確設(shè)定,則 Oracle9i 會(huì)自動(dòng)設(shè)定適當(dāng)?shù)?DB_CACHE_SIZE 值,且將 DB_nK_CACHE_SIZE 設(shè)定為 0。關(guān)于 DB_CACHE_SIZE 起始參數(shù)在 Oracle8i 以前,數(shù)據(jù)庫(kù)緩沖區(qū)大小是由 DB_BLOCK_BUFFERS 與 DB_BLOCK_SIZE 所決定;從 Oracle9i 開(kāi)始將由 DB_CACHE_SIZE 取代之。需要注重的是,DB_CACHE_SIZE 是以 DB_BLOCK_SIZE 所設(shè)定的標(biāo)準(zhǔn)資料區(qū)塊大小為基準(zhǔn)。為了向前兼容,在 Oracle9i 中仍然可以設(shè)定 DB_BLOCK_BUFFERS 參數(shù)。但是 DB_BLOCK_BUFFERS 屬于靜態(tài)參數(shù),無(wú)法在 Oracle9i 數(shù)據(jù)庫(kù)運(yùn)作時(shí)進(jìn)行動(dòng)態(tài)調(diào)整,也不能與其它動(dòng)態(tài)參數(shù)互相搭配使用。關(guān)于 DB_ nK_CACHE_SIZE 起始參數(shù)從 Oracle9i 開(kāi)始提供了「非標(biāo)準(zhǔn)資料區(qū)塊」的支持,可經(jīng)由下列參數(shù)設(shè)定:ØDB_2K_CACHE_SIZEØDB_4K_CACHE_SIZEØDB_8K_CACHE_SIZEØDB_16K_CACHE_SIZEØDB_32K_CACHE_SIZE.各參數(shù)之中的 nk 即是設(shè)定非標(biāo)準(zhǔn)資料區(qū)塊的大小。我以下列參數(shù)設(shè)定為例:DB_BLOCK_SIZE=4096DB_CACHE_SIZE=20MDB_2K_CACHE_SIZE=10MDB_8K_CACHE_SIZE=8M ;使用上述參數(shù)所組態(tài)的數(shù)據(jù)庫(kù)緩沖區(qū)將擁有以下特性:1.; 「標(biāo)準(zhǔn)資料區(qū)塊」大小為 4K。2.; 「標(biāo)準(zhǔn)資料區(qū)塊」大小構(gòu)成的數(shù)據(jù)庫(kù)緩沖區(qū)容量為 20M。3.; 第一種「非標(biāo)準(zhǔn)資料區(qū)塊」大小為 2K,其構(gòu)成的緩沖區(qū)容量為10M。4.; 第二種「非標(biāo)準(zhǔn)資料區(qū)塊」大小為 8K,其構(gòu)成的緩沖區(qū)容量為8M。請(qǐng)注重一點(diǎn),DB_ nK_CACHE_SIZE 參數(shù)不能設(shè)定「標(biāo)準(zhǔn)資料區(qū)塊」之緩沖區(qū)大小。舉例來(lái)說(shuō),假如 DB_BLOCK_SIZE 設(shè)定為 4K,就不能再設(shè)定 DB_4K_CACHE_SIZE 參數(shù)。設(shè)定「共享區(qū)」與「大型區(qū)」容量SGA 內(nèi)的共享區(qū)(Shared Pool)與大型區(qū)(Large Pool)分別由 SHARED_POOL_SIZE 與 LARGE_POOL_SIZE 所設(shè)定;這兩個(gè)參數(shù)都屬于動(dòng)態(tài)參數(shù) (注[2])。假如起始參數(shù)檔內(nèi)未設(shè)定這兩個(gè)參數(shù),則 Oracle9i 將自動(dòng)決定其適當(dāng)大小。設(shè)定 SGA 的相關(guān)注重事項(xiàng)SGA 最大容量由 SGA_MAX_SIZE 所控制。您可以動(dòng)態(tài)地改變?cè)搮?shù)值,但是需注重 SGA_MAX_SIZE 為數(shù)據(jù)庫(kù)緩沖區(qū)、共享區(qū)、大型區(qū)、以及其它 SGA 組件之容量總和。各區(qū)域之大小不能超過(guò) SGA_MAX_SIZE 所設(shè)定。假如 SGA_MAX_SIZE 未設(shè)定,則 Oracle9i 會(huì)自動(dòng)設(shè)定 SGA_MAX_SIZE 為所有 SGA 組件大小之總和。設(shè)定處理程序最大數(shù)量起始參數(shù) PROCESSESS 可決定同時(shí)間連接 Oracle9i 的操作系統(tǒng)程序最大數(shù)量。該參數(shù)值必須大于 6;其中 5 個(gè)是 Oracle9i 背景處理程序,加上 1 個(gè)使用者處理程序。假定同一時(shí)間您的 Oracle9i 數(shù)據(jù)庫(kù)同時(shí)間會(huì)有 100 使用者上線,那么 PROCESSES 至少應(yīng)設(shè)定為 105。設(shè)定空間回復(fù)治理方式 任何數(shù)據(jù)庫(kù)都應(yīng)該具備某種非凡機(jī)制來(lái)確保交易的一致性與完整性。在 Oracle9i 數(shù)據(jù)庫(kù)內(nèi)即存有一份重要的交易相關(guān)信息,以便必要時(shí)可退回(rollback) 失敗的交易,或是回復(fù)(undo)某個(gè)數(shù)據(jù)處理動(dòng)作。Oracle 將這些信息統(tǒng)稱(chēng)為「回復(fù)項(xiàng)目」(undo entries)。Oracle9i 的回復(fù)項(xiàng)目存放在「回復(fù)資料表空間」(undo tablespace) 或是「退回區(qū)段」(rollback segments)。UNDO_MANAGEMENT 起始參數(shù)針對(duì)回復(fù)項(xiàng)目的治理,起始參數(shù)檔的 UNDO_MANAGEMENT 可設(shè)定由下列兩種方式之一激活 Oracle9i Instance:n; AUTO:以 ”自動(dòng)回復(fù)治理模式” 激活 Oracle9i Instance;其回復(fù)項(xiàng)目將儲(chǔ)存于「回復(fù)資料表空間」。n; MANUAL:以 ”手動(dòng)模式” 激活 Oracle9i Instance;其回復(fù)項(xiàng)目將儲(chǔ)存于「退回區(qū)段」。為了向前兼容,UNDO_MANAGEMENT 的默認(rèn)值為 MANUAL。關(guān)于 UNDO_TABLESPACE 起始參數(shù)當(dāng) Oracle9i Instance 以 ”自動(dòng)治理模式” 激活時(shí),將嘗試尋找第一個(gè)可用的「回復(fù)資料表空間」以存放「回復(fù)項(xiàng)目」。假如執(zhí)行 CREATE DATABASE 指令,且 UNDO_MANAGEMENT 設(shè)定為 AUTO 時(shí),Oracle9i 就會(huì)自動(dòng)建立一個(gè)名為 SYS_UNDOTBS 的「回復(fù)資料表空間」。此資料表空間將是 ”自動(dòng)治理模式” 下預(yù)設(shè)的「回復(fù)資料表空間」。此外,您還可以設(shè)定 UNDO_TABLESPACE 起始參數(shù),以明確指定 Oracle9i 所使用的「回復(fù)資料表空間」為何。假如系統(tǒng)內(nèi)缺乏可用的「回復(fù)資料表空間」,則 Oracle9i Instance 雖然可以激活,但是將使用 SYSTEM 退回區(qū)段。Oracle 建議您盡量妥善運(yùn)用「回復(fù)資料表空間」來(lái)取代「回復(fù)區(qū)段」,因?yàn)榍罢卟坏子谥卫恚部梢栽O(shè)定「回復(fù)項(xiàng)目」之維護(hù)時(shí)間。關(guān)于 ROLLBACK_SEGMENTS 起始參數(shù)ROLLBACK_SEGMENTS 起始參數(shù)內(nèi)列出一連串「非系統(tǒng)退回區(qū)段」之相關(guān)信息。當(dāng)數(shù)據(jù)庫(kù)以 ”手動(dòng)模式” 進(jìn)行回復(fù)項(xiàng)目治理時(shí),Oracle9i Instance 將會(huì)在激活時(shí)要求此類(lèi)型退回區(qū)段。假如該參數(shù)內(nèi)無(wú)任何設(shè)定值,則使用「系統(tǒng)退回區(qū)段」。Oracle9i 數(shù)據(jù)庫(kù)的 ROLLBACK_SEGMENTS 參數(shù)是為了向前兼容而保留,建議您以「回復(fù)資料表空間」取代之。手動(dòng)建立 Oracle9i 數(shù)據(jù)庫(kù)完成所有前置預(yù)備工作之后,您就可以依照先前的規(guī)劃建立 Oracle9i 數(shù)據(jù)庫(kù)。有別于使用「數(shù)據(jù)庫(kù)建置組態(tài)精靈」(Database Configuration Assistant),手動(dòng)建立數(shù)據(jù)庫(kù)的方式主要是執(zhí)行 CREATE DATABASE 指令。以下是建立 Oracle9i 數(shù)據(jù)庫(kù) mydb 的完整步驟:1.; 設(shè)定 Oracle SID2.; 選擇 DBA 驗(yàn)證方式3.; 建立起始參數(shù)檔 4.; 激活 Oracle Instance5.; 執(zhí)行 CREATE DATABASE 指令6.; 建立其它資料表空間7.; 建立數(shù)據(jù)字典視觀表步驟 1: 設(shè)定 Oracle SID在一般情況下,每個(gè) Oracle9i 數(shù)據(jù)庫(kù)都必須對(duì)應(yīng)一個(gè) Oracle9i Instance。所以在建立數(shù)據(jù)庫(kù)之前,您必須先指定 Oracle9i Instance 的系統(tǒng)標(biāo)識(shí)符(system identifier),此系統(tǒng)標(biāo)識(shí)符就是俗稱(chēng)的 Oracle SID;您也可以將它視為 Oracle9i Instance 之名稱(chēng)。因?yàn)?Oracle SID 可用以辨識(shí)不同的 Oracle 數(shù)據(jù)庫(kù),因此 SID 名稱(chēng)必須是唯一的,可經(jīng)由操作系統(tǒng)的環(huán)境變量 ORACLE_SID 設(shè)定之 (注[3])。以下范例將設(shè)定數(shù)據(jù)庫(kù)所使用的 Oracle SID 為 mydb:ORACLE_SID = mydbeXPort ORACLE_SID步驟 2: 選擇 DBA 驗(yàn)證方式您必須經(jīng)過(guò)數(shù)據(jù)庫(kù)之驗(yàn)證手續(xù),且被賦予適當(dāng)系統(tǒng)權(quán)限后才可以建立 Oracle9i 數(shù)據(jù)庫(kù)。Oracle9i 用來(lái)驗(yàn)證 DBA 的方式有兩種,分別是「密碼文件驗(yàn)證」與「操作系統(tǒng)驗(yàn)證」。建議您第一次手動(dòng)建立數(shù)據(jù)庫(kù)時(shí)先使用 oracle 帳號(hào)(安裝 Oracle9i 所用的帳號(hào)) 經(jīng)由「操作系統(tǒng)驗(yàn)證」來(lái)登入 SQL*Plus。有關(guān)密碼文件的建立與使用方式將在未來(lái)專(zhuān)欄中為大家具體介紹。步驟 3: 建立起始參數(shù)檔為了簡(jiǎn)化治理動(dòng)作,建議您將起始參數(shù)檔置放于 Oracle9i 預(yù)設(shè)目錄下,并且依照標(biāo)準(zhǔn)格式為起始參數(shù)檔命名。Oracle9i 起始參數(shù)檔名之格式為:init<Oracle SID 名稱(chēng)>.ora其預(yù)設(shè)存放路徑則為:$ORACLE_HOME/dbs以 mydb 數(shù)據(jù)庫(kù)為例,起始參數(shù)檔名稱(chēng)可命名為 initmydb.ora,并存放在 opt/oracle/prodUCt/9.0.1/dbs 目錄下 (注[4])。如此一來(lái),每當(dāng)您欲執(zhí)行 STARTUP 指令激活 Oracle9i Instance 時(shí),系統(tǒng)會(huì)自動(dòng)到預(yù)設(shè)目錄下尋找起始參數(shù)檔,不需額外指定 PFILE 選項(xiàng)。以下范例起始參數(shù)文件之部分內(nèi)容:Sample Initialization Parameter File# Cache and I/ODB_BLOCK_SIZE=4096DB_CACHE_SIZE=20971520# Diagnostics and StatisticsBACKGROUND_DUMP_DEST=$ORACLE_HOME/admin/mydb/bdumpCORE_DUMP_DEST=$ORACLE_HOME/admin/mydb/cdumpTIMED_STATISTICS=TRUEUSER_DUMP_DEST=$ORACLE_HOME/admin/mydb/udump# Control File ConfigurationCONTROL_FILES=('$ORACLE_HOME/oradata/mydb/control01.ctl','$ORACLE_HOME/oradata/mydb/control02.ctl','$ORACLE_HOME/oradata/mydb/control03.ctl')# ArchiveLOG_ARCHIVE_DEST_1='LOCATION=$ORACLE_HOME/oradata/mydb/archive'LOG_ARCHIVE_FORMAT=%t_%s.dbfLOG_ARCHIVE_START=TRUE# MiscellaneousCOMPATIBLE=9.0.0DB_NAME=ora901# Distributed, Replication and SnapshotDB_DOMAIN=uuu.com.twREMOTE_LOGIN_PASSWordFILE=EXCLUSIVE# Network RegistrationINSTANCE_NAME=ora901# PoolsJava_POOL_SIZE=31457280LARGE_POOL_SIZE=1048576SHARED_POOL_SIZE=52428800# Processes and SessionsPROCESSES=150# Redo Log and RecoveryFAST_START_MTTR_TARGET=300 # Resource ManagerRESOURCE_MANAGER_PLAN=SYSTEM_PLAN# Sort, Hash Joins, Bitmap IndexesSORT_AREA_SIZE=524288步驟 4: 激活 Oracle Instance在 Oracle9i 數(shù)據(jù)庫(kù)中,較常用來(lái)激活 Oracle9i Instance 的方式是使用 SQL*Plus 與 Oracle9i Enterprise Manager。以前者為例,您必須先進(jìn)入 SQL*Plus 環(huán)境,然后切換為 sysdba 身份,方式為:$ SQLPLUS; /nologCONNECT; /; AS sysdba接下來(lái)您必須執(zhí)行 STARTUP 指令將Oracle9i Instance 開(kāi)啟至 NOMOUNT 狀態(tài)。一般來(lái)說(shuō),只有在建立新數(shù)據(jù)庫(kù),或是進(jìn)行特定數(shù)據(jù)庫(kù)維護(hù)工作時(shí)才會(huì)將 Instance 開(kāi)啟至 NOMOUNT 狀態(tài)。因?yàn)閷?Instance 開(kāi)啟至 MOUNT 狀態(tài)時(shí)就會(huì)嘗試掛載 Oracle9i 實(shí)體數(shù)據(jù)庫(kù)。試想,若系統(tǒng)本身尚未建立數(shù)據(jù)庫(kù)實(shí)體檔案,怎么可能 Instance 開(kāi)啟至 MOUNT 或是 OPEN 狀態(tài)呢?以下是 STARTUP 指令的執(zhí)行方式:STARTUP NOMOUNT此為 STARTUP 指令最基本的執(zhí)行方式。因?yàn)槲覀儗⑵鹗紖?shù)文件置于預(yù)設(shè)目錄($ORACLE_HOME/dbs)下,所以不需指定 PFILE 選項(xiàng)。否則,您所執(zhí)行的 STARTUP 指令應(yīng)該類(lèi)似于:STARTUP NOMOUNT pfile = $ORACLE_HOME/pfile/initmydb.ora截至目前為止,我們才算是完成執(zhí)行 CREATE DATABASE 指令前的所有預(yù)備工作 — 在內(nèi)存內(nèi)已順利配置 SGA,并激活各種背景處理程序。但此時(shí)系統(tǒng)本身尚未存在任何實(shí)體數(shù)據(jù)庫(kù)。接下來(lái)是最重要的步驟 — 執(zhí)行 CREATE DATABASE 指令。步驟 5: 執(zhí)行 CREATE DATABASE 指令當(dāng)您執(zhí)行 CREATE DATABASE 指令建立新數(shù)據(jù)庫(kù)時(shí),Oracle9i 會(huì)完成下列各項(xiàng)主要工作:n; 建立新數(shù)據(jù)庫(kù)的實(shí)體檔案,如資料文件、重置日志文件。n; 更新控制文件內(nèi)相關(guān)信息。n; 建立 SYSTEM 資料表空間與 SYSTEM 退回區(qū)段(rollback segment)。n; 建立數(shù)據(jù)字典n; 設(shè)定數(shù)據(jù)庫(kù)使用的字符集n; 設(shè)定數(shù)據(jù)庫(kù)所在時(shí)區(qū)以下是 CREATE DATABASE 指令之范例:CREATE DATABASE mydbMAXINSTANCES 1MAXLOGHISTORY 1MAXLOGFILES 5MAXLOGMEMBERS 5MAXDATAFILES 100DATAFILE '$ORACLE_HOME/oradata/mydb/system01.dbf' SIZE 200M REUSEUNDO TABLESPACE undotbs DATAFILE'$ORACLE_HOME/oradata/mydb/undotbs01.dbf'SIZE 200M REUSE AUTOEXTEND ON NEXT 2048K MAXSIZE UNLIMITEDDEFAULT TEMPORARY TABLESPACE temptbs1CHARACTER SET ZHT16BIG5NATIONAL CHARACTER SET AL16UTF16LOGFILE GROUP 1 ('$ORACLE_HOME/oradata/mydb/redo01.log') SIZE 100M,GROUP 2 ('$ORACLE_HOME/oradata/mydb/redo02.log') SIZE 100M,GROUP 3 ('$ORACLE_HOME/oradata/ora901/redo03.log') SIZE 100M; ;我將以上 CREATE DATABASE 指令較重要的部分整理如下:n; 數(shù)據(jù)庫(kù)名稱(chēng)為 mydb,其全域數(shù)據(jù)庫(kù)名稱(chēng)(global database name)為 mydb.uuu.com.tw。n; 依照起始參數(shù)檔 CONTROL_FILES 參數(shù)所設(shè)定的名稱(chēng)與路徑分別建立三個(gè)控制檔。n; MAXINSTANCES 參數(shù):可用來(lái)開(kāi)啟該數(shù)據(jù)庫(kù)的 Instance 數(shù)目。n; MAXDATAFILES 參數(shù):該數(shù)據(jù)庫(kù)所擁有的最大數(shù)據(jù)文件數(shù)量。n; 如 DATAFILE 子句所設(shè)定,該數(shù)據(jù)庫(kù) SYSTEM 資料表空間所相對(duì)應(yīng)的操作系統(tǒng)檔案為 $ORACLE_HOME/oradata/mydb/system01.dbf。假如該檔案已事先存在,則予以覆寫(xiě)。n; UNDO_TABLESPACE 用以建立與命名「回復(fù)資料表空間」(undo tablespace)。 n; DEFAULT_TEMPORARY_TABLESPACE 用以建立與命名該數(shù)據(jù)庫(kù)預(yù)設(shè)的「暫時(shí)資料表空間」。n; ZHT16BIG5 為數(shù)據(jù)庫(kù)內(nèi)存放資料的字符集。n; AL16UTF16 為「國(guó)際字符集」(NATIONAL CHARACTER SET) 設(shè)定值,為 NCHAR、NCLOB、與 NVARCHAR2 等 unicode 字段所使用的字符集。AL16UTF16 為 SQL NCHAR 資料型態(tài)預(yù)設(shè)的字符集,其編碼方式為 UTF-16。n; 新數(shù)據(jù)庫(kù)擁有三個(gè)線上重置日志文件(online redo log files),分別設(shè)定在 LOGFILE 子句中。MAXLOGHISTORY、MAXLOGFILES、與 MAXLOGMEMBERS 為重置日志文件的相關(guān)設(shè)定。n; 因?yàn)?CREATE DATABASE 指令內(nèi)并未包含 ARCHIVELOG 子句,所以該數(shù)據(jù)庫(kù)并不會(huì)進(jìn)行重置日志文件的封存動(dòng)作。您可以在數(shù)據(jù)庫(kù)建立后執(zhí)行 ALTER DATABASE 指令將數(shù)據(jù)庫(kù)切換為「封存模式」(ARCHIVELOG mode)。起始參數(shù)文件內(nèi)與「封存模式」相關(guān)的參數(shù)為 LOG_ARCHIVE_DEST_1、LOG_ARCHIVE_FORMAT、與; LOG_ARCHIVE_START。n; 在 CREATE DATABASE 指令內(nèi)也可加上 SET TIME_ZONE 子句以設(shè)定數(shù)據(jù)庫(kù)時(shí)區(qū)(time zone)。假如省略該子句,則數(shù)據(jù)庫(kù)預(yù)設(shè)時(shí)區(qū)(time zone)與操作系統(tǒng)時(shí)區(qū)相同。步驟 6: 建立其它資料表空間上期專(zhuān)欄內(nèi)容中我們?cè)?jīng)探討過(guò) Oracle9i 的資料表空間規(guī)劃方式。以步驟 5 的 CREATE DATABASE 指令而言,新數(shù)據(jù)庫(kù)內(nèi)將只有一個(gè) SYSTEM 資料表空間。為了更有效地使用及治理 Oracle9i 數(shù)據(jù)庫(kù),建議您另外新增數(shù)個(gè)資料表空間,依照應(yīng)用系統(tǒng)實(shí)際需求而定。以下指令分別建立 users 與 indx 數(shù)據(jù)表空間。CREATE TABLESPACE users LOGGINGDATAFILE '$ORACLE_HOME/oradata/mydb/users01.dbf 'SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL;CREATE TABLESPACE indx LOGGINGDATAFILE '$ORACLE_HOME/oradata/mydb/indx01.dbf 'SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITEDEXTENT MANAGEMENT LOCAL;步驟 7: 建立數(shù)據(jù)字典視觀表除了建立額外的資料表空間外,您還必須在數(shù)據(jù)庫(kù)建立之后執(zhí)行兩個(gè)重要的指令文件:catelog.sql 與 cataproc.sql。這兩個(gè)指令文件將在 Oracle9i 數(shù)據(jù)庫(kù)內(nèi)建立治理工作必備的視觀表、同義字(synonyms)、以及 PL/SQL 套件(packages)。n; catalog.sql: 本指令文件內(nèi)容為:在數(shù)據(jù)字典數(shù)據(jù)表上建立相關(guān)視觀表、動(dòng)態(tài)效能視觀表、以及存取各種視觀表所用的同義字。此外,catalog.sql 也會(huì)將這些視觀表的使用權(quán)限授權(quán)給數(shù)據(jù)庫(kù)使用者。n; cataproc.sql:本指令文件內(nèi)包含執(zhí)行 PL/SQL 程序所需的所有指令文件。移除 Oracle9i 數(shù)據(jù)庫(kù)的方式移除 Oracle9i 數(shù)據(jù)庫(kù)的方式有兩種。傳統(tǒng)方式是手動(dòng)刪除所有數(shù)據(jù)庫(kù)實(shí)體檔案;較簡(jiǎn)便的方式是使用「數(shù)據(jù)庫(kù)組態(tài)輔助精靈」。假如您想手動(dòng)移除先前建立的 Oracle9i 數(shù)據(jù)庫(kù),步驟可能會(huì)稍微繁瑣一點(diǎn)。因?yàn)樗袛?shù)據(jù)庫(kù)相關(guān)檔案(包含資料文件、重置日志文件、控制文件、起始參數(shù)文件、重置日志封存盤(pán)...等)都必須自操作系統(tǒng)刪除。假如您不清楚這些檔案的存放位置,可查詢(xún) V$DATAFILE、V$LOGFILE、與 V$CONTROLFILE 等數(shù)據(jù)字典視觀表。假如您欲移除的數(shù)據(jù)庫(kù)是設(shè)定在「封存模式」,那么建議您先檢視起始參數(shù)檔內(nèi) LOG_ARCHIVE_DEST_ n、LOG_ARCHIVE_DEST、與; LOG_ARCHIVE_DUPLEX_DEST 等參數(shù),以便從操作系統(tǒng)刪除舊有重置日志封存盤(pán)。結(jié)語(yǔ)本期談到如何以手動(dòng)方式建置 Oracle9i 數(shù)據(jù)庫(kù),以及 CREATE DATABASE 指令的主要項(xiàng)目。希望各位讀者對(duì)于 Oracle9i 數(shù)據(jù)庫(kù)的建置過(guò)程都能有一定程度的了解。未來(lái)有機(jī)會(huì)我將為大家示范如何經(jīng)由「數(shù)據(jù)庫(kù)組態(tài)輔助精靈」來(lái)建置 Oracle9i 數(shù)據(jù)庫(kù)。屆時(shí)您將發(fā)現(xiàn),原來(lái)建置 Oracle9i 數(shù)據(jù)庫(kù)竟然如此簡(jiǎn)單!作者簡(jiǎn)介何致億,專(zhuān)長(zhǎng)為Oracle、SQL Server 等大型數(shù)據(jù)庫(kù)系統(tǒng)治理,資料倉(cāng)儲(chǔ)規(guī)劃建置,以及數(shù)據(jù)庫(kù)應(yīng)用程序系統(tǒng)開(kāi)發(fā)。擁有 MCSD、MCDBA,Oracle OCP,RHCE,SCJP,Borland JBuilder Product Certified等十余項(xiàng)國(guó)際認(rèn)證。目前正致力于Oracle9i應(yīng)用系統(tǒng)開(kāi)發(fā),并負(fù)責(zé)Oracle9i系列書(shū)籍中文化與Oracle Press技術(shù)校稿工作。他同時(shí)也是美商 Oracle 與 Sun Microsystems公司原廠認(rèn)證講師。您可以透過(guò)hochihyi@ms64.hinet.net與他聯(lián)系。注[1]:有關(guān) Oracle 9i 數(shù)據(jù)庫(kù)的字符集種類(lèi)與名稱(chēng),請(qǐng)參閱《Oracle9i Globalization Support Guide Release 1》注[2]: SHARED_POOL_SIZE 與 LARGE_POOL_SIZE 在 Oracle9i 以前為靜態(tài)變量。注[3]:起始參數(shù)檔之 DB_NAME 參數(shù)值必須與 ORACLE_SID 完全吻合。注[4]:以我的 Oracle9i 數(shù)據(jù)庫(kù)為例:ORACLE_BASE = /opt/oracle,而 ORACLE_HOME = $ORACLE_BASE/product/9.0.1,所以起始參數(shù)文件之預(yù)設(shè)目錄應(yīng)為; opt/oracle/product/9.0.1/dbs。
主站蜘蛛池模板: 国产步兵社区视频在线观看 | 欧美成本人视频 | 永久免费不卡在线观看黄网站 | 欧美日韩精品在线视频 | 亚洲中文字幕特级毛片 | 欧美国产精品 | 日韩欧美久久一区二区 | 日韩欧美视频在线播放 | 波野多衣在线观 | 国产精品久久久久久久久久久不卡 | wwww.黄| 深夜福利国产 | 91视频国产一区 | a级片黄色片 | 手机看片国产免费久久网 | 欧美真人视频一级毛片 | 国产一级久久免费特黄 | 偷拍精品视频一区二区三区 | 喷潮白浆直流在线播放 | 久久亚洲人成国产精品 | 国产免费自拍视频 | 成年女人毛片 | 亚洲三级一区 | 三级视频中文字幕 | 国产在线观看成人 | 日本成人免费观看 | 国产成人综合95精品视频免费 | 日本一区二区免费在线观看 | 女人张开腿让男人桶视频免费大全 | 狠狠色狠狠色综合日日32 | 在线观看亚洲网站 | 午夜无遮挡怕怕怕免费视频 | 很黄很色的摸下面的视频 | 成年大片免费视频播放手机不卡 | 色网站在线观看 | 欧美大片国产在线永久播放 | 精品免费久久久久国产一区 | 亚洲高清国产一区二区三区 | 一级毛片免费不卡夜夜欢 | 国产一级特黄a大片99 | 日本在线观看不卡 |