Fedora13 安装 oracle10g及pro*c 配置

    技术2026-01-10  48

    先用 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

     

    最新回复(0)