国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

手動建立 Oracle9i 數據庫

2024-08-29 13:31:20
字體:
來源:轉載
供稿:網友



手動建立 oracle9i 數據庫(轉載)

(原文刊登于2002年03月linuxer雜志)                          

 

作者: 何致億, 美商甲骨文公司臺灣分公司特約顧問

 

前幾期我們分別探討 oracle9i 核心要素與數據庫實體組成,相信大家對于 oracle9i 數據庫服務器已經具有一定程度的了解了。本期我將介紹手動建置 oracle9i 數據庫的步驟與相關注意事項。

 

本文內容將涵蓋下列主題:

n          建立數據庫的前置工作

n          起始參數檔的重要參數

n          手動建立 oracle9i 數據庫的步驟

n          如何移除 oracle9i 數據庫

 

不管原因為何,當您準備自行建立 oracle9i 數據庫時,都必須事先做好妥善準備。因為手動建立 oracle9i 數據庫并不是件容易的事,可能的話應該盡量使用 oracle9i 提供的「數據庫建置輔助精靈」來建立新數據庫。但是要想成為一個合格的 oracle dba,您也必須熟稔手動建立數據庫的方式,才能面對建置 oracle9i 數據庫所可能碰到的任何問題。

 

首先我們先看看建立 oracle9i 數據庫之前應注意那些事情。

 

建立 oracle9i 數據庫的前置處理工作

在開始建立新的 oracle9i 數據庫之前,建議您先做好下列準備工作:

n          評估資料表與索引的存放位置,并預估其所需空間(如果可能的話)。

n          規劃操作系統下數據庫實體檔案的部署方式 — 良好的檔案配置將大幅改善資料存取效能。不管是安裝 oracle 服務器軟件或是建置新數據庫時,都必須特別注意這點。例如說,您可以將重置日志文件 (redo log files) 置于其它磁盤或是 raid 1磁盤陣列上;而將數據文件置于 raid 5磁盤陣列上。

n          選定「全域數據庫名稱」(global database name) — 它是在網際網絡上識別 oracle9i 數據庫的方式,由 數據庫名稱 與 網域名稱 組成,分別設定在起始參數檔的 db_name 與 db_domain 參數內。

n          熟悉起始參數檔內較重要的參數,甚至「服務器參數檔」(server parameter file)的使用時機與其功用。

n          選定適當的數據庫字符集。所有字符資料都是依照特定字符集存入數據庫,因此您必須在建立數據庫時指定適當字符集 (注[1])。

n          選定「標準資料區塊」大小 — 設定在起始參數檔的 db_block_size 參數。除了 system 資料表空間,其它資料表空間也可以遵循「標準資料區塊」的設定。此外,在 oracle9i 數據庫中,您可以設定額外四種「非標準資料區塊」。需要注意的是,「標準資料區塊」大小在數據庫建立完成后即無法更改。

n          針對未來數據庫的運作情況,訂立一份良好的數據庫備份計劃,以便數據庫毀損時能在最短時間內予以修復。

n          熟悉 oracle9i 數據庫的激活/關閉方式,與其搭配的各種選項(如 startup 指令的 nomount、mount、open 選項)。

n          確認物理內存是否足以激活 oracle9i instance。

n          確認 oracle9i 服務器機的磁盤空間足夠,以建置新數據庫。

 

除了本文提及的注意事項,您也可以查閱各種操作系統專屬的 oracle9i 安裝指南,以獲取更詳盡的信息。

 

選擇數據庫建置方式

oracle9i 數據庫建置過程包含下列三項主要工作:

n          建置新的數據庫實體檔案,包含資料文件、重置日志文件。

n          建立控制檔,并予以初始化。

n          建置 oracle9i 存取數據庫系統時必要的數據字典(data dictionary)。

 

實際上,您可能經由下列三種方式之一來建置新的 oracle9i 數據庫時:

n          使用 oracle「數據庫建置組態精靈」(database configuration assistant,dbca)。

oracle universal installer 在安裝過程中會適時激活 dbca 協助您建立數據庫,視您選擇的安裝種類而定。dbca 將以圖形接口方式引導您逐步完成 oracle9i 數據庫的建置工作。若是安裝過程未激活 dbca,您也可以事后單獨激活 dbca 建立新數據庫,甚至建立第二個 oracle9i 數據庫。

n          執行指令文件(script)手動建立 oracle9i 數據庫

如果您手邊恰好保存著上次建立 oracle9i 數據庫所用的指令文件,那么您可以直接編修該指令文件,并予以執行。否則,建議您使用 oracle9i 提供的范例指令文件進行編修。oracle9i 不僅提供了數據庫建置范例指令文件,也提供了起始參數范例文件。您可視實際需要進行必要調整。

n          移轉(migrate)或升級(upgrade)既有數據庫。

如果您的應用系統正在存取既有 oracle 數據庫,除非您需要一個全新的數據庫或是測試用環境,否則應該不需要建立新數據庫。在此情況下,您所面臨的將是數據庫移轉或升級議題。有關這方面的詳盡信息,請參閱《oracle9i database migration》手冊。

 

再談起始參數檔

還記得上一期曾經提過的起始參數檔嗎?因為手動建立 oracle9i 數據庫之前必須先激活 oracle9i instance,因此您必須先建立一個起始參數檔。建立新的起始參數檔時,最快速的方式就是編輯 oracle9i 提供的范例檔案,然后另存新檔。我較習慣的方式是直接編輯既有起始參數檔之復本,然后視實際需要進行調整。因為起始參數檔可供設定的參數非常多,如果某些參數未經過明確設定,oracle9i 會自動代入默認值。

第一次以手動方式建立 oracle 數據庫時,建議您盡可能不要修改各起始參數值。等到您熟悉每個參數的意義與使用時機之后,再利用文字編輯器調整或新增其它參數。除此之外,oracle9i 允許您建立服務器參數文件(以二進制格式存放)。該檔案內的參數可在 oracle9i instance 激活后執行 alter system 指令予以修改。

 

以下是建置新數據庫之前必須新增或編輯的起始參數,包括:

n          全域數據庫名稱

n          控制文件名稱與路徑

n          資料區塊大小

n          影響 sga 容量的起始參數

n          設定處理程序最大數目

n          設定空間回復(undo)管理方法

 

設定全域數據庫名稱

oracle9i 的全域數據庫名稱由「數據庫名稱」與「網域名稱」所組成,其中「數據庫名稱」設定于 db_name 起始參數,而「網域名稱」則是設定于 db_domain 參數。這兩個參數合并之后就可以在網際網絡上唯一識別每一個 oracle9i 數據庫。舉例來說,假設我們欲建立的 oracle9i 數據庫之全域數據庫名稱為 mydb.uuu.com.tw,那么可在起始參數檔內設定下列兩參數:

 


db_name = mydb

db_domain = uuu.com.tw

 
 

 

 

tips:

您可以執行 alter database rename global_name 指令更改 oracle9i 數據庫的全域數據庫名稱;在您更改 db_name 與 db_domain 這兩個起始參數后必須將 oracle9i 數據庫重新激活才會生效。此外,控制檔也必須重新建立。

 

關于 db_name 起始參數

db_name 必須是文字字符串,且不能超過 8 個字符。在建立數據庫的過程中,db_name 設定值會記錄在資料文件、控制文件、以及重置日志文件之中。如果您激活 oracle9i instance 的時候,起始參數檔內設定的 db_name 不同于控制文件內所紀錄的,那么數據庫將無法激活。

 

關于 db_domain 起始參數

db_domain 通常是數據庫主機所在位置的網域名稱。如果您欲建立的數據庫將加入分布式數據庫運算環境,請特別注意此參數的設定。

 

設定控制檔

如前所述,控制文件是 oracle9i 數據庫內相當重要的檔案。因此您必須在新的起始參數檔內加入 control_file 參數以設定控制文件之文件名與路徑。當您執行 create database 時,列在 control_file 之中的控制檔將隨之建立。如果起始參數檔忽略了此項參數,則 oracle9i 會在執行 create database 指令時自動建立控制文件并命名之,然后放在系統預設路徑下。

那么,如果 control_name 內設定的控制文件已經存在于操作系統下該怎么辦呢?此時 oracle9i 會自動覆蓋既有的控制檔。如果您想建立全新的控制檔,請確定 control_name 設定的控制文件名不會與操作系統下任何文件名重復。

依照過去經驗,oracle 強烈建議您為每個數據庫至少規劃兩個控制檔,并分散在兩個實體磁盤上。如此可避免任一控制文件毀損時造成系統停擺。

 

 

設定資料區塊大小

oracle9i 數據庫內存放資料的最小單位為「資料區塊」(data block)。數據庫內「標準資料區塊」大小是設定在起始參數檔之 db_block_size 參數。oracle9i 數據庫內最重要的 system 資料表空間就是以 db_lock_size 設定值為基礎所建立。此外 db_block _size 也是建立新資料表空間時預設的資料區塊大小。除了標準資料區塊大小之外,oracle9i 支持額外 4 種「非標準資料區塊」大小。

 

關于 db_block_size 起始參數

從 oracle9i 開始,db_block_size 所設定的僅是標準資料區塊大?。唤^大多數的數據庫環境只需要設定該參數即可。一般來說,db_block_size 可設定為 4k 或 8k。如果此參數未經設定,則 oracle9i 會自動依照數據庫所在操作系統平臺自行決定適當的資料區塊大小。

需要注意的是,標準資料區塊大小在數據庫建立之后就無法改變 — 除非重建數據庫。如果數據庫的「資料區塊」大小不同于「操作系統區塊」大小,那么建議您將 db_block_size 設為「操作系統區塊」大小之整數倍。假定操作系統區塊大小為 4k,則不妨設定 db_block_size = 8192。在某些情況下,這樣的組態方式將會顯著地提升資料存取效能。

 

何謂「非標準資料區塊」?

由「非標準資料區塊」構成的資料表空間可經由 create tablespace 指令搭配 blocksize 子句建立之;其區塊大小設定值可為 2k、4k、8k、16k、32。需注意的是此類型資料區塊將受到操作系統環境限制,不是所有操作系統都可以設定上述所有區塊大小。

欲使用「非標準資料區塊」時,您還必須適當組態 sga 內數據庫緩沖區的子緩沖區,方式是藉由 db_nk_cache_size 參數所設定(此參數容后說明)。

此項機制是 oracle9i 提出的新功能,在轉移數據庫時特別好用。舉例來說,您的 oltp 數據庫也許將資料區塊大小設定為 4k,但是資料倉儲系統使用的數據庫卻將資料區塊大小設定為 8k。藉由「非標準資料區塊」的機制,您就可以平順地將 oltp 數據庫的資料轉移到資料倉儲系統的數據庫。

 

影響 sga 容量的起始參數

此類型起始參數將控制內存內「系統全域區」(system global area,sga) 的大小,除了 sga_max_size 之外,其它參數幾乎都可以經由 alter system 指令動態地更改。借著此項特性,您可以在 oracle9i instance 運作時動態地增加或縮小 sga 容量。

 

設定「數據庫緩沖區」大小

一般情況下,oracle9i 數據庫緩沖區(database buffer cache)大小是由起始參數檔 db_cache_size 參數所決定。此時數據庫緩沖區是以「標準資料區塊」作為資料存取單位。如果您想在 oracle9i 數據庫使用多重資料區塊大小,則必須設定一組 db_block_size 與 db_nk_cache_size 參數。如果上述兩項參數在起始參數檔未明確設定,則 oracle9i 會自動設定適當的 db_cache_size 值,且將 db_nk_cache_size 設定為 0。

 

關于 db_cache_size 起始參數

在 oracle8i 以前,數據庫緩沖區大小是由 db_block_buffers 與 db_block_size 所決定;從 oracle9i 開始將由 db_cache_size 取代之。需要注意的是,db_cache_size 是以 db_block_size 所設定的標準資料區塊大小為基準。為了向前兼容,在 oracle9i 中仍舊可以設定 db_block_buffers 參數。但是 db_block_buffers 屬于靜態參數,無法在 oracle9i 數據庫運作時進行動態調整,也不能與其它動態參數互相搭配使用。

 

關于 db_ nk_cache_size 起始參數

從 oracle9i 開始提供了「非標準資料區塊」的支持,可經由下列參數設定:

Ø          db_2k_cache_size

Ø          db_4k_cache_size

Ø          db_8k_cache_size

Ø          db_16k_cache_size

Ø          db_32k_cache_size.

 

各參數之中的 nk 即是設定非標準資料區塊的大小。我以下列參數設定為例:


db_block_size=4096

db_cache_size=20m

db_2k_cache_size=10m

db_8k_cache_size=8m

 
 

 

 

 

 

 

使用上述參數所組態的數據庫緩沖區將擁有以下特性:

1.          「標準資料區塊」大小為 4k。

2.          「標準資料區塊」大小構成的數據庫緩沖區容量為 20m。

3.          第一種「非標準資料區塊」大小為 2k,其構成的緩沖區容量為10m。

4.          第二種「非標準資料區塊」大小為 8k,其構成的緩沖區容量為8m。

 

請注意一點,db_ nk_cache_size 參數不能設定「標準資料區塊」之緩沖區大小。舉例來說,如果 db_block_size 設定為 4k,就不能再設定 db_4k_cache_size 參數。

 

 

設定「共享區」與「大型區」容量

sga 內的共享區(shared pool)與大型區(large pool)分別由 shared_pool_size 與 large_pool_size 所設定;這兩個參數都屬于動態參數 (注[2])。如果起始參數檔內未設定這兩個參數,則 oracle9i 將自動決定其適當大小。

 

設定 sga 的相關注意事項

sga 最大容量由 sga_max_size 所控制。您可以動態地改變該參數值,但是需注意 sga_max_size 為數據庫緩沖區、共享區、大型區、以及其它 sga 組件之容量總和。各區域之大小不能超過 sga_max_size 所設定。如果 sga_max_size 未設定,則 oracle9i 會自動設定 sga_max_size 為所有 sga 組件大小之總和。

 

設定處理程序最大數量

起始參數 processess 可決定同時間連接 oracle9i 的操作系統程序最大數量。該參數值必須大于 6;其中 5 個是 oracle9i 背景處理程序,加上 1 個使用者處理程序。假定同一時間您的 oracle9i 數據庫同時間會有 100 使用者上線,那么 processes 至少應設定為 105。

 

設定空間回復管理方式

任何數據庫都應該具備某種特殊機制來確保交易的一致性與完整性。在 oracle9i 數據庫內即存有一份重要的交易相關信息,以便必要時可退回(rollback) 失敗的交易,或是回復(undo)某個數據處理動作。oracle 將這些信息統稱為「回復項目」(undo entries)。oracle9i 的回復項目存放在「回復資料表空間」(undo tablespace) 或是「退回區段」(rollback segments)。

 

undo_management 起始參數

針對回復項目的管理,起始參數檔的 undo_management 可設定由下列兩種方式之一激活 oracle9i instance:

n          auto:以 ”自動回復管理模式” 激活 oracle9i instance;其回復項目將儲存于「回復資料表空間」。

n          manual:以 ”手動模式” 激活 oracle9i instance;其回復項目將儲存于「退回區段」。

 

為了向前兼容,undo_management 的默認值為 manual。

 

關于 undo_tablespace 起始參數

當 oracle9i instance 以 ”自動管理模式” 激活時,將嘗試尋找第一個可用的「回復資料表空間」以存放「回復項目」。如果執行 create database 指令,且 undo_management 設定為 auto 時,oracle9i 就會自動建立一個名為 sys_undotbs 的「回復資料表空間」。此資料表空間將是 ”自動管理模式” 下預設的「回復資料表空間」。

此外,您還可以設定 undo_tablespace 起始參數,以明確指定 oracle9i 所使用的「回復資料表空間」為何。如果系統內缺乏可用的「回復資料表空間」,則 oracle9i instance 雖然可以激活,但是將使用 system 退回區段。oracle 建議您盡量妥善運用「回復資料表空間」來取代「回復區段」,因為前者不但易于管理,也可以設定「回復項目」之維護時間。

 

關于 rollback_segments 起始參數

rollback_segments 起始參數內列出一連串「非系統退回區段」之相關信息。當數據庫以 ”手動模式” 進行回復項目管理時,oracle9i instance 將會在激活時要求此類型退回區段。如果該參數內無任何設定值,則使用「系統退回區段」。oracle9i 數據庫的 rollback_segments 參數是為了向前兼容而保留,建議您以「回復資料表空間」取代之。

 

手動建立 oracle9i 數據庫

完成所有前置準備工作之后,您就可以依照先前的規劃建立 oracle9i 數據庫。有別于使用「數據庫建置組態精靈」(database configuration assistant),手動建立數據庫的方式主要是執行 create database 指令。以下是建立 oracle9i 數據庫 mydb 的完整步驟:

1.          設定 oracle sid

2.          選擇 dba 驗證方式

3.          建立起始參數檔

4.          激活 oracle instance

5.          執行 create database 指令

6.          建立其它資料表空間

7.          建立數據字典視觀表

 

步驟 1: 設定 oracle sid

在一般情況下,每個 oracle9i 數據庫都必須對應一個 oracle9i instance。所以在建立數據庫之前,您必須先指定 oracle9i instance 的系統標識符(system identifier),此系統標識符就是俗稱的 oracle sid;您也可以將它視為 oracle9i instance 之名稱。

因為 oracle sid 可用以辨識不同的 oracle 數據庫,因此 sid 名稱必須是唯一的,可經由操作系統的環境變量 oracle_sid 設定之 (注[3])。以下范例將設定數據庫所使用的 oracle sid 為 mydb:


oracle_sid = mydb

export oracle_sid
 

 

 

 

步驟 2: 選擇 dba 驗證方式

您必須經過數據庫之驗證手續,且被賦予適當系統權限后才可以建立 oracle9i 數據庫。oracle9i 用來驗證 dba 的方式有兩種,分別是「密碼文件驗證」與「操作系統驗證」。建議您第一次手動建立數據庫時先使用 oracle 帳號(安裝 oracle9i 所用的帳號) 經由「操作系統驗證」來登入 sql*plus。有關密碼文件的建立與使用方式將在未來專欄中為大家詳細介紹。

 

步驟 3: 建立起始參數檔

為了簡化管理動作,建議您將起始參數檔置放于 oracle9i 預設目錄下,并且依照標準格式為起始參數檔命名。oracle9i 起始參數檔名之格式為:


init<oracle sid 名稱>.ora
 

 

其預設存放路徑則為:


$oracle_home/dbs
 

 

 

以 mydb 數據庫為例,起始參數檔名稱可命名為 initmydb.ora,并存放在 opt/oracle/product/9.0.1/dbs 目錄下 (注[4])。如此一來,每當您欲執行 startup 指令激活 oracle9i instance 時,系統會自動到預設目錄下尋找起始參數檔,不需額外指定 pfile 選項。

 

以下范例起始參數文件之部分內容:


sample initialization parameter file

# cache and i/o

db_block_size=4096

db_cache_size=20971520

# diagnostics and statistics

background_dump_dest=$oracle_home/admin/mydb/bdump

core_dump_dest=$oracle_home/admin/mydb/cdump

timed_statistics=true

user_dump_dest=$oracle_home/admin/mydb/udump

# control file configuration

control_files=("$oracle_home/oradata/mydb/control01.ctl",

"$oracle_home/oradata/mydb/control02.ctl",

"$oracle_home/oradata/mydb/control03.ctl")

# archive

log_archive_dest_1='location=$oracle_home/oradata/mydb/archive'

log_archive_format=%t_%s.dbf

log_archive_start=true

# miscellaneous

compatible=9.0.0

db_name=ora901

# distributed, replication and snapshot

db_domain=uuu.com.tw

remote_login_passwordfile=exclusive

# network registration

instance_name=ora901

# pools

java_pool_size=31457280

large_pool_size=1048576

shared_pool_size=52428800

# processes and sessions

processes=150

# redo log and recovery

fast_start_mttr_target=300

# resource manager

resource_manager_plan=system_plan

# sort, hash joins, bitmap indexes

sort_area_size=524288

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

步驟 4: 激活 oracle instance

在 oracle9i 數據庫中,較常用來激活 oracle9i instance 的方式是使用 sql*plus 與 oracle9i enterprise manager。以前者為例,您必須先進入 sql*plus 環境,然后切換為 sysdba 身份,方式為:


$ sqlplus  /nolog

connect  /  as sysdba

 
 

 

 

 

接下來您必須執行 startup 指令將oracle9i instance 開啟至 nomount 狀態。一般來說,只有在建立新數據庫,或是進行特定數據庫維護工作時才會將 instance 開啟至 nomount 狀態。因為將 instance 開啟至 mount 狀態時就會嘗試掛載 oracle9i 實體數據庫。試想,若系統本身尚未建立數據庫實體檔案,怎么可能 instance 開啟至 mount 或是 open 狀態呢?以下是 startup 指令的執行方式:


startup nomount

 
 

 

 

此為 startup 指令最基本的執行方式。因為我們將起始參數文件置于預設目錄($oracle_home/dbs)下,所以不需指定 pfile 選項。否則,您所執行的 startup 指令應該類似于:


startup nomount pfile = $oracle_home/pfile/initmydb.ora

 
 

 

 

截至目前為止,我們才算是完成執行 create database 指令前的所有準備工作 — 在內存內已順利配置 sga,并激活各種背景處理程序。但此時系統本身尚未存在任何實體數據庫。接下來是最重要的步驟 — 執行 create database 指令。

 

步驟 5: 執行 create database 指令

當您執行 create database 指令建立新數據庫時,oracle9i 會完成下列各項主要工作:

n          建立新數據庫的實體檔案,如資料文件、重置日志文件。

n          更新控制文件內相關信息。

n          建立 system 資料表空間與 system 退回區段(rollback segment)。

n          建立數據字典

n          設定數據庫使用的字符集

n          設定數據庫所在時區

 

以下是 create database 指令之范例:

 


create database mydb

maxinstances 1

maxloghistory 1

maxlogfiles 5

maxlogmembers 5

maxdatafiles 100

datafile '$oracle_home/oradata/mydb/system01.dbf' size 200m reuse

undo tablespace undotbs datafile

 '$oracle_home/oradata/mydb/undotbs01.dbf'

size 200m reuse autoextend on next 2048k maxsize unlimited

default temporary tablespace temptbs1

character set zht16big5

national character set al16utf16

logfile 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          數據庫名稱為 mydb,其全域數據庫名稱(global database name)為 mydb.uuu.com.tw。

n          依照起始參數檔 control_files 參數所設定的名稱與路徑分別建立三個控制檔。

n          maxinstances 參數:可用來開啟該數據庫的 instance 數目。

n          maxdatafiles 參數:該數據庫所擁有的最大數據文件數量。

n          如 datafile 子句所設定,該數據庫 system 資料表空間所相對應的操作系統檔案為 $oracle_home/oradata/mydb/system01.dbf。假如該檔案已事先存在,則予以覆寫。

n          undo_tablespace 用以建立與命名「回復資料表空間」(undo tablespace)。

n          default_temporary_tablespace 用以建立與命名該數據庫預設的「暫時資料表空間」。

n          zht16big5 為數據庫內存放資料的字符集。

n          al16utf16 為「國際字符集」(national character set) 設定值,為 nchar、nclob、與 nvarchar2 等 unicode 字段所使用的字符集。al16utf16 為 sql nchar 資料型態預設的字符集,其編碼方式為 utf-16。

n          新數據庫擁有三個線上重置日志文件(online redo log files),分別設定在 logfile 子句中。maxloghistory、maxlogfiles、與 maxlogmembers 為重置日志文件的相關設定。

n          因為 create database 指令內并未包含 archivelog 子句,所以該數據庫并不會進行重置日志文件的封存動作。您可以在數據庫建立后執行 alter database 指令將數據庫切換為「封存模式」(archivelog mode)。起始參數文件內與「封存模式」相關的參數為 log_archive_dest_1、log_archive_format、與  log_archive_start。

n          在 create database 指令內也可加上 set time_zone 子句以設定數據庫時區(time zone)。如果省略該子句,則數據庫預設時區(time zone)與操作系統時區相同。

 

步驟 6: 建立其它資料表空間

上期專欄內容中我們曾經探討過 oracle9i 的資料表空間規劃方式。以步驟 5 的 create database 指令而言,新數據庫內將只有一個 system 資料表空間。為了更有效地使用及管理 oracle9i 數據庫,建議您另外新增數個資料表空間,依照應用系統實際需求而定。以下指令分別建立 users 與 indx 數據表空間。

 


create tablespace users logging

datafile '$oracle_home/oradata/mydb/users01.dbf '

size 25m reuse autoextend on next 1280k maxsize unlimited

extent management local;

 

create tablespace indx logging

datafile '$oracle_home/oradata/mydb/indx01.dbf '

size 25m reuse autoextend on next 1280k maxsize unlimited

extent management local;

 

 
 

 

 

 

 

 

 

 

 

 

 

步驟 7: 建立數據字典視觀表

除了建立額外的資料表空間外,您還必須在數據庫建立之后執行兩個重要的指令文件:catelog.sql 與 cataproc.sql。這兩個指令文件將在 oracle9i 數據庫內建立管理工作必備的視觀表、同義字(synonyms)、以及 pl/sql 套件(packages)。

n          catalog.sql:

本指令文件內容為:在數據字典數據表上建立相關視觀表、動態效能視觀表、以及存取各種視觀表所用的同義字。此外,catalog.sql 也會將這些視觀表的使用權限授權給數據庫使用者。

n          cataproc.sql:

本指令文件內包含執行 pl/sql 程序所需的所有指令文件。

 

移除 oracle9i 數據庫的方式

移除 oracle9i 數據庫的方式有兩種。傳統方式是手動刪除所有數據庫實體檔案;較簡便的方式是使用「數據庫組態輔助精靈」。

如果您想手動移除先前建立的 oracle9i 數據庫,步驟可能會稍微繁瑣一點。因為所有數據庫相關檔案(包含資料文件、重置日志文件、控制文件、起始參數文件、重置日志封存盤...等)都必須自操作系統刪除。如果您不清楚這些檔案的存放位置,可查詢 v$datafile、v$logfile、與 v$controlfile 等數據字典視觀表。如果您欲移除的數據庫是設定在「封存模式」,那么建議您先檢視起始參數檔內 log_archive_dest_ n、log_archive_dest、與  log_archive_duplex_dest 等參數,以便從操作系統刪除舊有重置日志封存盤。

 

結語

本期談到如何以手動方式建置 oracle9i 數據庫,以及 create database 指令的主要項目。希望各位讀者對于 oracle9i 數據庫的建置過程都能有一定程度的了解。未來有機會我將為大家示范如何經由「數據庫組態輔助精靈」來建置 oracle9i 數據庫。屆時您將發現,原來建置 oracle9i 數據庫竟然如此簡單!

 

作者簡介

何致億,專長為oracle、sql server 等大型數據庫系統管理,資料倉儲規劃建置,以及數據庫應用程序系統開發。擁有 mcsd、mcdba,oracle ocp,rhce,scjp,borland jbuilder product certified等十余項國際認證。目前正致力于oracle9i應用系統開發,并負責oracle9i系列書籍中文化與oracle press技術校稿工作。他同時也是美商 oracle 與 sun microsystems公司原廠認證講師。您可以透過[email protected]與他聯系。





注[1]:有關 oracle 9i 數據庫的字符集種類與名稱,請參閱《oracle9i globalization support guide release 1》

注[2]: shared_pool_size 與 large_pool_size 在 oracle9i 以前為靜態變量。

注[3]:起始參數檔之 db_name 參數值必須與 oracle_sid 完全吻合。

注[4]:以我的 oracle9i 數據庫為例:oracle_base = /opt/oracle,而 oracle_home = $oracle_base/product/9.0.1,所以起始參數文件之預設目錄應為  opt/oracle/product/9.0.1/dbs。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仙居县| 井冈山市| 来宾市| 来凤县| 巴里| 牟定县| 射洪县| 明溪县| 泰和县| 新蔡县| 库尔勒市| 含山县| 蕲春县| 象州县| 广汉市| 治县。| 玉树县| 沙湾县| 望奎县| 道孚县| 搜索| 嘉定区| 阳东县| 全椒县| 孙吴县| 永修县| 鄱阳县| 义马市| 无棣县| 信阳市| 灵丘县| 新平| 沭阳县| 密山市| 凯里市| 包头市| 南漳县| 江源县| 科技| 于田县| 舞阳县|