Centos安裝Oracle及問題處理

安裝Oracle前準備

建立運行oracle數據庫的系統用戶和用戶組

[jonathan@localhost ~]$ su root  #切換到root
Password:
[root@localhost]# groupadd oinstall  #建立用戶組oinstall
[root@localhost]# groupadd dba  #建立用戶組dba
[root@localhost]# useradd -g oinstall -g dba -m oracle  #建立oracle用戶,並加入到oinstall和dba用戶組
[root@localhost]# passwd oracle  #設置用戶oracle的登錄密碼,不設置密碼,在CentOS的圖形登錄界面無法登錄
Changing password for user oracle.
New password:   # 密碼
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:   # 確認密碼
passwd: all authentication tokens updated successfully.
[root@localhost]# id oracle # 查看新建的oracle用戶
uid=1001(oracle) gid=1002(dba) groups=1002(dba)

  

建立oracle數據庫安裝目錄

[jonathan@localhost ~]$ su root
Password:
[root@localhost]# mkdir -p /data/oracle  #oracle數據庫安裝目錄
[root@localhost]# mkdir -p /data/oraInventory  #oracle數據庫配置文件目錄
[root@localhost]# mkdir -p /data/database  #oracle數據庫軟件包解壓目錄
[root@localhost]# cd /data
[root@localhost data]# ls  #建立完畢檢查一下(強迫症)
database  oracle  oraInventory
[root@localhost data]# chown -R oracle:oinstall /data/oracle  #設置目錄全部者爲oinstall用戶組的oracle用戶
[root@localhost data]# chown -R oracle:oinstall /data/oraInventory
[root@localhost data]# chown -R oracle:oinstall /data/database

  

修改OS系統標識

oracle默認不支持CentOS系統安裝,Oracle Database 11g Release 2 的 OS要求參考:linkhtml

修改文件 /etc/RedHat-releasejava

[root@localhost data]# cat /proc/version
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015
[root@localhost data]# cat /etc/redhat-release  
CentOS Linux release 7.1.1503 (Core)
[root@localhost data]# vi /etc/redhat-release
[root@localhost data]# cat /etc/redhat-release
redhat-7
[root@localhost data]#

  

下載oracle數據庫所須要的軟件包

下載地址 :https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html?intcmp=ocom-hp-0219python

把file1 和file2 下載下來linux

下載完成後,使用Xftp 軟件上傳到centos中,我這裏放在(/home/oracle)目錄中(這裏不進行操做說明)數據庫

 

關閉防火牆

CentOS 7.2默認使用的是firewall做爲防火牆vim

[root@localhost /]# systemctl status firewalld.service  #查看防火牆狀態,運行中
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-04-07 18:54:29 PDT; 2h 20min ago
 Main PID: 802 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─802 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
[root@localhost /]# systemctl stop firewalld.service  #關閉防火牆
[root@localhost /]# systemctl status firewalld.service  #再次查看防火牆狀態,發現已關閉
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Thu 2016-04-07 21:15:34 PDT; 9s ago
 Main PID: 802 (code=exited, status=0/SUCCESS)

Apr 07 18:54:25 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Apr 07 18:54:29 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Apr 07 21:15:33 localhost systemd[1]: Stopping firewalld - dynamic firewall daemon...
Apr 07 21:15:34 localhost systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@localhost /]# systemctl disable firewalld.service  #禁止使用防火牆(重啓也是禁止的)
Removed symlink /etc/systemd/system/dbus-org.Fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@localhost /]#

  

關閉selinux(需重啓生效)
[root@localhost /]# vi /etc/selinux/config
[root@localhost /]# cat /etc/selinux/configcentos

將 SELINUX=disabled #此處修改成disabled

bash

修改內核參數

[root@localhost /]# vi /etc/sysctl.conf服務器

在最下面添加如下內容:網絡

net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #設置最大打開文件數
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享內存的總量,8G內存設置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享內存的段大小
kernel.shmmni = 4096 #整個系統共享內存端的最大數
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可以使用的IPv4端口範圍
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

  

使配置參數生效

[root@localhost /]# sysctl -p
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
sysctl: setting key "fs.file-max": Invalid argument
fs.file-max = 6815744 #設置最大打開文件數
fs.aio-max-nr = 1048576
sysctl: setting key "kernel.shmall": Invalid argument
kernel.shmall = 2097152 #共享內存的總量,8G內存設置:2097152*4k/1024/1024
sysctl: setting key "kernel.shmmax": Invalid argument
kernel.shmmax = 2147483648 #最大共享內存的段大小
sysctl: setting key "kernel.shmmni": Invalid argument
kernel.shmmni = 4096 #整個系統共享內存端的最大數
kernel.sem = 250 32000 100 128
sysctl: setting key "net.ipv4.ip_local_port_range": Invalid argument
net.ipv4.ip_local_port_range = 9000 65500 #可以使用的IPv4端口範圍
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
[root@localhost /]#

  

配置用戶的環境變量

[root@localhost /]# vi /home/oracle/.bash_profile 
添加如下內容:

export ORACLE_BASE=/data/oracle #oracle數據庫安裝目錄
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle數據庫路徑
export ORACLE_SID=orcl #oracle啓動數據庫實例名
export ORACLE_TERM=xterm #xterm窗口模式安裝
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系統環境變量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系統環境變量
export LANG=en_US #防止安裝過程出現亂碼
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  #設置Oracle客戶端字符集

  

生效

[root@localhost /]# source /home/oracle/.bash_profile

解壓安裝包

[oracle@localhost /]$ cd /home/oracle  #進入/home/oracle目錄(以前使用Xftp上傳的位置)
[oracle@localhost src]$ ls
linux.x64_11gR2_database_1of2.zip  linux.x64_11gR2_database_2of2.zip
[oracle@localhost src]$ unzip linux.x64_11gR2_database_1of2.zip -d /data/database/  #解壓
(省略...)
[oracle@localhost src]$ unzip linux.x64_11gR2_database_2of2.zip -d /data/database/  #解壓
(省略...)
[oracle@localhost src]$ su root
Password:
[root@localhost src]# chown -R oracle:oinstall /data/database/database/

  

oracle安裝

登陸oracle用戶

退出當前用戶 登陸oracle用戶

啓動oralce安裝

到/data/database/database/目錄下,執行./runInstaller

會啓動圖形界面進行安裝

彈出圖形安裝界面,安裝數據庫軟件和實例

 

點擊下一步

 

點擊下一步

實際開發中,服務器沒有圖形界面,咱們選擇服務類安裝,下一步

 

 不須要集羣,選擇單實例安裝,下一步

下一步

選擇語言,下一步

下一步

選擇目錄,下一步

下一步

下一步

 

內存

字符集

下一步

下一步

下一步

設置密碼

下一步

先決條件檢查,缺乏依賴包(直接忽略 進行安裝)

 

 

finish配置完成

等待安裝完成

安裝成功以後,會彈出這個界面:

設置密碼

 

而後會讓你以root身份登陸終端,執行如下腳本。

執行腳本:

[root@localhost myos]su root

[root@localhost myos]# cd /home/myos/application/oracle/oraInventory

[root@localhost oraInventory]# sh orainstRoot.sh

[root@localhost oraInventory]# cd /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1

[root@localhost dbhome_1]# sh root.sh

  

安裝完成

 

上面安裝成功以後,服務監聽和本地網絡服務應該是就配置好了,我實際安裝的過程當中都會提示服務名稱已經存在。若是沒有的話,咱們能夠按照下面的步驟進行配置。

15. 配置監聽

打開終端,輸入:

[root@localhost dbhome_1]# netca

Oracle Net Services Configuration:

彈出界面:

 

建立監聽服務(充當oracle服務器,讓別的oracle客戶端鏈接本oracle服務器)

 

 

 

 

 

 

配置本地網絡服務

配置本地網絡服務名(充當oracle客戶端,鏈接別的oracle服務器)

 

我填的是本身服務器的名稱,不知道填其餘服務器的ip可不能夠

 進行鏈接測試

 

鏈接成功

 

到此就配置完畢了。

查看監聽狀態

[myos@localhost ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-APR-2018 18:06:52

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date                05-APR-2018 17:41:44

Uptime                    0 days 0 hr. 25 min. 8 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   

/home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

Listener Log File         

home/myos/application/oracle/oracle/diag/tnslsnr/localhost/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))

Services Summary...

Service "orcl" has 1 instance(s).

  Instance "orcl", status READY, has 1 handler(s) for this service...

Service "orclXDB" has 1 instance(s).

  Instance "orcl", status READY, has 1 handler(s) for this service...

The command completed successfully

  其中:

一、Linux oracle數據庫listener.ora存放路徑

/home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

二、Linux oracle數據庫tnsnames.ora存放路徑

/home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

三、ORACLE啓動監聽器
(1)切換至普通安裝用戶(個人是myos)
su - myos 
(2)啓動監聽器
lsnrctl start 
(3)中止監聽器
lsnrctl stop

   Linux啓動時自動啓動Oracle監聽和實例

第一步:修改/etc/oratab文件

第一步:修改/etc/oratab文件

[oracle@localhost ~]$ vim /etc/oratab    //若是沒有這個文件,下面問題有說明
找到:   orcl:/data/oracle/oracle/product/11.2.0/db_1:N      
修改成: orcl:/data/oracle/oracle/product/11.2.0/db_1:Y
(每一個人安裝路徑不必定同樣)

第二步:把lsnrctl start和dbstart添加到rc.local文件中:

root權限執行

[root@localhost oracle]# vim /etc/rc.d/rc.local

添加:

su - oracle -lc "/data/oracle/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su - oracle -lc "/data/oracle/oracle/product/11.2.0/db_1/bin/dbstart"

說明:

第一行爲開機啓動數據庫監聽服務,第二行爲開機啓動數據庫。(路徑跟安裝路徑相關)。

注意:CentOs7中/etc/rc.d/rc.local不會開機執行,需添加執行權限。

查看/etc/rc.d/rc.local的權限

[root@localhost oracle]# ll /etc/rc.d/rc.local

添加執行權限

[root@localhost oracle]# chmod +x /etc/rc.d/rc.local

完成。

 

問題一  

若是使用Navicat Premium軟件遠程鏈接不了Centos的Oracle數據庫

出現:「ORA-12514 TNS 監聽程序當前沒法識別鏈接描述符中請求服務」

具體操做步驟以下:

1、修改數據庫服務器中listener.ora文件內容

命令:

[oracle@localhost admin]$ vi /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
修改成:

# listener.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.


SID_LIST_LISTENER =
  (SID_LIST =
      (SID_DESC =
         (GLOBAL_DBNAME = orcl)
         (ORACLE_HOME = /data/oracle/product/11.2.0/db_1)
         (SID_NAME = orcl)
      )
   )
LISTENER =
    (DESCRIPTION =
         (ADDRESS =
             (PROTOCOL = TCP)
                (HOST = 192.168.0.102) #這裏爲centos的ip地址
                (PORT = 1521)
         )
     )

ADR_BASE_LISTENER = /data/oracle

 

2、修改數據庫服務器中tnsnames.ora文件內容

命令:

[oracle@localhost admin]$ vi /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

修改成:

# tnsnames.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.


rcl =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.102)(PORT = 1521))  #這裏的host爲centos的ip地址

    )

    (CONNECT_DATA =

      (SID = orcl)

    )

  )
                                                                                      

  修改完成。

重啓監聽

lsnrctl start

 

使用Navicat Premium軟件遠程鏈接

便可鏈接成功

 

 問題二

遠程鏈接oracle數據庫出現
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Process ID: 0
Session ID: 0 Serial number: 0

解決方式

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

  

問題三

遠程鏈接Oracle出現
ora-01033:oracle initializationg or shutdown in progress  

解決

lsnrctl start  //啓動數據庫監聽

  

問題四

 /etc/oratab 文件不存在

解決

緣由是安裝oracle的時候,忘記去執行 一個root.sh文件了 找到該文件 執行 ./root.sh
相關文章
相關標籤/搜索