1. 程式人生 > >CentOS7.4靜默安裝Oracle,並通過工具遠端連線

CentOS7.4靜默安裝Oracle,並通過工具遠端連線

1.準備環境

1.工具Xshell用於操作CentOS7.4

2.CentOS7.4【虛擬機器】安裝oracle【oracle的版本是11g】

若用oracle 12c,環境依賴包可能會需要重新整理,另外安裝過程中dbca.rsp中的內容可能跟11g的有所出入,需要查閱文件調節

3.windows7【物理機】用於遠端訪問oracle

4.SqlDeveloper【windows7上安裝】

5.instantclient_12_2【oracle的client,windows上,用於連線oracle】

2.檢查相關的依賴包

 rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio  libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel  libXp  libXp-devel  libXpm  libXpm-devel

沒有的話通過yum install 下載

如yum install  gcc 

3.建立Oracle使用者和相應的屬組

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

 passwd oracle    

密碼暫定為oracle

4.建立目錄修改屬組和許可權

mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/inventory
mkdir -p /u01/app/oracle/fast_recovery_area
chown -R oracle.oinstall /u01/app/oracle

chmod -R 755 /u01/app/oracle

語句的作用依次為:前面建立的目錄主要作用為
Oracle家目錄、資料檔案存放位置,安裝日誌存放位置,快速恢復區
修改屬組,修改許可權

5.解壓oracle的軟體包

這裡的安裝包的目錄在/oracle/目錄下

# mkdir /oracle

# cd /oracle

# ls

database的檔案都應該在這個目錄下

6.修改伺服器的配置檔案

# vim  /etc/hosts

在檔案中加入

7.0.0.13 localhost  

這裡的ip是centos的ip,7.0.0.13

7.遠端連線需要開放埠,這裡為了方便起見,關閉防火牆;也可以開啟防火牆,在規則列表中開放1521埠

-----------

第一種:關閉防火牆  # systemctl stop firewalld

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

第二種:新增

# firewall-cmd --zone=public --add-port=1521/tcp --permanent    (--permanent永久生效,沒有此引數重啟後失效)

重新載入

# firewall-cmd --reload

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

【兩種選擇一種,生產環境不推薦關閉防火牆】

8.關閉selinux

-----

# vim /etc/selinux/config  

新增 SELINUX=disabled  ,若有SELINUX則將值設定成disabled

-----

9.修改核心引數

------

# vim /etc/sysctl.conf

-----

新增以下內容

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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

其中kernel.shmmax = 1073741824為本機實體記憶體(2G)的一半,單位為byte。

然後執行

-----

# sysctl –p  

-----

使配置生效

10.修改使用者限制檔案

----

# vim /etc/security/limits.conf

-----

新增以下內容

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

11.修改/etc/pam.d/login檔案

----

vim /etc/pam.d/login

-----

新增以下內容:

session required  /lib64/security/pam_limits.so
session required   pam_limits.so

經過這幾部配置伺服器資訊已經配置完。下面開始切換到Oracle使用者進行配置和安裝

12.切換Oracle使用者進行環境變數配置

---------切換並編輯 .bash_profile----

 su - oracle

 vim  ~/.bash_profile

----------新增環境變數---------

在檔案中新增
ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

ORACLE_SID=chngensis  【這句是可變的,根據自己的設定的資料庫例項名字】

PATH=$PATH:$ORACLE_HOME/bin

export  ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
 

儲存退出後使配置檔案生效

------使環境變數生效------

source  .bash_profile

-----------

12.編輯靜默安裝響應檔案

--------給oracle使用者授權使用/oracle目錄-----

chown  -R  oracle.oinstall  /oracle/

這裡的/oracle/目錄是之前的oracle下載目錄,第一步的時候已經建立

備份檔案【文中需要修改的rsp檔案,ora檔案最好備份一下】

cp  /oracle/database/response/db_install.rsp  /oracle/database/response/db_install.rsp.bak

然後編輯這個檔案

vim  /oracle/database/response/db_install.rsp

需要設定的選項如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME= diwuqingrou        #使用hostname命令檢視主機名,然後替換diwuqingrou,這裡填上
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba

DECLINE_SECURITY_UPDATES=true

通過find命令找到這些選項並設定上去

13.開始安裝【安裝過程長,需等待】

切換到oracle使用者,進入/oracle/database執行

su - oracle

cd /oracle/database 

./runInstaller -force -silent -noconfig -responseFile  /oracle/database/response/db_install.rsp  

14.安裝之後需要執行兩個指令碼【頁面有提示】

/u01/app/oracle/oraInventory/orainstRoot.sh

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

15.接下來是配置監聽器【確保路徑沒有錯】

配置監聽的時候可能會報錯

==========================oracle11G安裝過程中出錯=====================
****DISPLAY environment variable not set!
    Oracle Net Configuration Assistant is a GUI tool
    which requires that DISPLAY specify a location
    where GUI tools can display.

    Set and export DISPLAY, then re-run.

需要輸入下面的命令解決;

[[email protected] response]$ export DISPLAY=172.20.1.1:1.0

==================================================================

export  DISPLAY=172.20.1.1:1.0

netca -silent -responsefile   /oracle/database/response/netca.rsp

16.建立資料庫

---------

vim /oracle/database/response/dbca.rsp  

--------

【在檔案中分別找到對應的值填進去,當然GDBNAME,SID不是固定的[需跟環境變數中的相同],根據需要設定】

GDBNAME= "chngenesis"
SID ="chngenesis"
SYSPASSWORD= "oracle"
SYSTEMPASSWORD= "oracle"
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION=/u01/app/oracle/oradata
RECOVERYAREADESTINATION=/u01/app/oracle/fast_recovery_area
CHARACTERSET= "AL32UTF8"
TOTALMEMORY= "1638" 

修改時可能有些引數會有所改動,可自行百度。

其中TOTALMEMORY ="1638" 為1638MB,實體記憶體2G*80%。

建立資料庫;

dbca  -silent  -createDatabase   -responseFile  /oracle/database/response/dbca.rsp 

17.修改監聽器【這個監聽器是用於該虛擬機器連線的】

先備份:

cp /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora  /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora.bak

修改/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora,並將其中的host切換為本機的ip

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = chngenesis)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
        (PROGRAM = extproc)
    )
 (SID_DESC =
      (GLOBAL_DBNAME = chngenesis)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = chngenesis)
    )
)
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 7.0.0.13)(PORT = 1521))
    )
  )
ADR_BASE_LISTENER = /u01/app/oracle

先備份:

cp /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora  /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora.bak


修改/u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora中的host為本機的ip

LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = 7.0.0.13)(PORT = 1521))
chngenesis= 
(DESCRIPTION 
=(ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST =7.0.0.13)(PORT = 1521))
) (CONNECT_DATA = (SID = chngenesis)
 chngenesis
) ) )

18.配置遠端client連線【這裡提供windows】

下載地址:http://www.oracle.com/technetwork/topics/winx64soft-089540.html

1.在instantclient_12_2目錄中建立資料夾

我的目錄是在D:\Downloads\instantclient_12_2

在下面建立資料夾network,network下面建立admin

建立之後的路徑 D:\Downloads\instantclient_12_2\network\admin

在admin目錄建立tnsnames.ora檔案,接著在裡面新增

 chngenesis=

(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 7.0.0.13)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = chngenesis)
) )

HOST = 7.0.0.13應該換成對應虛擬機器centos的ip

2.新增一個環境變數

名為TNS_ADMIN,值為tnsnames.ora檔案所在路徑D:\Downloads\instantclient_12_2\network\admin,plsql通過這個找到orcl連線字串

名為NLS_LANG,值為SIMPLIFIED CHINESE_CHINA.ZHS16GBK

TNS_ADMIN=D:\Downloads\instantclient_12_2\network\admin
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

3.開啟PLSQL,不用登陸,找到工具-首選項-ORACLE-連線:勾選檢查連線
設定Oracle主目錄: D:\Downloads\instantclient_12_2

設定OCI庫:D:\Downloads\instantclient_12_2\oci.dll

19.回到centos7.4,在資料庫伺服器中啟動監聽並更新註冊

依次執行命令:

su - oracle   【切換到oracle使用者】

lsnrctl stop  【關閉監聽】

lsnrctl start  【開啟監聽   ---重要】

sqlplus / as sysdba; 【以管理員的身份登入】

shutdown immediate; 【關閉資料庫服務】

startup;  【開啟資料庫服務 ---重要】 

alter system register; 【註冊】

quit;【退出管理員】

lsnrctl status;【檢視監聽的狀態】

20.回到windows7,開啟sqlpdeveloper

輸入使用者名稱 sys 

密碼 oracle 【之前建立的是時候設定的】

資料庫:這裡填寫在D:\Downloads\instantclient_12_2\network\admin中tnsname.ora中定義的名字

我這裡是chngenesis

連線為,這個選項根據使用者的許可權選擇,sys是管理員,所以這裡選擇sysdba

點選確認就可以連線了

--------------配置oracle開機啟動-----------

1.vim  /etc/oratab    將這裡的N改成Y,如果是Y則不用改

chngenesis:/u01/app/oracle/product/11.2.0/db_1:Y

2. vim  /etc/rc.d/rc.local  新增如下兩行

su oracle -lc "/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"

su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart

3.centos7預設不會開機啟動這個,所以需要為其賦予相應的許可權

chmod +x /etc/rc.d/rc.local

自啟動的方式有很多種,這裡只是其中的一種,可以嘗試其他的方式

======================bug集合=================

檢視日誌時若發現

未找到包含資料檔案資訊的檔案 "/u01/app/oracle/oradata/Seed_Database.dfb"。請指定有效檔案。
 

cp  /u01/app/oracle/product/11.2.0/db_1/assistants/dbca/templates/Seed_Database.dfb   /u01/app/oracle/oradata/

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

出現少包的情況需要安裝相關的包,一般不會缺少

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

安裝過程中最好備份相關的ora檔案!切記!