Fedora13 安装 oracle10g及pro*c 配置

    技术2026-01-10  2

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