先用 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 -avim .bash_profile添加: PATH=$PATH:$HOME/binexport ORACLE_BASE= /u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/ product /10.2/db_1export ORACLE_SID=orclexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib:/usr/local/libexport PATH=$PATH:$ORACLE_HOME/binexport 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.rpmopenmotif-devel-2.3.0-0.3.el5.i386.rpmlibXp-devel-1.0.0-8.1.el5.i386.rpmopenmotif-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 directoryat 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.<clinit>(Unknown Source)at java.awt.Component.<clinit>(Unknown Source)解决方法: 进入安装盘 server 目录,把 libXp-1.0.0-8.1.el5.i386.rpmopenmotif-devel-2.3.0-0.3.el5.i386.rpmlibXp-devel-1.0.0-8.1.el5.i386.rpmopenmotif-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.<clinit>(Unknown Source)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.<init>(Unknown Source)at java.awt.Frame.<init>(Unknown Source)at oracle.ewt.popup.PopupFrame.<init>(Unknown Source)at oracle.ewt.lwAWT.BufferedFrame.<init>(Unknown Source)at oracle.sysman.oio.oioc.OiocOneClickInstaller.<init>(OiocOneClickInstaller.java:37at 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.2INFO: make: *** [liborasdkbase] Error 1INFO: End output from spawned process.INFO: ----------------------------------INFO: Exception thrown from action: makeException Name: MakefileExceptionException 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.6lrwxrwxrwx 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> startupORA-01078: failure in processing system parametersLRM-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 oraenvORACLE_SID = [oracle] ? test1bash: /root/.bashrc: Permission denied重新產生 spfile:SQL> create spfile from pfile;File created.SQL> startupORACLE instance started.附: Linux 下 oracle 操作命令 重启 oraclelsnrctl stopsqlplus /nologconn /as sysdbashutdown (startup)exitlsnrctl start启动 oraclesqlplus /nologconn /as sysdbastartupexitlsnrctl start关闭 oraclelsnrctl stopsqlplus /nologconn /as sysdbashutdownexit 问题六: 启动监听程序出现错误 TNS:permission denied1 、启动 [oracle@test admin]$ lsnrctl startLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 16-JUL-2009 17:40:44Copyright (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 permittedListener 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
