先用 ROOT 账户登录
1 、建立安装 Oracle 需要的用户、组及目录
(1) 新增组和用户:
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba oracle
passwd oracle
(2) 创建 Oracle 的安装目录,并把权限付给 oracle 用户:
mkdir -p /u01/app/oracle/product/10.2/db_1
chown -R oracle.oinstall /u01
2 、修改 /etc/sysctl.conf 内核配置文件,增加 / 修改以下项目,如没有自己添加
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 # 应用程序可使用的 IPv4 端口范围。
net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值
net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值
net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值
net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值
运行下面的命令使得内核参数生效 :
/sbin/sysctl -p /etc/sysctl.conf
注:内核参数并非必须修改,可以根据自己实际情况而定。
3 、 设置 oracle 用户的 shell limit
#vim /etc/security/limits.conf
增加下面的内容到文件 /etc/security/limits.conf 文件中:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
增加下面的内容到文件 /etc/pam.d/login 中,使 shell limit 生效:
session required /lib/security/pam_limits.so
4 、 oracle 用户的环境变量设置 --# ls -a
vim .bash_profile
添加:
PATH=$PATH:$HOME/bin
export ORACLE_BASE= /u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/ product /10.2/db_1
export ORACLE_SID=orcl
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/lib
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8"
并且把 PATH=$PATH:$HOME/bin 一行修改为 PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin 保存,退出。
然后运行命令 source .bash_profile 使环境变量生效。
5 、 关闭 SeLinux
因为 SeLinux 对 oracle 有影响,所以把 Secure Linux 设成无效,编辑文件 /etc/selinux/config :
SELINUX=disabled
当然你也可以用图形界面下的工具 ( 系统 > 管理 > 安全级别和防火墙 ) ,选择 SELinux 页面并且设为无效。
6 、 我下载的是 10201_database_linux32.zip 文件,然后,我把文件解压,生成 database 文件夹,可以通过 SSH 上传至 /home/oracle (使用 oracle 用户连接)
7 、解决依赖关系:( http://whatislinux.net/rpm )
下载并 安装 :
libXp-1.0.0-8.1.el5.i386.rpm
openmotif-devel-2.3.0-0.3.el5.i386.rpm
libXp-devel-1.0.0-8.1.el5.i386.rpm
openmotif-2.3.0-0.3.el5.i386.rpm
这 4 个安装包安装,先装 libXP, 再装 openmotif
用 ORACLE 账户登录
1、 进入对应的 oracle 安装文件夹找到对应的 runInstaller 文件,执行它,进行安装(不要在 ROOT 或其他账户下安装 , 有可能会报错)
2、 如果安装的图形化界面是乱码请执行 export LANG= en_US
3、 请选择 ” 高级安装 ”--- 》 ” 自定义 ”
4、 记住安装完后要将对应的两个“ .sh ”文件在 root 用户下执行
( 特别是 pro*c 要用到的 proc 命令 )
ORACLE 卸载
只需要删除对应的文件夹及文件
PRO*C 的配置
1、 先用 locate stdarg.h 命令来看配置 将里面的
/usr/lib/gcc/i686-redhat-linux/4.4.4/include/stdarg.h
前面的 /usr/lib/gcc/i686-redhat-linux/4.4.4/include 配置到
$ORACLE_HOME/precomp/admin/pcscfg.cfg 里面
如:
cd $ORACLE_HOME
vim /precomp/admin/pcscfg.cfg
里面的内容修改成这样
sys_include=(/usr/include,/usr/lib/gcc/i686-redhat-linux/4.4.4/include)
ltype=short (此配置不够完善)
注:要完善该配置请参照eclipse等C/C++的IDE 中的环境配置,既工程中的INCLUDES中的配置,还加上
$ORACLE_HOME/precomp/public
oracle 安装过程常见的几个错误与解决方法
错误问题 1 :
[oracle@nj15 database]$ ./runInstaller
正在启动 Oracle Universal Installer...
正在检查安装程序要求 ...
检查操作系统版本 : 必须是 redhat-3, SuSE-9, redhat-4, redhat-5, UnitedLinux-1.0, asianux-1 or asianux-2
通过
所有安装程序要求均已满足。
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2007-12-29_02-57-39AM. 请稍候 ...[oracle@nj15 database]$ Exception in thread "main" java .lang.UnsatisfiedLinkError: /tmp/OraInstall2007-12-29_02-57-39AM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at sun.security.action.LoadLibraryAction.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
at sun.awt.DebugHelper.
at java.awt.Component.
进入安装盘 server 目录,把
libXp-1.0.0-8.1.el5.i386.rpm
openmotif-devel-2.3.0-0.3.el5.i386.rpm
libXp-devel-1.0.0-8.1.el5.i386.rpm
openmotif-2.3.0-0.3.el5.i386.rpm
这 4 个安装包安装,先装 libXP, 再装 openmotif
错误问题 2 :
[oracle@nj15 database]$ ./runInstaller
正在启动 Oracle Universal Installer...
正在检查安装程序要求 ...
检查操作系统版本 : 必须是 redhat-3, SuSE-9, redhat-4, redhat-5, UnitedLinux-1.0, asianux-1 or asianux-2
通过
所有安装程序要求均已满足。
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2007-12-29_03-05-54AM. 请稍候 ...[oracle@nj15 database]$ Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using 'localhost:0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Unknown Source)
at java.awt.Window.init(Unknown Source)
at java.awt.Window.
at java.awt.Frame.
at oracle.ewt.popup.PopupFrame.
at oracle.ewt.lwAWT.BufferedFrame.
at oracle.sysman.oio.oioc.OiocOneClickInstaller.
at oracle.sysman.oio.oioc.OiocOneClickInstaller.main(OiocOneClickInstaller.java:2091)
#vi /etc/inittab
把 id:5:initdefault: 修改为 id:3:initdefault
#reboot
在文本模式下 用 boot 登录
# startx
# xhost +
# su - oracle
$ export DISPLAY="192.168.1.15:0.0"
$ export LANG=en_US
$ cd /tmp/10201_database_linux32/databases
$ ./runInstaller
错误问题 3 :
1. 在进行 Preinstallation Requirements Checking 时遇到了 Windows 下相同的网络配置问题:
Check complete. The overall result of this check is: Not executed <<<<
Recommendation: Oracle supports installations on systems with DHCP-assigned public IP addresses. However, the primary network interface on the system should be configured with a static IP address in order for the Oracle Software to function properly. See the Installation Guide for more details on installing the software on systems configured with DHCP.
问题的具体解决办法在文档 Installation Guide 的 2.4 Checking the Network Setup 中有详细介绍
[1] 具体做法是用文本编辑器打开 etc 文件夹下的 hosts 文件,如:
[oracle@admin ~]$ gedit ../../etc/hosts
[2] 然后将自己电脑的 IP ,主机名 [ 它可以由 hostname 命令查询获得 ] 和域名 ( 自己起一个好听一点的就行了 ) 写在原文件内容的前面就可以了
For example:
192.168.100.16 myhost.us.mycompany.com myhost
127.0.0.1 localhost localhost.localdomain
这个操作具体含义是相当于加了一个本地的 DNS 域名解析,谁知道呢,反正 it works 。
错误问题 4 :
INFO: /opt/app/oracle/oracle/product/10.2.0/db_1/bin/genorasdksh: Failed to link liborasdkbase.so.10.2
INFO: make: *** [liborasdkbase] Error 1
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'all_no_orcl' of makefile '/opt/app/oracle/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk'. See '/opt/app/oracle/oraInventory/logs/installActions2008-05-07_09-49-23AM.log' for details.
[root@ctdb ~]# cd /usr/lib64/
[root@ctdb lib64]# ln -s libstdc++.so.6 libstdc++.so.5
[root@ctdb lib64]# ls -al libstdc*
lrwxrwxrwx 1 root root 14 May 7 10:54 libstdc++.so.5 -> libstdc++.so.6
lrwxrwxrwx 1 root root 18 Apr 26 23:14 libstdc++.so.6 -> libstdc++.so.6.0.8
-rwxr-xr-x 1 root root 976312 Nov 10 06:45 libstdc++.so.6.0.8
然后选择重试,安装程序继续。
问题五:
Linux 下 Oracle10g 不能启动之 could not open parameter file
关键字 : oracle lrm-00109: could not open parameter file '/opt/oracle
今天开发 服务器 突然连接不上, sqlplus /nolog 、 conn /as sysdba 、 startup 命令后显示
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle10g/product/10.2/db_1/dbs/initORA10G.ora'
查找文件,果然不存在。估计是非法关机造成的。
这是因为在 oracle9i 和 oracle10g 中, oracle 默认将使用 spfile 启动 数据库 ,如果 spfile 不存在,则就会出现上述错误。
解决方法 1 (已经验证):
将 $ORACLE_BASE/admin / 数据库名称 /pfile 目录下的 init.ora.012009233838 形式的文件 copy 到 $ORACLE_HOME/dbs 目录下 initoracle.ora 即可。(注: initoracle.ora 中的 oracle 为你的实例名 ORACLE_SID )
解决方法 2 :
用 oraenv 命令來改變當前環境的 SID, 然後用 pfile 重新產生 spfile, 就可以啟動數據庫了 .
改變 SID:
[oracle@willie root]$ source oraenv
ORACLE_SID = [oracle] ? test1
bash: /root/.bashrc: Permission denied
重新產生 spfile:
SQL> create spfile from pfile;
File created.
SQL> startup
ORACLE instance started.
附: Linux 下 oracle 操作命令
重启 oracle
lsnrctl stop
sqlplus /nolog
conn /as sysdba
shutdown (startup)
exit
lsnrctl start
启动 oracle
sqlplus /nolog
conn /as sysdba
startup
exit
lsnrctl start
关闭 oracle
lsnrctl stop
sqlplus /nolog
conn /as sysdba
shutdown
exit
问题六:
启动监听程序出现错误 TNS:permission denied
1 、启动 [oracle@test admin]$ lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 16-JUL-2009 17:40:44
Copyright (c) 1991, 2005 , Oracle. All rights reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionSystem parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraLog messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.logListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=test)(PORT=1521)))Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))TNS-12555: TNS:permission denied TNS-12560: TNS:protocol adapter error TNS-00525: Insufficient privilege for operation Linux Error: 1: Operation not permitted
Listener failed to start. See the error message(s) above...
[oracle@test admin]$
2 、检查 /tmp/.oracle 的权限,发现不正确 [root@test tmp]# ls -altotal 104...drwxrwxrwt 2 root root 4096 Jul 16 14:53 .oracle...
[root@test tmp]# chown -R oracle.oinstall /tmp/.oracle[root@test tmp]#3 、再次启动还是报错,于是检查 /var/tmp/.oracle 权限,发现也有问题 [root@test tmp]# ll /var/tmp/.oracle total 0srwxrwxrwx 1 501 oinstall 0 Apr 26 20:40 s#13042.1srwxrwxrwx 1 501 oinstall 0 Apr 26 20:40 s#13042.2srwxrwxrwx 1 501 oinstall 0 Jul 1 16:13 s#20818.1srwxrwxrwx 1 501 oinstall 0 Jul 1 16:13 s#20818.2srwxrwxrwx 1 501 oinstall 0 Oct 9 2008 s#4165.1srwxrwxrwx 1 501 oinstall 0 Oct 9 2008 s#4165.2srwxrwxrwx 1 501 oinstall 0 Apr 26 22:38 s#4433.1srwxrwxrwx 1 501 oinstall 0 Apr 26 22:38 s#4433.2srwxrwxrwx 1 501 oinstall 0 Apr 28 2008 s#5366.1srwxrwxrwx 1 501 oinstall 0 Apr 28 2008 s#5366.2srwxrwxrwx 1 501 oinstall 0 Mar 23 2008 s#5756.1srwxrwxrwx 1 501 oinstall 0 Mar 23 2008 s#5756.2srwxrwxrwx 1 501 oinstall 0 Nov 29 2007 s#6842.1srwxrwxrwx 1 501 oinstall 0 Nov 29 2007 s#6842.2srwxrwxrwx 1 501 oinstall 0 Jun 29 11:18 stestDBG_CSSDsrwxrwxrwx 1 501 oinstall 0 Oct 9 2008 sEXTPROC0srwxrwxrwx 1 501 oinstall 0 Jun 29 11:18 sOCSSD_LL_test_localhostsrwxrwxrwx 1 501 oinstall 0 Jun 29 11:18 sOracle_CSS_LclLstnr_localhost_0[root@test tmp]# cd ..[root@test /]# chown -R oracle.oinstall /var/tmp/.oracle
再次启动, OK
Linux 网络配置
1、 找到对应的 /etc/sysconfig/network-scripts/ifcfg-eth0 修改里面的
内容如下:
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
ONBOOT=yes
#BOOTPROTO=dhcp // 代表动态分配
BOOTPROTO=static // 默认设置
HWADDR=00:0C:29:04:3F:4B
IPADDR=192.168.0.225
#HWADDR=00:21:9B:F1:06:35
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03
DNS1=61.234.145.102 ( 要把防火墙里面的 DNS 端口 应用 )
PEERDNS=yes
PEERROUTES=yes
2、 修改对应的 /etc/hosts 文件
127.0.0.1 localhost.localdomain localhost
192.168.0.225 fedora13 localhost
3、 修改 /etc/resolv.conf
# Generated by NetworkManager
nameserver 61.234.145.102
在windows xp里面用PL/SQL编辑器来链接 FEDORA13启动好的ORACLE 10G
1.在windows里面安装oracle 10g 的客户端 然后启动客户端链接配置链接
2.配置好了后用PL/SQL编辑器产生链接,如果出现 “协议适配器错误”,请回到fedora13 里面在防火墙里面添加自定义的端口"1521"
3.如果以上操作还不能成功就到监听配置程序中,将listener.ora 和 tnsnames.ora 文件中的 HOST修改成主机的IP