redhatoracle啟動腳本
通過SSH或者SecureCRTPortable等可以直接連接Linux操作系統的軟體,連接到Linux系統。這里我使用的是SecureCRTPortable。
B. linux 下啟動Oracle11g 怎樣啟動
Linux 下啟動oracle步驟
1.進入到sqlplus啟動實例
[oracle@redhat ~]$ su - oracle --「切換到oracle用戶」
2.[oracle@redhat ~]$ lsnrctl start --「打開監聽」
3.[oracle@redhat ~]$ sqlplus /nolog --「進入到sqlplus」
4.SQL> conn /as sysdba --「連接到sysdba」
5.SQL> startup --「啟動資料庫實例」
6.SQL> shutdown immediate --「關閉資料庫實例」
7.[oracle@redhat ~]$ lsnrctl stop --「關閉監聽」
C. redhat下怎麼安裝oracle11g
這里介紹redhat下安裝oracle的准備內容和步驟。
安裝redhat操作系統,配置yum本地源,本地yum源的配置文件為/etc/yum.conf下面是一個/etc/yum.conf樣例文件的內容:
[main]
cachedir=/home/installed
keepcache=1
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
這里可將
cachedir=/home/installed
#cachedir=/home/installed這是自己定義的yum安裝緩存目錄
#keepcache=1表示安裝後,不刪除包
#keepcache=0表示安裝後,不保留包
安裝「X Window System」「Desk」「gnome」圖形界面,安裝必須的rpm包。
2
運行腳本,檢查安裝oracle需要的包是否都已經安裝。如果系統已經配置了本地yum源,可使用最後輸出的yum腳本直接安裝需要補充的安裝包。
####下面的代碼沒有問題,能執行,想法很好
####如果沒有安裝則使用awk 中的yum命令安裝
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} " binutils
compat-libstdc++-33 compat-db control-center elfutils-libelf elfutils-libelf-devel gcc
gcc-c++ glibc glibc-common glibc-devel lio lio-devel libgcc libstdc++
libstdc++-devel make sysstat unixODBC glibc-headers unixODBC-devel
oracleasm oracleasmlib oracleasm-support
pdksh sysstat xscreensaver | grep not | grep -v grep | awk '{print "yum install -y " $2 }'
####上面的程序可以改善成以下內容,這樣方便查看rpm包關鍵字
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} "
binutils
compat-libstdc++-33
compat-db
control-center
elfutils-libelf
elfutils-libelf-devel
gcc
gcc-c++
glibc
glibc-common
glibc-devel
lio
lio-devel
libgcc
libstdc++
libstdc++-devel
make
sysstat
unixODBC
glibc-headers
unixODBC-devel
oracleasm
oracleasmlib
oracleasm-support
pdksh
sysstat
xscreensaver
| grep not | grep -v grep | awk '{print "yum install -y " $2 }'
3
編輯/etc/sysconfig/network-scripts/ifcfg-eth0文件,配置IP地址:
下面是一個樣例的/etc/syscofig/network-scripts/ifcfg-eth0文件內容:
DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
UUID="a4f7ad2e-219c-4eb7-bb60-ab83c3b9d651"
IPADDR=192.168.100.18
PREFIX=24
GATEWAY=192.168.100.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
DNS1=192.168.100.1
DOMAIN=192.168.100.1
HWADDR=00:0c:29:14:ba:74
USERCTL=no
4
修改/etc/sysconfig/network文件,將裡面hostname改成機器名
後面是一個/etc/sysconfig/network文件內容的樣例:
1. 修改/etc/sysconfig/network 文件
[root@localhost~]# cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=dave
###配置網路映射/etc/sysconfig/network文件
我的network文件內容
####
#vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=guolong
#add the HOSTNAME lines ONLY
#the after step is vi /etc/hosts to add the IP and HOSTNAME
####
5
修改/etc/hosts文件,將IP地址和hostname添加到這個文件
我的hosts文件內容
# vi /etc/hosts
######
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#add the IP address and the HOSTNAME ONLY
#the next step is to run hostname in the command line
122.122.100.10 guolong
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
######
6
創建oracle用戶所屬的組oinstall 所屬組dba 用戶oracle,修改oracle用戶密碼,設置許可權:
添加oracle用戶和oinstall,dba組
[root@guolong oradisk]# /usr/sbin/groupadd oinstall
[root@guolong oradisk]# /usr/sbin/groupadd dba
[root@guolong oradisk]# /usr/sbin/useradd -g oinstall -G dba oracle
[root@guolong oradisk]# passwd oracle
[root@guolong network-scripts]# chown -R oracle:oinstall /opt/app
[root@guolong network-scripts]# chmod -R 775 /opt/app
[root@guolong network-scripts]#
7
配置Linux的內核參數,也就是修改/etc/sysconfig/sysctl.conf文件,並使用/etc/sysctl -p使配置生效。
可運行下面的命令查詢內核參數值。
/sbin/sysctl -a | grep sem &&
/sbin/sysctl -a | grep shm &&
/sbin/sysctl -a | grep file-max &&
/sbin/sysctl -a | grep ip_local_port_range &&
/sbin/sysctl -a | grep rmem_default &&
/sbin/sysctl -a | grep rmem_max &&
/sbin/sysctl -a | grep wmem_default &&
/sbin/sysctl -a | grep wmem_max &&
/sbin/sysctl -a | grep aio-max-nr
內核參數不能低於下面的參考值:
####參考值
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
#kernel.shmmax = Minimum 536870912
kernel.shmmax = 68719476736
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
#net.ipv4.ip_local_port_range = Minimum 32768 Maxmum65500
net.ipv4.ip_local_port_range = 32768 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
下面是一個樣例sysctl.conf文件的內容:
####用oracle用戶修改並使得/etc/security/limits.conf配置文件生效
使用一個oracle安裝者進行下面的配置,這里推薦使用oracle用戶進行下面的配置
#編輯 /etc/sysctl.conf
/etc/sysctl.conf文件內容:
#vim /etc/sysctl.conf
io-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
#使sysctl.conf配置文件生效
運行下面的命令/etc/sysctl -p
如果要檢查配置是否正確,可使用下面的命令
#檢查sysctl.conf配置文件是否正確
#/sbin/sysctl -a
#運行結果如下
[root@guolong home]# /sbin/sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
[root@guolong home]#
8
修改oracle用戶的資源限制文件,
編輯/etc/security/limits.conf
內容如下
以下是一個limits.conf文件的內容
樣例/etc/security/limits.conf內容
#######
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
#######
9
修改oracle用戶的~/.bash_profile文件,運行 source .bash_profile使配置生效。
內容如下:
10
運行xhost命令
[root@guolong network-scripts]# xhost 122.122.100.10
122.122.100.10 being added to access control list
11
配置本地顯示
#配置本地顯示
echo $DISPLAY
[root@guolong network-scripts]# echo $DISPLAY
:0.0
[root@guolong network-scripts]#
12
設置oracle環境變數,配置DISPLAY 和xhost,如有必要修改/etc/init.d文件,將id:3改為id:5默認使用圖形界面啟動。
13
mount oracle安裝盤,如果是用光碟機或者虛擬光碟機,
mkdir /home/oradisk
mkdir /mnt/cdrom
mount -t iso9660 -o loop /dev/sr0 /mnt/cdrom
cp -Rv /mnt/cdrom/* /home/oradisk
然後cd /home/oradisk
命令行運行 ./runInstaller即可
14
注銷系統,或者重啟系統,懸著用戶oracle,使用oracle用戶登錄系統。
##開始安裝oracle
$ /mount_point/db/runInstaller
D. linux怎麼重啟oracle資料庫
我用的是Redhat Linux,用下面的步驟來啟動oracle資料庫。
首先使用oracle用戶登錄Linux,然後在shell命令行中執行下面的命令:
第一步:打開Oracle監聽
$ lsnrctl start
第二步:進入sqlplus
$ sqlplus /nolog
SQL>
第三步:使用sysdab角色登錄sqlplus
SQL> conn /as sysdba
第四步:啟動資料庫
SQL> startup
經過上面的四個步驟,oracle資料庫就可以啟動了。
E. 如何啟動oracle
1、打開命令行窗口界面,可以同時按住「ctrl+R」鍵,在彈出來的運行窗口中輸入cmd。2、啟動oracle服務,在命令行窗口中輸入「netstartoracleserviceXXXX」後面的XXXX實際是需要根據您自己的資料庫實例名進行替換。如果您不知道,可以看下「計算機管理」界面下的服務中,能不能找到服務名類似的服務。提示「服務已經啟動成功」就說明服務啟動起來了。3、啟動監聽程序,在命令行窗口輸入lsnrctlstart,等到提示「命令執行成功」就可以了。4、接下來就開始載入資料庫實例了。在命令行窗口輸入「sqlplus/assysdba」登錄到一個空閑的常式。5、登錄完成後,輸入「startup」。這個過程可能有點慢,直到出現「資料庫已經打開」則表示實例啟動成功了。6、測試一下把,隨便連接一個資料庫用戶,如果提示「連接成功」則說明資料庫服務現在可以正常使用了。注意事項如果操作過程中提示「監聽已經啟動」,「服務已經運行」等,則可以跳過相應步驟,繼續執行。
F. 如何在redhat Linux中安裝腳本程序
所謂標准系統服務,應該是滿足以下幾條標準的後台運行程序。
1) 用 chkconfig --add 來安裝,用 chkconfig --list 檢查狀態。
2) 用 ntsysv 來定製某個服務,是否伴隨機器的啟動而自動啟動。
3) 在圖形模式下,可以用 serviceconf 來啟動、停止、重啟服務。
4) 開機象系統服務那樣顯示 starting,關機顯示 shutting down。
三、下面是具體的 dbora 腳本,在 Redhat 7.3 上通過,本人已經
驗證了幾十次,保證能運行。如果在您的系統不能運行,請告知。
備註:啟動 lsnrctl 的時候不用 su- 而使用 su,否則失敗,並且
要求使用 oracle 用戶本身的 BASH_ENV。腳本開頭的幾個 ORA_xxx
參數都要依照實際情況寫,否則會說找不到 Oracle 程序或者 pid。
DOS 格式方便發文,拷下來後請大家用 UltraEdit 轉為 Unix 格式。
------------------------------------------------------------------------
#!/bin/bash
#
# /etc/rc.d/init.d/dbora
#
# Starts the dbora daemon
#
# chkconfig: 345 94 6
# description: Runs commands scheled by the at command at the time \
# specified when at was run, and runs batch commands when the load \
# average is low enough.
# processname: dbora
#
# right: Written by Wwashington AT smth bbs, free to distribute. \
# You must keep everything in this file, including the right \
# announcement. Study demo: atd & postgresql in /etc/rc.d/init.d
# Source function library.
INITD=/etc/rc.d/init.d
. $INITD/functions
# Source system profile.
if [ -r /etc/profile ] ; then . /etc/profile ; fi
ORA_SID=udb01
ORA_USER=oracle
ORA_BASE=/udb01/app/oracle
ORA_HOME=/udb01/app/oracle/proct/8.1.7
BASH_ENV=$ORA_BASE/.bashrc
test -x $ORA_HOME/bin/dbstart || exit 0
RETVAL=0
GREP_UNIX=`uname | awk '{if($1 ~ /(^SunOS|^HP-UX)/) print $1}'`
if ! [ "$GREP_UNIX" = "" ]
then
GREP_FLAG=ef
else
GREP_FLAG=efw
fi
RUNLEVEL=`runlevel | awk '{ print $2 }'`
# RUNLEVEL=6
case "$RUNLEVEL" in
3)
SH_FLAG=1
;;
4)
SH_FLAG=1
;;
5)
SH_FLAG=1
;;
*)
SH_FLAG=0
;;
esac
# Below is a debug info to display Show Flag
# echo RUNLEVEL=$RUNLEVEL , SH_FLAG=$SH_FLAG
#
# See how we were called.
#
prog="dbora"
start() {
# Check flag, if dbora already started, quit dbora
if [ ! -f /var/lock/subsys/dbora ]; then
echo -n $"Starting $prog: "
# This is the background exec which can work under
# both CLI (dbora) and GUI mode (serviceconf). We
# must forward stderr to a file or null, otherwise
# dbora won't start with a return code in GUI mode
echo ""
echo "[oralog] ----->;"
echo "Starting Oracle8i: "
echo "-------------------------------------------------------------------------"
# Please note that forward stderr(2) to /dev/null or &- means close stderr
su - $ORA_USER -c "$ORA_HOME/bin/dbstart >; /tmp/ORA-dbuplog" 2>;/dev/null
if [ $SH_FLAG -eq 1 ]; then
cat /tmp/ORA-dbuplog
fi
echo
echo "Starting TNS Listener:"
echo "-------------------------------------------------------------------------"
su $ORA_USER -c "$ORA_HOME/bin/lsnrctl start >; /tmp/ORA-lsnrlog" 2>;&-
if [ $SH_FLAG -eq 1 ]; then
cat /tmp/ORA-lsnrlog
fi
pid=`pidof -s ora_pmon_$ORA_SID`
if [ "$pid" == "" ]; then
RETVAL=1;
else
RETVAL=0;
fi
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dbora
echo
fi
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
# In order to use database local cmd to keep safe,
# we use dbshut instead of simply kill ora_ proc.
# When we reboot (runlevel = 0 or 6), no verbose.
# Force remove /var/lock/subsys/dbora to activate
if [ $SH_FLAG -eq 1 ]; then
echo ""
echo "[oralog] ----->;"
echo "Shutting down TNS Listener:"
echo "-------------------------------------------------------------------------"
su $ORA_USER -c "$ORA_HOME/bin/lsnrctl stop"
else
su $ORA_USER -c "$ORA_HOME/bin/lsnrctl stop >; /dev/null"
fi
if [ $SH_FLAG -eq 1 ]; then
echo
fi
if [ $SH_FLAG -eq 1 ]; then
echo "Shutting down Oracle8i: "
echo "-------------------------------------------------------------------------"
su - $ORA_USER -c "$ORA_HOME/bin/dbshut"
else
su - $ORA_USER -c "$ORA_HOME/bin/dbshut >; /dev/null"
fi
pid=`ps -$GREP_FLAG | grep -e ora_ -e lsnr | grep -v grep | awk '{ print $2 }'`
# Show pids when shutdown failed, to see debug info
# echo $pid
if [ $pid ]; then
failure ""
else
success ""
fi
echo ""
rm -f /var/lock/subsys/dbora
return $RETVAL
}
restart() {
echo "Restarting Oracle8i and Listener: "
echo "========================================================================="
stop
start
}
reload() {
restart
}
status_ol() {
echo "Checking Oracle8i and Listener: "
echo "========================================================================="
su - $ORA_USER -c "$ORA_HOME/bin/dbstat"
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload|restart)
restart
;;
condrestart)
if [ -f /var/lock/subsys/dbora ]; then
restart
fi
;;
status)
status_ol
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
exit $?
exit $RETVAL
------------------------------------------------------------------------
caiwolf 回復於:2004-10-17 00:47:46
頂一個.:)
wwashington 回復於:2004-10-17 11:32:42
剛才的文件是 /etc/rc.d/init.d/dbora,現在補充一個 dbstat,
bash-2.05a# cat $ORACLE_HOME/bin/dbstat
GREP_UNIX=`uname | awk '{if($1 ~ /(^SunOS|^HP-UX)/) print $1}'`
if ! [ "$GREP_UNIX" = "" ]
then
GREP_FILE=/usr/xpg4/bin/grep
GREP_FLAG=ef
else
GREP_FILE=/bin/grep
GREP_FLAG=efw
fi
echo
echo "# ps -$GREP_FLAG | $GREP_FILE -e ora_ -e lsnr| grep -v grep"
echo
ps -$GREP_FLAG | $GREP_FILE -e ora_ -e lsnr| grep -v grep
echo
bash-2.05a# cat $ORACLE_BASE/.bashrc
# User specific environment and startup programs
ORA_FLAG=`echo $PATH | grep -e ^$ORACLE_BASE`
if [ "$ORA_FLAG" = "" ]; then
PATH=$ORACLE_HOME/bin:$PATH
export PATH
fi
java_HOME=/usr/java/1.18
LD_ASSUME_KERNEL=2.2.5
export JAVA_HOME LD_ASSUME_KERNEL
. /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
G. 如何在LINUX下啟動ORACLE
手動啟動:
用 oracle用戶登錄(或su - oracle)
lsnrctl start
sqlplus / as sysdba
startup
exit
自動啟動,要編寫一個啟動腳本,用root用戶拷到/etc/init.d下,取名叫oracle
然後, chkconfig oracle on,即可加入服務列表
/etc/init.d/oracle start #啟動
/etc/init.d/oracle stop #停止
腳本的示例(裡面的變數要按實際情況修改):
#!/bin/bash
#
# chkconfig: 345 99 01
# description: This is a program that is responsible for taking care of
# configuring the Oracle Database 11g Stardard/Enterprise Edition and its associated
# services.
#
# Source fuction library
if [ -f /lib/lsb/init-functions ]
then
. /lib/lsb/init-functions
elif [ -f /etc/init.d/functions ]
then
. /etc/init.d/functions
fi
# Set path if path not set (if called from /etc/rc)
case $PATH in
"") PATH=/bin:/usr/bin:/sbin:/etc
export PATH ;;
esac
# Save LD_LIBRARY_PATH
SAVE_LLP=$LD_LIBRARY_PATH
RETVAL=0
ORACLE_OWNER=oracle
ORACLE_OWNER_HOME=/opt/oracle
ORACLE_BASE=$ORACLE_OWNER_HOME/app/oracle
ORACLE_HOME=$ORACLE_BASE/proct/11.2.0/dbhome_1
ORACLE_SID=orcl
ORACLE_UNQNAME=$ORACLE_SID
LSNR=$ORACLE_HOME/bin/lsnrctl
SQLPLUS=$ORACLE_HOME/bin/sqlplus
STARTDB_SQL=$(mktemp /tmp/start.XXXXXX)
echo -e "startup;\nquit;\n" > $STRTDB_SQL
STOPDB_SQL=$(mktemp /tmp/stop.XXXXXX)
echo -e "shutdown immediate;\nquit;\n" > $STOPDB_SQL
SU=/bin/su
export ORACLE_HOME
export ORACLE_SID
export PATH=$ORACLE_HOME/bin:$PATH
LOG="$ORACLE_HOME_LISTNER/listener.log"
export LC_ALL=C
if [ $(id -u) != "0" ]
then
echo "You must be root to run the configure script. Login as root and then run the
configure script."
exit 1
fi
if [ -f /etc/redhat-release ]
then
. /etc/init.d/functions
init_status()
{
return 0
}
exit_status()
{
exit $?
}
success_status()
{
success
echo
}
failure_status()
{
failure $?
echo
}
elif [ -f /etc/SuSE-release ]
then
. /etc/rc.status
init_status()
{
rc_reset
}
success_status()
{
echo "OK"
return 0
}
failure_status()
{
echo "Failed"
return 1
}
exit_status()
{
exit $?
}
else
if [ -d /etc/default ]
then
CONFIGURATION="/etc/default/$CONFIG_NAME"
fi
init_status()
{
return 0
}
success_status()
{
echo "OK"
return 0
}
failure_status()
{
echo "Failed"
return 0
}
exit_status()
{
exit $?
}
fi
init_status
start() {
status=`ps -ef | grep tns | grep oracle`
if [ "$status" == "" ]
then
if [ -f $ORACLE_HOME/bin/tnslsnr ]
then
echo "Starting Oracle Net Listener."
$SU -s /bin/bash $ORACLE_OWNER -c "$LSNR start" # > /dev/null 2>&1
fi
fi
echo "Starting Oracle Database 11g Instance."
$SU -s /bin/bash $ORACLE_OWNER -c "$SQLPLUS -s /nolog @${STARTDB_SQL}" # > /dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo
else
echo Failed to start Oracle Net Listener using $ORACLE_HOME/bin/tnslsnr\
and Oracle Database using $ORACLE_HOME/bin/sqlplus.
RETVAL=1
return $RETVAL
fi
}
startconsole() {
$SU -s /bin/bash $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole &" # > /dev/null 2>&1
RETVAL=$?
return $RETVAL
}
stop() {
# Stop Oracle 11g Database and Listener
$SU -s /bin/bash $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole &" # > /dev/null 2>&1
echo Shutting down Oracle Database 11g Instance.
$SU -s /bin/bash $ORACLE_OWNER -c "$SQLPLUS -s /nolog @${STOPDB_SQL}" # > /dev/null 2>&1
echo Stopping Oracle Net Listener.
$SU -s /bin/bash $ORACLE_OWNER -c "$LSNR stop" # > /dev/null 2>&1
RETVAL=$?
echo
if [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$LSNR
then
return $RETVAL
fi
}
stopconsole() {
# Stop Oracle 11g Database and Listener
$SU -s /bin/bash $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole &" # > /dev/null 2>&1
RETVAL=$?
return $RETVAL
}
# See how we were called
case "$1" in
start)
start
;;
startconsole)
startconsole
;;
stop)
stop
;;
stopconsole)
stopconsole
;;
restart|reload|force-reload)
stop
start
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload}"
exit 1
esac
H. 怎麼在linux下安裝oracle資料庫
由於Oracle自身比較復雜,在Linux環境下安裝要涉及很多方面的因素。本文分兩個方面介紹在Linux RedHat 6.0環境下Oracle 8.0.5的安裝。
一、調整Linux核心與環境
在安裝Oracle之前,應該先對RedHat 6.0的Linux內核與環境進行調整,要做以下工作:
1、在完成RedHat 6.0 Linux的預設安裝後,需要安裝以下軟體包。
kernel -source -2.2.5 -15.1386.rpm
Linux 2.2.5內核源碼,主要用於修改核心參數後重生成內核。
tcl -8.0.4 -29.1386.rpm
該軟體包是安裝Oracle Intelligent Agent包所必需的。
Compat -binutils -5.2-2.9.0.23.1.1386.rpm
Compat -glibc -5.2-2.0.7.2.1386.rpm
Compat -egcs -5.2 -1.0.3a.1.1381.rpm
Compat -egcs -C++ -5.2 -1/0/3a.1.1386.rpm
Compat -libs -5.2 -1.1386.rpm
2、調整Linux核心參數
根據Oracle 8.0.5對Linux核心內存參數的要求,可對Linux核心參數進行調整。編輯修改/usr/src/linux/include/asm/shmparam.h文件,修改SHMMAX選項。Oracle推薦使用4294967295,這意味著系統的共享內存達到4G,這是不合適的。一般,SHMMAX的設置可略大於本機內存配置。
事實上,預設安裝的RedHat 6.0核心運行Oracle 8.0.5是沒有問題的,一般情況下可不對這些參數作出調整。
如確需調整,在完成修改後,要按文檔要求重生成核心,並用lilo命令指定用新的核心進行引導。
3、增加用戶,創建安裝目錄
Oracle安裝與運行需要創建一個屬於dba組的Oracle用戶,同時要創建一個屬主為Oracle用戶的安裝點目錄,例如/u0/oracle,並指定該目錄為Oracle用戶的預設主目錄。
為了設置Oracle用戶的運行環境,在Oracle用戶的主目錄下要建立一個腳本文件,用於在以Oracle用戶登錄進自動設置環境變數。該腳本文件的命名與用戶所使用的shell有關(在etc/passwd文件中定義)。如採用bash,則腳本文件是.bash_profile;如採用sh,則腳本文件名為.profile。以bash為例,在腳本文件.bash_profile中輸入以下內容:
#ORACLE_HOME指定Oracle的安裝目錄
ORACLE_HOME=/u0/oracle; export ORACLE_HOME
#LD_LIBRARY_PATH指定Oracle的共享庫目錄
LD_LIBRARY_PATH=$ORACLE_HOME /lib;export LD_LIBRARY_PATH
ORACLE_BASE=$ORACLE_HOME; export ORACLE_BASE
#ORACLE_SID指定Oracle資料庫實例名,Oracle建議小於或等於4個字元
ORACLE_SID=BROS;export ORACLE_SID
#ORACLE_TERM Oracle用戶的終端類型
ORACLE_TERM=ansi; export ORACLE_TERM
PATH=$PATH: $ORACLE_HOME /bin; export PATH
#TMPDIR指定臨時目錄,Oracle要求至少20M的空間
TMPDIR=/var/tmp;export TMPDIR
umask 022
退出登錄後,再以Oracle用戶登錄,測試環境變數是否符合要求。
二、安裝Oracle
Oracle的安裝可採用光碟或指定安裝路徑的方式。
對用Oracle for linux光碟來安裝的,應執行以下命令:
mount -t iso9660 /dev/cdrom /home/Oracle
安裝光碟介質。正常情況下,CDROM應安裝在/mnt/cdrom目錄下。
對指定原始安裝路徑安裝的,應事先將壓縮檔案文件805ship.tgz解壓縮到一個臨時目錄,如/home/Oracle,使用命令:
gunzip - c 805ship.tgz| tar xvf -
假設使用指定原始安裝路徑/home/Oracle,在該目錄下執行:
cd orainst
sh oratab.sh
oratab.sh命令的主要目的是創建/etc/oratab。
由於RedHat 6.0使用的是glibc 2.0,因此在RedHat 6.0環境下安裝Oracle 8.0.5需打補丁。方法是:卸載位於ftp.Oracle.com站點的/pub/www/otn/linux/glibcpatch.tgz文件,在完成Oracle基本系統安裝後,對$ORACLE_HOME/bin目錄下的執行程序進行修正。
做完上述工作後,即可以開始Oracle基本系統的安裝。
1、進入/home/Oracle目錄;
2、執行./orainst /c;
3、選擇Custom安裝。
根據提示進行以下選擇:
Install,Upgrade or De -instal software
Install new proct -DO NOTCREAT DB Objects。這一步非常重要,由於安裝包中的執行程序與blibc2.0不兼容,因此,在打補丁前,無法啟動Oracle引擎來創建資料庫對象。
按照上述步驟招待完退出後,系統應提示:
Result:Success
4、對Oracle執行程序進行glibc修正。步驟如下:
* 建立$ORACLE_HOME/orapatch目錄;
* 將glibcpatch.tgz拷貝至主目錄;
* 執行tar -xvzf glibcpatch.tgz;
* 執行sh glibcpatch.sh。
完成 補丁程序安裝後,要重新運行Oracle的安裝程序,步驟如下:
* cd orainst;
* 執行orainst /c;
* 進行custom安裝。
根據提示進行以下選擇:
Create/upgrade Database objects
Create Database objicts
Oracle 8 Standard RDBMS 8.0.5.0.0
Create proct DB Objicts
Filisystem -bases Database
直至提示:Rusult:Success
5、執行後安裝處理
* 以Oracle用戶登錄;
* 執行su -p root,輸入root用戶密碼;
* cd orainst;
* 執行sh root.sh;
* 編輯修改 /etc/oratab文件。
找到Oracle -SID指示行,如:
$BROS: /u0/Oracle:N
修改為:
$BROS: /u0/Oracle:Y
以允許Oracle伺服器自啟動。
*修改TNS相關的文件許可權:
chown oracle.dba $ORACLE_HOME/bin/tnslsnr
chmod 750 $ORACLE_HOME/bin/tnslsnr
chown oracle.dba $ORACE_HOME/network/log
chmod 775 $ORACLE_HOME/network/log
chown root.dba $ORACLE_HOME/network/log/listener.log
chmod 664 $ORACLE_HOME/network/log/listener.log
至此,安裝基本完成。
I. 怎麼在linux中操作oracle資料庫
我用的是redhat
linux,用下面的步驟來啟動oracle資料庫。
首先使用oracle用戶登錄linux,然後在shell命令行中執行下面的命令:
第一步:打開oracle監聽
$
lsnrctl
start
第二步:進入sqlplus
$
sqlplus
/nolog
sql>
第三步:使用sysdab角色登錄sqlplus
sql>
conn
/as
sysdba
第四步:啟動資料庫
sql>
startup
經過上面的四個步驟,oracle資料庫就可以啟動了。
J. oracle 10g 資料庫集群啟停腳本
/etc/init.d/oracle #!/bin/sh
#
# oraShell -- user start|stop script for oracle
#
LOG_EMERG=0 # system is unusable
LOG_ALERT=1 # action must be taken immediately
LOG_CRIT=2 # critical conditions
LOG_ERR=3 # error conditions
LOG_WARNING=4 # warning conditions
LOG_NOTICE=5 # normal but significant condition
LOG_INFO=6 # informational
LOG_DEBUG=7 # debug-level messages
script_name=`basename $0`
clulog()
{
log_level=$1
log_info=$2
/opt/cluster/bin/clulog -p $$ -n $script_name -s $log_level "$log_info"
}
case $1 in
start)
# start listener
su - oracle -c "lsnrctl start"
retval=$?
if [ $retval -eq 0 ]; then
clulog $LOG_INFO "oraShell: lsnrctl start succeeded."
else
clulog $LOG_ERR "oraShell: lsnrctl start failed, ret=$retval."
exit 1
fi
# start oracle
su - oracle -c "sqlplus /nolog" <<EOF
connect / as sysdba
startup
quit
EOF
ps -wwwef | grep ora_pmon | grep -v grep >/dev/null 2>&1
retval=$?
if [ $retval -eq 0 ]; then
clulog $LOG_INFO "oraShell: oracle database start succeeded."
else
clulog $LOG_ERR "oraShell: oracle database start failed."
exit 1
fi
;;
stop)
# stop listener
su - oracle -c "lsnrctl stop"
retval=$?
if [ $retval -eq 0 ]; then
clulog $LOG_INFO "oraShell: lsnrctl stop succeeded."
else
clulog $LOG_ERR "oraShell: lsnrctl stop failed, ret=$retval."
exit 1
fi
# stop oracle
su - oracle -c "sqlplus /nolog" <<EOF
connect / as sysdba
shutdown immediate
quit
EOF
ps -wwwef | grep ora_pmon | grep -v grep >/dev/null 2>&1
retval=$?
if [ $retval -ne 0 ]; then
clulog $LOG_INFO "oraShell: oracle database stop succeeded."
else
clulog $LOG_ERR "oraShell: oracle database stop failed."
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
# succeed
exit 0