oracle11g redhat6.0完整安装版

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Redhat6.0 Oracle 安装
一.安装环境:redhat6.0 静态IP
#Vi /etc/redhat-release(安装完成可改回,有时候有影响,本人无影响)
#Red Hat Enterprise Linux Server release 6.0 (Santiago)
Red Hat Enterprise Linux Server release 5.0 (Tikanga)
#Vi /etc/hosts
127.0.0.1 hostname
Vi /etc/sysconfig/network
HOSTNAME=
二.挂在redhat6.0光盘安装oracle所需rpm包
# yum -y install binutils compat-libstdc++-33 compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc glibc-common glibc-devel glibc-devel glibc-headers ksh libaio libaio libaio-devel libaio-devel libgcc libgcc libstdc++ libstdc++ libstdc++-devel make sysstat unixODBC unixODBC unixODBC-devel unixODBC-devel
三.创建oracle用户和组
#group dba
#groupadd oinstall
#useradd –g oinstall -G dba oracle
#passwd oracle
oracle
四.创建目录
# mkdir -p /opt/oracle/oracle11g/oradata
#mkdir –p /opt/oracle/oracle11g/product/11.2.0/db_1
#mkdir -p /opt/oracle/oracle11g/flash_recovery_area
#chown oracle:oinstall /opt/oracle; chmod 755 –R /opt/oracle
五.修改环境变量及系统参数
Vi /home/oracle/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
#######################oracle11gR2############################## export DISPLAY=:0.0
export PATH
export ORACLE_HOME=/opt/oracle/oracle11g /product/11.2.0/db_1;
export ORACLE_BASE=/opt/oracle/oracle11g;
export ORACLE_SID=vm;
export PATH=$PATH:$ORACLE_HOME/bin;
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
export PATH=$PATH:$ORACLE_HOME/bin;
export
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib; export
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jli b:$ORACLE_HOME/network/jlib;
#vi /etc/sysctl.conf文件末尾添加:
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.file-max = 6815744
s.aio-max-nr = 1048576
#sysctl -p
#vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
#vi /etc/pam.d/login
session required /lib/security/pam_limits.so或session required pam_limits.so
六.挂在oracle至mnt下
#mount /dev/sr0 /mnt
#cp /mnt/* /opt/oracle/
# chown oracle:oinstall /opt/oracle / -R
#chmod 775 /opt/oracle/ -R
#unzip linux_11gR2_database_1of2\(1\).zip
#unzip linux_11gR2_database_2of2\(1\).zip
#xhost +(不然会在安装时报错:Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set)
#reboot
七.安装oracle
# su – oracle
# export en
#cd /opt/oracle/
# ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 80 MB. Actual 24216 MB Passed Checking swap space: must be greater than 150 MB. Actual 4063 MB Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from
/tmp/OraInstall2014-06-24_12-32-32AM. Please wait ...[oracle@server database]$
邮箱可跳过,不跳过会报错Unexpected error occurred while validating inputs at state 'getOCMDetails'. 该错误是因为没有安装pdksh的原因,将该包安装好后,问题解决.
1.下载pdksh
2.安装pdksh
[root@host1 soft]# rpm -ivh pdksh-5.2.14-37.el5_8.1.i386.rpm
warning: pdksh-5.2.14-37.el5_8.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
error: Failed dependencies:
pdksh conflicts with ksh-20060214-1.4.i386
遇到如上错误后,解决办法是删除掉ksh-20060214-1.4.i386
[root@host1 soft]# rpm -e ksh-20060214-1.4.i386
3.继续安装
[root@host1 soft]# rpm -ivh pdksh-5.2.14-1.i386.rpm
Preparing... ########################################### [100%]
1:pdksh ########################################### [100%]
再次运行.runInstall后填写email地址,就可以顺利通过了.
匹配字母大小写数字,Liuzhizhong123
然后
# su
# /opt/oracle/oraInventory/orainstRoot.sh
# /opt/oracle/oracle11g/product/11.2.0/db_1/root.sh
安装完数据之后,在root用户下执行netca(在图形界面下执行),完成监听程序的配置
出现乱码执行#export LANG=en_US
中文
添加监听程序
输入监听
输入默认端口1521
完成配置
启动监听
#lsnrctl start
解除对于SCOTT用户的锁定:
conn sys/bitservice@ttonline as sysdba;
alter user scott account unlock;
select * from dba_users where upper(username)='SCOTT';
ACCOUNT_STATUS:EXPIRED
3、连接SCOTT用户:
conn scott/tiger@ttonline;提示该用户已经过期,请重新输入新的密码:tiger conn scott/tiger@ttonline;此次可以正常连接此用户
设置oracle开机自动启动(文件路径需更改)
linux下系统开机oracle自启动(方法一) ---加载为服务自启动、停止
一、dbstart 及dbstop
Oracle 数据库的自动启动及停止可籍Oracle 提供的dbstart 及dbshut 档达
成(在7.3.3.0.0 中)。

这些文件又耍依靠/etc/oratab 存在才能使用(虽然更
改dbshut 和dbstart 档可使解除这限制。


/etc/oratab 档格式如下:
--------------------------------------------------------------------------------
SID:ORACLE_HOME:AUTO
--------------------------------------------------------------------------------
例如
--------------------------------------------------------------------------------
*:/opt/oracle9/product/9.2.0.4:N
boss:/opt/oracle9/product/9.2.0.4:Y
--------------------------------------------------------------------------------
二、init.d 及rc.d
要在开机关机时自动启动和结束数据库的话,你需要修改Linux 的启动脚本文件。

这并不困难,不过,我需要指出这些改动因应不同的Linux 发行版本
(slackware, debian, redhat 等)而有所不同。

我这些例子适用于Redhat 5.0。

要为你所用的Linux 作出修改,请先参考你手头上的Linux 文件。

(虽然这实际上应该适用于所有Sys V UNIX。


首先,我们要建立会执行/etc/rc.d/init.d 目录中dbshut 及dbstart 的脚本文件。

把以下文件命名为/etc/rc.d/init.d/oracle:
#############################################################
Linux下让Oracle服务自动启动与停止
默认地,如果在Windows下安装Oracle的话,会注册相应的服务,并随着操作系统启动而自动启动。

但是,在Linux(环境是:RHEL5.2)下却需要进行一些配置才能实现这个功能。

具体如下:
一、修改Oracle系统配置文件/etc/oratab [root@RHEL ~]# gedit /etc/oratab
/etc/oratab格式为: SID:ORACLE_HOME:AUTO,把AUTO域设置为Y(大写)。

只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。

我的环境为:
orcl:/usr/app/oracle/product/10.2.0/db_1:Y 二、编写服务脚本
[root@RHEL ~]# gedit /etc/rc.d/init.d/oracle
!/bin/bash
# whoami
# root
# chkconfig: 345 51 49
# description: starts the oracle dabase deamons
#
ORACLE_HOME=/opt/oracle/oracle11g/product/11.2.0/db_1/
ORACLE_OWNER=oracle
ORACLE_DESC="Oracle 11g"
ORACLE_LOCK=/var/lock/subsys/oracle11g
case "$1" in
'start')
echo -n \"Starting ${ORACLE_DESC}:\"
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/lsnrctl start'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/dbstart'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/emctl start dbconsole' touch ${ORACLE_LOCK}
echo
;;
'stop')
echo -n "shutting down ${ORACLE_DESC}: "
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/lsnrctl stop'
runuser - $ORACLE_OWNER -c '$ORACLE_HOME/bin/dbshut'
rm -f ${ORACLE_LOCK}
echo
;;
'restart')
echo -n "restarting ${ORACLE_DESC}:"
$0 stop
$0 start
echo
;;
*)
echo "usage: $0 { start | stop | restart }"
exit 1
esac
exit 0保存后,需要修改一下权限:
[root@RHEL ~]# chmod 755 /etc/rc.d/init.d/oracle
关于这部分服务的编写,可以参考/etc/rc.d/init.d下其他服务,比如iptables之类的。

三、建立服务连接
(以上开机启动为本机设置的,可正常启动,可复制粘贴,后续修改下dbstart,dbshut,设置3 5 自启动就行了,下边的shell等没做尝试,随意…)
系统启动时启动数据库,我们需要以下连结∶
[root@RHEL ~]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc2.d/S99oracle
[root@RHEL ~]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc3.d/S99oracle
[root@RHEL ~]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc5.d/S99oracle #rc4.d unused
要在重新启动时停止数据库,我们需要以下连结∶
[root@RHEL ~]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc0.d/K01oracle # stop [root@RHEL ~]# ln -s /etc/rc.d/init.d/oracle /etc/rc.d/rc6.d/K01oracle # restart 四、修改dbstart和dbshut
尽管在服务脚本中,用到了dbstart和dbshut,但是还不知道里面有些什么。

其实,还是需要简单地修改一下这两个文件,以便正确启动oracle 监听服
务。

[oracle@RHEL ~]$ gedit $ORACLE_HOME/bin/dbstart
可以在内容中找到:
# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle if [ ! $ORACLE_HOME_LISTNE R ] then
echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener" e lse
LOG=$ORACLE_HOME_LISTNER/listener.log
# Start Oracle Net Listener
if [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] then echo "$0: Starting Oracle Net Listen er" >> $LOG 2>&1
$ORACLE_HOME_LISTNER/bin/lsnrctl start >> $LOG 2>&1 &
export VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL fo r " | cut -d' ' -f5 | cut -d'.' -f1` else
echo "Failed to auto-start Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnsl snr" fi fi
这部分内容是启动Oracle监听服务,但是它指定的路径却是:/ade/vikrkuma_new/oracle。

需要修改一下,变成我们自己的安装路径:
ORACLE_HOME_LISTNER=/opt/oracle/oracle11g/product/11.2.0/db_1/(自己的路径)
需要说明的是,如果监听(Listener)的名字不是标准的,那么还需要修改:
$ORACLE_HOME_LISTNER/bin/lsnrctl start 为
$ORACLE_HOME_LISTNER/bin/lsnrctl start [监听名]。

[oracle@RHEL ~]$ gedit $ORACLE_HOME/bin/dbshut
找遍内容,却没有发现有关于停止监听服务的内容。

为了于dbstart对应,在文件中添加如下内容(其中着色部分是添加的内
容): ....................................................... # Save LD_LIBRARY_PATH
SAVE_LLP=$LD_LIBRARY_PATH
# Added by ldy 2009-01-04
# Set this to stop Oracle Net Listener
ORACLE_HOME_LISTNER=/usr/app/oracle/product/10.2.0/db_1 if [ ! $ORACLE_HOME _LISTNER ] then
echo "ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener" e lse
LOG=$ORACLE_HOME_LISTNER/listener.log
if [ -f $ORACLE_HOME_LISTNER/bin/tnslsnr ] then echo "$0: Stopping Oracle Net Liste ner" >> $LOG 2>&1 $ORACLE_HOME_LISTNER/bin/lsnrctl stop >> $LOG 2>&1 &
export VER10LIST=`$ORACLE_HOME_LISTNER/bin/lsnrctl version | grep "LSNRCTL fo r " | cut -d' ' -f5 | cut -d'.' -f1`
echo "Failed to auto-stop Oracle Net Listene using $ORACLE_HOME_LISTNER/bin/tnsls nr" fi
# End Added
# Set this in accordance with the platform ORATAB=/etc/oratab
....................................................... 五、验证服务
最简单的办法,就是重启电脑,查看效果。

重启之后:
[oracle@RHEL ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jan 4 18:41:37 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitio ning, OLAP and Data Mining options
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS ---------------- ------------ orcl OPEN
[oracle@RHEL ~]$ lsnrctl status
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 04-JAN-2009 18:42:25
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting
to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=15 21))) STATUS of the LISTENER ------------------------ Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production Start Date 04-JAN-2009 1 5:16:45 Uptime 0 days 3 hr. 25 min. 40 sec Trace Level off
Security ON: Local OS Authentication SNMP OFF
Listener Parameter File /usr/app/oracle/product/10.2.0/db_1/network/admin/listener.ora Listener Log File /usr/app/oracle/product/10.2.0/db_1/network/log/listener.log Listening E ndpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=152 1))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0))) Services Sum mary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "or cl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service... Service "orcl_XPT" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service... The command complet ed successfully
当然,也可以手动启动/关闭/重启服务:
[root@RHEL ~]# sercice oracle start
[root@RHEL ~]# sercice oracle stop
[root@RHEL ~]# sercice oracle restart
如果在oracle用户下,那么直接用dbstart或者dbshut就可以了。

此外,如果想启动数据库服务时也启动管理器或者isqlplus,那么还需要修改一下dbstart和dbshut脚本,或者在服务脚本中进行编写。

增加:emctl start dbconsole和isqlplusctl start。

#############################################################
下面是另一SHELL的
--------------------------------------------------------------------------------
#!/bin/sh
#
#chkconfig:2345 98 05
#description:Oracle Server
#/etc/rc.d/init.d/oracle
#解说∶启动及停止Oracle 数据库和监听程序
#检查如何执行脚本文件
case "$1" in
start)
echo -n "Starting Oracle Databases: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Starting Oracle Databases as part o f system up." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c dbstart >> /var/log/oracle
echo -n "Starting Oracle Listeners: "
su - oracle -c "lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
stop)
echo -n "Shutting Down Oracle Listeners: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c "lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo -n "Shutting Down Oracle Databases: "
su - oracle -c dbshut >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
;;
restart)
echo -n "Restarting Oracle Databases: "
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
su - oracle -c dbstop >> /var/log/oracle
su - oracle -c dbstart >> /var/log/oracle
echo -n "Restarting Oracle Listeners: "
su - oracle -c "lsnrctl stop" >> /var/log/oracle
su - oracle -c "lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "----------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "----------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
esac
不要吝啬於检查这个文件到底有没有真的正确地启动和停止系统中的数据库。

请检查记录档(log file),看看有没有错误讯息。

弄妥这脚本文件後,我们要在正确的执行等级目
录(runlevel directories) /etc/rc.d/rcX.d 中建立及删除符号连
结(symbolic links)。

以下指令确保在执行等级2, 3 , 4, 5 下会叫出数据库∶
$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc5.d/S99oracle
要在重新启动时停止数据库,我们需要以下连结∶
$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # 停止
$ ln -s ../init.d/oracle /etc/rc.d/rc1.d/K01oracle # 停止
$ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # 重新启动
========================
把oracle service添加到服务里
# chkconfig –add /etc/rc.d/init.d/oracle
查看自动启动设置是否成功:
# chkconfig –list oracle
oracle 0:关闭1:关闭2:关闭3:开启4:开启5:开启6:关闭
*从上面可以看出level为345的都已经开启了,配置成功!
===============================
linux下系统开机oracle自启动(方法二)
以root身份登录:
$su - root
1、linux下oracle自带的dbstart和dbshut没反应:修改Oracle系统配置文件/etc/oratab 文件:#vi /etc/oratab
/etc/oratab 格式为:SID:ORACLE_HOME:AUTO
把AUTO域设置为Y(大写),我的为:
oradb:/opt/u01/app/oracle/product/9.2.0.4:Y
只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。

2、修改/etc/rc.d/rc.local配置文件
在/etc/rc.d/rc.local中加入如下内容:#vi /etc/rc.d/rc.local
su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/lsnrctl start"
su - oracle -c "/u01/app/oracle/product/9.2.0.4/bin/dbstart start"
3、重新启动
#reboot
4、连接测试(以oracle身份登录)
$sqlplus "
[email=sys/oracle@oradb]sys/oracle@oradb[/email]
as sysdba"
...
sql>
5、说明自启动成功了
我还修改了
153 vi /opt/oracle/oracle11g/product/11.2.0/db_1/bin/dbstart
154 vi /opt/oracle/oracle11g/product/11.2.0/db_1/bin/dbshut
#ORACLE_HOME_LISTNER=$1
ORACLE_HOME_LISTNER=/opt/oracle/oracle11g/product/11.2.0/db_1
之前为$1修改为/opt/oracle/oracle11g/product/11.2.0/db_1安装目录,想着指定监听安装目录,因为看到后边有export ORACLE_HOME=$ORACLE_HOME_LISTNER这么一个参数就改为安装目录了,不知道会不会出错,重启后发现正常,但是执行service oracle start 的时候报The listener supports no services,执行dbstart和dbstop无报错。

一.安装yum readline-devel*
二:安装rlwrap
[root@oracle11g ~]# tar -zxvf rlwrap-0.30.tar.gz
[root@oracle11g ~]# cd rlwrap-0.30
[root@oracle11g rlwrap-0.30]# ./configure
[root@oracle11g rlwrap-0.30]# make
[root@oracle11g rlwrap-0.30]# make install
三:方便使用rlwrap
[root@oracle11g rlwrap-0.30]# vi /home/oracle/.bash_profile
添加
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
Linux下的SQL Plus 终于可以像Windows下的那样使用了。

相关文档
最新文档