【原創】手工建立Oracle資料庫

木頭一個發表於2008-04-21

平臺:WinXP SP2
資料庫版本:10.2.0.1

一、不使用OMF建立資料庫

1.建立資料庫例項,例項名為abc(只是Windows平臺需要,Unix平臺不需要)
C:\WINDOWS>oradim -new -sid abc
Instance created.

2.為了sys使用者可以連入資料庫執行操作,先建立資料庫的密碼檔案,密碼檔案的名稱必須為PWDsid.ora
C:\WINDOWS>orapwd password=oracle file=F:\oracle\product\10.2.0\database\PWDabc.ora

3.建立下列目錄,以存放資料檔案和dump資訊
#資料檔案目錄
F:\oracle\product\oradata\abc
#background dump目錄
F:\oracle\product\admin\abc\bdump
#core dump目錄
F:\oracle\product\admin\abc\cdump
#user dump目錄
F:\oracle\product\admin\abc\udump

4.在listener.ora中新增下列資訊,把此資料庫註冊在監聽器中(可選)
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = abc)
      (ORACLE_HOME = f:\oracle\product\10.2.0)
      (service=abc)
    )
  )


5.為了可以訪問資料庫,在tnsnames.ora新增下列資訊
abc =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.102)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = dedicated)
      (SERVICE_NAME = abc)
    )
  )


6.建立pfile檔案F:\oracle\product\10.2.0\database\initabc.ora,檔案的內容如下:
background_dump_dest='f:\oracle\product/admin/abc/bdump'
compatible='10.2.0.1.0'
control_files='F:\oracle\product\oradata\abc\control01.ctl','F:\oracle\product\oradata\abc\control02.ctl'
core_dump_dest='f:\oracle\product/admin/abc/cdump'
db_block_size=8192
db_name='abc'
db_recovery_file_dest='f:\oracle\product/flash_recovery_area'
db_recovery_file_dest_size=2147483648
pga_aggregate_target=41943040
processes=150
remote_login_passwordfile='EXCLUSIVE'
sga_max_size=167772160
sga_target=125829120
undo_management='AUTO'
undo_tablespace='UND01'
user_dump_dest='f:\oracle\product/admin/abc/udump'


7.連入資料庫,並建立spfile檔案
C:\WINDOWS>set ORACLE_SID=abc

C:\WINDOWS>sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Apr 20 21:17:42 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an SQL instance.

SQL>create spfile from pfile;

File created.

8.啟動資料庫到nomount
SQL>startup nomount
ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size                  1247924 bytes
Variable Size             104858956 bytes
Database Buffers           54525952 bytes
Redo Buffers                7139328 bytes

9.執行creata database指令碼
SQL>@F:\oracle\product\admin\abc\create\createdb.sql

Database created.

#createdb.sql指令碼的具體內容如下:
create database abc
maxlogfiles 5
maxlogmembers 5
maxloghistory 1
maxdatafiles 100
maxinstances 1
user sys identified by oracle
user system identified by oracle
logfile group 1 ('F:\oracle\product\oradata\abc\redo01.log') size 10m reuse,
        group 2 ('F:\oracle\product\oradata\abc\redo02.log') size 10m reuse,
        group 3 ('F:\oracle\product\oradata\abc\redo03.log') size 10m reuse
datafile 'F:\oracle\product\oradata\abc\system01.dbf' size 325m reuse
    extent management local
sysaux datafile 'F:\oracle\product\oradata\abc\sysaux01.dbf' size 325m reuse
default temporary tablespace temp
    tempfile 'F:\oracle\product\oradata\abc\temp01.dbf' size 20m reuse
undo tablespace undotbs1
    datafile 'F:\oracle\product\oradata\abc\undo01.dbf' size 200m reuse
character set utf8
national character set al16utf16;

10.執行catalog.sql,建立資料庫的資料字典檢視
SQL>spool f:\catalog.log
SQL>@F:\oracle\product\10.2.0\RDBMS\ADMIN\catalog.sql
SQL>spool off

11.執行catproc.sql,建立執行PL/SQL程式所需的所有包
SQL>spool f:\catproc.log
SQL>@F:\oracle\product\10.2.0\RDBMS\ADMIN\catproc.sql
SQL>spool off

到此資料庫abc建立完畢,可以正常使用了

注:
1.pfile檔案中undo_tablespace中的名字必需與create database中的相同,否則會出現ORA-01092:ORACLE instance terminated.Disconnection forced的錯誤。
2.資料字典檢視不是都由catalog.sql建立,部分由catproc.sql建立,如:dba_data_files


二、使用OMF建立資料庫

從Oracle9i起,Oracle提出了OMF的概念,主要是簡化了日常的管理操作,下面的實驗演示了使用OMF時建立資料庫的過程:

1.先刪除剛剛建立的abc資料庫
1.1啟動資料庫到mount
SQL>startup mount
ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size                  1247924 bytes
Variable Size             134219084 bytes
Database Buffers           25165824 bytes
Redo Buffers                7139328 bytes
Database mounted.

1.2將資料庫設定為restricted session模式
SQL>alter system enable restricted session;

System altered.

1.3使用drop database命令刪除資料庫,這個操作將刪除所有的資料檔案(不包括引數和密碼檔案)
SQL>drop database;

Database dropped.

2.修改pfile檔案F:\oracle\product\10.2.0\database\initabc.ora,新增下列內容:
db_create_file_dest='F:\oracle\product\oradata\'
db_create_online_log_dest_1='F:\oracle\product\oradata\'

3.連入資料庫,並啟動資料庫到nomount
SQL>startup nomount
ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size                  1247924 bytes
Variable Size             104858956 bytes
Database Buffers           54525952 bytes
Redo Buffers                7139328 bytes

4.根據剛剛修改的pfile檔案建立spfile檔案
SQL>create spfile from pfile;

File created.

5.執行creata database指令碼
SQL>@F:\oracle\product\admin\abc\create\createdb.sql

Database created.

#createdb.sql指令碼的具體內容如下(可以看出內容很簡潔,所有的資料檔案的具體資訊都不用指定):
create database abc
user sys identified by oracle
user system identified by oracle
default temporary tablespace temp
undo tablespace undotbs1
character set utf8
national character set al16utf16;

6.檢視資料庫的各個檔案的位置和名稱
6.1線上日誌檔案
SQL>select group#,member from v$logfile;

    GROUP# MEMBER
---------- ----------------------------------------------------------------------
         1 F:\ORACLE\PRODUCT\ORADATA\ABC\ONLINELOG\O1_MF_1_40PN2T5C_.LOG
         2 F:\ORACLE\PRODUCT\ORADATA\ABC\ONLINELOG\O1_MF_2_40PN312X_.LOG

6.2資料檔案
SQL>select tablespace_name,file_name from dba_data_files;

TABLESPACE FILE_NAME
---------- -------------------------------------------------------------------------------
SYSTEM     F:\ORACLE\PRODUCT\ORADATA\ABC\DATAFILE\O1_MF_SYSTEM_40PN388S_.DBF
UNDOTBS1   F:\ORACLE\PRODUCT\ORADATA\ABC\DATAFILE\O1_MF_UNDOTBS1_40PN3OLK_.DBF
SYSAUX     F:\ORACLE\PRODUCT\ORADATA\ABC\DATAFILE\O1_MF_SYSAUX_40PN3Q00_.DBF

6.3臨時檔案
SQL>select tablespace_name,file_name from dba_temp_files;

TABLESPACE FILE_NAME
---------- ---------------------------------------------------------------------
TEMP       F:\ORACLE\PRODUCT\ORADATA\ABC\DATAFILE\O1_MF_TEMP_40PN3YJ3_.TMP

到此資料庫abc建立完畢,可以正常使用了


三、附錄:
create database的全部語法:

CREATE DATABASE database
USER SYS IDENTIFIED BY password
USER SYSTEM IDENTIFIED BY password
CONTROLFILE REUSE
MAXDATAFILES integer
MAXINSTANCES integer
MAXLOGFILES integer
MAXLOGMEMBERS integer
MAXLOGHISTORY integer
CHARACTER SET charset
NATIONAL CHARACTER SET charset
SET DEFAULT BIGFILE(SMALLFILE) TABLESPACE
LOGFILE GROUP integer file_specification
ARCHIVELOG(NOARCHIVELOG)
FORCE LOGGING
DATAFILE file_specification
SYSAUX DATAFILE file_specification
DEFAULT TABLESPACE tablespace DATAFILE datafile_tempfile_spec extent_management_clause
BIGFILE(SMALLFILE) DEFAULT TEMPORARY TABLESPACE tablespace TEMPFILE file_specification extent_management_clause
BIGFILE(SMALLFILE) UNDO TABLESPACE tablespace DATAFILE file_specification
SET TIME_ZONE = '+/–hh : mi'(time_zone_region)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/498744/viewspace-246324/,如需轉載,請註明出處,否則將追究法律責任。

相關文章