天天看点

linux 安装 oracle 11g 数据库

安装前:内存需要2g以上

1.

yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat
           

(这第一步对于centos7以上的版本会提示版本问题,不用管)

2. 

groupadd dba;groupadd oinstall;useradd -g oinstall -G dba -m oracle
           

3.  passwd oracle

4.

cat >>/etc/sysctl.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
           

5. sysctl -p (如果上一步直接在sysctl.conf里写 内容,这一步可能会提示xxx找不到之类的信息,建议复制粘贴)

6. 

cat >>/etc/security/limits.conf <<EOF
oracle soft nproc 2047 
oracle hard nproc 16384 
oracle soft nofile 1024 
oracle hard nofile 65536
oracle soft stack 10240 
oracle hard stack 32768
EOF
           

7. 

mkdir /home/oracle/app  
mkdir /home/oracle/app/oracle  
mkdir /home/oracle/app/oradata  
mkdir /home/oracle/app/oracle/product  
           

8.

chown -R oracle:oinstall /home/oracle/app 
           

9. 

su - oracle
           

10. 

输入命令:vi .bash_profile,将下列内容加入该文件。(这里一定要切换到oracle 用户下)

umask 022  

export ORACLE_BASE=/home/oracle/app  

export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1  

export ORACLE_SID=orcl  

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin  

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib  

11.

对于centos7以下版本,下载这两个包(名称不一定要一样)上传到linux 的./tmp下

p10404530_112030_Linux-x86-64_1of7.zip

p10404530_112030_Linux-x86-64_2of7.zip

对于centos7以上版本,下载 下面七个包

p13390677_112040_Linux-x86-64_1of7.zip (1-7 懒不想复制)

centos7 以上版本用下面的包报错少一点。后面附上下载链接

12. 首先安装桌面系统(相当于在linux中的windows 安装过程)

yum install xorg-x11-xauth -y

13. 

unzip linux.x64_11gR2_database_1of2.zip -d /tmp
unzip linux.x64_11gR2_database_2of2.zip -d /tmp
           

(路径啥的无所谓)

14.因为用vncserver会出现各种问题所以用xmanger安装。(如果是虚拟机,可以直接在/tmp/database下找到runinstaller,双击run 安装)

下载xmanager软件

15.打开xmanager,新建xstart会话

linux 安装 oracle 11g 数据库

16. 

如果提示没有 xterm目录执行 yum install -y xterm

17. 执行完会出现以下窗口,进入database 运行runInstaller

linux 安装 oracle 11g 数据库

18. 等一会就会弹出安装界面了 安装过程就不截图了,懒(别的文章里有这个过程,后续附上word),看不懂的默认就好了,只要注意几个输密码的地方就行

  •  a  让你填邮箱的,直接next ,然后会有个提醒,选择yes
  • b   安装下面7个包的会多一个界面,该默认的默认,该skip的skip
  • c    创建和配置数据库
  • d    服务器类
  • e     single 单实例
    •       advance 高级安装
    •  语言 可以直接next 也可以在可用语言里找找 有simple chinese的
    •  企业版 next
    • 安装位置  默认 next
    • 清单目录 orainventory  默认 next
    • 配置类型:一般用途/事务处理
    • 数据库标识符  默认  next
    • 配置选项    可以直接next ,第二个列表有个字符集的列表,有需要选utf-8 默认是gbk、
    • 管理选项: next
    • 数据库存储 ,默认,filesystem 文件系统,
    • 备份和恢复,默认不启用自动备份
    • 口令: 这一步不是默认了,选第二个,对所有账户使用相同的口令,如果太简单他会提示你不符合标准,甚至还弹出一个框,不用管,没事的
    • 操作系统组:默认下一步
    • 先决条件检查:嘟嘟嘟一个进度条,然后显示这个失败的状态信息,没事,右上角ignore 忽略,有些包其实你已经安装了,只是它检测的版本和你的不一样而已。忽略
    • 概要  下一步
    • 安装产品,又是一个进度条,不过这边会检测到一些报错,这是正常的,遇到一个解决一个   错误看后面红字(安装下面的包基本就报两个错,一个agent nmhs 一个 20802),retry
    • retry后后面继续加载进度条
    • 又是一个现实数据库信息的界面,可以点击口令管理修改下密码,也可以直接ok 
    • 最后就是提示你打开终端输入上面提示你的两行命令,你不输入listener.ora就没的生成,远程连接时的报错就解不了
    • 然后就没了
    • 测试一下
    • [[email protected] ~]# su - oracle

      [[email protected] ~]$ sqlplus  sys/sys  as  sysdba

      SQL*Plus: Release 11.2.0.1.0 Production on Thu Oct 24 13:58:36 2013

      Copyright (c) 1982, 2009, Oracle.  All rights reserved.

      Connected to an idle instance.

      SQL> alter system set deferred_segment_creation=false;

    • error in involing target 'mkldflags ntcontab.o nnfgt.o' of make file 解决方案:yum provides *libgmp.so.3 和 yum install -y gcc (centos7.2 安装了下面7个包,不会报的)
    • error in involing target 'links proc gen_pcscfg' of make file 解决方案:yum -y install binutils compat-libcap1 compat-libstdc++ compat-libstdc++-33 ?elfutils-libelf-devel gcc gcc-c++ glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-deve (centos7.2 安装了下面7个包,不会报的)
    • agent nmhs  解决方案: vi /home/oracle/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk (路径不一定一样,如果按照我这个来的话就是这个)找到 sysmanbin emdctl 在下面一行的后面的代码加-lnnz11 (  $(MK_EMAGENT_NMECTL) 这个后面加  -lnnz11) 在176 行(:set nu !可以显示行号)
    • 20802 oracle net configuration assistantfailed (一般远程工具连接时才报这个错)
    • 解决方案:首先配置iptables 1521端口 在/etc/sysconfig/iptables 如果没有 执行

yum install  iptables-services

systemctl  start  iptables.service   

然后再配置 端口,重启一下服务

然后可能还不够解决

echo "127.0.0.1 你的主机名" >> /etc/hosts(ps:如果主机名在hosts里没有会报错)

可能还是不够解决

lsnrctl start (切换oracle 用户)

不行就

cd /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/ 

编辑listener.ora添加

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc) 

      (ORACLE_HOME = 安装目录到db_home1)
      (PROGRAM = extproc) 

    )

 (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = 安装目录到db_home1)
      (SID_NAME = orcl)
    )
)
           

然后lsnrctl stop 再lsnrctl start 

可能还是不够解决

下载p8670579_112010_LINUX.zip上传解压

cd 8670579 

/home/oracle/app/oracle/product/11.2.0/dbhome_1/OPatch/opatch apply -invPtrLoc /home/oracle/app/oracle/product/11.2.0/dbhome_1/oraInst.loc

还不行就

yum install -y libaio libaio-devel

retry一下

ora-12541或者12514 (这是远程连接报的错) 也用上面的方法解决就行了

ora-28547  navicat 版本不对,32位不对就下64位 ,64位不对就下32位,因人而异,云服务器我就用的32位,真机就用的64位

最后,如果重启服务器后,发现远程数据库连不上了,可能端口没开,或者你安装别的环境,iptables里的设置被覆盖了,然后再终端命令下进入sql ,就是上面的测试代码,然后执行startup ,不行在把lsnrctl start 开启一下,应该就好了

附:oracle数据库包 

centos7 以上下载 https://pan.baidu.com/s/1rDG6Mm3kGoShuf70fqOd9Q 提取码:utbl

centos6.9 及以下 下载 :https://pan.baidu.com/s/1F2WPdNIJv33A2Wg5B2LXdA 提取码:2aeo 

继续阅读