oracle實(shí)例名,數(shù)據(jù)庫(kù)名,服務(wù)名等概念區(qū)別與聯(lián)系
oracle 實(shí)例名, 數(shù)據(jù)庫(kù)名, 服務(wù)名等概念區(qū)別與聯(lián)系數(shù)據(jù)庫(kù)oracle 服務(wù)器archivedatabase 多線程數(shù)據(jù)庫(kù)名、實(shí)例名、數(shù)據(jù)庫(kù)域名、全局?jǐn)?shù)據(jù)庫(kù)名、服務(wù)名這是幾個(gè)令很多初學(xué)者容易混淆
oracle 實(shí)例名, 數(shù)據(jù)庫(kù)名, 服務(wù)名等概念區(qū)別與聯(lián)系
數(shù)據(jù)庫(kù)oracle 服務(wù)器archivedatabase 多線程數(shù)據(jù)庫(kù)名、實(shí)例名、數(shù)據(jù)庫(kù)域名、全局?jǐn)?shù)據(jù)庫(kù)名、服務(wù)名這是幾個(gè)令很多初學(xué)者容易混淆的概念。相信很多初學(xué)者都與我一樣被標(biāo)題上這些個(gè)概念搞得一頭霧水。我們現(xiàn)在就來(lái)把它們弄個(gè)明白。
一、數(shù)據(jù)庫(kù)名
什么是數(shù)據(jù)庫(kù)名?
數(shù)據(jù)庫(kù)名就是一個(gè)數(shù)據(jù)庫(kù)的標(biāo)識(shí),就像人的身份證號(hào)一樣。他用參數(shù)DB_NAME表示,如果一臺(tái)機(jī)器上裝了多全數(shù)據(jù)庫(kù),那么每一個(gè)數(shù)據(jù)庫(kù)都有一個(gè)數(shù)據(jù)庫(kù)名。在數(shù)據(jù)庫(kù)安裝或創(chuàng)建完成之后,參數(shù)DB_NAME被寫入?yún)?shù)文件之中。格式如下:
DB_NAME=myorcl
...
在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)就應(yīng)考慮好數(shù)據(jù)庫(kù)名,并且在創(chuàng)建完數(shù)據(jù)庫(kù)之后,數(shù)據(jù)庫(kù)名不宜修改,即使要修改也會(huì)很麻煩。因?yàn)椋瑪?shù)據(jù)庫(kù)名還被寫入控制文件中,控制文件是以二進(jìn)制型式存儲(chǔ)的,用戶無(wú)法修改控制文件的內(nèi)容。假設(shè)用戶修改了參數(shù)文件中的數(shù)據(jù)庫(kù)名,即修改DB_NAME的值。但是在Oracle 啟動(dòng)時(shí),由于參數(shù)文件中的DB_NAME與控制文件中的數(shù)據(jù)庫(kù)名不一致,導(dǎo)致數(shù)據(jù)庫(kù)啟動(dòng)失敗,將返回ORA-01103錯(cuò)誤。
數(shù)據(jù)庫(kù)名的作用
數(shù)據(jù)庫(kù)名是在安裝數(shù)據(jù)庫(kù)、創(chuàng)建新的數(shù)據(jù)庫(kù)、創(chuàng)建數(shù)據(jù)庫(kù)控制文件、修改數(shù)據(jù)結(jié)構(gòu)、備份與恢復(fù)數(shù)據(jù)庫(kù)時(shí)都需要使用到的。
有很多Oracle 安裝文件目錄是與數(shù)據(jù)庫(kù)名相關(guān)的,如:
winnt: d:/oracle/product/10.1.0/oradata/DB_NAME/...
Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:/oracle/product/10.1.0/admin/DB_NAME/pfile/ini.ora
Unix: /home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora 跟蹤文件目錄:
winnt: /home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/...
另外,在創(chuàng)建數(shù)據(jù)時(shí),careate database命令中的數(shù)據(jù)庫(kù)名也要與參數(shù)文件中DB_NAME參數(shù)的值一致,否則將產(chǎn)生錯(cuò)誤。
同樣,修改數(shù)據(jù)庫(kù)結(jié)構(gòu)的語(yǔ)句alter database,當(dāng)然也要指出要修改的數(shù)據(jù)庫(kù)的名稱。 如果控制文件損壞或丟失,數(shù)據(jù)庫(kù)將不能加載,這時(shí)要重新創(chuàng)建控制文件,方法是以nomount 方式啟動(dòng)實(shí)例,然后以create controlfile 命令創(chuàng)建控制文件,當(dāng)然這個(gè)命令中也是指指DB_NAME。
還有在備份或恢復(fù)數(shù)據(jù)庫(kù)時(shí),都需要用到數(shù)據(jù)庫(kù)名。
總之,數(shù)據(jù)庫(kù)名很重要,要準(zhǔn)確理解它的作用。
,查詢當(dāng)前數(shù)據(jù)名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看參數(shù)文件。
修改數(shù)據(jù)庫(kù)名
前面建議:應(yīng)在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)就確定好數(shù)據(jù)庫(kù)名,數(shù)據(jù)庫(kù)名不應(yīng)作修改,因?yàn)樾薷臄?shù)據(jù)庫(kù)名是一件比較復(fù)雜的事情。那么現(xiàn)在就來(lái)說(shuō)明一下,如何在已創(chuàng)建數(shù)據(jù)之后,修改數(shù)據(jù)庫(kù)名。步驟如下:
1. 關(guān)閉數(shù)據(jù)庫(kù)。
2. 修改數(shù)據(jù)庫(kù)參數(shù)文件中的DB_NAME參數(shù)的值為新的數(shù)據(jù)庫(kù)名。
3. 以NOMOUNT 方式啟動(dòng)實(shí)例,修建控制文件(有關(guān)創(chuàng)建控制文件的命令語(yǔ)法,請(qǐng)參考o(jì)racle 文檔)
二、數(shù)據(jù)庫(kù)實(shí)例名
什么是數(shù)據(jù)庫(kù)實(shí)例名?
數(shù)據(jù)庫(kù)實(shí)例名是用于和操作系統(tǒng)進(jìn)行聯(lián)系的標(biāo)識(shí),就是說(shuō)數(shù)據(jù)庫(kù)和操作系統(tǒng)之間的交互用的是數(shù)據(jù)庫(kù)實(shí)例名。實(shí)例名也被寫入?yún)?shù)文件中,該參數(shù)為instance_name,在winnt 平臺(tái)中,實(shí)例名同時(shí)也被寫入注冊(cè)表。
數(shù)據(jù)庫(kù)名和實(shí)例名可以相同也可以不同。
在一般情況下,數(shù)據(jù)庫(kù)名和實(shí)例名是一對(duì)一的關(guān)系,但如果在oracle 并行服務(wù)器架構(gòu)(即oracle 實(shí)時(shí)應(yīng)用集群) 中,數(shù)據(jù)庫(kù)名和實(shí)例名是一對(duì)多的關(guān)系。這一點(diǎn)在第一篇中已有圖例說(shuō)明。
查詢當(dāng)前數(shù)據(jù)庫(kù)實(shí)例名
方法一:selectinstance_name from v$instance;
方法二:show parameter instance
方法三:在參數(shù)文件中查詢。
數(shù)據(jù)庫(kù)實(shí)例名與ORACLE_SID
雖然兩者都表是oracle 實(shí)例,但兩者是有區(qū)別的。instance_name是oracle 數(shù)據(jù)庫(kù)參數(shù)。而ORACLE_SID是操作系統(tǒng)的環(huán)境變量。 ORACLD_SID用于與操作系統(tǒng)交互,也就是說(shuō),從操作系統(tǒng)的角度訪問(wèn)實(shí)例名,必須通過(guò)ORACLE_SID。在winnt 不臺(tái), ORACLE_SID還需存在于注冊(cè)表中。
,且ORACLE_SID必須與instance_name的值一致,否則,你將會(huì)收到一個(gè)錯(cuò)誤,在unix 平臺(tái),是“ORACLE not available”, 在winnt 平臺(tái),是“TNS:協(xié)議適配器錯(cuò)誤”。
數(shù)據(jù)庫(kù)實(shí)例名與網(wǎng)絡(luò)連接
數(shù)據(jù)庫(kù)實(shí)例名除了與操作系統(tǒng)交互外,還用于網(wǎng)絡(luò)連接的oracle 服務(wù)器標(biāo)識(shí)。當(dāng)你配置oracle 主機(jī)連接串的時(shí)候,就需要指定實(shí)例名。當(dāng)然8i 以后版本的網(wǎng)絡(luò)組件要求使用的是服務(wù)名SERVICE_NAME。這個(gè)概念接下來(lái)說(shuō)明。
三、數(shù)據(jù)庫(kù)域名
什么是數(shù)據(jù)庫(kù)域名?
在分布工數(shù)據(jù)庫(kù)系統(tǒng)中,不同版本的數(shù)據(jù)庫(kù)服務(wù)器之間,不論運(yùn)行的操作系統(tǒng)是unix 或是windows ,各服務(wù)器之間都可以通過(guò)數(shù)據(jù)庫(kù)鏈路進(jìn)行遠(yuǎn)程復(fù)制,數(shù)據(jù)庫(kù)域名主要用于oracle 分布式環(huán)境中的復(fù)制。舉例說(shuō)明如:
全國(guó)交通運(yùn)政系統(tǒng)的分布式數(shù)據(jù)庫(kù),其中:
福建節(jié)點(diǎn):fj.jtyz
福建廈門節(jié)點(diǎn):xm.fj.jtyz
江西:jx.jtyz
江西上饒:sr.jx.jtyz
這就是數(shù)據(jù)庫(kù)域名。
數(shù)據(jù)庫(kù)域名在存在于參數(shù)文件中,他的參數(shù)是db_domain.
查詢數(shù)據(jù)庫(kù)域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
方法三:在參數(shù)文件中查詢。
全局?jǐn)?shù)據(jù)庫(kù)名
全局?jǐn)?shù)據(jù)庫(kù)名=數(shù)據(jù)庫(kù)名 數(shù)據(jù)庫(kù)域名,如前述福建節(jié)點(diǎn)的全局?jǐn)?shù)據(jù)庫(kù)名是:oradb.fj.jtyz
四、數(shù)據(jù)庫(kù)服務(wù)名
,什么是數(shù)據(jù)庫(kù)服務(wù)名?
從oracle9i 版本開(kāi)始,引入了一個(gè)新的參數(shù),即數(shù)據(jù)庫(kù)服務(wù)名。參數(shù)名是SERVICE_NAME。 如果數(shù)據(jù)庫(kù)有域名,則數(shù)據(jù)庫(kù)服務(wù)名就是全局?jǐn)?shù)據(jù)庫(kù)名;否則,數(shù)據(jù)庫(kù)服務(wù)名與數(shù)據(jù)庫(kù)名相同。
查詢數(shù)據(jù)庫(kù)服務(wù)名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在參數(shù)文件中查詢。
數(shù)據(jù)庫(kù)服務(wù)名與網(wǎng)絡(luò)連接
從oracle8i 開(kāi)如的oracle 網(wǎng)絡(luò)組件,數(shù)據(jù)庫(kù)與客戶端的連接主機(jī)串使用數(shù)據(jù)庫(kù)服務(wù)名。之前用的是ORACLE_SID,即數(shù)據(jù)庫(kù)實(shí)例名
創(chuàng)建Oracle 數(shù)據(jù)庫(kù)(以O(shè)racle10g 為例)
有兩種創(chuàng)建數(shù)據(jù)庫(kù)的方式,一種是以命令行腳本方式,即手動(dòng)方式創(chuàng)建;另一種是利用Oracle 提供的數(shù)據(jù)庫(kù)配置向?qū)?lái)創(chuàng)建。本篇主要介紹在Unix 和Windows 下以命令行腳本方式創(chuàng)建Oracle 數(shù)據(jù)庫(kù)。
一個(gè)完整的數(shù)據(jù)庫(kù)系統(tǒng),應(yīng)包括一個(gè)物理結(jié)構(gòu)、一個(gè)邏輯結(jié)構(gòu)、一個(gè)內(nèi)存結(jié)構(gòu)和一個(gè)進(jìn)程結(jié)構(gòu),如果要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),則這些結(jié)構(gòu)都必須完整的建立起來(lái)。
一、在Unix 下創(chuàng)建數(shù)據(jù)庫(kù)
1. 確定數(shù)據(jù)庫(kù)名、數(shù)據(jù)庫(kù)實(shí)例名和服務(wù)名
關(guān)于數(shù)據(jù)庫(kù)名、數(shù)據(jù)庫(kù)實(shí)例名和服務(wù)名,我之前有專門用一篇來(lái)詳細(xì)介紹。這里就不再說(shuō)明了。
2. 創(chuàng)建參數(shù)文件
參數(shù)文件很確定了數(shù)據(jù)庫(kù)的總體結(jié)構(gòu)。Oracle10g 有兩種參數(shù)文件,一個(gè)是文本參數(shù)文件,
,一種是服務(wù)器參數(shù)文件。在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)先創(chuàng)建文本參數(shù)文件,在數(shù)據(jù)庫(kù)創(chuàng)建后,可以由文件參數(shù)文件創(chuàng)建服務(wù)器參數(shù)文件。文本參數(shù)文件的取名方式為initORACLE_SID.ora,其中,ORACLE_SID是數(shù)據(jù)庫(kù)實(shí)例名。其名稱及路徑為:
/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/initORACLE_SID.ora
其中,DB_NAME為數(shù)據(jù)庫(kù)名。所以,應(yīng)創(chuàng)建一個(gè)以之命名的目錄,并將文本參數(shù)文件存放在上述目錄中。假設(shè)新創(chuàng)建的數(shù)據(jù)庫(kù)名為MYORACLE ,SID 與數(shù)據(jù)庫(kù)名一致。則上述目錄實(shí)際為:
/home/app/oracle/product/10.1.0/admin/MYORACLE/pfile/initMYORACLE.ora
1) 參數(shù)文件的介紹
參數(shù)文件決定著數(shù)據(jù)庫(kù)的總體結(jié)構(gòu),用于設(shè)置數(shù)據(jù)庫(kù)的近260個(gè)系統(tǒng)參數(shù)。下面分類別說(shuō)明一下各參數(shù)的作用,關(guān)于參數(shù)的詳細(xì)使用說(shuō)明請(qǐng)參考Oracle 官方參考文檔。
a. 數(shù)據(jù)庫(kù)標(biāo)識(shí)類參數(shù)
DB_NAME: 數(shù)據(jù)庫(kù)名,此參數(shù)在創(chuàng)建數(shù)據(jù)前決定,數(shù)據(jù)庫(kù)創(chuàng)建后修改時(shí),必須建控制文件 DB_DOMAIN: 數(shù)據(jù)庫(kù)域名,用于區(qū)別同名數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)名與域名一起構(gòu)成了全局?jǐn)?shù)據(jù)庫(kù)名 INSTANCE_NAME: 數(shù)據(jù)庫(kù)實(shí)例名,可以與數(shù)據(jù)庫(kù)相同
SERVICE_NAMES: 數(shù)據(jù)庫(kù)服務(wù)名,與全局?jǐn)?shù)據(jù)庫(kù)名相同如果沒(méi)有域名,則服務(wù)名就是數(shù)據(jù)庫(kù)名
b. 日志管理類參數(shù)
LOG_ARCHIVE_START: 是否啟動(dòng)自動(dòng)歸檔進(jìn)程ARCH
LOG_ARCHIVE_DEST: 歸檔日志文件存儲(chǔ)目錄
LOG_ARCHIVE_FORMAT: 歸檔日志文件的默認(rèn)文件存儲(chǔ)格式
LOG_ARCHIVE_DUPLEX_DEST: 歸檔日志文件鏡像存儲(chǔ)目錄(Oracle8以上)
LOG_ARCHIVE_DEST_n: 歸檔日志文件存儲(chǔ)目錄(Oracle8i 以上)
LOG_ARCHIVE_DEST_STATE_n: 設(shè)置參數(shù)LOG_ARCHIVE_DEST_n失效或生效
LOG_ARCHIVE_MAX_PROCESSES: 設(shè)置自動(dòng)歸檔進(jìn)程的個(gè)數(shù)
LOG_ARCHIVE_MIN_SUCCEED_DEST: 設(shè)置最少的成功歸檔日志存儲(chǔ)目錄的個(gè)數(shù)
LOG_CHECKPOINT_INTERVAL: 根據(jù)日志數(shù)量設(shè)置檢驗(yàn)點(diǎn)頻率
LOG_CHECKPOINT_TIMEOUT: 根據(jù)時(shí)間間隔設(shè)置檢驗(yàn)點(diǎn)頻率
c. 內(nèi)存管理參數(shù)
DB_BLOCK_SIZE: 標(biāo)準(zhǔn)數(shù)據(jù)塊大小
DB_nK_CACHE_SIZE: 非標(biāo)準(zhǔn)數(shù)據(jù)塊數(shù)據(jù)緩沖區(qū)大小
SHARED_POOL_SIZE: 共享池大小控制參數(shù),單位為字節(jié)
DB_CACHE_SIZE: 標(biāo)準(zhǔn)數(shù)據(jù)塊數(shù)據(jù)緩沖區(qū)大小
DB_BLOCK_BUFFERS: 數(shù)據(jù)緩沖區(qū)大小,9i 之后已放棄使用
LOG_BUFFER: 日志緩沖區(qū)大小
SORT_AREA_SIZE: 排序區(qū)大小
,LARGE_POOL_SIZE: 大池大小
JAVA_POOL_SIZE: Java池大小
d. 最大許可用戶數(shù)量限制參數(shù)
LICENSE_MAX_SESSIONS:數(shù)據(jù)庫(kù)可以連接的最大會(huì)話數(shù)
LICENSE_MAX_USERS:數(shù)據(jù)庫(kù)支持的最大用戶數(shù)
LICENSE_MAX_WARNING:數(shù)據(jù)庫(kù)最大警告會(huì)數(shù)(會(huì)話數(shù)據(jù)達(dá)到這個(gè)值時(shí),產(chǎn)生新會(huì)話時(shí)就會(huì)產(chǎn)生警告信息)
e. 系統(tǒng)跟蹤信息管理參數(shù)
USER_DUMP_DEST:用戶跟蹤文件生成的設(shè)置
BACKGROUND_DUMP_DEST:后臺(tái)進(jìn)程跟蹤文件生成的位置
MAX_DUMPFILE_SIZE:跟蹤文件的最大尺寸
f. 系統(tǒng)性能優(yōu)化與動(dòng)態(tài)統(tǒng)計(jì)參數(shù)
SQL_TRACE:設(shè)置SQL 跟蹤
TIMED_STATICS:設(shè)置動(dòng)態(tài)統(tǒng)計(jì)
AUDIT_TRAIL:啟動(dòng)數(shù)據(jù)庫(kù)審計(jì)功能
g. 其他系統(tǒng)參數(shù)
CONTROL_FILES:控制文件名及路徑
Undo_MANAGMENT:Undo空間管理方式
ROLLBACK_SEGMENTS:為這個(gè)例程分配的回退段名
OPEN_CURSORS:一個(gè)用戶一次可以打開(kāi)的游標(biāo)的最大值
PROCESSES:最大進(jìn)程數(shù),包括后臺(tái)進(jìn)程與服務(wù)器進(jìn)程
IFILE:另一個(gè)參數(shù)文件的名字
DB_RECOVERY_FILE_DEST:自動(dòng)數(shù)據(jù)庫(kù)備份目錄
DB_RECOVERY_FILE_SIZE:數(shù)據(jù)庫(kù)備份文件大小
2)參數(shù)文件樣式
db_name=myoracle
instance_name=myoracle
db_domain=fangys.xiya.com
service_names=myoracle.fangys.xiya.com
control_files=(/home/app/oracle/product/10.1.0/oradata/myoracle/control01.ctl,
/home/app/oracle/product/10.1.0/oradata/myoracle/control02.ctl,
/home/app/oracle/product/10.1.0/oradata/myoracle/control03.ctl)
db_block_size=8192
user_dump_dest=/home/app/oracle/product/10.1.0/admin/myoracle/udump
,background_dump_dest=/home/app/oracle/product/10.1.0/admin/myoracle/bdump core_dump_dest=/home/app/oracle/product/10.1.0/admin/myoracle/cdump
db_recovery_file_dest=/home/app/oracle/product/10.1.0/flash_recover_area
db_recovery_file_size=100G
...
3. 設(shè)置操作系統(tǒng)參數(shù)
$ORACLE_SID=myoracle
$export ORACLE_SID
4. 啟動(dòng)實(shí)例并創(chuàng)建數(shù)據(jù)庫(kù)
在創(chuàng)建數(shù)據(jù)庫(kù)之前,首先要以新的數(shù)據(jù)庫(kù)參數(shù)啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例,因?yàn)檫@時(shí)數(shù)據(jù)庫(kù)的控制文件還沒(méi)有產(chǎn)生,不能MOUNT 或OPEN 數(shù)據(jù)庫(kù)。啟動(dòng)實(shí)例時(shí),Oracle 只按照內(nèi)存參數(shù)分配SGA 區(qū),啟動(dòng)系統(tǒng)后臺(tái)進(jìn)程。
$sqlplus "sys/pass as sysdba"
sql>startup nomount
如果參數(shù)文件不在規(guī)定的目錄中,可以在啟動(dòng)實(shí)例時(shí)指定參數(shù)文件:
sql>startup pfile=/export/home/user/initmyoracle.initnomount
在實(shí)例啟動(dòng)后就可以使用CREATE DATABASE 命令創(chuàng)建數(shù)據(jù)。其詳細(xì)語(yǔ)法請(qǐng)參考Oracle 官方SQL 參考文檔。這里以實(shí)例來(lái)介紹:
sql>CREATE DATABASE myoracle
MAXINSTANCE 1
MAXLOGHISTORY 216
MAXLOGFILES 50
MAXLOGMEMBERS 5
DATAFILE '/home1/app/oracle/product/10.1.0/oradata/myoracle/system01.dbf' SIZE 500m AUTOEXTEND ON NEXT 100m MAXSIZE UNLIMITED
LOGFILE
GROUP 1('/home1/app/oracle/product/10.1.0/oradata/myoracle/log1a.log',
'/home1/app/oracle/product/10.1.0/oradata/myoracle/log1b.log') SIZE 10m,
GROUP 2('/home1/app/oracle/product/10.1.0/oradata/myoracle/log2a.log',
'/home1/app/oracle/product/10.1.0/oradata/myoracle/log2b.log') SIZE 10m,
GROUP 3('/home1/app/oracle/product/10.1.0/oradata/myoracle/log3a.log',
'/home1/app/oracle/product/10.1.0/oradata/myoracle/log3b.log') SIZE 10m,
Undo TABLESPACE undotbs DATAFILE
'/home1/app/oracle/product/10.1.0/oradata/myoracle/undotbs01.dbf' size 200m
AUTOEXTEND ON NEXT 100m MAXSIZE UNLIMITED
DEFAULT TEMPORARY TALESPACE temp TEMPFILE
'/home1/app/oracle/product/10.1.0/oradata/myoracle/temp01.dbf' size 325m
AUTOEXTEND ON NEXT 100m MAXSIZE UNLIMITED
,DEFAULT TABLESPACE users DATAFILE
'/home1/app/oracle/product/10.1.0/oradata/myoracle/usertbs01.dbf' size 1000m
CHARACTER SET ZHS16GBK;
這里說(shuō)明一下CREATE DATABASE語(yǔ)句的各個(gè)關(guān)鍵字的含義:
DATAFILE:SYSTEM表空間的數(shù)據(jù)文件定義
LOGFILE:日志文件組的定義
Undo_TABLESPACE:重做表空間的定義
DEFAULT TEMPORTY TABLESPACE:默認(rèn)臨時(shí)表空間的定義
DEFAULT TABLESPACE:默認(rèn)數(shù)據(jù)表空間的定義。
5. 創(chuàng)建數(shù)據(jù)字典
在數(shù)據(jù)庫(kù)創(chuàng)建結(jié)束后,數(shù)據(jù)庫(kù)自動(dòng)處于OPEN 狀態(tài)下,這時(shí)所有V$××××類數(shù)據(jù)字典都可以查詢。而其它數(shù)據(jù)字典,如DBA_DATA_FILES、DBA_TABLESPACES等都不存在,必須通過(guò)下列驟為系統(tǒng)創(chuàng)建數(shù)據(jù)字典。
1) 加載常用的數(shù)據(jù)字典包
sql>@/home/app/oracle/product/10.1.0/db_1/rdbms/catalog
2) 加載PL/SQL程序包
sql>@/home/app/oracle/product/10.1.0/db_1/rdbms/admin/catproc
3) 加載數(shù)據(jù)復(fù)制支持軟件包
sql>@/home/app/oracle/product/10.1.0/db_1/rdbms/admin/catrep
4) 加載Java 程序包
sql>@/home/app/oracle/product/10.1.0/db_1/javavm/install/initjvm
5) 加載系統(tǒng)環(huán)境文件
sql>connect system/pass
sql>@/home/app/oracle/product/10.1.0/db_1/sqlplus/admin/pupbld
二、在Windows 下創(chuàng)建數(shù)據(jù)庫(kù)
Oracle 實(shí)例在Windows 下表現(xiàn)為操作系統(tǒng)服務(wù)。在windows 下,使用命令行方式創(chuàng)建數(shù)據(jù)的方法有所不同,差別在于在Windows 下,需要先創(chuàng)建數(shù)據(jù)庫(kù)服務(wù)和實(shí)例。
1. 確定數(shù)據(jù)庫(kù)名、數(shù)據(jù)庫(kù)實(shí)例名和服務(wù)名并創(chuàng)建目錄(DBCA創(chuàng)建的腳本不包含建立目錄命令,須自己創(chuàng)建)
建立目錄命令(下面以db_name=eygle為例) :
mkdir D:/oracle/ora90/cfgtoollogs/dbca/eygle
mkdir D:/oracle/ora90/database
mkdir d:/oracle/admin/eygle/adump
mkdir d:/oracle/admin/eygle/bdump
mkdir d:/oracle/admin/eygle/cdump
,mkdir d:/oracle/admin/eygle/dpdump
mkdir d:/oracle/admin/eygle/pfile
mkdir d:/oracle/admin/eygle/udump
mkdir d:/oracle/flash_recovery_area
mkdir d:/oracle/oradata
mkdir d:/oracle/oradata/eygle
2. 創(chuàng)建參數(shù)文件
在Windows 下的參數(shù)文件名稱及路徑如下:
d:/oracle/product/10.1.0/admin/DB_NAME/pfile/init.ora(oracle10g)
d:/orant/database/iniORACLE_SID.ora(oracle7,oracle8)
參數(shù)據(jù)文件內(nèi)容與前述一致。這里不再說(shuō)明。
3. 選擇數(shù)據(jù)庫(kù)實(shí)例
設(shè)置環(huán)境變量ORACLE_SID
c:/>set ORACLE_SID=數(shù)據(jù)庫(kù)實(shí)例名
4. 創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例
在Windows 中創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例的命令為Oradim.exe ,是一個(gè)可執(zhí)行文件,可以在操作系統(tǒng)符號(hào)下直接運(yùn)行。直接輸入oradim 顯示此命令的幫助。
c:/>Oradim
下面對(duì)Oradim 命令的參數(shù)進(jìn)行一個(gè)說(shuō)明
-------------------------------
-NEW 表示新建一個(gè)實(shí)例
-EDIT 表示修改一個(gè)實(shí)例
-DELETE 表示刪除一個(gè)實(shí)例
-SID sid指定要啟動(dòng)的實(shí)例名稱
-SRVC service 指定要啟動(dòng)的服務(wù)名稱
-INTPWD password 以Internal 方式連接數(shù)據(jù)庫(kù)時(shí)的口令字
-MAXUSERS count 該實(shí)例可以連接的最大用戶數(shù)
-USRPWD password 指定內(nèi)部用戶的口令,如是作為Windows 管理登錄,不用此參數(shù) -PFILE pfile該實(shí)例所使用的參數(shù)文件名及路徑
-STARTTYPE srvc|inst|srvc,inst啟動(dòng)選項(xiàng)(srvc:只啟動(dòng)服務(wù),inst:啟動(dòng)實(shí)例,服務(wù)必須先啟動(dòng),srvc,inst:服務(wù)和實(shí)例同時(shí)啟動(dòng))
-SHUTTYPE srvc|linst|srvc,inst關(guān)閉選項(xiàng)(srvc:只關(guān)閉服務(wù),實(shí)例必須已關(guān)閉,inst:只關(guān)閉實(shí)例,srvc,inst:服務(wù)和實(shí)例同時(shí)關(guān)閉)
-STARTMODE a|m創(chuàng)建實(shí)例所使用的模式(a:自動(dòng),即windows 啟動(dòng)時(shí)自動(dòng)啟動(dòng) m:手動(dòng)) -SHUTMODE a|i|m關(guān)閉實(shí)例時(shí)所使用的模式(a:abort異常方式,i:immediate立即方
,式,n:normal正常方式)
----------------------------
例:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)實(shí)例
c:/>oradim -NEW -SID myoracle -STARTMODE m -PFILE "d:/fangys/initmyoracle.ora"
或
c:/>oradim -NEW -SRVC OracleServicemyoracle -STARTMODE m -PFILE "d:/fangys/initmyoracle.ora"
例:修改一個(gè)數(shù)據(jù)實(shí)例
c:/>oradim -EDIT -SID myoracle -STARTMODE a
或
c:/>oradim -EDIT -SRVC OracleServicemyoracle -STARTMODE a
例:刪除一個(gè)實(shí)例
c:/>oradim -DELETE -SID myoracle
或
c:/>oradim -DELETE -SRVC Oracleservicemyoracle
例:?jiǎn)?dòng)服務(wù)與實(shí)例
c:/>oradim -STARTUP -SID myoracle -STARTTYPE srvc,inst
只啟動(dòng)服務(wù)
c:/>oradim -STARTUP -SID myoracle -STARTTYPE srvc
啟動(dòng)實(shí)例:
c:/>oradim -STARTUP -SID myoracle -STARTTYPE inst
例:關(guān)閉服務(wù)與實(shí)例
c:/>oradim -SHUTDOWN -SID myoracle
c:/>oradim -SHUTDOWN -SID myoracle -SHUTTYPE srvc,inst
5. 啟動(dòng)實(shí)例并創(chuàng)建數(shù)據(jù)庫(kù)
c:/>oradim -NEW -SID myoracle -INTPWD syspass
d:/fangys/initmyoracle.ora
c:/>set ORACLE_SID=myoracle
c:/>sqlplus sys/syspass as sysdba
sql>startup -pfile=d:/fangys/initmyoracle.oranomount
sql>CREATE DATABASE myoracle
logfile group...
...
6. 創(chuàng)建數(shù)據(jù)字典
sql>@d:/oracle/product/10.1.0/db_1/rdbms/admin/catalog.sql;
sql>@d:/oracle/product/10.1.0/db_1/rdbms/admin/catproc.sql;
sql>@d:/oracle/product/10.1.0/db_1/rdbms/admin/catrep.sql;
sql>@d:/oracle/product/10.1.0/db_1/javavm/install/initjvm.sql; -STARTMODE a -PFILE