使用命令行手工建立Oracle11gR2數據庫


通過命令行建立一個數據庫可以幫助更好的了解數據庫的建庫流程,今天試了試手工建立Oracle11gR2數據庫,感覺和10g的手工建庫流程還是有一定的區別的,10g數據庫的手工方式建立可以參考大侯(secooler)的“http://space.itpub.net/519536/viewspace-667563 ”

 

下面是我的建庫流程:

測試環境:

OSOEL5.6 x64

DBOracle database 11g R211.2.0.1.0

建立數據庫名:prod

 

1. 配置環境變量(參考)

1)設置環境變量

[oracle@ocm ~]$ vi .bash_profile
# .bash_profile # Get the aliases and functions
if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0.1/db_1; export ORACLE_HOME LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATH CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;export CLASSPATH PATH=$ORACLE_HOME/bin:/usr/sbin:/sbin:$PATH; export PATH

2)生效環境變量

[oracle@ocm ~]$ source ~/.bash_profile

 

2.建立相關的目錄

1dump目錄和10g相比,這里只需要建立adump一個目錄就可以了

[oracle@ocm ~]$ mkdir -p /u01/app/oracle/admin/prod/adump

 

2)數據文件及控制文件的存放目錄

[oracle@ocm ~]$ mkdir -p /u01/app/oracle/oradata/prod

 

3.建立密碼文件

[oracle@ocm ~]$ cd $ORACLE_HOME/dbs
[oracle@ocm dbs]$ orapwd
file=orapwprod password=oracle entries=30

 

4.創建參數文件

1)從init.ora文件中獲得示例參數,參考了大侯的cat方法:

[oracle@ocm ~]$ cd $ORACLE_HOME/dbs

[oracle@ocm dbs]$ cat init.ora |grep -v ^# |grep -v ^$ >initprod.ora

 

2)修改參數文件中的信息

 

主要修改下列參數

1db_name

2memory_target內存區大小

3:替換<ORACLE_BASE>標簽為當前的$ORACLE_BASE中的內容

4:快速恢復區路徑設置(我在這里不設置所以注釋掉了)

5:修改diagnostic_dest

6:修改dispatchers中的SERVICEPRODXDB

7:添加控制文件的文件名

db_name='prod'
memory_target=600M
processes = 150
audit_file_dest='/u01/app/oracle/admin/prod/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
#db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area'
#db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=PRODXDB)'
open_cursors=300
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
control_files = (/u01/app/oracle/oradata/prod/control01.ctl,/u01/app/oracle/oradata/prod/control02.ctl)
compatible ='11.2.0' 

 

5.使用之前創建的參數文件啟動數據庫到nomount狀態下

[oracle@ocm ~]$ export ORACLE_SID=prod

[oracle@ocm ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 24 18:26:51 2012

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

Connected to an idle instance.

SYS@prod>create spfile from pfile;

File created.

SYS@prod>startup nomount;
ORACLE instance started. Total System Global Area
626327552 bytes Fixed Size 2215944 bytes Variable Size 373297144 bytes Database Buffers 247463936 bytes Redo Buffers 3350528 bytes

 

6.10gR2中本來是需要手動修改undo_managementjob_queue_processes等參數,但是show parameter后發現這些參數在11gR2版本中的值都已經符合要求,也就不需要修改了。

SYS@prod>show parameter undo_management

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO

SYS@prod>show parameter job_queue_processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes                  integer     1000

SYS@prod>show parameter _dump_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------

background_dump_dest                 string      /u01/app/oracle/diag/rdbms/pro
                                                 d/prod/trace

core_dump_dest                       string      /u01/app/oracle/diag/rdbms/pro
                                                 d/prod/cdump

max_dump_file_size                   string      unlimited

user_dump_dest                       string      /u01/app/oracle/diag/rdbms/pro
                                                 d/prod/trace

 

7.創建數據庫

 

1)在官方文檔中找到建庫語句,位置:Administrator's Guide 11g Release 2 (11.2) => 2 Creating and Configuring an Oracle Database => Creating a Database with the CREATE DATABASE Statement => “CREATE DATABASE mynewdb”

 

2)修改示例的建庫語句,需要注意UNDO TABLESPACE的名字和默認的不相同。

[oracle@ocm ~]$ vi dbcreate.sql

CREATE DATABASEprod
   USER SYS IDENTIFIED BYoracle
   USER SYSTEM IDENTIFIED BYoracle
   LOGFILE GROUP 1 ('/u01/app/oracle/oradata/prod/redo01a.log','/u01/app/oracle/oradata/prod/redo01b.log') SIZE 100M BLOCKSIZE 512,
           GROUP 2 ('/u01/app/oracle/oradata/prod/redo02a.log','/u01/app/oracle/oradata/prod/redo02b.log') SIZE 100M BLOCKSIZE 512,
           GROUP 3 ('/u01/app/oracle/oradata/prod/redo03a.log','/u01/app/oracle/oradata/prod/redo03b.log') SIZE 100M BLOCKSIZE 512
   MAXLOGFILES30
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   CHARACTER SET US7ASCII
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   DATAFILE'/u01/app/oracle/oradata/prod/system01.dbf'SIZE 325M REUSE
   SYSAUX DATAFILE'/u01/app/oracle/oradata/prod/sysaux01.dbf'SIZE 325M REUSE
   DEFAULT TABLESPACE users
      DATAFILE'/u01/app/oracle/oradata/prod/users01.dbf'
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE'/u01/app/oracle/oradata/prod/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACEundotbs1
      DATAFILE'/u01/app/oracle/oradata/prod/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

 

3)執行建庫腳本,需要在nomount下執行

SYS@prod>@/home/oracle/dbcreate.sql

Database created.

 

4)修改數據文件自動擴展

SYS@prod>alter database datafile 1 autoextend on;

Database altered.


SYS@prod> alter database datafile 2 autoextend on;

Database altered.


SYS@prod> alter database datafile 3 autoextend on;

Database altered.


SYS@prod> alter database datafile 4 autoextend on;

Database altered.


SYS@prod> alter database tempfile 1 autoextend on;

Database altered.

 

5)查詢數據庫狀態並確認創建成功。

SYS@prod>conn / as sysdba

Connected.

SYS@prod>select instance_name,status from v$instance;

INSTANCE_NAME    STATUS
---------------- ------------
prod             OPEN


SYS@db11g>col tablespace_name for a10
SYS@db11g>col tablespace_file for a60
SYS@prod>select a.name tablespace_name,b.name tablespace_file from v$tablespace a,v$datafile b where a.ts#=b.ts#;

TABLESPACE TABLESPACE_FILE

---------- ------------------------------------------------------------
SYSTEM     /u01/app/oracle/oradata/prod/system01.dbf
SYSAUX     /u01/app/oracle/oradata/prod/sysaux01.dbf
UNDOTBS1   /u01/app/oracle/oradata/prod/undotbs01.dbf
USERS      /u01/app/oracle/oradata/prod/users01.dbf

 

6)執行建立數據字典腳本

SYS@db11g>conn / as sysdba

Connected

SYS@prod> @?/rdbms/admin/catalog.sql

……

SYS@prod> @?/rdbms/admin/catproc.sql

……

 

到這里,手工建立11gR2數據庫就基本完成了,可以再跑一些額外的腳本如catoctk.sql來完善數據庫的功能,總體來說手工建立11gR2數據庫的過程和建立10gR2數據庫基本思路相同,主要是參數文件和建庫語句有一定區別,可以說11gR2數據庫的手工建立過程比10gR2要少一些修改動作,這或許是因為隨着數據庫版本的升級,其設計越來越完善的緣故吧。


免責聲明!

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



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