第2部分 针对oracle配置linux oracle 对系统硬件配置的一些要求。
内存 > 512MB swap > 1GB oracle软件 > 2.5GB 数据文件 > 1.2GB /tmp > 400MB
创建oracle用户和组
/usr/sbin/groupadd dba
/usr/sbin/useradd -m -g oinstall -G dba oracle
id oracle
要记得为oracle用户设置密码。

创建oracle的安装目录,要注意前面对分区的大小要求。

mkdir -p /u02/oradata
chown -R oracle:oinstall /u01/app/oracle /u02/oradata
chmod -R 775 /u01/app/oracle /u02/oradata
配置linux内核参数
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
EOF
/sbin/sysctl -p
为 oracle 用户设置 Shell 限制。
oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536
EOF

cat >> /etc/pam.d/login <> /etc/profile <> /etc/csh.login <

设置oracle 用户的环境变量。通过修改 .bash_profile 来完成。
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_SID=demo1; export ORACLE_SID
其他的变量等安装完了再设置。 第3部分 安装 Oracle 使用一个修改好的rsp文件,然后执行下面的命令。

然后就等着吧,看那些log或者看屏幕输出都可以看到安装进度。

第4部分 可能会遇到的问题

下面这些是从网上找到的,我用到的就是第1和9条,还没有遇到其他问题。

1、运行runInstaller,错误提示如下:
Checking requirements...
Checking operating system version: must be redhat-2.1,redhat-3,SuSE-9,SuSE-8,UnitedLinux-1.0
Failed<<<<
解决方法:
方法一:
在/etc下创建UnitedLinux-release文件
#cat > /etc/UnitedLinux-release << EOF
>UnitedLinux 1.0 (i586)
>VERSION=1.0
>EOF
然后就可以正常启动安装程序。注意不要使用vi编辑该文件,否则可能会引起ORA-12547: TNS: lost contact的错误。

方法二:
运行runInstaller -ignoreSysPrereqs,这样会跳过检查

方法三:
修改Oracle 的/.../disk1/install/linux/oraparam.ini这个参数文件

2、安装界面或者netca界面、dbca界面显示很多"口口"样子的乱码

解决办法:查看locale输出
# locale
LANG=zh_CN.GB18030
LC_CTYPE=zh_CN.GB18030
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"
LC_COLLATE="zh_CN.GB18030"
LC_MONETARY="zh_CN.GB18030"
LC_MESSAGES="zh_CN.GB18030"
LC_PAPER="zh_CN.GB18030"
LC_NAME="zh_CN.GB18030"
LC_ADDRESS="zh_CN.GB18030"
LC_TELEPHONE="zh_CN.GB18030"
LC_MEASUREMENT="zh_CN.GB18030"
LC_IDENTIFICATION="zh_CN.GB18030"
LC_ALL=
执行#export LANG=en_US 然后重新调用安装程序.


3、Oracle10g自动检查操作系统是否符合安装的条件。当按照上面的脚本对系统进行配置后,会有警告提示。[Retry]会看到如下提示:

Checking for openmotif-2.1.30-11; found Not found. Failed <<<<
Check complete. The overall result of this check is: Failed <<<<
Problem: Some recommended packages are missing (see above)

下载并安装openmotif-2.1.30-11软件包后,通过验证。

备注:有oracle文档说明:对于在RHELAS3上安装oracle10g,需要openmotif-2.2.2-16或更高版本;
但下载openmotif-2.2.2-16.src.rpm,在机器上编译安装,oracle自动检查仍然有警告提示。


4、安装程序在进行到74%的时,按照提示用root身份运行$ORACLE_HOME/root.sh,出现以下错误:

./root.sh: line 227: /var/opt/oracle/srvConfig.loc: 没有那个文件或目录
./root.sh: line 228: /var/opt/oracle/srvConfig.loc: 没有那个文件或目录
/bin/chown: 无法取得 ‘/var/opt/oracle/srvConfig.loc’的属性:没有那个文件或目录
/bin/chgrp: 无法取得 ‘/var/opt/oracle/srvConfig.loc’的属性:没有那个文件或目录
/bin/chmod: 无法取得 ‘/var/opt/oracle/srvConfig.loc’的属性:没有那个文件或目录
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
OCR create keys failed, OCR error 26
Failed to initialize Oracle Cluster Registry for cluster

解决方法:
# mkdir /var/opt/oracle
# chown -R oracle.dba /var/opt/oracle
# ./root.sh

5、 数据库启动:
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

ORA-00371: not enougsh shared pool memory, should be atleast 52132659 bytes.

解决方法:
这个错误并非是内核参数设置的问题,也和系统的物理内存大小无关。编辑$ORACLE_HOME/dbs/init$GID.ora文件:
shared_pool_size = 52132659


6、 数据库启动:
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

ora-01102: cannot mount database in EXCLUSIVE mode

解决方法:
完全关闭数据库,更改$ORACLE_HOME/dbs/init.ora文件里的db_name为建库时定义的“全局数据库名”,然后再重新启动数据库

7、 数据库启动:
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

ora-00205:error in identifying conrolfile, check alert log for more info

解决方法:
SQL>show parameter control_files
SQL>CREATE CONTROLFILE
将$ORACLE_BASE/admin/$GID/pfile/init$SID.ora***************拷贝到$ORACLE_HOME/dbs下,命名为init$SID.ora,即可解决。

8、数据库启动:
$sqlplus /nolog
SQL>connect / as sysdba
SQL>startup

ORA-01990:error opening password file '$ORACLE_NAME/dbs/orapw'
ORA-27037:unable to obtain file status
Linux Error:2: No such file or directory
Additional information: 3

解决方法:
将$ORACLE_HOME/dbs下的orapw$db_name文件拷贝生成一个orapw文件。


8、建库的过程中或者连接数据库的时候提示:
ORA-12547: TNS: lost contact
引起该错误的环境比较复杂,原因可能是:
1、用vi编辑的/etc/UnitedLinux-release文件
2、内核参数设置不正确
3、察看一下listener是否正常启动: lsnrct1 status
4、机器负载过大

9、 emca 的web界面的乱码

http://www.eygle.com/archives/2006/03/oracle10g_em_font_change.html

一直没怎么用10g的EM工具,今天打开来看看,发现也有相传已久的乱码问题.网上也流传着N种解决方案,仔细看一下,其实这个问题很好解决.

如果安装时,我们系统环境变量设置的是中文环境,那么就不会有这个问题.这个问题根本原因在于安装时,JDK/JRE字符集的自动选择.

在 $ORACLE_HOME/jdk/jre/lib 和 $ORACLE_HOME/jre/1.4.2/lib/ 目录下都有多种字符集字体配置文件:

[oracle@danaly ~]$ cd $ORACLE_HOME/jdk/jre/lib
[oracle@danaly lib]$ ls font*zh_CN*
font.properties.zh_CN.Redhat  font.properties.zh_CN.Redhat2.1  
font.properties.zh_CN.Sun  font.properties.zh_CN_UTF8.Sun

[oracle@danaly lib]$ cd $ORACLE_HOME/jre/1.4.2/lib/
[oracle@danaly lib]$ ls font*zh_CN*
font.properties.zh_CN.Redhat  font.properties.zh_CN.Redhat2.1  
font.properties.zh_CN.Sun  font.properties.zh_CN_UTF8.Sun 

我们只要用合适的中文字符集文件替换缺省文件即可,我选择使用font.properties.zh_CN.Redhat来替换缺省字体定义文件:

[oracle@danaly lib]$ cp font.properties.zh_CN.Redhat font.properties 

替换之后需要清理一下Cache,重启EM即可.

Cache路径通常位于:

$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/cabo/images/cache/zhs 

清除所有gif文件即可.然后重新启动EM:

[oracle@danaly zhs]$ emctl stop dbconsole
TZ set to PRC
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0  
Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://danaly.hurrray.com.cn:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ... 
 ...  Stopped. 
[oracle@danaly zhs]$ emctl start dbconsole
TZ set to PRC
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0  
Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://danaly.hurrray.com.cn:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control .............. started. 
------------------------------------------------------------------
Logs are generated in directory 
/opt/oracle/product/10.2.0/danaly.hurrray.com.cn_danaly/sysman/log  

现在登陆Web页面,EM显示就可以正常显示中文了.

参考文章: 这里