【ORACLE】Oracle10g R2在RHEL AS4 U2(32位)下的安装

Oracle10g R2RHEL AS4 U2(32)下的安装

本文说明:

这篇文章是很久之前,大约2010年左右,当时为华能电力部署ORACLE服务器的文档,后于2012年初发布于ITPUB论坛,现移入博客归档。

一、   软件环境:

操作系统:RedHat Enterprise Linux AS4 UPDATE 2 32BIT----[ RHEL AS4 U2]

数 据 库: Oracle Database10gRelease 2 (10.2.0.1) ----[ Oracle10g R2]

必要的硬件信息检查

检查内容

最小值

检查命令参考

物理内存

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 (空间越大越好,如果是正式系统,应该进行详尽的规划)


#注释:
#表示使用root用户操作,$表示使用oracle 用户进行操作


二、   安装过程

第一部分:操作系统的安装步骤(简略)

开机后从光驱放入第一张光盘,选择从光驱引导会看到以下的安装过程的画面,步骤如下:

 REHL AS4安装前的启动界面



硬盘分区界面,选择手工分区。


按“新建”出现增加启动分区,指定其文件类型、大小以及挂载点

再增加”SWAP交换分区“,指定其分区大小,如果以后要安装ORACLE之类的大型数据库,一般设为物理内存的2倍大小

最后增加“根”分区,指定其文件类型、大小以及挂载点

分区后的分区列表

引导程序的配置

配置网络环境,注:如果此处安装程序没有识别到机器的网卡并自动加载驱动程序,则不会出现网络配置这一步;


配置网络环境,此处可以手工设置IP地址与网关、DNS

选择 无防火墙,是否启用SELinux:选择 已禁用

取消防火墙后的提示框,点击 “继续”

添加附加语言支持

选择时区

设置管理员密码(root 密码)

开始软件选择安装,选择 “定制要安装的软件包”,单击下一步


选择要安装的各种软件,按照以下配置选择
桌面选项:
(√) X窗口系统 (选取默认)
(√) GNOME桌面环境 (选取默认)
(√) KDE桌面环境 (选取默认)
应用程序选项:
( ) 工程和科学 (选取默认)
( ) 图形化互联网 (选取默认)
(√) 基于文本的互联网 (选取默认)
( ) 办公/生产率 (选取默认)
服务器选项:
(√) 服务器配置工具 (选取全部)
( ) 万维网服务器 (选取全部)
(√) Windows文件服务器 (选取全部)
( ) DNS服务器 (选取全部)
开发选项:
(√) 开发工具 (选择全部)
系统选项:
(√) 管理工具 (选取默认)
(√) 打印支持 (选取默认)
杂项选项:
全部不要选择;


检查各软件之间的依赖关系

开始安装操作系统RHEL AS4 ,单击下一步

提示安装软件包所需要的安装光盘,请核对是否已经准备好,准备好后单击 继续

格式化各硬盘分区和文件系统

格式化root分区

把所选择的软件包的映像复制到硬盘

启动RPM安装工具

为开始安装作准备

更换安装光盘

安装各种软件包

安装完成到最后阶段,重新插入第一张光盘

最后配置系统文件

安装过程完成,取出光盘,重新引导

重新启动计算机


最后是系统的真正显示界面


更改/etc/inittab文件,更改其内容,可以使其启动后使用文字界面,或者不作修改,以适应习惯使用图形界面的人

重新启动并成功登录


到此电脑安装RedHat Enterprise Linux AS4 UPDATE 2全部完成。



第二部分: 数据库的安装

1、安装完成后,添加BOARDCOM网卡驱动,配置IP地址和机器名称,并指定IP地址和机器名称的对应关系。图如下:


 

2、安装完后,请在第三张安装盘中找到下面的文件,双击安装上去。否则安装oracle时会报错。
libaio-devel-0.3.103-3.i386.rpm


3、Oracle的安装前准备:
1)、配置系统内核参数,以root用户登录,修改/etc/sysctl.conf文件,在该文件中添加以下参数:

kernel.shmall = 2097152
kernel.shmmax = 536870912 (512物理内存的标准) 512*1024*1024
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

2)、打开终端,创建安装数据库时所需要使用的用户组oinstall,dba及Oracle用户,并将oinstall,dba组定义成oracle用户的主次组。命令参考如下:
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle (设定oracle用户为oinstall、dba用户组的成员)
# passwd oracle (设定oracle用户的密码)

3)、以root用户身份登录系统创建Oracle系统的安装目录和数据库文件存放的目录。例如:/oracle,及改变以上目录的属性命令参考如下:
# mkdir -p /oracle/product/10.2.0(创建数据目录)
# chown -R oracle.oinstall /oracle (设定目录所属的用户组和用户)
# chmod -R 775 /oracle (设定目录的读写权限)

4)、以oracle 用户身份登录系统,复制和解压10201_database_linux32.zip文件到/home/oracle下,也可以以图形方式操作:
# cp 10201_database_linux32.zip /home/oracle/ (复制文件到oracle个人目录内)
# unzip /home/oracle/10201_database_linux32.zip (解压zip文件)

5)、配置oracle用户环境,以oracle用户登录,修改oracle用户下的 .bash_profile 文件。增加以下参数:
vi .bash_profile (执行vi命令来修改.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

# 以下是我们所需配置的内容
umask 022
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/; export ORACLE_HOME
ORACLE_SID=fstest; 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
#LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL

6)、重新启动操作系统:
# reboot (重新启动命令)
特别说明:安装Oracle软件时不可使用root(超级用户)来进行安装,只可以使用刚才新建的oracle用户来进行安装,请大家一定要注意!


3、Oracle10g的安装

建议:最好将ORACLE 所有安装文件复制到硬盘上的一个文件夹中进行安装,以避免可能出现的问题!

1)、重新启动操作系统后,使用oracle用户登陆操作系统进行Oracle数据库的正确安装:
用户名:oracle
密码为:******
点击“任务栏” → “应用程序” → “系统工具” → “终端”:
执行runInstaller文件进行,开始Oracle数据库的安装:
$ /usr/database/./runInstaller (执行runInstaller文件)



2)、经过一小段的时间,会出现“选择安装方法”的信息窗口;点选“高级安装(A)”,继续安装请单击“下一步(N)”按键;


3)、进入“指定产品清单目录和身份证明”窗口:确认产品清单目录的完整路径(D):/usr/oracle/oraInventory;指定操作系统组名(S):oinstall;继续安装请单击“下一步(N)”按键;


4)、进入“选择安装类型”窗口,点选“企业版(E)(1.26GB)”,继续安装请单击“下一步(N)”按键;


5)、进入“指定主目录详细信息”窗口;名称(M):OraDb10g_home1 路径(A):/usr/oracle/product/10.2.0/;继续安装请单击“下一步(N)”按键;


6)、进入“产品特定的选决条件检查”窗口,经过一小段时间检查,会出现以下的检查信息窗口;在“正在检查网络配置需要”项目内,选中状态栏目的内容,继续安装请单击“下一步(N)”按键;


7)、进入“选择配置选项”窗口,点选“创建数据库(C)” ,继续安装请单击“下一步(N)”按键;


8)、进入“选择数据库配置”窗口,点选“一般用途(G)” ,继续安装请单击“下一步(N)”按键;


9)、进入“指定数据库配置选项”窗口;数据库命名中的设置;全局数据库名:oracle SID: oracle 

数据库字符集:简体中文ZHS16GBK ;继续安装请单击“下一步(N)”按键;


10)、进入“选择数据库管理选项”窗口,点选“使用Database Control管理数据库”,继续安装请单击“下一步(N)”按键;


11)、进入“指定数据库存储选项”窗口,点选“文件系统”;指定数据库文件位置:/usr/oracle/oradata/;

继续安装请单击“下一步(N)”按键;


12)、进入“指定备份和恢复选项”窗口,点选“不启用自动备份”,继续安装请单击“下一步(N)”按键;


13)、进入“指定数据库方案的口令”窗口;点选“所有的帐户都使用同一个口令”,输入口令。继续安装请单击“下一步(N)”按键;


14)、进入“概要信息”窗口,继续安装请单击“下一步(N)”按键;


15)、进入“安装”窗口,详细安装如下:

      A、安装部分;    B、复制文件部分;    C、连接数据系统部分;     D、设置数据系统部分;


    


16)、进入“配置助手”窗口:配置:Oracle Database Configuration Assistant时,会出现“Database Configuration Assistant”新窗口,详细配置过程:

A、正在复制数据库文件;    B、正在创建并启动Oracle实例;    C、正在进行数据库创建;


完成以上三个部分,会出现一个数据库创建完成信息提示窗口,点击“确定”按键。




17)、配置:iSQL*Plus配置辅助程序。配置过程中,会出现一个执行配置脚本信息提示窗口,在终端下运行,执行orainstRoot.sh脚本的过程:点击“任务栏” → “应用程序” → “系统工具” → “终端”,

$ su root (转换成root超级用户环境) Password: ****** (输入root用户的密码)
# /usr/oracle/oraInventory/orainstRoot.sh (输入执行脚本的详细路径)
详细操作:
# /usr/oracle/ product/10.2.0/root.sh (输入执行脚本的详细路径)
执行完成orainstRoot.sh、root.sh脚本后,关闭“超级用户的终端”,回到“执行配置脚本”提示窗口,继续安装请单击“确定”按键;




18)、进入“安装结束”窗口,退出安装程序请单击“退出(X)”按键;特别说明:请大家一定要记录好以下的WEB URL地址(重要):以下的 J2EE 应用程序已经配置, 并且可用下面列出的 URL 来访问。Enterprise Manager10gDatabase Control URL:请单击“是(Y)”按键,完成本次的安装任务;


19)、使用系统自带的浏览器测试以上的WEB URL连接地址是否正常:
iSQL*Plus URL:连接地址:http://hnsvr:5560/isqlplus
iSQL*Plus DBA URL:连接地址:http://hnsvr:5560/isqlplus/dba
Enterprise Manager10gDatabase Control URL测试:
连接地址:http:// hnsvr::1158/em
用户名:sys
口令:******
连接身份:SYSDBA
继续登陆请单击 “我同意”按键;


3、测试Oracle10g数据库:
1. 启动Oracle10g数据库
$ sqlplus "scott/tiger as sysdba"
将出现如下连接数据库信息:
SQL*Plus: Release10.2.0.1.0 - Production on 星期三 4月 18 16:23:27 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
连接到:
Oracle Database10gEnterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL>
表明登录数据库系统成功,运行startup命令启动数据库。
SQL> startup
ORACLE instance started.

Total System Global Area 336356520 bytes
Fixed Size 279720 bytes
Variable Size 268435456 bytes
Database Buffers 67108864 bytes
Redo Buffers 532480 bytes
Database mounted.
Database opened.
SQL>
表示数据库正常启动。


2. 关闭Oracle10g数据库
$ sqlplus "scott/tiger as sysdba" //以sysdba用户登录数据库
成功登录数据库系统后,运行shudown命令关闭数据库。
SQL> shutdown

3. 启动Oracle10g监听程序
Oracle的监听程序主要是为客户端的连接提供接口,在控制台窗口键入如下命令:
$ lsnrctl
将出现如下监听程序信息:
LSNRCTL for 32-bit Windows: Version10.1.0.2.0 - Production on 24-3月 -2004 16
:59:51
Copyright (c) 1991, 2004, Oracle. All rights reserved.
欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL>
表明登录监听程序控制台成功,运行start命令启动监听程序。
LSNRCTL> start
将出现监听程序的一系列启动和配置情况信息列表。
信息行的最后一行是“The command completed successfully”字样时,监听程序启动成功。
4. 关闭Oracle10g监听程序
运行stop命令关闭监听程序。
LSNRCTL> stop


4、设置Oracle10g自动启动与关闭

1、编辑 /etc/oratab,把所有的 instance 的重启动标志设置成 'Y',如:
fstest:/oracle/product/10.2.0:Y
2、做一个启动脚本 /etc/init.d/dbora ,如下所示:

#!/bin/sh
# description: Oracle auto start-stop script.
# chkconfig: - 20 80
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=/oracle/product/10.2.0/
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')

# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
;;
'restart')
$0 stop
$0 start
;;
esac

3、赋予执行权限
Ychmod 750 /etc/init.d/dbora
作成以下链接:
ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora
ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora
执行以下命令:
chkconfig --level 345 dbora on

系统参数中Oracle配置部分见下图:



至此,安装以及配置过程全部完成!

附录 :在Linux平台安装Oracle比较常见的问题

1、在10g不支持的Linux发行版上安装10g的解决方法

10g的安装相比以前的多了一个 Checking operating system certification 的步骤。特别实用。安装文件会自动检测所需的条件。如果有不符合的地方,安装程序会报告给你.并会给出具体原因。大大减少了出错的可能。

注:客户原先购买的版本是Oracle Database10gRelease 1(10.1.0.3),在安装过程中报错,此版本的ORACLE不支持在REHL AS4上安装,后来更换成Oracle Database10gRelease 2 (10.2.0.1),此版本在安装过程中检测通过,能够支持在REHL AS4上正常安装;


或者可以按照以下方法解决:

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 4 (Taroon)

EOF

安装完毕,再将那个文件还原:
#su - root

#cp /etc/redhat-release.backup /etc/redhat-release

3). 同样的思路,我们可以修改Oracle 的install/oraparam.ini文件达到目的.

参见冯大大的文章:Oracle10GBeta 版本一个Bug及其解决办法

作者:Fenng
日期:18-Dec-2003 
出处:http://www.dbanotes.net
版本:1.01



Oracle的10G正式版本迟迟不见其踪影。目前也只能测试一下Beta版本过过瘾。

最近从朋友处得到了一份Oracle10G的Beta版本。这个版本可以称得上是Bug众多。在安装过程中,遇到了一个小插曲,记录下来,给大家做个参考。

我的系统环境:PIII700 Windows2000+Service Pack4。 在点击Setup.exe之后,出现的窗口信息如下:

Using paramFile: G:\Oracle10G\Disk1\install\win32\oraparam.ini

Starting Oracle Universal Installer ...


Checking required pre-requisites...


Checking Operating System Version:must be 4.0,5.0,5.1 or 5.2.Actual 5.0 passed


Checking for SERVICE_PACK: must be 1, 2 or 3. Actual Service Pack 4 Failed<<<

Checking for MIN_DISPLAY_COLORS 256. Actual 4294967296 Passed


Some required pre-requisite checks have failed (see above). You must


correct these problems before continuing with the install, at which


time they will be re-checked. Continue? (y/n) [n]

从中看出,Oracle居然不支持Service Pack 4,不过按照常理来说,Service Pack 新版本都是和旧版本兼容的。可以断定这是个小Bug:在Oracle的这个Beta版本出来之前还没有Service Pack4。不符合安装条件。

看看第一行信息,使用的是G:\Oracle10G\Disk1\install\win32\oraparam.ini这个参数文件,那么是不是一些条件的边界值是在这里定义的呢?

找到该文件,打开,分析一下,果真是定义的一些检测系统的边界值,发现有这么两行:

[Windows-5.0-required]

SERVICE_PACK=1,2,3

可以看出,定义的是Service Pack的版本。OK,尝试把它修改成:

SERVICE_PACK=1,2,3,4

重新运行Setup.exe ,看到验证信息如下:

已经通过。安装......

再回过头来,分析一下Disk1\install\win32\oraparam.ini这个文件,可以看出安装的最小条件是:

·         CPU=300

·         256色分辨率

·         在NT4上安装需要SP6

扩展分析

既然Oracle安装文件用的是oraparam.ini定义的一些参数,那么在个别没有通过Oracle验证的操作系统 (比如Fedora Core核心的Linux)上的安装也可以通过修改oraparam.ini中的参数的方法来达到目的。


附:Disk1\install\win32\oraparam.ini文件内容:


[Oracle]

DISTRIBUTION=TRUE

SOURCE=../../stage/products.jar

LICENSE_LOCATION=

JRE_LOCATION=../../stage/Components/oracle.swd.jre/1.3.1.6.0a/1/DataFiles/Expanded

JRE_MEMORY_OPTIONS=" -mx96m"

DEFAULT_HOME_LOCATION=\oracle\ora10Beta1

DEFAULT_HOME_NAME=OraHome10Beta1

NO_BROWSE=/net

NLS_ENABLED=TRUE

BOOTSTRAP=TRUE

OUI_VERSION=2.3.0.5.0a

#SHOW_HOSTNAME=ALWAYS_SHOW shows the hostname panel always

#SHOW_HOSTNAME=NEVER_SHOW does not the hostname panel

#SHOW_HOSTNAME=CONDITION_SHOW shows the hostname panel on condition

SHOW_HOSTNAME=NEVER_SHOW

#THIN_JDBC_FILENAME is optional and defaults to classes12.jar

#The value specified for this should be packaged with OUI, and should

#be relative to /jlib/

THIN_JDBC_FILENAME=classes12.jar

#RUN_OUICA specifies the batch script name that needs to be run

#The script is ouica.bat for win32, and ouica.sh for solaris.

#If the value is not specified, then the OUICA script is not run

RUN_OUICA=ouica.bat


[Certified Versions]

#You can customise error message shown for failure, provide value for

#CERTIFIED_VERSION_FAILURE_MESSAGE

Windows=4.0,5.0,5.1,5.2


#Windows NT 4.0

[Windows-4.0-required]

#Service pack for Windows NT4.0, use %SystemRoot%\WinNt\System32\winver.exe to

#find version and service pack

SERVICE_PACK=6a

#You can customise the message shown for Service Pack failure through

#SERVICE_PACK_FAILURE_MESSAGE

#Minimum display colours for OUI to run

MIN_DISPLAY_COLORS=256

#Use MIN_DISPLAY_COLORS_FAILURE_MESSAGE to customise message for

#failure of check for Display colors


[Windows-4.0-optional]

#Minimum CPU speed required for OUI in MHz

CPU=300

#CPU_FAILURE_MESSAGE, use to customise error message for CPU speed check


#Windows 2000 use winver.exe to find version

[Windows-5.0-required]

SERVICE_PACK=1,2,3,4

#Minimum display colours for OUI to run

MIN_DISPLAY_COLORS=256


[Windows-5.0-optional]

#Minimum CPU speed required for OUI

CPU=300


#Windows XP use winver.exe to find version

[Windows-5.1-required]

#Minimum display colours for OUI to run

MIN_DISPLAY_COLORS=256


[Windows-5.1-optional]

#Minimum CPU speed required for OUI

CPU=300


#Windows .net use winver.exe to find version

[Windows-5.2-required]

#Minimum display colours for OUI to run

MIN_DISPLAY_COLORS=256


[Windows-5.2-optional]

#Minimum CPU speed required for OUI

CPU=300


2、不能启动安装界面

运行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.


3、安装界面显示很多"口口"样子的乱码

解决办法:查看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 然后重新调用安装程序.


4、用IE登录Linux服务器上的em出现乱码

在Linux(Unix) 环境下成功安装了Oracle10g,从windows下用IE浏览器登录10g的em, 按钮是"口口"这样的方框.

解决办法: 参考下文:

[Oracle] 用IE登录Linux服务器上的10gem出现的乱码的解决

作者:Fenng
日期:N/A 
出处:http://www.dbanotes.net
版本:1.01



问题描述


在Linux(Unix)环境下成功安装了Oracle10g,从windows下用IE浏览器登录10g的em, 按钮是"口口"这样的方框.

解决办法

其实严格的说来,这是Java的问题.JDK Swing采用TrueType 字体作为按钮的显示字体,如果你的JDK 找不到中文字体用来显示,你看到的一些按钮就变成小方块的样子. 一般情况下, 我们只需要修改相应的 font.properties 就可以达到目的. 这里有一篇文档:

http://www.lslnet.com/linux/docs/linux-2940.htm

提供了一个类似的解决办法, 但是不幸的是, 目前的 Oracle10g毛病多多, 很不容易正确的设置, 而且这个办法也很麻烦。

不知道大家有没有注意到,10gEM 显示的中文翻译很是糟糕, "up" "down" 动不动就翻译成"向上""向下",让人哭笑不得. 很多朋友都说, 干脆给显示英文算了, 可是怎么显示呢?

好了,现在我们有一种办法很容易的间接的解决这个问题:

打开你的IE浏览器, 选择'工具"-->"Internet选项"-->"常规", 选择 "语言", 默认只有 "中文", 选择 " 添加 ", 加入 "英语(美国)" , 调整顺序, 把“英语(美国)”移动到最上面。

OK ,确定.启动em:

$emctl start dbconsole

然后用IE浏览你的相应的地址:

http://yoururl:5500/em

看到了吗?英文界面出来了.(旁白:倒 ,这么简单阿)

5创建数据库的时候出现ORA-03113的错误

解决办法: 查看核心参数是否调整正确.参考下文:

[Oracle] ORA-03113错误分析与解决

作者:Fenng
日期:13-Oct-2004 
出处:http://www.dbanotes.net
版本:0.04 ($$2003-05-22v0.1 $$2003-12-17v0.3$$)



前言

每一个DBA在进行数据库管理的过程中不可避免的要遇到形形色色的错误(ORA-1547 ,ORA-904,ORA-1578 ......)。有些错误由于频繁出现、原因复杂而被 Oracle DBA 们戏称之为"经典的错误"。其中ORA-3113 "end of file on communication channel" 就是这样的一个。

我们可以简单的把这个错误理解为Oracle客户端进程和数据库后台进程连接中断。不过,导致这个错误的原因实际上有很多种:对数据库设置不当、任何能导致数据库后台进程崩溃的行为都可能产生这个错误。这个错误的出现还经常伴随着其它错误,比如说:

ORA-1034 ORACLE not available

此外,该错误出现的场景复杂,可能出现在:

  • 启动的Oracle的时侯
  • 试图创建数据库的时侯
  • 试图对数据库进行连接的时侯
  • 在客户端正在运行SQL/PL/SQL的时侯
  • 备份/恢复数据库的时侯
  • 其它一些情况下......

在论坛上也时常可以看到初级DBA对这个问题的求救。在这里简单的对该问题进行一下整理。

错误原因种种


根据网络上大家反映的情况来看,错误原因大约有这些:

  • Unix核心参数设置不当
  • Oracle执行文件权限不正确/环境变量问题
  • 客户端通信不能正确处理
  • 数据库服务器崩溃/操作系统崩溃/进程被kill
  • Oracle 内部错误
  • 特定SQL、PL/SQL引起的错误
  • 空间不够
  • 防火墙的问题
  • 其它原因

在开始解决问题之前,作如下几件事情:

  • 回忆一下在出现错误之前你都做了什么操作,越详细越好;
  • 查看 background_dump_dest 目录中的 alertSID.log 文件也是你必须要的事情;
  • 用Google.COM 搜索一下,在互联网上有很多信息等着你去发现,不要什么都问别人。

当然, 如果你找到了一些对你更有帮助的东西--这篇文档就不用看了 :-)

错误原因情景分析


  • Unix核心参数设置不当 / init参数设置不当

如果数据库在安装过程中没有设定正确的操作系统核心变量,可能在安装数据库文件的时侯没甚么问题,在创建数据库的时侯常常会出现03113错误。和此有关的另一个原因是init.ora 参数文件中的processes参数指定了不合理的值,启动数据库导致错误出现(当然这个归根到底也是核心参数的问题)。

这个错误信息一般如下:

ORA-03113: end-of-file on communication channel
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist 

解决办法有两个:

1、修改核心参数,加大相应核心参数的值(推荐);
2、减小init.ora参数的Processes的值。

需要注意的是:

SEMMSL必须设定为至少要10 + '进程数的最大值';
SEMMNS 也依赖于每个数据库上的进程参数值。

注:

这个错误类型只在Unix平台上出现。在Windows上如果processes的值过大,则会出现类似如下的错误:

ORA-00068: invalid value 24200001 for parameter max_rollback_segments, 
must be between 2 and 65535


/* 此时指定的参数值超过了65535 */

或者

ORA-27102: out of memory 

/* 小于65535的一个大参数值 */ 软件环境:

Windows 2000 Version 5.0 Service Pack 3, CPU type 586
ORACLE RDBMS Version:8.1.7.0.0


在特定平台上更改核心参数可能会有差别,请参考Oracle Technet(http://otn.oracle.com) 上的安装文档。对特定Unix平台的安装文档也有对核心参数意义的解释。 Init.ora中的参数如果设置不当,会产生该错误。有经验表明:shared_pool_size设置过小会出现错误,此外timed_statistics=true的设置也会带来问题。

  • Oracle执行文件权限不正确/环境变量问题

这个问题只出现在Unix平台上。常见情况是有的时侯管理员为了方便而使用Unix的tar命令处理过的压缩包进行的安装,或者是系统管理员指定了额外的OS用户也可以管理数据库却没有指定正确的环境变量。
Oracle执行文件在$ORACLE_HOME/bin目录下,如果出现问题,应该用如下Unix类似命令来纠正 :

#chmod 7755 $ORACLE_HOME/bin/oracle 

有的时侯要对Oracle进行relink操作。
在Unix上通过cp拷贝安装的时候,常常会出现环境变量的问题,和个别执行程序连接问题。 LD_LIBRARY_PATH如果设置的不正确会导致问题,在这种情况下,需要对Oracle进行relink。如果可执行文件oralcle被破坏,也要对其relink。 如果安装了并行服务器选项而Distributed Lock Manager没有安装或正确运行也会导致错误。

  • 客户端通信不能正确处理

1.SQL*Net驱动器的问题:

如果使用的版本比较低的驱动器,请更换到新版本的驱动。 SQL*Net 的驱动没有连接到Oracle可执行文件会导致错误。

2.检查TCP/IP网络是否通畅;
3.Windows平台的常见网络问题:

在Windows平台创建数据库的时侯,如果出现该问题可以考虑用如下的方法:

首先检查本地网络设置.查看网络上是否有同名的结点或有冲突的IP.如果问题依旧,可以保守的用下面的方法:

1). 禁用网卡:将本地连接状态改为禁用;
2). 将sqlnet.ora文件打开(以记事本形式)将nts验证注释掉:

#SQLNET.AUTHENTICATION_SERVICES= (NTS) 

3). 创建数据库;
4). 创建成功后,恢复本地连接;

  • 数据库服务器崩溃/操作系统崩溃/进程被异常的Kill

在连接过程中,如果Oracle数据库的服务器崩溃或者数据库所在的操作系统崩溃,就会出现这 个错误,Oracle Server崩溃的原因可能因为主要后台进程死掉,被错误的进行了Kill操作。如果是这个原因还是比较容易解决的。此外,和OS有关的应用程序存在内存泄漏(或者有病毒)的时侯也会导致Oracle后台程序问题。 推荐排错步骤:

  • 1、 查看应用软件相关进程是否正常运行;
  • 2、 查看有无内存泄漏;
  • 3、 查杀病毒;
  • 4、 确定系统管理员没有进行误操作;
  • 5、 确定无黑客入侵行为;
  • 6、 其它不确定因素......
  • Oracle 内部错误 / Bug

如果查看background_dump_dest目录中的alert.log发现有ora-600/ora-07445等错误,可以到Metalink站点上查看具体信息及其解决方案。一般情况下要打软件补丁。

  • 特定SQL、PL/SQL引起的错误

尝试把SQL进行分开执行,也可以用SQL_TRACE来进行跟踪,找到导致问题的SQL语句。在SQLPlus下:

ALTER SESSION SET sql_trace=TRUE;

SQL语句中的非法字符和不合理的处理结果,甚至一些不可解释的原因偶尔会带来问题.
SQL问题举例:

SELECT *
  FROM (SELECT ROWNUM AS num, k.*
          FROM (SELECT   a.cp_code, c.cp_cha_name, a.service_code,
                         a.service_name, a.content_name,
                         SUBSTR (a.access_time, 1, 8) thedate,
                         COUNT (*) AS hit_count
                    FROM sm_wap_log_daily_tab a, t_cp_info c
                   WHERE (SUBSTR (a.access_time, 1, 8) BETWEEN '20040301'
                                                           AND '20040304'
                         )
                     AND c.cp_code LIKE '%%'
                     AND a.cp_code = c.cp_code
                     AND a.service_code LIKE '%%'
                GROUP BY a.cp_code,
                         c.cp_cha_name,
                         a.service_code,
                         a.service_name,
                         a.content_name,
                         SUBSTR (a.access_time, 1, 8)
                ORDER BY a.cp_code,
                         a.service_code,
                         a.content_name,
                         SUBSTR (a.access_time, 1, 8) DESC) k) n;

上面这条语句在9204/Linux 系统上始终出现03113 的错误。对语句进行细化,分成小一点的子语句逐步执行,最后判定问题出现在

                 ORDER BY a.cp_code,
                         a.service_code,
                         a.content_name,
                         SUBSTR (a.access_time, 1, 8) DESC) k) n;
                                                                         

中的 SUBSTR (a.access_time, 1, 8) 这里。去掉SUBSTR (a.access_time, 1, 8)则问题不再出现。尝试调整SUBSTR (a.access_time, 1, 8) 的位置,语句得到通过。之后,顺便优化一下该语句。:) 

SELECT *
  FROM (SELECT ROWNUM AS num, k.*
          FROM (SELECT   a.cp_code, c.cp_cha_name, a.service_code,
                         a.service_name, a.content_name,
                         SUBSTR (a.access_time, 1, 8) thedate,
                         COUNT (*) AS hit_count
                    FROM sm_wap_log_daily_tab a, t_cp_info c
                   WHERE (SUBSTR (a.access_time, 1, 8) BETWEEN '20040301'
                                                           AND '20040304'
                         )
                     AND c.cp_code LIKE '%%'
                     AND c.cp_code = a.cp_code
                     AND a.service_code LIKE '%%'
                GROUP BY a.cp_code,
                         c.cp_cha_name,
                         a.service_code,
                         a.service_name,
                         a.content_name,
                         SUBSTR (a.access_time, 1, 8)
                ORDER BY (SUBSTR (a.access_time, 1, 8)),
                         a.cp_code,
                         a.service_code,
                         a.content_name DESC) k) n;
  • 系统空间不够

任何时侯都要确保数据库系统有足够的空间.如果 USER_DUMP_DEST和BACKGROUND_DUMP_DEST没有剩余空间的话,会导致此问题.此外,如果打开了审计,AUDIT目录要由足够的空间.如果激活了Trace的话,Trace目录要由足够的空间. Dave Wotton的文档 (Local Copy) 表明,在对表进行插入数据的时侯,如果文件超过了2G(而文件系统有2G限制),会导致该问题.

  • 防火墙的问题

如果数据要通过防火墙,请联系系统管理员,询问是否对数据库数据进行了过滤或者是突然禁止了通信端口。如本地安装有个人防火墙,请检查本地设置。

  • 其它方面说明

导致这个错误的原因有很多种,上面列到的只是一些典型情况。经常去一些数据库技术论坛可能会有帮助。比如说ITPUB( http://www.itpub.net)、CNOUG(http://www.cnoug.org)等。


6Oracle10的监听不能启动,启动监听时报错如下:

==========================================================

[oracle@oracle bin]$ lsnrctl start

LSNRCTL for Linux: Version10.2.0.1.0 - Production on 16-MAY-2006 14:20:53

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...

TNS-12537: TNS:connection closed

TNS-12560: TNS:protocol adapter error

TNS-00507: Connection closed

Linux Error: 29: Illegal seek

==========================================================

监听启动失败的几种可能如下:

1listener.ora或tnsnames.ora文件错误($ORACLE_HOME/network/admin目录下)

解决方法:a、检查其文件内的Host或Port是否有错

     b、备份listener.ora后,用netmgr重新生成一个新的listener.ora(建议)


2 etc/hosts文件中原来系统的localhost 映射到127.0.0.1的回环地址给删掉了。

解决方法:a、通过“应用程序-系统设置-网络-主机”添加(这里指Redhat Linux)

     b、在etc/hosts文件中直接添加。


解决办法:修改etc/hosts文件,加入localhost映射到127.0.0.1

  127.0.0.1 localhost

  或者

  127.0.0.1 localhost.localdomain localhost:



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/618091/viewspace-2123739/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/618091/viewspace-2123739/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值