Linux下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=/opt/app/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=("/opt/app/oracle/oradata/mydbcontrol01.ctl", "/opt/app/oracle/oradata/mydbcontrol02.ctl", "/opt/app/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=/opt/app/oracle/admin/mydb/bdump

core_dump_dest=/opt/app/oracle/admin/mydb/cdump

user_dump_dest=/opt/app/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

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

NEXT 10240K MAXSIZE UNLIMITED

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE

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

NEXT 10240K MAXSIZE UNLIMITED

SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE

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

NEXT 640K MAXSIZE UNLIMITED

SMALLFILE UNDO TABLESPACE "UNDOTBS1" DATAFILE

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

NEXT 5120K MAXSIZE UNLIMITED

LOGFILE

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

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

GROUP 3 ('/opt/app/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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM