首先說明一下,我是一名菜鳥,剛接觸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 中尋找建立示例腳本。