手動安裝Oracle資料庫的方法(Redhat Linux)

ljm0211發表於2012-06-20
前提:已經建立好Oracle使用者和組,安裝好Oracle資料庫軟體

1、配置Oracle使用者下的.bash_profile檔案
在.bash_profile中增加如下內容:
# Oracle Settings
NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
export NLS_LANG
TMP=/tmp
export TMP
TMPDIR=$TMP
export TMPDIR
ORACLE_BASE=/home/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/ora10g
export ORACLE_HOME
ORACLE_SID=test
export ORACLE_SID
ORACLE_TERM=xterm
export ORACLE_TERM
PATH=/usr/sbin:$PATH
export PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
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

if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi


2、手動建立如下目錄
$ORACLE_BASE/admin/test/cdump
$ORACLE_BASE/admin/test/bdump
$ORACLE_BASE/admin/test/udump
$ORACLE_BASE/admin/test/adump
$ORACLE_BASE/oradata/test

3、根據$ORACLE_HOME/dbs下init.ora初始化引數檔案樣本建立初始化引數檔案
使用下面的命令,把所有以#開頭和所有的空行全部過濾掉,同時生成最簡單的 initTEST.ora初始化引數檔案。
$ cat init.ora | grep -v ^# | grep -v ^$ > inittest.ora

修改inittest.ora檔案中db_name引數為實際的SID(test),修改control_files引數為實際的control file位置,然後在inittest.ora中加入如下引數:
job_queue_processes=5
sga_max_size=280M
sga_target=280M
undo_management=auto
undo_tablespace=undotbs1
db_block_size=8192
db_create_file_dest = /home/oracle/oradata/test
db_create_online_log_dest_1 = /home/oracle/oradata/test
audit_file_dest=/home/oracle/oradata/test/adump
background_dump_dest=/home/oracle/oradata/test/bdump
core_dump_dest=/home/oracle/oradata/test/cdump
user_dump_dest=/home/oracle/oradata/test/udump


因為我們使用了sga_target引數,啟動了ASMM,所以去掉inittest.ora中的db_block_buffers和shared_pool_size引數。

4、啟動資料庫到nomount狀態,啟動確認靜態引數檔案正確後建立spfile,並重新啟動資料庫
SQL> startup nomount
ORACLE 例程已經啟動。

Total System Global Area  293601280 bytes
Fixed Size                  1261444 bytes
Variable Size              96469116 bytes
Database Buffers          192937984 bytes
Redo Buffers                2932736 byte

SQL> shutdown abort
ORACLE 例程已經關閉。
SQL> create spfile from pfile;

SQL> startup nomount
ORACLE 例程已經啟動。

Total System Global Area  293601280 bytes
Fixed Size                  1261444 bytes
Variable Size              96469116 bytes
Database Buffers          192937984 bytes
Redo Buffers                2932736 bytes

5、建立密碼檔案
用orapwd程式建立orapwTEST密碼檔案,如果記不清楚orapwd程式怎麼用,直接敲orapwd然後回車,會告訴你語法是怎樣的。
orapwd file=$ORACLE_HOME/dbs/orapwtest password=zjljm123 entries=5

6、建立資料庫
要快速找到例句,如果你去查SQL Reference文件中的create database的語法,時間肯定是比較緊張的,
我們要查的是Administrator’s Guide這本文件中第二章 Creating an Oracle Database -> Creating the database ->
Step 7: Issue the CREATE DATABASE Statement,這裡有完整的一條SQL語句,copy出來,然後按照考試要求去編輯相應的地方,
然後執行,這樣出來的命令基本上不會出現問題。

CREATE DATABASE test
USER SYS IDENTIFIED BY zjljm123
USER SYSTEM IDENTIFIED BY zjljm123
LOGFILE GROUP 1 ('/home/oracle/oradata/test/redo01.log') SIZE 100M,
GROUP 2 ('/home/oracle/oradata/test/redo02.log') SIZE 100M,
GROUP 3 ('/home/oracle/oradata/test/redo03.log') SIZE 100M
MAXLOGFILES 30
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
CHARACTER SET ZHS16GBK
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/home/oracle/oradata/test/system01.dbf' SIZE 225M REUSE
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/home/oracle/oradata/test/sysaux01.dbf' SIZE 125M REUSE
DEFAULT TABLESPACE users
DATAFILE '/home/oracle/oradata/test/users01.dbf'
SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO

DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/home/oracle/oradata/test/temp01.dbf'
SIZE 20M REUSE
UNDO TABLESPACE undotbs1
DATAFILE '/home/oracle/oradata/test/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

7、執行catalog.sql 和 catproc.sql
只需要執行這兩個SQL,都在$ORACLE_HOME/rdbms/admin中,建立必須的資料字典和內建的package等
SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql

optional:
connect /as sysdba
@?/rdbms/admin/catblock.sql
@?/rdbms/admin/catoctk.sql
@?/rdbms/admin/owminst.plb

connect system/oracle
@?/sqlplus/admin/pupbld.sql
@?/sqlplus/admin/help/hlpbld.sql helpus.sql
Note :section0中沒有要求你執行catalog ,catproc指令碼,但是如果時間有多我建議在section 0中就執行這2個指令碼為下一個 section節省時間.

8、配置資料庫和網路
將$ORACLE_HOME/network/admin/samples下面的listener.ora和tnsnames.ora複製到$ORACLE_HOME/network/admin下,然後按照這兩個檔案中的格式說明,配置listener.ora和tnsnames.ora,如果配置listener為動態註冊,需要修改資料庫引數Local_Listener。
[oracle@test1 admin]$ cat listener.ora
LISTENER_TEST =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1522))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))

SID_LIST_LISTENER_TEST=
(SID_LIST=
(SID_DESC=
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /home/oracle/ora10g)
(PROGRAM = extproc)
)
#       (SID_DESC=
#          (GLOBAL_DBNAME=test)
#          (SID_NAME=test)
#          (ORACLE_HOME=/home/oracle/ora10g)
#         (PRESPAWN_MAX=20)
#         (PRESPAWN_LIST=
#           (PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
#         )
#       )
)


[oracle@test1 admin]$ cat tnsnames.ora
test=
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL=tcp)
(HOST=88.22.6.201)
(PORT=1522)
)
)
(CONNECT_DATA =
(SID = test)
)
)
)

LISTENER_TEST=
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL=tcp)
(HOST=88.22.6.201)
(PORT=1522)
)
)
(CONNECT_DATA =
(SID = test)
)
)
)

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

相關文章