Linux7安装oracle数据库11G,12C(图形化和最小化)


(适用于centos7和redhat7)

(由于部分的i686依赖包没有安装,故不适用于32位操作系统)

新系统编辑工具如果没有vim也可用vi,看个人习惯

 

(一)    修改

关闭并禁用防火墙和seLinux
  [root@localhost ~]# systemctl stop firewalld
  [root@localhost ~]# systemctl disable firewalld
关闭 seLinux

  [root@localhost ~]# vim /etc/sysconfig/selinux

  SELINUX=disabled

查看并修改主机名
  [root@localhost ~]# hostname
  localhost.localdomain    #Oracle 数据库的安装在生产中要慎重考虑主机名,避免二次修改。
  [root@localhost ~]# hostnamectl set-hostname oracle.example.com
  [root@localhost ~]# hostname          ##验证是否成功

配置hostname本机IP映射

     vim /etc/hosts

     192.168.200.10  oracle.example.com  oracle  //192.168.200.10为本机地址

重启操作系统

     [root@localhost ~]# reboot

 

(二)    安装依赖包

安装依赖包

更改yum源

1.有外网的情况,个人建议将yum源修改为aliyun源,下载速度快些,执行如下命令即可:

     cd /etc

     mv yum.repos.d yum.repos.d.bak

     mkdir yum.repos.d

   wget –O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

    yum clean all

    yum makecache

2.如果没有外网,则需要配置镜像文件为本地yum源

    mkdir /media/cdrom               //记住此目录,需要在yum源中写入

  mount /dev/cdrom /media/cdrom     

如果第二条命令报错如下,则是没有镜像文件,需要上传镜像文件到服务器,如无报错请忽略

   

   

 

报错解决方法:

这里我把镜像文件放到/home/目录下为例,执行挂载镜像操作:

  mount -o loop /home /CentOS-7-4-x86_64-DVD-1708.iso /media/cdrom

 

解决报错后开始写入yum源文件:

  cd /etc

  mv yum.repos.d yum.repos.d.bak

  mkdir yum.repos.d

vim /etc/yum.repos.d/lichao.repo  //lichao.repo名称随意,但必须repo结尾

      [lichao]         //标识符随意

      name=lichao     //名称随意

      baseurl=file:///media/cdrom     //必须与上述我们挂载镜像的位置一致

  enabled=1        //开启

  gpgcheck=0       //本地源,不校验

 然后保存退出

  yum clean all    //写入上述五行后,清除并重新建立缓存

  yum makecache

完成上述修改成功后,准备安装如下依赖包:

说到依赖包就多说一句,可能其他地方讲到需要安装32位的依赖包,例如下面的两个包

  glibc-2.3.4-2.41
  glibc-2.3.4-2.41 (32 bit)  

  或者这样

  glibc-2.3.4-2.41.el7.x86_64

  glibc-2.3.4-2.41.el7.i686

但官方文档有很明确的讲述:11G:从Oracle Database 11g第2版(11.2.0.2)开始,除gcc-32bit之外的所有32位软件包,在Linux x86-64上安装数据库不再需要。仅需要64位软件包。但是,对于11.2.0.2之前的任何Oracle Database 11g发行版,列出的32位和64位软件包都是必需的。所以注意数据库版本。如下截图

12C:linux7及更高版本。。仅当您打算使用32位客户端应用程序访问64位服务器时,才需要这些要求列表中的32位软件包。对于Oracle数据库或Oracle Grid Infrastructure安装,Oracle数据库12c第2版(12.2)和更高版本在Oracle Linux和Red Hat Enterprise Linux上不需要编译器软件包gcc和gcc-c ++。如下截图

  

11g需要安装:

  yum install  binutils

  yum install  compat-libcap1

  yum install  compat-libstdc++-33

  yum install  gcc

  yum install  gcc-c++

  yum install  glibc

  yum install  glibc-devel

  yum install  ksh

  yum install  libaio

  yum install  libaio-devel

  yum install  libgcc

  yum install  libstdc++

  yum install  libstdc++-devel

  yum install  libXi

  yum install  libXtst

  yum install  libXext

yum install  libX11

yum install  libXau

yum install  libxcb

yum install  make

yum install  sysstat

yum install  unixODBC

yum install  unixODBC-devel

yum install  zlib-devel

yum install  elfutils-libelf-devel

yum install  mpfr           #以下三个IBM 的Linux on System z系统服务器需要安装

yum install  glibc-headers

yum install  cpp

 

12c需要安装:

yum install  bc

yum install  binutils

yum install  compat-libcap1

yum install  compat-libstdc++-33

yum install  gcc

yum install  gcc-c++

yum install  glibc

yum install  glibc-devel

yum install  ksh

yum install  libaio

yum install  libaio-devel

yum install  libgcc

yum install  libstdc++

yum install  libstdc++-devel

yum install  libxcb

yum install  libX11

yum install  libXau

yum install  libXi

yum install  libXtst

yum install  libXrender

yum install  libXrender-devel

yum install  make

yum install  net-tools

yum install  nfs-utils

yum install  smartmontools

yum install  sysstat

yum install  unixODBC

yum install  unixODBC-devel

yum install  libXaw          #以下的包IBM 的Linux on System z系统服务器需要安装

yum install  libXft

yum install  libXmu

yum install  libXp

yum install  libgfortran

 

检查安装结果:

rpm –qa binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel  zlib-devel  elfutils-libelf-devel libXrender libXrender-devel smartmontools numactl-devel glibc-common glibc-headers

compat-libstdc++-33在本地镜像没有,需要联网安装或下载rpm单独安装

rpm –ivh compat-libstdc++-33.86_64.rpm

 

(三)    添加oracle用户组和用户

     groupadd oinstall

       groupadd dba

     groupadd asmadmin

     groupadd asmdba

     useradd -g oinstall -G dba,asmdba oracle -d /home/oracle

 

查看oracle用户

    id oracle

初始化oracle用户密码

   echo oracle | passwd --stdin  oracle

 

 

(四)    优化OS内核参数

vim /etc/sysctl.conf

    fs.aio-max-nr = 1048576
    fs.file-max = 6815744

#(RAM:操作系统的物理内存,这里以2G内存为例)  

# kernel.shmmax=RAM*80%*1024*1024*1024

     # kernel.shmall=(RAM*1024*1024)/4
       kernel.shmall = 2097152
  kernel.shmmax = 1717986918
  kernel.shmmni = 4096
  # semaphores: semmsl, semmns, semopm, semmni
  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=1048586

kernel.panic_on_oops = 1                      12c需要

使参数生效

sysctl -p

 

 

(五)    限制oracle用户的shell权限

     vim /etc/security/limits.conf

    oracle  soft    nproc  2047
       oracle  hard   nproc  16384
       oracle  soft    nofile   4096
       oracle  hard   nofile   65536
       oracle  soft   stack  10240

    oracle  soft  memlock  134217728

     vim /etc/pam.d/login

         session required /lib64/security/pam_limits.so

         session required pam_limits.so

     vim /etc/profile     #末尾增加

      if [ $USER = "oracle" ]; then

       if [ $SHELL = "/bin/ksh" ]; then

         ulimit -p 16384

         ulimit -n 65536

        else

         ulimit -u 16384 -n 65536

        fi

      fi

(六)    创建oracle安装目录

      mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1

     mkdir /u01/app/oracle/oradata

     mkdir /u01/app/inventory   //12c不支持在$ORACLE_BASE中,故在app目录中

     mkdir /u01/app/oracle/ flash_recovery_area

     chown -R oracle:oinstall /u01/app

     chmod -R 775 /u01/app

 

(七)    配置oracle用户环境变量

su - oracle

     vim .bash_profile

            umask 022

            export ORACLE_HOSTNAME=oracle.example.com

            export ORACLE_BASE=/u01/app/oracle

            export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

            export ORACLE_SID=orcl

export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH

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

            export LC_ALL="en_US"     

            export LANG="en_US"

            export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

            export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

                                                                        

     以上配置完成后,个人建议重启下系统

     reboot

 

 

(八)    静默安装

解压oracle压缩文件

       cd /tmp   #oracle包提前拷贝到此处的,若安装包在其他位置,则需要改变目录

     unzip linux.x64_11gR2_database_1of2.zip -d /u01

     unzip linux.x64_11gR2_database_2of2.zip -d /u01

配置安装应答文件

       mkdir /u01/etc/

     cp /u01/database/response/* /u01/etc/

      vim /u01/etc/db_install.rsp               #将里面一些字段修改与下面的对应

        oracle.install.option=INSTALL_DB_SWONLY     //类型为安装

      UNIX_GROUP_NAME=oinstall                  //组

      INVENTORY_LOCATION=/u01/app/inventory   //其他文件等存放位置

      SELECTED_LANGUAGES=en,zh_CN             //查询语言

      ORACLE_HOSTNAME=oracle.example.com     //主机名

      ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1   //安装目录

      ORACLE_BASE=/u01/app/oracle               //主目录

      oracle.install.db.InstallEdition=EE             //企业版本

      oracle.install.db.isCustomInstall=true         //自定义组件

      oracle.install.db.DBA_GROUP=dba           //dba组

      oracle.install.db.OPER_GROUP=dba          //oper组

oracle.install.db.OSDBA_GROUP=dba         //12c有此选项,需要选

oracle.install.db.OSOPER_GROUP=dba

oracle.install.db.OSBACKUPDBA_GROUP=dba

oracle.install.db.OSDGDBA_GROUP=dba

oracle.install.db.OSKMDBA_GROUP=dba

oracle.install.db.OSRACDBA_GROUP=dba

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE  //数据库类型

racle.install.db.config.starterdb.globalDBName=orcl     //全局实例名

oracle.install.db.config.starterdb.SID=orcl               //实例名

#oracle.install.db.config.starterdb.memoryLimit=81920   

//自动管理内存大小,一般为物理内存的40%,11g新特性可以自动调节,可以不设置

oracle.install.db.config.starterdb.password.ALL=ccense

 //设定所有用户使用同一个密码

DECLINE_SECURITY_UPDATES=true          //安全更新,11g的bug,必须为true

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false    //不设置metalink密码

 

开始安装

       su - oracle

     ./runInstaller -silent -responseFile /u01/etc/db_install.rsp –ignorePrereq

 

    安装期间可以使用tail命令监看oracle的安装日志

     tail -f /u01/app/oracle/inventory/logs/installActions2017-07-12_03-48-29PM.log

     路径根据提示查看,例如12c可能提示在/tmp目录下

 

 

安装完成,提示Successfully Setup Software.
根据提示完成配置(使用root运行两个shell脚本)

 

 

执行root脚本完成安装

      su -  root

     sh /u01/app/oracle/inventory/orainstRoot.sh   #根据提示,可能路径不一样

     sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh

 

 

配置静默监听

      #netca.rsp 不用修改,默认即可,可以查看其中不带注释的内容应该如下:

[GENERAL]

RESPONSEFILE_VERSION="11.2"

CREATE_TYPE="CUSTOM"

[oracle.net.ca]

INSTALLED_COMPONENTS={"server","net8","javavm"}

INSTALL_TYPE=""typical""

LISTENER_NUMBER=1

LISTENER_NAMES={"LISTENER"}

LISTENER_PROTOCOLS={"TCP;1521"}

LISTENER_START=""LISTENER""

NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}

NSN_NUMBER=1

NSN_NAMES={"EXTPROC_CONNECTION_DATA"}

NSN_SERVICE={"PLSExtProc"}

NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}

配置监听

su - oracle

   netca -silent -responsefile /u01/etc/netca.rsp

 

 

     查看监听端口

     netstat -tnulp | grep 1521
    如果提示没有 netstat 命令,请 yum install net-tools -y

 

 

准备静默建库

注:TOTALMEMORY 默认的为物理内存的40%,可以手动更改

修改建库自动响应脚本

      vim /u01/etc/dbca.rsp   #修改字段对应

        GDBNAME = orcl

      SID = orcl

      SYSPASSWORD = ccense              #各用户密码,自己设置

       SYSTEMPASSWORD = ccense

      SYSMANPASSWORD = ccense

      DBSNMPPASSWORD = ccense

      DATAFILEDESTINATION =/u01/app/oracle/oradata

TEMPLATENAME=General_Purpose.dbc  

listeners=LISTENER

      RECOVERYAREADESTINATION=/u01/app/oracle/flash_recovery_area

      CHARACTERSET = " ZHS16GBK"

      #TOTALMEMORY = "1638"      //12c不设置

执行静默建库

       dbca -silent -responseFile /u01/etc/dbca.rsp      //11g执行

  dbca -silent -createDatabase  -responseFile  /u01/etc/dbca.rsp  //12c

 

 

查看oracle实例进程

        ps -ef | grep ora_ | grep -v grep

 

 

(九)    图形化安装

[oracle@oracle ~]$ export DISPLAY=192.168.10.1:0.0

[oracle@oracle ~]$ ./database/runInstaller // 执行安装程序

开始安装

跳过 email 登录

当然如果有购买也可以登陆

 

跳过更新

 

只安装软件(后期使用 DBCA 或手工建库)

 

单实例安装(后面是集群安装和集群节点)

 

英文和简体中文

 

 

选择安装企业版

 

这里是我们前面写的环境变量生效的结果,确认直接下一步

 

产品安装清单和用户组,这路路径要是报错就改成/u01/app/oracle/inventory即可

 

Oracle 系统参数检测及修改,当出现点击需要修复读警告,选择 Fix& Check Again 进行修复

 

运行脚本 复制脚本,以 root 用户执行,执行成功后点击 OK 完成修复

[root@oracle ~]# /tmp/CVU_11.2.0.4.0_oracle/runfixup.sh

注意:如果是有组件需要安装,在生产环境是不能忽略的,需要全部安装,安装步骤:

[root@oracle ~]# yum -y install xxxx

 

完成以下步骤,进行安装

 

这里出现报错,此报错为 Oracle 在 RHEL7 上允许的漏洞,需要修改参数

 

[oracle@oracle ~]$ vi  /u01/app/oracle/product/11.2.0.4/dbhome_1/sysman/lib/ins_emagent.mk

 //后面添加 "-lnnz11"字段。

 

修改后点击 Retry 重试

 

 

完成安装

Oracle 让我们安装脚本,两个脚本完成后点击 OK 继续,第二个脚本一路按回车。

 

创建监听

[oracle@oracle ~]#netca    //在图形化界面填入地址和sid直接下一步

建库

开始建库

[oracle@oracle ~]#dbca     //弹出图形化界面

 

创建数据库

 

设置全局名和 SID(实例名)

 

配置 EM,反选

 

配置系统用户密码

我选择了全部都设置为一个密码,在生产中,建议各个密码不一样而且复杂

 

存储类型设置(选择 File System)

 

设置需要分配 Oracle 内存的大小

 

字符集设置建议为(ZHS16GBK)

 

 

下一步

 

开始创建点击 Finish

 

配置完成 exit 退出

 

(十)    查看数据库基本信息

查看监听状态

lsnrctl status

 

查看数据库状态

sqlplus / as sysdba

select status from v$instance;

 

查看实例状态

      sqlplus / as sysdba

      select status from v$instance;

 

 

查看数据库编码

select userenv('language') from dual;

 

查看数据库版本信息

select * from v$version;

 

(十一)    其他错误

出现以下情况,解决方式如下:输入startup,根据提示信息,将$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.xxx形式的文件copy到$ORACLE_HOME/dbs目录下init{sid}.ora(根据startup提示)即可。

 

如果是图形化界面安装可能会出现错误:

可能会出现的两个错误:ins_ctk.mk错误

修改/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk,将

ctxhx: $(CTXHXOBJ)

      $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)  //11行

修改为:

ctxhx: $(CTXHXOBJ)

      -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a

点击Retry继续安装

 

接着又出现”Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk.' ,

解决方法:在makefile中添加链接libnnz11库的参数,修改/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk,将

$(MK_EMAGENT_NMECTL)

修改为:$(MK_EMAGENT_NMECTL) -lnnz11       //190行左右

点击Retry继续安装。

 

安装成功!

 

(十二)    设置Oracle开机启动

 修改 oratab文件

vim /etc/oratab

把最下面要启动的实例设置成 Y

orcl:/home/oracle/app/oracle/product/12.2.0/dbhome_1:Y

 

编写启动服务

标红色的地方请替换为$ORACLE_HOME 的绝对路径

[root@localhost system]# vim /usr/lib/systemd/system/oracle.service

[Unit]

Description=Oracle Database 11g Startup/Shutdown Service

After=syslog.target network.target

 

[Service]

LimitMEMLOCK=infinity

LimitNOFILE=65535

Type=oneshot

RemainAfterExit=yes

 

User=oracle

Group=oinstall

Environment="ORACLE_HOME=$ORACLE_HOME"

ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME >> 2>&1 &

ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME 2>&1 &

 

[Install]

WantedBy=multi-user.target

 

执行命令使服务生效

使用服务生效:systemctl daemon-reload

开始服务:systemctl start oracle.service

停止服务:systemctl stop oracle.service

查看状态:systemctl status oracle.service

开机自启动服务:systemctl enable oracle.service


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM