天天看點

手動建立oracle資料庫詳細講解

首先說明一下,我是一名菜鳥,剛接觸oracle沒多久,下面的内容是我學習過程中積累的一些經驗,可能以下的内容會有不妥的地方,希望各位大牛指導指導....

餐前小菜:

當資料庫名和實體結構與存在Database一樣,會覆寫原有資訊;

建立資料庫準備:

1.計劃資料庫表和索引,評估占用空間

2.計劃好資料庫将包含的基本的作業系統檔案的布局,合理的檔案分布可以提升資料庫的性能

  可以把重做日志檔案分别放置在不用磁盤或錄音帶中,減少資料檔案聯系

  快速恢複檔案需要放置在與資料檔案不同目錄,最好是分區

  最簡單的是傻瓜式的利用現成建立資料庫

3.通過設定DB_NAME和DN_DOMAIN初始化參數建立資料庫名,最好可以包含資料庫網狀結構

4.盡量要熟悉大部分初始化參數檔案

5.選擇資料庫

6.選擇資料庫字元集

基本步驟:

1)指定一個SID

2)建立所需的檔案目錄

3)建立初始化參數檔案pfile

4)确定資料庫認證方式,如果基于密碼認證,建立密碼檔案

5)編寫建立資料庫腳本

6)連接配接instance,啟動到nomount狀态,執行建立腳本

7)執行個别建立腳本,完善資料庫

本次試驗在redhat 4下進行操作,如果在windows操作,也沒太大變化,注意兩種系統的檔案書寫格式和個别指令不一緻。

實驗環境:Redhat linux 4 + Oracle10g

1.首先設定要建立的ORACLE的SID,如果在.bash_profile檔案裡設定裡該變量,就不用設定了。

檢視:

$env | grep ORA

ORACLE_SID=***    //顯示目前資料庫執行個體名

ORACLE_BASE=/opt/app/oracle     //oracle的根目錄

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1       //oracle産品目錄

如果沒有設定,就手動設定,如果一個伺服器上要運作多個ORACLE執行個體,也需要手動設定。

$export ORACLE_SID=mydb

2. 建立需要的診斷目錄,這些目錄都是ORACLE程序遇到錯誤或使用者手動TRACE時需要的。

$mkdir -p $ORACLE_BASE/admin/mydb/adump

$mkdir -p $ORACLE_BASE/admin/mydb/bdump

$mkdir -p $ORACLE_BASE/admin/mydb/cdump

$mkdir -p $ORACLE_BASE/admin/mydb/udump

$mkdir -p $ORACLE_BASE/admin/mydb/pfile

建立oracle的資料檔案目錄

$mkdir -p $ORACLE_BASE/oradata/mydb

3. 建立ORACLE的參數檔案$ORACLE_HOME/dbs/initmydb.ora

說到這裡,對于新手來說,可能還了解不到那麼多的參數以及具體使用,是以,這裡提供一種比較偷懶的做法,就是利用DBCA建立的資料庫的參數檔案作為模闆,稍微修改一下,

雖然它是通用的一種,而且比較簡單,但它确實有值得參考的一面,新手不妨先試試看,通過官方文檔了解每一個參數的含義,琢磨一下,熟練後自己寫一個。

方法一:

$cd $ORACLE_HOME/dbs       //一般預設的資料庫初始化參數檔案存放處

###########################################

//如果有initaaa.ora檔案,用指令

$cat initaaa.ora >> initmydb.ora  //initaaa.ora是DBCA建立的資料庫參數檔案

###########################################

//如果隻有spfileaa.ora,用指令

$strings spfileaaa.ora | more    //讀取二進制檔案,直接用滑鼠複制内容

$vi initmydb.ora                 //黏貼上面複制的内容

$vi initmydb.ora

:%s/name/mydb/g      //用mydb替換文本中所有為name的字元串

:wq!     //儲存

方法二:

$cd $ORACLE_HOME/dbs

$vi initmydb.ora  //在文本中黏貼以下參數

##############################################################################

# Copyright (c) 1991, 2001, 2002 by Oracle Corporation

##############################################################################

###########################################

# SGA Memory

###########################################

sga_target=287309824

###########################################

# Job Queues

###########################################

job_queue_processes=10

###########################################

# Miscellaneous

###########################################

compatible=10.2.0.1.0

###########################################

# Security and Auditing

###########################################

audit_file_dest=/u01/oracle/admin/mydb/adump

remote_login_passwordfile=EXCLUSIVE

###########################################

# Sort, Hash Joins, Bitmap Indexes

###########################################

pga_aggregate_target=95420416

###########################################

# Database Identification

###########################################

db_domain=jmu.edu.cn

db_name=mydb

###########################################

# File Configuration

###########################################

control_files=("/u01/oracle/oradata/mydbcontrol01.ctl", "/u01/oracle/oradata/mydbcontrol02.ctl", "/u01/oracle/oradata/mydbcontrol03.ctl")

###########################################

# Cursors and Library Cache

###########################################

open_cursors=300

###########################################

# System Managed Undo and Rollback Segments

###########################################

undo_management=AUTO

undo_tablespace=UNDOTBS1

###########################################

# Diagnostics and Statistics

###########################################

background_dump_dest=/u01/oracle/admin/mydb/bdump

core_dump_dest=/u01/oracle/admin/mydb/cdump

user_dump_dest=/u01/oracle/admin/mydb/udump

###########################################

# Processes and Sessions

###########################################

processes=150

###########################################

# Cache and I/O

###########################################

db_block_size=8192

db_file_multiblock_read_count=16

4.建立密碼檔案

orapwd file=$ORACLE_HOME/dbs/orapwmydb password=oracle entries=5 force=y

5.建立oracle的建庫腳本 createdb.sql,内容如下:

set echo on

spool /home/oracle/CreateDB.log  //安裝過程資訊輸出到CreateDB.log中

                                 //安裝完可以檢視是否出錯

CREATE DATABASE "mydb"

MAXINSTANCES 8

MAXLOGHISTORY 1

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

DATAFILE

'/u01/oracle/oradata/mydb/system01.dbf' SIZE 300M REUSE AUTOEXTEND ON

NEXT  10240K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE

'/u01/oracle/oradata/mydb/sysaux01.dbf' SIZE 120M REUSE AUTOEXTEND ON

NEXT  10240K MAXSIZE UNLIMITED

SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE

'/u01/oracle/oradata/mydb/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON

NEXT  640K MAXSIZE UNLIMITED

SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE

'/u01/oracle/oradata/mydb/undo01.dbf' SIZE 200M REUSE AUTOEXTEND ON

NEXT  5120K MAXSIZE UNLIMITED

SMALLFILE DEFAULT TABLESPACE USERS DATAFILE

'/u01/oracle/oradata/mydb/user01.dbf' SIZE 100m REUSE AUTOEXTEND ON

NEXT  10240K MAXSIZE UNLIMITED

LOGFILE

GROUP 1 ('/u01/oracle/oradata/mydb/redo1.dbf') SIZE 51200K,

GROUP 2 ('/u01/oracle/oradata/mydb/redo2.dbf') SIZE 51200K,

GROUP 3 ('/u01/oracle/oradata/mydb/redo3.dbf') SIZE 51200K

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16;

spool off

6.開始建立資料庫

啟動資料庫到nomount狀态

$sqlplus /nolog

SQL>conn sys/oracle as sysdba

SQL>startup nomount

開始執行建立資料庫腳本

SQL>@/home/oracle/createdb.sql      //@+你寫的createdb.sql腳本的完整路徑,表執行

7.資料庫建立完成後,再建立ORACLE的資料字典。

SQL>@?/rdbms/admin/catalog.sql     //用來建立資料庫的資料字典檔案的

SQL>@?/rdbms/admin/catproc.sql     //用來建立資料庫的基本過程和包的

SQL>@?/rdbms/admin/catexp.sql      //EXPORT需要的VIEW是由CATEXP.SQL建立

以system身份執行

SQL>conn system/oracle

SQL>@?/sqlplus/admin/pupbld.sql

一般建議先建立一個spfile(動态初始化參數檔案),下次啟動時以spfile啟動

SQL>create spfile from pfile

重新開機一下資料庫,再查詢一下,确認無誤

SQL>shutdown immediate

SQL>startup

SQL>select * from dual;

SQL>show parameter service_name

基本就完工了~~

備注:本次實驗隻是對手工建立資料庫進行大緻的流程講解,是以并不涉及其他附加的安裝(例如測試使用的示例方案),

      如果有需要,可在$ORACLE_HOME/RDBMS/ADMIN 中尋找建立示例腳本。