让开源解读“甲骨文”--RHEL5.3部署安装Oracle Database10g Release2

  1. 云栖社区>
  2. 博客>
  3. 正文

让开源解读“甲骨文”--RHEL5.3部署安装Oracle Database10g Release2

技术小美 2017-11-18 12:39:00 浏览1250
展开阅读全文
系统环境:RHEL5.3
数据库:Oracle Database10g Release2(10.2.0.1.0) for Linux x86
Oracle Database 10g Release 2 (10.2.0.1.0) 下载地址http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201linuxsoft.html 
 image
image
[root@rhel5 ~]# cksum /mnt/cdrom/10201_database_linux32.zip 
2737423041 668734007 /mnt/cdrom/10201_database_linux32.zip
image
安装Oracle 10g数据库前系统配置
原来系统只分配了256MB内存,现在安装Oracle10g,所以将内存升级到1G
[root@rhel5 ~]# free -m 
                    total       used       free     shared    buffers     cached 
Mem:          1010        436         574          0                22        250 
-/+ buffers/cache:      162        848 
Swap:          509              0        509 
[root@rhel5 ~]#
 
image
原来系统分区时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     cached 
Mem:           1010         997         13          0                   3        823 
-/+ buffers/cache:        171        839 
Swap:          2509             0       2509 
[root@rhel5 ~]#
image
如果要在引导时自动启用,则编辑 /etc/fstab 文件,添加行: 
/tmpswap                 swap                    swap    defaults        0 0
image
系统下次引导时,它就会启用新建的交换文件
查看一下swap
[root@rhel5 ~]# swapon -s 
Filename                                Type               Size    Used    Priority 
/dev/sda3                               partition       522104  124     -1 
/tmpswap                                file                 2047992 0       -2 
[root@rhel5 ~]#
image
将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系统安装时已经安装了编程工具及开发库文件,所以只安装了五个软件包,所以参考缺什么就安装相应软件包哈~
image
如果不安装libXp软件包则安装不能启动Oracle10g安装程序
image
修改/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
image  
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 ~]#
image  
配置内核相关参数,以便支持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
image 
运行sysctl -p命令使内核参数生效
image
设置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
image  
在/etc/pam.d/login file文件末端添加相关内容,如果它已经存在则退出 
[root@rhel5 ~]# vim /etc/pam.d/login 
session                required                /lib/security/pam_limits.so
image  
修改/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
image  
修改Oracle用户语言环境,注销掉root用户,以oracle用户登录系统 
[root@rhel5 ~]# su - oracle 
[oracle@rhel5 ~]$ touch .i18n
 
LC_CTYPE="en"
image
image  
配置Oracle用户语言环境。因为,默认的中文环境,安装Oracle界面字符显示乱码,故,我将语言环境设置为英文,即可解决乱码问题,不过安装界面为全英文界面。
image  
配置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
image
安装Oracle 10g数据库 
1、启动安装,首先运行xhost hostname命令启动X-Windows安装界面,如下图所示: 
[root@rhel5 ~]# xhost rhel5.3
image
[oracle@rhel5 ~]$ unzip 10201_database_linux32.zip
image
[oracle@rhel5 ~]$ cd database/ 
[oracle@rhel5 database]$ ./runInstaller
image
2、选择安装类别,建议选择高级安装,如下图所示:  
image 
3、指定Oracle证书存放目录,如下图所示: 
image 
4、选择安装类别(企业版)、Oracle所支持的语言(英文以及简体中文),如下图所示: 
image 
5、指定Oracle环境变量名、安装路径(.bash_profile环境变量中有指定),如下图示: 
image 
6、Oracle开始进行安装前时检查所需软件包、内核、网络等信息,如下图所示: 
image
7、选择配置选项,如下图所示: 
image 
8、选择创建数据库模式,如下图所示: 
image 
9、指定数据库配置的相关选项(SID、字符集等),如下图所示: 
image 
10、选择数据库管理选项,如下图所示: 
image
11、指定数据库存储选项,如下图所示: 
image 
12、指定数据库备份恢复选项,如下图所示: 
image 
13、指定数据库相关用户密码,如下图所示: 
image 
14、Oracle数据库安装摘要,如下图所示: 
image 
15、开始安装,安装程序开始复制文件,所需的时间较长,请耐心等待,下列图片所示: 
image
image 
image
image
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 ~]#
image 
执行完两个脚本后点击OK继续
image
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
image   
18、安装完成后,恢复Oracle用户语言环境以及/etc/redhat-release文件。 
[oracle@rhel5 ~]$ rm -f .i18n
image 
[root@rhel5 ~]# vim /etc/redhat-release
Red Hat Enterprise Linux Server release 5.3 (Tikanga)
image
iSQL*Plus URL: 
http://rhel5.3:5560/isqlplus
一般用户登陆iSQL*Plus网址后会直接进入数据库用户登陆界面,使用数据库中的普通用户即可登陆。
image
登录成功
image
我们可以在此输入SQL语句,我们先简单查询一下数据库的版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
image
iSQL*Plus DBA URL: 
http://rhel5.3:5560/isqlplus/dba
DBA用户登陆isqlpus的网址http://rhel5.3:5560/isqlplus/dba,进入该网址后首先会弹出一个登陆框,要求先输入iSQL*Plus DBA的用户和密码,注意这里不是数据库用户,而是isqlplus应用服务器要求的用户和密码。
image
要以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
http://java.sun.com/products/archive/
image
image
image
image
image
image
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
image
现在注销一下并重登录,OK,JDK安装完毕!
我们先安装oc4j,首先解压oc4j_extended.zip
unzip oc4j_extended.zip
image
此时会创建这样的目录结构: 
/bin 
/diagnostics 
/j2ee 
/javacache 
/javavm 
/jdbc 
/jlib 
/lib 
/rdbms 
/soap 
/sqlj 
/webservices
这些就是你解压缩oc4j_extended.zip后所产生的目录。
image
image 
通过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/
image
2.确保JAVA_HOME环境变量指向了正确的jdk(需要1.4以上)路径,可以使用oracle自带的jdk,位于$ORACLE_HOME/jdk
image
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。
image
注意该命令一定要先进入第一步的目录后再执行,否则会报错 
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
image
JAZN:> listusers "iSQL*Plus DBA" 
admin 
michael
image
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
image
假设上面我们创建了一个用户michael,密码为redking,并且已经授予webDba权限。
接下来重新启动isqlplus应用服务器 
isqlplusctl stop 
isqlplusctl start
再进入网址http://rhel5.3:5560/isqlplus/dba,在弹出的对话框中输入michael和redking,就可以进入到数据库登陆界面了,选择以sysdba或sysoper身份登陆了。
image
image
登录成功,我们来查看下数据库的创建日期和归档方式
Select Created, Log_Mode, Log_Mode From V$Database;
image
Enterprise Manager 10g Database Control URL: 
http://rhel5.3:1158/em
image
 image
点击同意继续
image
image
启动oracle
切换成oracle用户
su - oracle
启动监听器: 
[oracle@rhel5 ~]$ lsnrctl start
image 
我们也可以使用lsnrctl service查询当前监听器服务情况,当然如果想中止监听器则lsnrctl stop
image 
判断监听器服务是否好用,可以使用tnsping ip地址或主机名.如果不能正常结束,则说明监听有问题.
tnsping rhel5.3
image
[oracle@rhel5 ~]$ sqlplus "/ as sysdba"
用户名是sys,密码是你设置sys用户的密码,这种登陆方式启用的是系统验证方式,因此不用输入用户名及密码,不过登陆是以sys用户登录的,我们可以用select user from dual; 查看登陆帐户为sys用户。
image
设置自动启动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
image
[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
image  
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
image
[root@rhel5 init.d]# chkconfig --add oracle10g 
[root@rhel5 init.d]# chkconfig --list oracle10g
image
通过链接的方式在0级和6级建立退出脚本
image
OK,开启Oracle DBA之路,现在甲骨文越来越牛了,上月刚刚74亿美元收购Sun,郁闷的SUN~~~
######################Michael分割线#########################








本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/157668,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小美
+ 关注