oracle为什么要创建数据库,手动创建Oracle数据库之前因后果
對于許多數據庫管理員來說,究
竟是不是一個難以管理和駕馭的怪獸級數據庫,會不會讓他們管理生涯飽受折磨?當看到其命令行界面時,很多人會問這么一個問題。如果你想通過一個應用程序操
控使用這個數據庫,那么你應當是一名終端用戶;因此對這類人而言,界面越透明當然越好,而命令行界面顯然不夠理想。而如果你想成為精通數據庫的技術員,成
為排除數據庫故障的檢修員,成為當大家碰到數據庫難題時會向他求助的萬能先生的話,你就不能嫌臟怕累,而要不辭勞苦地深入了解數據庫的結構和機理,這樣你
才能知道數據庫到底怎么運作,發生了什么問題。命令行界面正是你需要適應并了解的東西。
為什么要手動創建數據庫?
創建數據庫也應該是你要深入了解的內容之一。當然,Oracle本身提供有圖形用戶界面工具可以幫助用戶出色地完成這項任務。但是如果失敗了
呢?如果你在創建的過程中出現了警告或錯誤信息呢?這時候你應當怎么辦?你是否想知道在這些信息背后到底是哪里出了問題?你是否想要更進一步了解
Oracle在數據庫創建的過程中到底是怎么變的戲法嗎?來手動創建一次數據庫,相信就能為你闡明一切。
當你手動創建一個數據庫時,你就要在sqlplus提示符下輸入指令。通常情況下你需要將這些指令添加到一個sql腳本,隨后從sqlplus
調用這個腳本。假設所有的路徑和選項都正確,設定的大小可用,而且在數據庫創建過程中沒有達到容量的極限的話,那么整個創建過程應當順利運行。而且,如果
你開發了一個想要部署到Oracle數據庫商的應用程序,你的應用程序也可以提供一份數據庫創建腳本,按照你設定的方式來運行。
什么時候使用手動方法創建數據庫?
顯然,當你第一次學習Oracle時,你應當使用手動方法來創建數據庫。一旦你完全理解其中的奧妙,你就可以考慮使用圖形用戶界面來簡化你的工
作。不過,如果你想控制文件的命名規范,建議你還是堅持使用手動方法。此外,當有新版本的Oracle數據庫發布時,一定要通過手動方法檢查一下有什么新
選項添加到了創建數據庫的語法當中。那如果你要創建一大堆特征相似的數據庫呢?這種時候,手動創建的方法更具有吸引力,因為這樣能夠減少我們的工作量。
如何手動創建數據庫
首先我們把我們要創建的數據命名為DBJ。接著,至少你得給DBJ設置OCLE_D環境變量,編輯initDBJ.ora,添加如下腳本:
db_name=DBJ
然后啟動sqlplus,發布如下指令:
SQL> startup nomount;
SQL> create ;
Oracle會為所需要的所有參數設置一些默認值,例如應當將數據文件、控制文件放在哪里,分配多少內存等,然后啟動實例,不掛載任何文件。創
建數據庫指令(create database)將要求Oracle創建一個數據庫,這個數據庫帶有最小系統和sysaux表空間等默認設置。
不過現實中,我們可能想要指定很多其他的選項。下面我們來看看現實中創建Oracle數據庫腳本更真實的例子:
connect?/?as?sysdba;
startup?nomount;
EATE?ABASE?"dbj"
DFILE
'/u01/oradata/sysdbj01.dbf'?size?500M
SYSAUX?DATILE
'/u01/oradata/auxdbj01.dbf'?size?500M
UNDO?TABLESPACE?dbjundo?DATAFILE
'/u01/oradata/unddbj01.dbf'?size?250M
LOGFILE
'/u02/oradata/rdodbj01.dbf'?size?10M,
'/u02/oradata/rdodbj02.dbf'?size?10M
CHATER?SET?"WE8ISO8859P1"
IONAL?CHARACTER?SET?"UTF8"
EXTE?MANAGEMENT?LOL
DEFAULT?TEMPORARY?TABLESPACE?mytemp?TEMPFILE
'/u01/oradata/tmpdbj01.dbf'?SIZE?500M
NRCHIVELOG
MAXDATAFILES?1000
MAXLOGFILES?10;
#?create?the?rest?of?the??dictionary
@?/rdbms/admin/.sql
@?/rdbms/admin/catproc.sql
詳解創建的各階段
當我們發布“startup
nomount”的指令時,我們是讓Oracle以一種不同于平常使用的方式啟動。不同在哪里呢?我們讓Oracle。其實,我們讓Oracle只啟動實
例,而不安裝數據庫,也不打開數據庫,并啟動所有的后臺進程,并為系統全局區域(SGA)分配內存。為什么不啟動數據庫?因為在現階段我們還沒有一個可以
掛載的數據庫,也就是以一個有效形式存在的數據文件集合。
當我們發出“create
database”指令的時候,Oracle將創建系統表空間、sysaux表空間、undo表空間和臨時表空間,并為該數據庫設置字符集。也就是設置數
據文件的頭信息,表明我們想要創建本地管理表空間,還有就是設置歸檔或非歸檔模式。一旦這些都完成了,Oracle就會運行一個名為sql.bsq的神奇
文件。建議大家看看這個文件的內容,會很有趣且很有用。這是Oracle的自舉代碼(bootstrapping
code),可以供我們查看并了解其中內容。我們可以在$ORACLE_HOME/rdbms/adminsql.bsq目錄中找到這個sql.bsq文
件。注意,這個文件會隨著版本的不同而有所改變,所以定期查看一下其中的變化很能說明一些問題。
這個運行之后,就是創建Oracle數據字典了。catalog.sql和catproc.sql只是在真正的數據字典上創建有用的視圖以及每個Oracle數據庫都需要有的各種存儲過程、包和函數。
結論
手動創建數據庫并不是一件只和命令行打交道的乏味單調的苦差事,它可以很有趣也可以很有意義。深入了解Oracle數據庫創建的過程有助于你理解數據庫
的內部運作原理,讓我們可以了解構成每個Oracle數據庫方方面面的元素。在這個過程中,我們可以了解更多關于init.ora、Oracle所倚賴的
自舉腳本、數據字典的創建機制以及實例和數據庫之間的區別等等重要的知識。
FROM:IT專家網
總結
以上是生活随笔為你收集整理的oracle为什么要创建数据库,手动创建Oracle数据库之前因后果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广东成为全国睡得最晚的省份 罪魁祸首还得
- 下一篇: linux cmake编译源码,linu