RHEL5.3部署安装Oracle Database10g Release2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
让开源解读“甲骨文”--RHEL5.3部署安装Oracle Database10g Release2
系统环境:RHEL5.3
数据库:Oracle Database10g Release2(10.2.0.1.0) for Linux x86
Oracle Database 10g Release 2 (10.2.0.1.0) 下载地址:/technology/software/products/database/oracle10g/htdocs/10 201linuxsoft.html
[root@rhel5 ~]# cksum /mnt/cdrom/10201_database_linux32.zip
2737423041 668734007 /mnt/cdrom/10201_database_linux32.zip
安装Oracle 10g数据库前系统配置
原来系统只分配了256MB内存,现在安装Oracle10g,所以将内存升级到1G
[root@rhel5 ~]# free -m
total used free shared buffers cache d
Mem: 1010 436 574 0 22 2
50
-/+ buffers/cache: 162 848
Swap: 509 0 509
[root@rhel5 ~]#
原来系统分区时Swap分区时只分配了512MB,我们再增加一个2G的Swap交换分区文件,不然安装Oracle10g时会报错误警告,虽然照样可以成功安装Oracle10g,但是为了充分发挥Oracle10g的性能,我们增加2G的Swap交换分区。
增加交换分区文件及大小,如果要增加2G大小的交换分区,则命令写法如下,其中的count 等于想要增加的swap块大小
[root@rhel5 ~]# dd if=/dev/zero of=/tmpswap bs=1k count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 169.875 seconds, 12.3 MB/s
[root@rhel5 ~]#
设置交换文件
[root@rhel5 ~]# mkswap /tmpswap
Setting up swapspace version 1, size = 2097147 kB
[root@rhel5 ~]#
立即启用交换分区文件
[root@rhel5 ~]# swapon tmpswap
再查看swap分区大小发现增加了2G
[root@rhel5 ~]# free -m
total used free shared buffers cach ed
Mem: 1010 997 13 0 3 823
-/+ buffers/cache: 171 839
Swap: 2509 0 2509
[root@rhel5 ~]#
如果要在引导时自动启用,则编辑 /etc/fstab 文件,添加行:
/tmpswap swap swap defaults 0 0
系统下次引导时,它就会启用新建的交换文件
查看一下swap
[root@rhel5 ~]# swapon -s
Filename Type Size Used Prio rity
/dev/sda3 partition 522104 124 -1
/tmpswap file 2047992 0 -2 [root@rhel5 ~]#
将RHEL5.3安装镜像文件挂载到/mnt/cdrom目录,虚拟成光驱。
[root@rhel5 ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@rhel5 ~]#
安装Oracle 10g R2数据库所需相依赖的软件包。
# cd /mnt/cdrom/Server/
# rpm -Uvh setarch-2*
# rpm -Uvh make-3*
# rpm -Uvh glibc-2*
# rpm -Uvh libaio-0*
# rpm -Uvh compat-libstdc++-33-3*
# rpm -Uvh compat-gcc-34-3*
# rpm -Uvh compat-gcc-34-c++-3*
# rpm -Uvh gcc-4*
# rpm -Uvh libXp-1*
# rpm -Uvh openmotif-2*
# rpm -Uvh compat-db-4*
在RHEL5.3系统安装时已经安装了编程工具及开发库文件,所以只安装了五个软件包,所以参考缺什么就安装相应软件包哈~
如果不安装libXp软件包则安装不能启动Oracle10g安装程序
修改/etc/redhat-release文件,因为Oracle数据库暂不支持RHEL5,所以我们增加redhat-4让Oracle认为系统为RHEL4:
[root@rhel5 ~]# vim /etc/redhat-release
#Red Hat Enterprise Linux Server release 5.3 (Tikanga)
redhat-4
Oracle数据库必须在Oracle用户下才能安装。
所以建立相应的用户及群组,以及设置相应的目录属主、目录权限。
切记,要给Oracle用户设置密码哦,同时,密码要符合复杂性要求。
[root@rhel5 ~]# groupadd oinstall
[root@rhel5 ~]# groupadd dba
[root@rhel5 ~]# useradd -g oinstall -G dba oracle
[root@rhel5 ~]# passwd oracle
Changing password for user oracle.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@rhel5 ~]# mkdir -p /oracle/product/10.2.0/db_1
[root@rhel5 ~]# chown -R oracle.oinstall /oracle/
[root@rhel5 ~]# chmod -R 775 /oracle/
[root@rhel5 ~]#
配置内核相关参数,以便支持Oracle数据库
如果没有相应的参数就添加,如果相应参数值比下面给出的值大,就不要修改了。
[root@rhel5 ~]# vim /etc/sysctl.conf
# For Oracle
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
运行sysctl -p命令使内核参数生效
设置Oracle用户Shell limit
[root@rhel5 ~]# vim /etc/security/limits.conf
# For Oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
在/etc/pam.d/login file文件末端添加相关内容,如果它已经存在则退出
[root@rhel5 ~]# vim /etc/pam.d/login
session required /lib/security/pam_limits.so
修改/etc/hosts文件,将127.0.0.1修改成为你的实际IP地址,否则有可能导致安装Oracle 的时候检查网络配置异常
# Do not remove the following line, or various programs
# that require network functionality will fail.
#127.0.0.1 rhel5.3 rhel5 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.8.1 rhel5.3 rhel5 localhost.localdomain localhost
修改Oracle用户语言环境,注销掉root用户,以oracle用户登录系统
[root@rhel5 ~]# su - oracle
[oracle@rhel5 ~]$ touch .i18n
LC_CTYPE="en"
配置Oracle用户语言环境。
因为,默认的中文环境,安装Oracle界面字符显示乱码,故,我将语言环境设置为英文,即可解决乱码问题,不过安装界面为全英文界面。
配置Oracle用户环境变量,以便支持Oracle数据库安装以及今后的操作、维护
[oracle@rhel5 ~]$ vim .bash_profile
# For Oracle
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=MIS; 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
安装Oracle 10g数据库
1、启动安装,首先运行xhost hostname命令启动X-Windows安装界面,如下图所示:[root@rhel5 ~]# xhost rhel5.3
[oracle@rhel5 ~]$ unzip 10201_database_linux32.zip
[oracle@rhel5 ~]$ cd database/
[oracle@rhel5 database]$ ./runInstaller
2、选择安装类别,建议选择高级安装,如下图所示:
3、指定Oracle证书存放目录,如下图所示:
4、选择安装类别(企业版)、Oracle所支持的语言(英文以及简体中文),如下图所示:
5、指定Oracle环境变量名、安装路径(.bash_profile环境变量中有指定),如下图示:
6、Oracle开始进行安装前时检查所需软件包、内核、网络等信息,如下图所示:
7、选择配置选项,如下图所示:
8、选择创建数据库模式,如下图所示:
9、指定数据库配置的相关选项(SID、字符集等),如下图所示:
10、选择数据库管理选项,如下图所示:
11、指定数据库存储选项,如下图所示:
12、指定数据库备份恢复选项,如下图所示:
13、指定数据库相关用户密码,如下图所示:
14、Oracle数据库安装摘要,如下图所示:
15、开始安装,安装程序开始复制文件,所需的时间较长,请耐心等待,下列图片所示:
16、安装完成的最后步骤,操作以及图片如下:
[oracle@rhel5 ~]$ su - root
Password:
[root@rhel5 ~]# /oracle/oraInventory/orainstRoot.sh
Changing permissions of /oracle/oraInventory to 770.
Changing groupname of /oracle/oraInventory to oinstall.
The execution of the script is complete
[root@rhel5 ~]# /oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /oracle/product/10.2.0/db_1
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. [root@rhel5 ~]#
执行完两个脚本后点击OK继续
17、Oracle 10数据库通过url操作、管理地址如下:
iSQL*Plus URL:
http://rhel5.3:5560/isqlplus
iSQL*Plus DBA URL:
http://rhel5.3:5560/isqlplus/dba
Enterprise Manager 10g Database Control URL:
http://rhel5.3:1158/em
18、安装完成后,恢复Oracle用户语言环境以及/etc/redhat-release文件。
[oracle@rhel5 ~]$ rm -f .i18n
[root@rhel5 ~]# vim /etc/redhat-release
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
iSQL*Plus URL:
http://rhel5.3:5560/isqlplus
一般用户登陆iSQL*Plus网址后会直接进入数据库用户登陆界面,使用数据库中的普通用户即可登陆。
登录成功
我们可以在此输入SQL语句,我们先简单查询一下数据库的版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
iSQL*Plus DBA URL:
http://rhel5.3:5560/isqlplus/dba
DBA用户登陆isqlpus的网址http://rhel5.3:5560/isqlplus/dba,进入该网址后首先会弹出一个登陆框,要求先输入iSQL*Plus DBA的用户和密码,注意这里不是数据库用户,而是isqlplus应用服务器要求的用户和密码。
要以DBA身份登陆isqlplus,必须先配置好oc4j用户。
oc4j可以使用两种身份认证方式:
∙基于xml配置文件(jazn-data.xml)
∙基于LDAP(Oracle Internet Directory)
本文只涉及第一种方式,也就是采用xml配置文件认证的方式。
该配置文件位于$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/config。
但是该配置文件中的密码是加密过的,所以我们不能手动修改该文件,而是通过JAZN(Java AuthoriZatioN)来配置。
JAZN是oracle提供的一个JASS(Java Authentication and Authorization Service)工具。
安装JDK1.5
/products/archive/
vim /etc/profile
在export PATH前加入下面一段
JAVA_HOME=/usr/jdk1.5
export JAVA_HOME
JRE=$JAVA_HOME/jre
export JRE
PATH=$JAVA_HOME/bin JRE/bin PATH
现在注销一下并重登录,OK,JDK安装完毕!
我们先安装oc4j,首先解压oc4j_extended.zip unzip oc4j_extended.zip
此时会创建这样的目录结构:
/bin
/diagnostics
/j2ee
/javacache
/javavm
/jdbc
/jlib
/lib
/rdbms
/soap
/sqlj
/webservices
这些就是你解压缩oc4j_extended.zip后所产生的目录。
通过JAZN,可以完成以下任务
Create users
∙List users
∙Grant the webDba role
∙Remove users
∙Revoke the webDba role
∙Change user passwords
以上任务,可以先进入JAZN命令环境后再执行,也可以直接通过一条完整的命令行实现。
完整的命令行其实就是在进入JAZN的命令后面直接加上对应的任务选项即可。
如何进入JAZN命令环境
1.进入到目录$ORACLE_HOME/oc4j/j2ee/isqlplus/application-deployments/isqlplus/
2.确保JAVA_HOME环境变量指向了正确的jdk(需要1.4以上)路径,可以使用oracle自带的jdk,位于$ORACLE_HOME/jdk
3.执行以下命令
java -Djava.security.properties=$ORACLE_HOME/sqlplus/admin/iplus/provider -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar -user "iSQL*Plus DBA/admin" -password welcome -shell
其中realm=iSQL*Plus DBA,user=admin,这些可以从xml配置文件中看到,admin的默认密码是welcome,但是admin用户默认没有webDba权限,不能直接用于登陆isqlplus。
注意该命令一定要先进入第一步的目录后再执行,否则会报错
oracle.security.jazn.JAZNRuntimeException: Configuration file "configjazn.xml" does not exist. Check your JAAS configuration settings.
或者
Realm [iSQL*Plus DBA] does not exist in system.
如果报以上的错误,请仔细检查你的当前目录是否和第一步中给出的目录完全一致。
进入JAZN命令环境后,可以执行所有的任务:
1.新建用户michael,密码redking
JAZN:> adduser "iSQL*Plus DBA" michael redking
2.列出用户
JAZN:> listusers
iSQL*Plus DBA/admin
iSQL*Plus DBA/michael
JAZN:> listusers "iSQL*Plus DBA"
admin
michael
3.授予用户登陆isqlplus DBA的权限
JAZN:> grantrole webDba "iSQL*Plus DBA" michael
4.撤销用户登陆isqlplus DBA的权限
JAZN:> revokerole webDba "iSQL*Plus DBA" michael
5.删除用户
JAZN:> remuser "iSQL*Plus DBA" michael
6.修改用户密码
JAZN:> setpasswd "iSQL*Plus DBA" michael redking newpass2009 7.退出JAZN命令环境
JAZN:> exit
假设上面我们创建了一个用户michael,密码为redking,并且已经授予webDba权限。
接下来重新启动isqlplus应用服务器
isqlplusctl stop
isqlplusctl start
再进入网址http://rhel5.3:5560/isqlplus/dba,在弹出的对话框中输入michael和redking,就可以进入到数据库登陆界面了,选择以sysdba或sysoper身份登陆了。
登录成功,我们来查看下数据库的创建日期和归档方式Select Created, Log_Mode, Log_Mode From V$Database;
Enterprise Manager 10g Database Control URL: http://rhel5.3:1158/em
点击同意继续
启动oracle
切换成oracle用户
su - oracle
启动监听器:
[oracle@rhel5 ~]$ lsnrctl start
我们也可以使用lsnrctl service查询当前监听器服务情况,当然如果想中止监听器则lsnrctl stop
判断监听器服务是否好用,可以使用tnsping ip地址或主机名.如果不能正常结束,则说明监听有问题.
tnsping rhel5.3
[oracle@rhel5 ~]$ sqlplus "/ as sysdba"
用户名是sys,密码是你设置sys用户的密码,这种登陆方式启用的是系统验证方式,因此不用输入用户名及密码,不过登陆是以sys用户登录的,我们可以用select user from dual; 查看登陆帐户为sys用户。
设置自动启动oracle
Linux中在Oracle安装完毕以后,如果重新启动Linux ,Oracle是不会自动启动的,我们可以通过手动调用dbstart命令来进行启动,不过这样似乎也很繁琐。
我们可以通过配置Oracle的自动启动脚本,然后利用Linux的Service来启动Oracle服务器。
修改Oracle系统配置文件/etc/oratab
/etc/oratab格式为:SID:ORACLE_HOME:AUTO把AUTO域设置为Y(大写),只有这样,oracle 自带的dbstart和dbshut才能够发挥作用。
当然也可以不用oracle的脚本,但是那样太麻烦了。
[root@rhel5 ~]# vim /etc/oratab
MIS:/oracle/product/10.2.0/db_1:Y
[root@rhel5 ~]# cd /etc/rc.d/init.d/
[root@rhel5 init.d]# touch oracle10g
[root@rhel5 init.d]# chmod a+x oracle10g
[root@rhel5 init.d]# vim oracle10g
oracle10g的文件内容如下,请根据需要修改其中变量值:#!/bin/bash
# chkconfig: 345 99 10
# description: Startup Script for Oracle Databases # /etc/rc.d/init.d/oracle10g
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/product/10.2.0/db_1 export ORACLE_SID=MIS
export PATH=$PATH ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then
echo "Oracle startup: can not start"
exit 1
fi
# depending on parameter -- startup,shutdown,restart
# of the instance and listener or usage display
case "$1" in
'start')
# Oracle listener and instance startup
echo -n "Starting oracle10g: "
su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"
touch /var/lock/subsys/oracle10g
su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole" su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start"
su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
echo "OK"
;;
'stop')
# Oracle listener and instance shutdown
echo -n "shutting down oracle10g: "
su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole" su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop"
su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"
su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
rm -f /var/lock/subsys/oracle10g
echo "OK"
;;
'reload|restart')
$0 stop
$0 start
;;
*)
echo "Usage:'basename $0' start|stop|restart|reload"
exit 1
esac
exit 0
[root@rhel5 init.d]# chkconfig --add oracle10g [root@rhel5 init.d]# chkconfig --list oracle10g
通过链接的方式在0级和6级建立退出脚本
OK了。