手工創建oracle數據庫的過程

數據庫: Oracle 8i R2 (8.1.6) 
安裝路徑:d:\oracle\ora81 
數據庫實例:mytest 
數據庫全局名稱:mytest.world


步驟一:手工創建相關目錄
這些目錄是新建數據庫的一些必要的文件夾之類,比如初始化參數文件夾,udump文件夾,數據文件文件夾等等,下面列出的是一個最基本的目錄表
d:\oracle\admin\mytest\arch\
d:\oracle\admin\mytest\bdump\
d:\oracle\admin\mytest\create\
d:\oracle\admin\mytest\pfile\
d:\oracle\admin\mytest\udump\
d:\oracle\oradata\mytest\
注意:建立以上文件夾比較簡單的方法是,將D:\Oracle\Ora81\ADMIN文件夾下面的sample文件直接拷貝到d:\oracle\admin\下,然後修改爲你要建立的數據庫的名稱即可。數據文件文件夾就一個文件夾,創建過程比較簡單。


步驟二:手工創建數據庫初始化文件
你可以手工創建一個數據庫初始化文件,也可以從其他已有數據庫中拷貝一個初始化文件然後稍加修改即可。
其中需要修改的初始化文件中的參數只要有:
db_name = "mytest"
db_domain = world
instance_name = mytest
service_names = mytest.world
control_files = (………………………………)
background_dump_dest = 
utl_file_dir = 
還有其他一些與路徑有關係的參數。由於初始化參數文件比較大就不詳細列舉了。


步驟三:準備創建數據庫的腳本,主要有兩個腳本
D:\Oracle\Ora81\RDBMS\ADMIN\BUILD_DB.SQL
D:\Oracle\Ora81\RDBMS\ADMIN\BUILDALL.SQL
其中BUILD_DB.SQL這個文件裏面的代碼是創建數據庫的。這個文件裏面需要進行修改以滿足新的數據庫要求,以下爲修改後的BUILD_DB.SQL
startup nomount pfile=d:\oracle\admin\mytest\pfile\initmytest.ora
create database mytest
    controlfile reuse
    logfile 'D:\Oracle\oradata\mytest\redo01.log' size 1M reuse,
            'D:\Oracle\oradata\mytest\redo02.log' size 1M reuse,
            'D:\Oracle\oradata\mytest\redo03.log' size 1M reuse,
            'D:\Oracle\oradata\mytest\redo04.log' size 1M reuse
    datafile 'D:\Oracle\oradata\mytest\system01.dbf' size 100M reuse autoextend on
      next 100M maxsize 500M 
    character set ZHS16GBK;


create rollback segment rb_temp storage (initial 100 k next 250 k);


create tablespace users
    datafile 'D:\Oracle\oradata\mytest\users01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
create tablespace rbs
    datafile 'D:\Oracle\oradata\mytest\rbs01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
create tablespace temp
    datafile 'D:\Oracle\oradata\mytest\temp01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
create tablespace oem_repository
    datafile 'D:\Oracle\oradata\mytest\oemrep01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
create tablespace indx
    datafile 'D:\Oracle\oradata\mytest\indx01.dbf' size 50M reuse autoextend on
      next 50M maxsize 100M;
alter rollback segment rb_temp online;


alter user system temporary tablespace temp;
alter user system default tablespace users;
create public rollback segment rb1 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb2 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb3 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb4 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb5 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb6 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb7 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb8 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb9 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb10 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb11 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb12 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb13 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb14 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb15 storage(initial 50K next 250K)
  tablespace rbs;
create public rollback segment rb16 storage(initial 50K next 250K)
  tablespace rbs;



自己建立數據庫的時候可以修改裏面的各項參數來滿足實際的要求。
另一個文件BUILDALL.SQL是我們一會要運行的文件,可以打開看一下,裏面包括很多語句,第一個就是建立數據庫的,其他的就是一些數據字典的建立,數據字典視圖的建立,同義詞的建立,scott用戶的建立等等,有興趣的可以自己多看看。這個文件主要需要修改的就是一些路徑,檢查一下是否將要執行的文件都存在,是否路徑都正確。下面就是這個已經修改完畢的BUILDALL.SQL文件的例子
spool \build.log
SET TERMOUT OFF
SET ECHO OFF
connect internal
@D:\Oracle\admin\mytest\build_db.sql
@D:\Oracle\Ora81\RDBMS\admin\catalog.sql
@D:\Oracle\Ora81\RDBMS\admin\catsnmp.sql
connect internal
@D:\Oracle\Ora81\RDBMS\admin\catexp7.sql
@D:\Oracle\Ora81\RDBMS\admin\catproc.sql
@@scott.sql
connect internal
@@demo.sql
connect system/manager
@D:\Oracle\Ora81\RDBMS\admin\catdbsyn.sql
@D:\Oracle\Ora81\dbs\pupbld.sql
connect internal
@D:\Oracle\Ora81\RDBMS\admin\caths.sql
@D:\Oracle\Ora81\RDBMS\admin\oramts.sql
connect internal
alter rollback segment rb_temp offline;
shutdown;
spool off

步驟四:爲新數據庫建立新的實例
對數據庫實例進行操作的命令是oradim。在dos環境下可以看到oradim命令的詳細解釋:
C:\>oradim
ORADIM: <命令> [選項]。請參閱相關手冊。
請輸入下列命令之一:
  請指定下列參數,創建例程:
    -NEW -SID sid | -SRVC 服務 [-INTPWD 口令] [-MAXUSERS 數量] [-STARTMODE a|m]
[-PFILE 文件] [-TIMEOUT 秒]
  請指定下列參數,編輯例程:
    -EDIT -SID sid [-NEWSID sid] [-INTPWD 口令] [-STARTMODE auto|manual] [-PFILE
 文件名]
          [-SHUTMODE a|i|n] [-SHUTTYPE srvc|inst|srvc,inst] [-TIMEOUT 秒]
  請指定下列參數,刪除例程:
    -DELETE -SID sid | -SRVC 服務名稱
  請指定下列參數,啓動服務和例程:
    -STARTUP -SID sid [-USRPWD 口令] [-STARTTYPE srvc|inst|srvc,inst] [-PFILE 文
件名]
  請指定下列參數,關閉服務和例程:
    -SHUTDOWN -SID sid [-USRPWD 口令] [-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE
 a | i | n]
  請指定下列參數,查詢幫助:-? | -h | -help
我們建新的實例需要用的命令是oradim –new –sid這個命令,以下就是建立新實例的命令:
c:\>oradim –new –sid mytest –intpwd admin –pfile d:\oracle\admin\mytest\pfile\init.ora
其中mytest爲新實例的名稱,admin爲sys的初始密碼,pfile後面的參數爲新數據庫的初始化參數的路徑。這個命令執行以後會發現內存的需求增加了,在服務裏面多了一個名字爲mytest的服務。

步驟五:修改oracle_sid
打開命令提示框,在裏面輸入
c:\>set oracle_sid=mytest
這個步驟是修改現在系統默認的oracle_sid,這一步驟在系統中已經存在數據庫的機器上面尤爲重要

步驟六:執行建立數據庫的命令
可以在svrmgrl中或者在sqlplus中以internal或sys的用戶登陸,執行剛纔編輯好的文件
sql>@BUILDALL.SQL

總結:經過以上六部就可以完成手工建立數據庫。手工建立數據庫比用dbca建立的時候有更大的靈活性。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章