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