參考:
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')