使用 oraToolKit 在 RHEL4.8 安裝 Oracle 10gR2
參考:
Installing Oracle 10g Release 2 Enterprise Edition on Red Hat Enterprise Linux 4.8 (x86_64) within 60 minutes
https://www.oratoolkit.ch/knowledge/howto/installation/eeSrv-10g-R2-on-RHEL-4.8-x86_64.php
筆記:
oraToolKit 安裝 Oracle Software 預設路徑為 /opt/oracle, 以下安裝將路徑改為 /oracle.
# uname -a
Linux FEE.goldenchang.com.cn 2.6.9-89.0.0.0.1.ELsmp #1 SMP Tue May 19 05:31:20 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
# top
top - 09:29:15 up 11:51,? 2 users,? load average: 0.05, 0.06, 0.02
Tasks: 109 total,?? 1 running, 108 sleeping,?? 0 stopped,?? 0 zombie
Cpu(s):? 0.0% us,? 0.6% sy,? 0.0% ni, 99.4% id,? 0.0% wa,? 0.0% hi,? 0.0% si
Mem:?? 4009944k total,?? 376896k used,? 3633048k free,??? 31524k buffers
Swap: 16779852k total,??????? 0k used, 16779852k free,?? 197772k cached
# df -h
Filesystem??????????? Size? Used Avail Use% Mounted on
/dev/sda5????????????? 63G? 4.2G?? 56G?? 7% /
/dev/sda1???????????? 494M?? 22M? 447M?? 5% /boot
none????????????????? 2.0G???? 0? 2.0G?? 0% /dev/shm
/dev/sda8????????????? 16G?? 77M?? 15G?? 1% /home
/dev/sda10??????????? 9.9G?? 55M? 9.3G?? 1% /oracle
/dev/sda11??????????? 7.9G? 105M? 7.4G?? 2% /tmp
/dev/sda3???????????? 252G?? 92M? 240G?? 1% /u1
/dev/sda2???????????? 252G?? 92M? 240G?? 1% /u2
/dev/sda6????????????? 20G? 2.3G?? 17G? 13% /usr
/dev/sda7????????????? 16G? 161M?? 15G?? 2% /var
安裝oraToolKit:
將oratoolkit-1.0.2.1.4-1.noarch.rpm copy到 /var/tmp/oracle
# su - root
# cd /var/tmp/oracle
# ls -1 oratool*
oratoolkit-1.0.2.1.4-1.noarch.rpm
[root@FEE oracle]# rpm -ivh oratoolkit-1.0.2.1.4-1.noarch.rpm
warning: oratoolkit-1.0.2.1.4-1.noarch.rpm: V3 RSA/MD5 signature: NOKEY, key ID 66f452c8
Preparing...??????????????? ########################################### [100%]
?? 1:oratoolkit???????????? ########################################### [100%]
? ?
設置oracle用戶密碼:
# passwd oracle
Changing password for user oracle.
New UNIX password: oracle
Retype new UNIX password: oracle
passwd: all authentication tokens updated successfully.
檢查package需求
# cd /opt/oracle/otk/current/bin/
# cp installManager installManager.20100918
# vi installManager
# sdiff -s installManager installManager.20100918
ORACLE_BASE=${ORACLE_BASE:-"/oracle"}???????????????????????? | ORACLE_BASE=${ORACLE_BASE:-"/opt/oracle"}
# cd /opt/oracle/otk/current/conf/installManager
# vi osSetup10gR2.cfg
# sdiff -s osSetup10gR2.cfg sample/osSetup10gR2.cfg
OS_USER_COMMENT="Oracle software owner"?????????????????????? | OS_USER_COMMENT="Oracle and oraToolKit software owner"
OSDBA_DIRECTORIES="/u1 /u2"?????????????????????????????????? | OSDBA_DIRECTORIES="/data01 /data02 /backup01"
INVENTORY_GROUP_DIRECTORIES="/oracle /var/opt/oracle /var/opt | INVENTORY_GROUP_DIRECTORIES="/opt/oracle /var/opt/oracle /var
INVENTORY_LOC="/oracle/oraInventory"????????????????????????? | INVENTORY_LOC="/opt/oracle/oraInventory"
# /opt/oracle/otk/current/bin/installManager swReqCheck osSetup10gR2.cfg
20100916_095427: Warning: Optional package unixODBC not found, installation of 32-bit version 2.2.9-1 or later recommended. Package is usually installed with default installation
----------------------------------------------------------------
20100916_094315: Info: Executing libmiscellaneous.getFooter function
20100916_094315: Info: Terminating installManager execution
20100916_094315: Info: Summary log file:? /var/opt/oracle/otk/1.0/log-old/installManager/../installManager.log
20100916_094315: Info: Detailed log file: /var/opt/oracle/otk/1.0/log-old/installManager/swreqcheck-20100916_094257.log
20100916_094315: Info: Action swReqCheck of installManager ended with one WARNING
----------------------------------------------------------------
# rpm -ivh glibc-kernheaders-2.4-9.1.103.EL.x86_64.rpm \
> glibc-headers-2.3.4-2.43.x86_64.rpm \
> glibc-devel-2.3.4-2.43.x86_64.rpm \
> libstdc++-devel-3.4.6-11.0.1.x86_64.rpm \
> gcc-3.4.6-11.0.1.x86_64.rpm \
> gcc-c++-3.4.6-11.0.1.x86_64.rpm \
> libaio-0.3.105-2.x86_64.rpm \
> sysstat-5.0.5-25.el4.x86_64.rpm \
> libtermcap-devel-2.0.8-39.x86_64.rpm \
> readline-devel-4.3-13.x86_64.rpm \
> unixODBC-devel-2.2.11-1.0.1.RHEL4.1.x86_64.rpm \
> glibc-devel-2.3.4-2.43.i386.rpm \
> libaio-devel-0.3.105-2.x86_64.rpm \
> unixODBC-devel-2.2.11-1.0.1.RHEL4.1.i386.rpm
加強 sql*plus
# cd /opt/oracle/otk/current/tools/rlwrap/
# ./configure
# make
# make install
# /usr/local/bin/rlwrap -v? ?
执行installManager的osSetup动作
# cd /opt/oracle/otk/current/conf/installManager/
# vi osSetup10gR2.cfg
# sdiff -s osSetup10gR2.cfg sample/osSetup10gR2.cfg
OS_USER_COMMENT="Oracle software owner"?????????????????????? | OS_USER_COMMENT="Oracle and oraToolKit software owner"
OSDBA_DIRECTORIES="/u1 /u2"?????????????????????????????????? | OSDBA_DIRECTORIES="/data01 /data02 /backup01"
INVENTORY_GROUP_DIRECTORIES="/oracle /var/opt/oracle /var/opt | INVENTORY_GROUP_DIRECTORIES="/opt/oracle /var/opt/oracle /var
INVENTORY_LOC="/oracle/oraInventory"????????????????????????? | INVENTORY_LOC="/opt/oracle/oraInventory"
# /opt/oracle/otk/current/bin/installManager osSetup osSetup10gR2.cfg
----------------------------------------------------------------
20100916_110155: Info: Executing libmiscellaneous.getFooter function
20100916_110155: Info: Terminating installManager execution
20100916_110155: Info: Summary log file:? /var/opt/oracle/otk/1.0/log-old/installManager/../installManager.log
20100916_110155: Info: Detailed log file: /var/opt/oracle/otk/1.0/log-old/installManager/ossetup-20100916_110120.log
20100916_110155: Info: Action osSetup of installManager ended with one WARNING
----------------------------------------------------------------
移动下载的Oracle软件到 /var/opt/oracle
# cd /soft
# chown oracle:oinstall *
# cp 10201_database_linux_x86_64.cpio.gz p6810189_10204_Linux-x86-64.zip /var/opt/oracle/repository/
# cd /var/opt/oracle/repository
# chown oracle:oinstall *
以oracle用户登录定制PS1变量
# su - oracle
?
?------------------------------------------------------
?oraToolKit environment variables
?------------------------------------------------------
?Installation directory :?? /opt/oracle/otk
?Release??????????????? :?? 1.0.2.1.4
?$RUN directory???????? :?? /opt/oracle/otk/1.0/bin
?$LOG_BASE directory??? :?? /var/opt/oracle/otk/1.0/log
?------------------------------------------------------
$ grep ^SITE .profile.custom.interactive
SITE="<SITE|COMPANY>"
$ vi .profile.custom.interactive
t$ grep ^SITE .profile.custom.interactive
SITE="FEEDB"
$ exit
# su - oracle
安裝Oracle Software
$ bash
$ cd $INSTALL_CONF
$ cp sample/swInstEeSrv10gR2-Step[123]-linux-x86_64.cfg .
$ cp response/10_2_0_1_EE.rsp response/10_2_0_1_EE.rsp.20100918
$ vi response/10_2_0_1_EE.rsp
$ sdiff -s response/10_2_0_1_EE.rsp response/10_2_0_1_EE.rsp.20100918
ORACLE_HOME="/oracle/eesrv/10.2.0/db1"??????????????????????? | ORACLE_HOME="/opt/oracle/eesrv/10.2.0/db1"
s_dlgRBORecoveryLocation="/oracle/eesrv/10.2.0/db1/flash_reco | s_dlgRBORecoveryLocation="/opt/oracle/eesrv/10.2.0/db1/flash_
s_mountPoint="/oracle/eesrv/10.2.0/db1/oradata/"????????????? | s_mountPoint="/opt/oracle/eesrv/10.2.0/db1/oradata/"
$ installManager swInst swInstEeSrv10gR2-Step1-linux-x86_64.cfg
----------------------------------------------------------------
20100918_093127: Info: Executing libmiscellaneous.getFooter function
20100918_093127: Info: Terminating installManager execution
20100918_093127: Info: Summary log file:? /var/opt/oracle/otk/1.0/log-old/installManager/../installManager.log
20100918_093127: Info: Detailed log file: /var/opt/oracle/otk/1.0/log-old/installManager/swinst-20100918_092739.log
20100918_093127: Info: Action swInst of installManager ended successfully
----------------------------------------------------------------
$ su -
# /oracle/eesrv/10.2.0/db1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
??? ORACLE_OWNER= oracle
??? ORACLE_HOME=? /oracle/eesrv/10.2.0/db1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
?? Copying dbhome to /usr/local/bin ...
?? Copying oraenv to /usr/local/bin ...
?? Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
$ cp response/10_2_0_4_EE.rsp response/10_2_0_4_EE.rsp.20100918
$ vi response/10_2_0_4_EE.rsp
$ sdiff -s response/10_2_0_1_EE.rsp response/10_2_0_1_EE.rsp.20100918
ORACLE_HOME="/oracle/eesrv/10.2.0/db1"??????????????????????? | ORACLE_HOME="/opt/oracle/eesrv/10.2.0/db1"
s_dlgRBORecoveryLocation="/oracle/eesrv/10.2.0/db1/flash_reco | s_dlgRBORecoveryLocation="/opt/oracle/eesrv/10.2.0/db1/flash_
s_mountPoint="/oracle/eesrv/10.2.0/db1/oradata/"????????????? | s_mountPoint="/opt/oracle/eesrv/10.2.0/db1/oradata/"
GCMS:SSH:oracle@FEE:test$ sdiff -s response/10_2_0_4_EE.rsp response/10_2_0_4_EE.rsp.20100918
ORACLE_HOME="/oracle/eesrv/10.2.0/db1"??????????????????????? | ORACLE_HOME="/opt/oracle/eesrv/10.2.0/db1"
$ installManager swInst swInstEeSrv10gR2-Step3-linux-x86_64.cfg
$ su -
# /oracle/eesrv/10.2.0/db1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
??? ORACLE_OWNER= oracle
??? ORACLE_HOME=? /oracle/eesrv/10.2.0/db1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.? Overwrite it? (y/n)
[n]: y
?? Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin.? Overwrite it? (y/n)
[n]: y
?? Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.? Overwrite it? (y/n)
[n]: y
?? Copying coraenv to /usr/local/bin ...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
創建TEST資料庫
$ cd $INSTALL_CONF
$ ls -1 dbSetup*.cfg
dbSetup-dev.cfg
dbSetup-prod.cfg
dbSetup-test.cfg
$ vi dbSetup-test.cfg
$ sdiff -s dbSetup-test.cfg sample/dbSetup-test.cfg
NLS_LANG=".AL32UTF8"????????????????????????????????????????? | NLS_LANG=".UTF8"
DATA01="/u1/rdbms/${DB_NAME}"???????????????????????????????? | DATA01="/data01/rdbms/${DB_NAME}"
DATA02="/u1/rdbms/${DB_NAME}"???????????????????????????????? | DATA02="/data01/rdbms/${DB_NAME}"
PWFILE="/u1/rdbms/${DB_NAME}/pfile"?????????????????????????? | PWFILE="/data01/rdbms/${DB_NAME}/pfile"
BACKUP_BASE="/u2"???????????????????????????????????????????? | BACKUP_BASE="/backup01"
UTL="/u1/utl/$DB_NAME"??????????????????????????????????????? | UTL="/data01/utl/$DB_NAME"
PASSWORD_OTK="practice"?????????????????????????????????????? | PASSWORD_OTK="otk"
$ installManager dbSetup dbSetup-test.cfg
20100918_103228: Info: sqlplus -s /nolog @/oracle/admin/test/create/postInstall.sql successfully executed
----------------------------------------------------------------
20100918_103228: Info: Executing libinstallManager.setTimeStampFile function
20100918_103228: Info: Creating creation timestamp file /oracle/admin/test/create/timestamp.log
----------------------------------------------------------------
20100918_103228: Info: Executing libmiscellaneous.getFooter function
20100918_103228: Info: Terminating installManager execution
20100918_103228: Info: Summary log file:? /var/opt/oracle/otk/1.0/log-old/installManager/../installManager.log
20100918_103228: Info: Detailed log file: /var/opt/oracle/otk/1.0/log-old/installManager/dbsetup-20100918_102147.log
20100918_103228: Info: Action dbSetup of installManager ended successfully
--------------------------------------------
修改環境設置
$ cd /opt/oracle/otk
$ cp? envsetup envsetup.20100918
$ vi envsetup
$ sdiff -s envsetup envsetup.20100918
? # echo " "????????????????????????????????????????????????? |?? echo " "
? # echo " -------------------------------------------------- |?? echo " ----------------------------------------------------
? # echo " oraToolKit environment variables"????????????????? |?? echo " oraToolKit environment variables"
? # echo " -------------------------------------------------- |?? echo " ----------------------------------------------------
? # echo " Installation directory :?? $BASEDIR"?????????????? |?? echo " Installation directory :?? $BASEDIR"
? # echo " Release??????????????? :?? $OTK_RELEASE"?????????? |?? echo " Release??????????????? :?? $OTK_RELEASE"
? # echo " \$RUN directory???????? :?? $RUN"????????????????? |?? echo " \$RUN directory???????? :?? $RUN"
? # echo " \$LOG_BASE directory??? :?? $LOG_BASE"???????????? |?? echo " \$LOG_BASE directory??? :?? $LOG_BASE"
? # echo " -------------------------------------------------- |?? echo " ----------------------------------------------------
? # echo " "????????????????????????????????????????????????? |?? echo " "
$ cd ~
$ cp .profile.default .profile.default.20100918
$ vi .profile.default
$ sdiff -s .profile.default .profile.default.20100918
if [ -f "/oracle/admin/$USER/setenv.ora" ]; then????????????? | if [ -f "/opt/oracle/admin/$USER/setenv.ora" ]; then
?? . "/oracle/admin/$USER/setenv.ora"???????????????????????? |??? . "/opt/oracle/admin/$USER/setenv.ora"
? if [ -f "/oracle/admin/$SID/setenv.ora" ]; then???????????? |?? if [ -f "/opt/oracle/admin/$SID/setenv.ora" ]; then
??? . "/oracle/admin/$SID/setenv.ora"???????????????????????? |???? . "/opt/oracle/admin/$SID/setenv.ora"
??? if [ -f "/oracle/setenv817.sh" ]; then??????????????????? |???? if [ -f "/opt/oracle/setenv817.sh" ]; then
????? . "/oracle/setenv817.sh"??????????????????????????????? |?????? . "/opt/oracle/setenv817.sh"
$ cp .setenv.ora .setenv.ora.20100918
$ vi .setenv.ora
$ sdiff -s .setenv.ora .setenv.ora.20100918
? ORACLE_BASE=${ORACLE_BASE:-"/oracle"}?????????????????????? |?? ORACLE_BASE=${ORACLE_BASE:-"/opt/oracle"}
$ cp .alias .alias.20100918
$ vi .alias
$ sdiff -s .alias .alias.20100918
if [ -d /oracle/admin -a "$1" = "SET" ]; then???????????????? | if [ -d /opt/oracle/admin -a "$1" = "SET" ]; then
? cd /oracle/admin??????????????????????????????????????????? |?? cd /opt/oracle/admin
??????? alias source${gDIR:0:1}${gDir:1}env=". /oracle/admin/ |???????? alias source${gDIR:0:1}${gDir:1}env=". /opt/oracle/ad
??????? alias source${gDIR:0:1}${gDir:1}Env=". /oracle/admin/ |???????? alias source${gDIR:0:1}${gDir:1}Env=". /opt/oracle/ad
$ cd /opt/oracle/otk/1.0/bin/
$ cp test_lsnrenv test_lsnrenv.20100918
$ cp test_sidenv test_sidenv.20100918
$ vi test_lsnrenv
$ sdiff -s test_lsnrenv test_lsnrenv.20100918
. /oracle/admin/test/setenv.ora >/dev/null??????????????????? | . /opt/oracle/admin/test/setenv.ora >/dev/null
$ vi test_sidenv
$ sdiff -s test_lsnrenv test_lsnrenv.20100918
. /oracle/admin/test/setenv.ora >/dev/null??????????????????? | . /opt/oracle/admin/test/setenv.ora >/dev/null
GCMS:SSH:oracle@FEE:test$ sdiff -s test_sidenv test_sidenv.20100918
. /oracle/admin/test/setenv.ora >/dev/null??????????????????? | . /opt/oracle/admin/test/setenv.ora >/dev/null
連線資料庫
$ bash
$ sourceTestEnv
$ sqlplus otk/otk@TEST
使用appctl管理Oracle
$ ctl status all
$ ctl stop all
$ ctl start all
?
網路設置
將 host 設為 IP.
1516T=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.151.6)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=TEST)(SERVER=DEDICATED)))
$ cd $TNS_ADMIN
$ cp listener.ora listener.ora.20100920
$ cp tnsnames.ora tnsnames.ora.20100920
$ vi listener.ora
$ vi tnsnames.ora
$ sdiff -s listener.ora listener.ora.20100920
??????? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.151.6)(POR |???????? (ADDRESS = (PROTOCOL = TCP)(HOST = FEE.goldenchang.co
$ sdiff -s tnsnames.ora tnsnames.ora.20100920
??? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.151.6)(PORT =? |???? (ADDRESS = (PROTOCOL = TCP)(HOST = FEE.goldenchang.com.cn
????? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.151.6)(PORT? |?????? (ADDRESS = (PROTOCOL = TCP)(HOST = FEE.goldenchang.com.
---------------------------------------
修改參數:
$ sqlplus /nolog
SQL> connect /as sysdba
SQL> show parameter sga;
SQL> alter system set sga_max_size=1024m scope=spfile;
$ ctl restart test_sid
SQL> alter system set sga_target=1024M;
SQL> alter system set PGA_AGGREGATE_TARGET=200M
SQL> alter system set open_links=20 scope=spfile;
SQL> alter system set remote_dependencies_mode=SIGNATURE scope=spfile;
$ ctl restart test_sid
?
=======================================================================================================================
RMAN 備份
$ cd $BACKUP_CONF
$ sqlplus /nolog
SQL*Plus: Release 10.2.0.4.0 - Production on Sat May 7 09:56:54 2011
Copyright (c) 1982, 2007, Oracle.? All Rights Reserved.
SQL> connect /as sysdba
Connected.
SQL> archive log list
Database log mode????????????? Archive Mode
Automatic archival???????????? Enabled
Archive destination??????????? /data01/rdbms/utf8/archivelog
Oldest online log sequence???? 238
Next log sequence to archive?? 240
Current log sequence?????????? 240
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
$ cp prod.cfg utf8.cfg
$ vi utf8.cfg
$ sdiff -s utf8.cfg prod.cfg
DB_NAME="utf8"??????????????????????????????????????????????? | DB_NAME="prod"
DISK_DEVICE_MOUNT_POINT="/6037rman"?????????????????????????? | DISK_DEVICE_MOUNT_POINT="/backup01"
BACKUP_DIR="$DISK_DEVICE_MOUNT_POINT/rdbms/physical/$DB_NAME" | BACKUP_DIR="$BACKUP_AREA"
修改環境變數設置: 改日誌檔格式為只包含年月日內容而不包含時分秒內容.
vi /opt/oracle/otk/1.0/lib/libbackupManager.ksh
$ sdiff -s libbackupManager.ksh libbackupManager.ksh.old
? setEnvVar START_TS????????? `date '+%Y%m%d'`? |?? setEnvVar START_TS????????? `getTimeStamp`
$ backupManager full utf8.cfg
完成動作:
??? *配置資料庫庫備份設置
??? *交叉檢查備份資料庫和archivelogs
??? *創建資料庫備份
??? *刪除過時的備份
??? *備份pfile文件到當前的SPFILE
??? *配置歸檔日誌備份設置
??? *備份 archivelogs
???
查看日誌:
$ cd $BACKUP_LOG
$ ls -l backupManager.log
排程:
$ crontab -e
0 2 * * * [ -d $HOME/../current ] && (ksh -c '. ./.profile >/dev/null; backupManager full utf8.cfg >/dev/null')