不久前,Oracle(甲骨文)公司在美国加州的总部宣布, Oracle 10g 数据库 与 Oracle RAC 在 TPC-H 基准测试中创造了新的世界纪录.这是个令人震惊的消息.因为这个测试是在 Linux ( Red Hat Enterprise Linux Advanced Server 3) 的平台上进行的. 这充分显示了 Oracle 在低成本 Linux 集群服务器上高效管理大规模数据仓库的能力, 也表明 Linux 在性能价格比上显而易见的优势,标志着Linux在大规模企业应用上已经成熟.
相信很多朋友已经对10g跃跃欲试了,现在从这里让我们开始10g之旅.
本文描述了在Red Hat Enterprise Linux Advanced Server 3 (RHEL 3)上安装Oracle 10g 必要的步骤和相关知识. 本文假定你的Linux 操作系统已经安装完毕,并且您应该具有一定的 Unix 操作系统背景知识.
配置RedHat AS 3
操作系统版本:
Red Hat Enterprise Linux AS release 3 (Taroon)
Kernel 2.4.21-4.EL on an i686
按照常规来安装操作系统,记得要安装开发工具(gcc等必要工具).
必要的硬件信息检查
| 检查内容 | 最小值 | 检查命令参考 |
| 物理内存 | 512M | # grep MemTotal /proc/meminfo |
| 交换空间 | 1.0 GB或者2倍内存大小 | # grep SwapTotal /proc/meminfo |
| /tmp 空间 | 400 MB | # df -k /tmp |
| 软件所需空间 | 2.5 GB | # df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) |
| 数据库文件 | 1.2 GB | # df -k (空间越大越好,如果是正式系统,应该进行详尽的规划) |
检查完如上各项之后, 应该修改核心参数.执行如下命令:
#vi /etc/sysctl.conf
#注释:
#表示使用root用户操作,$表示使用oracle 用户进行操作.提示符后面的蓝色部分表示需要输入的命令,以下同.
在该文件末尾加入如下内容:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
编辑完之后,保存,执行 # /sbin/sysctl -p 命令操作来使我们所做的变更生效.
注:上面kernel.shmmax/kernel.sem等是典型的核心参数配置.您可能需要根据您的实际环境进行适当的变动.
关于这些核心参数的说明在Oracle的 Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems 中有很详细的说明.( http://download-west.oracle.com/docs/html/A96167_01/toc.htm )
然后,应该检查一下上面的操作是否正确:
# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep ip_local_port_range
为Oracle用户设定Shell的限制
一般来说,出于性能上的考虑,还需要需要进行如下的设定,以便改进Oracle用户的有关 nofile(可打开的文件描述符的最大数)和nproc(单个用户可用的最大进程数量)
# vi /etc/security/limits.conf
# 添加如下的行
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
添加如下的行到/etc/pam.d/login 文件:
session required /lib/security/pam_limits.so
编辑 /etc/profile 文件,添加如下部分:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
之后,执行$ unlimit 验证一下.
检查并安装相关补丁
在这个版本的RHEL上安装Oracle,必须要有几个软件包. 确认以下 rpm包都已经安装:
make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
compat-db-4.0.14.5
compat-gcc-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
# rpm -qa | grep compat
# 在我的机器上输出如下:
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5
compat-db-4.0.14-5
compat-gcc-7.3-2.96.122
# rpm -qa | grep openmotif
openmotif-devel-2.2.2-16
openmotif-2.2.2-16
# rpm -qa | grep setarch
setarch-1.3-1
上面显示的内容是在笔者已经安装了具体的RPM包之后的结果.一般情况下,你的系统上的输出结果和这个不同.如果个别包没有安装,把系统安装光盘mount上,找到具体的软件包(大多数在第三张光盘上),然后利用如下的命令来安装相应的包:
# rpm -ivh compat.....rpm
要额外注意的是,这些软件包之间是有依赖性的,先后的顺序要找好.否则会报告不能安装的错误. 此外,最好验证一下 gcc和glibc的版本(要求是gcc-3.2.3-2 或者更高):
#gcc -v
#rpm -q glibc
创建用户和相关的组
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba oracle
如果只是测试目的的话,不创建oinstall组也没什么. 不过还是规范一点比较好.如果oracle 用户和dba组等已经存在,作适当的调整即可.
检查并调整环境变量
登录为oracle用户
# su - oracle
$ cd
$ vi .bash_profile
#添加如下内容,你的具体值应该不会和这个完全相同.
export ORACLE_BASE=/u/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1
export ORACLE_SID=TEST
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LC_CTYPE=en_US.UTF-8
然后执行
$ source .bash_profile
使环境变量生效. /u/app/oracle 等目录应该建立好并做合适的授权.
开始安装10g
mount你的安装盘.(我一般都是把文件拷贝到系统中一个具体的位置,比如/u/install ) .执行:
$ sh /u/install/runInstaller
如果不能出现安装画面,查看本文后面的FAQ。
非常值得称道的是,10g的安装相比以前的多了一个 Checking operating system certification 的步骤。特别实用。安装文件会自动检测所需的条件。如果有不符合的地方,安装程序会报告给你.并会给出具体原因。大大减少了出错的可能. 下面是检查成功输出的内容 :
Checking operating system certification
Expected result: One of redhat-2.1,redhat-3,UnitedLinux-1.0
Actual Result: redhat-3
Check complete. The overall result of this check is: Passed
=======================================================================
Checking kernel parameters
Checking for VERSION=2.4.9.25; found VERSION=2.4.21. Passed
Checking for shmall=2097152; found shmall=2097152. Passed
Checking for shmseg=10; found shmseg=4096. Passed
Checking for semmsl=250; found semmsl=250. Passed
Checking for semmni=128; found semmni=128. Passed
Checking for filemax=65536; found filemax=65536. Passed
Checking for shmmni=4096; found shmmni=4096. Passed
Checking for semmns=32000; found semmns=32000. Passed
Checking for semopm=100; found semopm=100.Passed
Checking for shmmin=1; found shmmin=1. Passed
Checking for shmmax=2147483648; found shmmax=2147483648. Passed
Check complete. The overall result of this check is: Passed
=======================================================================
Checking recommended operating system packages
Checking for make-3.79; found make-3.79.1-17. Passed
Checking for binutils-2.11.90.0.8-12; found binutils-2.14.90.0.4-26. Passed
Checking for gcc-2.96; found gcc-3.2.3-20. Passed
Checking for openmotif-2.1.30-11; found openmotif-2.2.2-16. Passed
Check complete. The overall result of this check is: Passed
=======================================================================
Checking recommended glibc version
Expected result: 2.2.4.31.7
Actual Result: 2.3.2.95.3
Check complete. The overall result of this check is: Passed
=======================================================================
Validating ORACLE_BASE location (if set)
Check complete. The overall result of this check is: Passed
=======================================================================
其他的步骤比较清晰,不再赘述.
最后系统会提示你运行root.sh文件.按照提示做即可.
FAQ (在Linux平台安装Oracle比较常见的问题)
1. 不能启动安装界面
运行runInstaller提示信息类似如下:
xlib:connection to "localhost:0.0" refused by server
xlib:client is not authorized to connect to server
Exception in thread "main" java.lang.InternalError:
can't connect to x11 window server using "localhost:0.0" at .......
解决办法: 设定你的DISPLAY环境参数.
# export DISPLAY= your_IPaddress :0.0
把your_IPaddress换成你的IP.或者用root简单的执行一下# xhost + (要注意这样会有安全上的隐患)
2.安装界面显示很多"口口"样子的乱码
解决办法:查看locale输出
# locale
LANG=en_US.UTF-8
LC_CTYPE=zh_CN.GB18030
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
执行#export LC_CTYPE=en_US.UTF-8 然后重新调用安装程序.
3. 用IE登录Linux服务器上的em出现乱码
在Linux(Unix) 环境下成功安装了Oracle 10g,从windows下用IE浏览器登录 10g 的em, 按钮是"口口"这样的方框.
解决办法: 参考: http://www.dbanotes.net/Oracle/Oracle-10g-font.properties.htm
4.创建数据库的时候出现ORA-03113的错误
解决办法: 查看核心参数是否调整正确.参考:
http://www.dbanotes.net/Oracle/ORA-03113.htm
5. RedHat 9 / FC1等系统10g不支持如何安装?
解决办法:在10g不支持的Linux发行版上安装10g的解决方法
1). 运行runInstaller -ignoreSysPrereqs,这样会跳过检查.
2). 摘自 www.puschitz.com 修改/etc/redhat-release文件:
#su - root
#cp /etc/redhat-release /etc/redhat-release.backup
#cat > /etc/redhat-release << EOF
Red Hat Enterprise Linux AS release 3 (Taroon)
EOF
安装完毕,执行如下操作: #su - root
#cp /etc/redhat-release.backup /etc/redhat-release
3). http://www.dbanotes.net/Oracle/10G-Beta-Install-Bug.htm 同样的思路,我们可以修改Oracle 的install/oraparam.ini文件达到目的.
6.如何关掉那些 ocssd.bin 进程?
解决办法:编辑/etc/inittab文件(做好备份)
注释掉这一行: h1:3:respawn:/etc/init.d/init.cssd run >/dev/null 2>................
参考信息
Werner Puschitz 的 10g 安装指南 - http://www.puschitz.com/InstallingOracle10g.shtml
Werner Puschitz 的站点的文章很翔实,如果您遇到了本文没有说清的问题,可以去看看那里.本文借鉴了该站点不少内容.
http://www.google.com - http://www.google.com
关于核心参数等信息一定要用Google查找.
Oracle Database Quick Installation Guide 10g Release 1 (10.1) for Linux x86
http://download-west.oracle.com/docs/html/B10813_01/toc.htm
Oracle Database Installation Guide 10g Release 1 (10.1) for UNIX Systems http://download-west.oracle.com/docs/html/B10811_02/toc.htm
DBAnotes.net 我的站点 包括不少和Oracle有关的信息 - http://www.dbanotes.net
其中的问题我也遇到了几个,不过都顺利的解决了。
另一篇
| Oracle10g(10.2) 在Redhat AS4u2 x86_64 上安装(转) |
|
| 作者: hew 发布日期: 2006-4-29 查看数: 185 出自: http://www.linuxsky.net |
Oracle10g(10.2) 在Redhat AS4u2 x86_64 上安装 作者:camor 说明: # -> root的shell $ -> oracle的shell ---------------------------------------------- 硬件环境: CPU:Intel Xeon 3G*2 MEM:2G /dev/sda3 15G / /dev/sda2 30G /Datas /dev/sda1 99M /boot none 1005M /dev/shm /dev/sda6 9.7G /home /dev/sda5 9.7G /usr -->共72G(72*72,Raid1),我单独划分/Datas为30G来放置oracle安装文件及oracle数据库设定目录。
系统环境: RedHat Advanced Server 4u2 (2.6.9-22) @ X Window System @ GNOME Desktop Environment @ KDE Desktop Environment @ Editors @ Engineering and Scientific @ Graphical Internet @ Text-based Internet @ Authoring and Publishing @ Server Configuration Tools @ Development Tools @ Kernel Development @ X Software Development @ GNOME Software Development @ KDE Software Development @ Administration Tools @ System Tools
Oracle版本: Oracle Database 10g (10.2.0.1) Software
【 一 】==> 解压10201_database_linux_x86_64.cpio (我放到了/Datas/install目录下): #cpio -idmv < 10201_database_linux_x86_64.cpio 这里会解包生成database的目录,内含runInstaller的安装脚本。
【 二 】 ==> 检查安装所需环境设置: 2.1) 编辑 /etc/sysctl.conf,加入以下内容: kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni 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
2.2) 编辑 /etc/security/limits.conf ,加入以下内容: * soft nproc 2047 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536 存盘退出。
2.3) 编辑 /etc/pam.d/login ,加入以下内容: session required /lib/security/pam_limits.so
2.4) 编辑 /etc/selinux/config,确认以下内容存在并打开(如没有则添加在最后) SELINUX=disabled
你也可以在xwindow下使用图形工具修改: Applications > System Settings > Security Level,点击SELinux tab并使其disable(我没试过)
【 三 】 检查安装oracle10g的依赖包是否存在,如没有则安装: #rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})n' binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio
//btw:我是安装完Redhat AS4之后,把全部rpm包都拷贝到了/Datas/AS4_x86_64/RedHat/RPMS目录下了,不用换盘
我的检查结果如下: binutils-2.15.92.0.2-13.0.0.0.2 (x86_64) compat-db-4.1.25-9 (i386) compat-db-4.1.25-9 (x86_64) control-center-2.8.0-12.rhel4.2 (x86_64) gcc-3.4.4-2 (x86_64) gcc-c++-3.4.4-2 (x86_64) glibc-2.3.4-2.13 (i686) glibc-2.3.4-2.13 (x86_64) glibc-common-2.3.4-2.13 (x86_64) gnome-libs-1.4.1.2.90-44.1 (x86_64) libstdc++-3.4.4-2 (i386) libstdc++-3.4.4-2 (x86_64) libstdc++-devel-3.4.4-2 (i386) libstdc++-devel-3.4.4-2 (x86_64) make-3.80-5 (x86_64) pdksh-5.2.14-30.3 (x86_64) sysstat-5.0.5-1 (x86_64) xscreensaver-4.18-5.rhel4.9 (x86_64) libaio-0.3.103-3 (i386) libaio-0.3.103-3 (x86_64)
------------------------------------------------------------------ !!! 注意(一): Redhat AS4.02 x86_64,默认安装的是binutils-2.15.92.0.2-15.x86_64.rpm,这个版本会引起oracle安装失败! 应另外下载binutils-2.15.92.0.2-13.0.0.0.2.x86_64.rpm并强行安装。 #rpm -Uvh --force binutils-2.15.92.0.2-13.0.0.0.2.x86_64.rpm
compat-oracle-rhel4-1.0-5.i386.rpm 不知有用没有。总之是朋友告诉我可能有用。抱着以求万全的方法我也把它安装上了。 如果你安装不成功,可以下载这个包试试。
!!! 注意(二): 有时因为RedHat AS4u2_x386_64的gcc版本跟oracle10g_10.2所需版本不符,导致oracle安装完成后运行dbca指令建库无反应,这时应该预先设定好gcc版本关系: #cd /usr/bin #mv gcc gcc.script #mv g++ g++.script #ln -s gcc32 gcc #ln -s g++32 g++
【 四 】 ==> 创建oracle所需的组、用户,设定oracle用户环境变量 4.1) 创建oracle所需的组 #groupadd dba #groupadd oinstall #useradd -g oinstall -G dba -m oracle #passwd oracle
4.2) 创建oracle安装所需的目录: #mkdir /Datas/app;mkdir /Datas/app/oracle #chown -R oracle.oinstall /Datas/app
4.3) 修改oracle安装文件所在目录的组属性,一会儿要用oracle用户运行安装的: #chown -R oracle.oinstall /Datas/install/database
4.4) 修改oracle用户的环境变量 #su - oracle $vi .bash_profile
我的.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 export PATH unset USERNAME export TMOUT=6000000 PS1="$PWD$" #-------------------------------------- # Set for Oracle10g Install | #-------------------------------------- trap " " 0 1 2 3 5 9 15 trap clear 0 TMP=/tmp;export TMP TMPDIR=$TMP;export TMPDIR ORACLE_BASE=/Datas/app/oracle;export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;export ORACLE_HOME ORACLE_SID=orcl1;export ORACLE_SID ORACLE_TERM=xterm; export ORACLE_TERM PATH=/usr/sbin:$PATH; export PATH PATH=$ORACLE_HOME/bin:$PATH; export PATH # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib 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 LD_ASSUME_KERNEL=2.6.9; export LD_ASSUME_KERNEL NLS_LANG="Simplified Chinese_china".ZHS16GBK;export NLS_LANG # LC_CTYPE=zh_CN.GB2312 LC_ALL=zh_CN LANG=zh_CN.GB2312 umask 022 # if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi #------------------- Set Over
修改完成以后运行这个指令使变量生效: $source /home/oracle/.bash_profile
------------------------------------------------------------------ !!! 注意(三): 有可能在刚才的指令运行后系统提示ulimit无效,权限不够。可以使用root权限修改/etc/profile文件来运行。 $su - root #vi /etc/profile 在末尾添加: #---- for Oracle 10g install LC_CTYPE=zh_CN.GB2312 LC_ALL=zh_CN LANG=zh_CN.GB2312 export LC_CTYPE LC_ALL LANG #---- if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 存盘退出,然后使用root帐户运行: #source /etc/profile 重新回到oracle帐号下: #su - oracle $ ------------------------------------------------------------------
4.5) 进入xwindows $startx 如果使用了我刚才的设置文件,这时xwindows应该是英文状态的。 (如果是中文,则需要修改xwindows的language为英文,然后注销并重新登陆xwindows。btw:这是沿袭oracle9x在AS3上的安装方法。。我没试过在AS4u2_x86_64中文环境中安装,不知道会否出错。)
先开一个shell窗口,su到root,执行这个指令: #xhost + access control disabled,clients can connect from any host 表示现在可以使用x方式安装oracle了。
【 五 】 ==> 安装oracle10g 5.1)在oracle登陆的xwindows中,打开一个shell窗口,进入到oracle的安装文件所在目录 为保险起见,我在运行安装脚本之前又分别以root帐号运行了/etc/profile和以oracle帐号source了/home/oracle/.bash_profile。(没办法,之前安装失败太多,所以现在尽量求保全) 其中oracle帐号source .bash_profile的时候还是会提示limit权限不够无法设置,这时不用理会了。
5.2) 在oracle的shell中运行/Datas/install/database/runinstaller文件 $/Datas/install/database/./runinstaller 在英文状态下先出现夹杂中文乱码的提示(找不到某些字体),随后出现oracle10g的简体中文安装面板。
5.3) 取消“安装数据库”前面的小勾(我们到安装完后再使用dbca指令手动安装数据库),然后install
5.4) 注意xwindows下保持至少2个root的shell! shell01用来监控安装日志,shell02用来执行安装过程中需要以root执行的几个指令! shell01: #tail -f /Datas/app/oracle/oraInventory/logs/*.log shell02: #mkdir /DISCARD #chown oracle.oinstall /DISCARD //说明:shell02是我在shell1中监控安装日志时,发现到84%进程时总是提示: “信息: cp: stat‘/DISCARD/’失败: 没有那个文件或目录” 火速执行shell02之后的记录是: “信息: cp: 略过目录‘/DISCARD/’”。
5.4) 系统检查你的安装环境,有可能会提示检查通过,但是网络设置未检查,是否继续? 没关系,next就可以了。
5.5) 一路安装下去。
【 六 】 手动建库 6.1) 安装完oracle10g以后,现在可以使用dbca进行手动建库。 $dbca 在弹出的对话面板中选择 创建数据库 - >一般用途 -> 在全局数据库名中输入 db_1 // 这个是我们在oracle的.bash_profile中设定好了的(ORACLE_SID=orcl1;export ORACLE_SID),当然如果你设定了另外的SID,这里就要输入同样的字符。下面SSID会自动同步输入。
6.2) 一直“下一步”。直到没有“下一步”可按了。这时按“完成”(我偷懒了)。 应该会出现正在建库的进度条。 ------------------------------------------------------------------ !!! 注意(四): 如果刚才安装前没有设定好gcc的关系,这时很可能进度没反应了。没有弹出面板,没有进度条。等再久也没用。。。 这时可以选择取消,然后我们来做一些补救措施。 1. 打开一个shell,转到root帐号并执行这些指令: #cd /usr/bin #mv gcc gcc.script #mv g++ g++.script #ln -s gcc32 gcc #ln -s g++32 g++
2. 回到oracle帐号下,执行这个指令: $cd $ORACLE_HOME/bin $relink all 一片哗哗哗的滚动提示过后,再重新执行6.1)的步骤,使用dbca指令建库。 ------------------------------------------------------------------ !!! 注意(五): 如果你使用iptables做防火墙,这时要为oracle开放一些端口,以便管理: #vi /etc/sysconfig/iptables 插入这些: #------- For Oracle port -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1158 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5560 -j ACCEPT #------------------------- 退出后执行这个指令: #service iptables restart ------------------------------------------------------------------
然后可以登陆使用oracle的web页面进行管理了。 登陆页面是: http://ipaddress:1158/em |
|