1. 程式人生 > >Oracle 18c 單例項安裝手冊 詳細截圖版

Oracle 18c 單例項安裝手冊 詳細截圖版

1. 安裝前準備工作
1.1. 系統要求

Linux下Oracle資料庫安裝的最低伺服器配置要求:

系統要求 說明
記憶體 DB:至少少1G,建議大小8G。
Grid:至少8G。
臨時空間 /tmp目錄中至少有1 GB的空間
Swap空間 1 GB~2 GB:記憶體的1.5倍
2 GB~16 GB:與記憶體相同
超過16 GB:16 GB
注意:如果為Linux伺服器啟用HugePages,則應在計算交換空間之前從可用記憶體中扣除分配給HugePages的記憶體。
Oracle軟體的最小本地磁碟儲存空間 對於Linux x86-64:
對於獨立伺服器安裝,Oracle Grid Infrastructure至少為6.8 GB。
Oracle資料庫企業版至少7.5 GB。
Oracle Database Standard Edition 2至少為7.5 GB。
1.2. 檢查和配置Oracle資料庫的伺服器硬體

1)檢查實體記憶體大小:

[[email protected].cndba.cn ~]# grep MemTotal /proc/meminfo
MemTotal:        3882124 kB

2)檢查交換空間的大小:

[[email protected].cndba.cn ~]# grep SwapTotal /proc/meminfo
SwapTotal:       4194300 kB

3)檢查/tmp目錄大小:

[root@www.cndba.cn ~]# df -h /tmp
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/rhel_host1-root 46G 22G 25G 47% /

如果/ tmp目錄中的可用空間小於所需的可用空間,請完成以下步驟之一:
1. 1) 從/ tmp目錄中刪除不需要的檔案以滿足磁碟空間要求。
2. 2) 設定Oracle使用者的環境時,還要將TMP和TMPDIR環境變數設定為要使用的目錄而不是/tmp。

4)檢查系統上的可用記憶體和磁碟交換空大小:

[[email protected].cndba.cn ~]# free
              total        used        free      shared  buff/cache   available
Mem:
3882124 1249092 307064 1217640 2325968 1141792 Swap: 4194300 33592 4160708

5)確定系統架構:

[[email protected].cndba.cn ~]# uname -m
x86_64

驗證處理器架構是否與要安裝的Oracle軟體版本匹配。如果沒有看到預期的輸出,則無法在此係統上安裝該軟體。
6)驗證是否正確安裝了足夠大小的共享記憶體(/dev/shm):

[root@www.cndba.cn ~]# df -h /dev/shm
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           1.9G  1.2G  712M  63% /dev/shm

df-h命令顯示掛載/dev/shm的檔案系統,並以GB顯示共享記憶體的總大小和可用大小。

1.3. 配置安裝環境
1.3.1. 通過Oracle的RPM包來配置作業系統

如果你的作業系統是Oracle Linux或者RedHat Linux,那麼你可以通過Oracle RPM包來完成絕大部分的作業系統的配置Oracle Linux 6和Oracle Linux 7有該RPM包。掛載Oracle Linux 6和Oracle Linux 7映象執行:

# yum install oracle-database-preinstall-18c

或者下載rpm包手動安裝例如Oracle Linux 7包是oracle-database-preinstall-18c-1.0-4.el7.x86_64.rpm。
Oracle Linux自動建立標準(非角色分配)Oracle安裝所有者和組,並根據Oracle安裝的要求設定其他核心配置設定。
檢查RPM日誌檔案以檢視系統配置更改。例如,在Oracle Linux 7上:

/var/log/oracle-database-preinstall-18c/backup/timestamp/orakernel.log
1.3.2. 手動配置
1.3.2.1. 配置本地yum源
[[email protected].cndba.cn yum.repos.d]# cat cndba.repo 
[www.cndba.cn]
name=CNDBA.CN YUM Server
baseurl=file:///mnt
gpgcheck=0
enabled=1
1.3.2.2. 掛載映象
[[email protected].cndba.cn yum.repos.d]# mount -t auto -o ro /dev/cdrom /mnt/
[[email protected].cndba.cn yum.repos.d]#  yum clean all
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: www.cndba.cn
Cleaning up everything
1.3.2.3. 配置/etc/hosts
[[email protected].cndba.cn ~]# vim /etc/hosts
192.168.1.51 cndba
1.3.2.4. 安裝作業系統必備的軟體包
yum install binutils gcc gcc-c++  compat-libstdc++-33 glibc  glibc.i686  glibc-devel  ksh libgcc.i686   libstdc++-devel  libaio  libaio.i686  libaio-devel  libaio-devel.i686  libXtst  libXtst.i686  libX11  libX11.i686 libXau  libXau.i686  libxcb  libxcb.i686  libXi  libXi.i686  make  sysstat  compat-libcap1 –y

RedHat7.*的映象檔案中沒有compat-libstdc包,需要手動安裝

[root@www.cndba.cn software]# rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm 
warning: compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:compat-libstdc++-33-3.2.3-72.el7 ################################# [100%]
1.3.2.5. 配置Linux的系統引數

1) 配置Linux的核心引數

[[email protected].cndba.cn ~]# vim /etc/sysctl.conf 
新增以下內容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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

shmall大於或等於shmmax的值,以頁為單位。shmmax實體記憶體大小的一半(以位元組為單位)
用root使用者執行sysctl -p 使修改生效。

[[email protected] ~]# sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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

2) 設定 Oracle 使用者的 Shell 限制

[root@www.cndba.cn ~]# 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
oracle  hard  stack  32768
oracle soft memlock 3145728
oracle hard memlock 3145728

注意:
limits.conf 檔案發生更改時,這些更改立即生效。但是,如果 Oracle 使用者已登入,
則這些更改將在登出這些使用者並重新登入之後生效。必須先完成此操作,然後再使用這些帳戶進行安裝。
3) 設定PAM
確保載入了最新版本的 PAM,然後在 /etc/pam.d/login 檔案中新增或編輯以下行:

[[email protected].cndba.cn ~]# vim /etc/pam.d/login
新增以下內容
session required pam_limits.so

4) 關閉防火牆/SELINUX

--關閉防火牆
[[email protected].cndba.cn ~]# systemctl stop firewalld
[[email protected].cndba.cn ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
--關閉SELINUX
[[email protected].cndba.cn ~]# vi /etc/selinux/config
[[email protected].cndba.cn ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
1.4. 建立使用者和組
[[email protected].cndba.cn ~]# /usr/sbin/groupadd -g 54321 oinstall
[[email protected].cndba.cn ~]# /usr/sbin/groupadd -g 54322 dba
[[email protected].cndba.cn ~]# /usr/sbin/groupadd -g 54323 oper
[[email protected].cndba.cn ~]# /usr/sbin/useradd -u 54321 -g oinstall -G dba,oper oracle
[[email protected].cndba.cn software]# passwd oracle

然後,可以使用ID命令驗證要使用的Oracle安裝所有者是否將Oracle Inventory組作為其主要組。例如:

[oracle@cndba ~]$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper)
1.5. 建立目錄

建立Oracle Home

[[email protected].cndba.cn ~]# mkdir -p /u01/app/oracle/product/18.3.0/dbhome_1
[[email protected].cndba.cn ~]# chown -R oracle:oinstall /u01
[[email protected].cndba.cn ~]# chmod -R 775 /u01/
1.6. 設定環境變數

切換到oracle使用者下執行vim .bash_profile編輯.bash_profile檔案新增以下內容:

[[email protected] ~]$ vim .bash_profile
ORACLE_SID=cndba;export ORACLE_SID  
ORACLE_UNQNAME=cndba;export ORACLE_UNQNAME
JAVA_HOME=/usr/local/java; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/18.3.0/dbhome_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="YYYY:MM:DDHH24:MI:SS"; export NLS_DATE_FORMAT
#NLS_LANG=american_america.ZHS16GBK; export NLS_LANG
export NLS_LANG=AMERICAN_AMERICA.UTF8
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export CLASSPATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/tmp
export TMPDIR=/tmp
umask 022

使設定的環境變數生效

[oracle@cndba ~]$ source .bash_profile
2. 安裝資料庫軟體

注意:將安裝檔案解壓到Oracle Home下,這裡和Oracle 18c之前的版本不同,之前的版本解壓的安裝檔案可以在任何位置,Oracle 解壓的安裝檔案必須在Oracle Home下。因為僅從Oracle home執行runInstaller命令。不要從任何其他位置執行runInstaller。

[[email protected].cndba.cn software]# chown oracle:oinstall LINUX.X64_180000_db_home.zip
[[email protected].cndba.cn software]# su - oracle
[[email protected] software]$ ll
total 4457668
-rw-r--r--. 1 oracle oinstall 4564649047 Jul 30 10:14 LINUX.X64_180000_db_home.zip
[[email protected] software]$ unzip -d /u01/app/oracle/product/18.1.0/dbhome_1/ LINUX.X64_180000_db_home.zip

切換到Oracle使用者進去Oracle Home目錄執行./runInstaller安裝Oracle 18c資料庫軟體

[oracle@cndba dbhome_1]$ cd /u01/app/oracle/product/18.1.0/dbhome_1/
[oracle@cndba dbhome_1]$ ./runInstaller
2.1. 選擇僅安裝型別

這裡選擇安裝資料庫軟體,軟體安裝成功之後在通過執行DBCA命令建立資料庫,如果選擇第一個則資料庫會一起被建立。

2.2. 選擇安裝資料庫型別

這裡選擇安裝單例項

2.3. 選擇資料庫版本

選擇企業版

2.4. Oracle 軟體安裝位置

2.5. 建立Inventory


2.6. 執行先決條件檢查


根據提示資訊可以發現Oracle 建議使用8G記憶體,當前只有4G,忽略繼續下一步。

2.7. 執行安裝


2.8. 在作業系統root使用者下執行以下兩個指令碼

[[email protected] ~]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[[email protected] ~]# /u01/app/oracle/product/18.1.0/dbhome_1/root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/18.1.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : 
yes
Installing Oracle Trace File Analyzer (TFA).
Log File: /u01/app/oracle/product/18.1.0/dbhome_1/install/root_cndba_2018-07-30_12-58-38-721171897.log
Finished installing Oracle Trace File Analyzer (TFA)

安裝成功退出即可。

3. DBCA建立資料庫

可以通過手動執行命令方式來建立資料庫,也可通過DBCA來建立。推薦是使用DBCA方式,方便而且不容易出錯。

3.1. 執行DBCA命令建立資料庫

在Oracle使用者下執行DBCA命令建立資料庫

[oracle@cndba dbhome_1]$ dbca


第一次安裝的時候只能選擇上面兩項,如果已經建立資料庫,則Delete database選擇可以選擇執行刪除資料庫。

3.2. 選擇資料庫建立方式

選擇高階配置,很多選項可以自定義。

3.3. 選擇資料庫開發型別

選擇一般用途

3.4. 指定資料庫標識

這裡可以選擇建立CDB資料庫,可以選擇建立空CDB或者可以選擇建立CDB和一個或多個PDB並輸入PDB名稱。

3.5. 指定資料檔案存放位置

因為這裡單例項所以放在本地檔案系統。

3.6. 選擇閃回區選項

指定閃回區位置及大小及是否開啟歸檔

3.7. 選擇網路配置

這裡如果選擇建立新的監聽,則資料庫會自動建立個新監聽。不用建立完資料庫在用netca手動建立監聽。

3.8. 選擇Oracle Data Vault 配置選項

3.9. 配置記憶體程序字符集等選項

配置記憶體大小

在典型安裝期間,使用Oracle Database Configuration Assistant(DBCA)建立資料庫,並啟用自動記憶體管理。如果選擇“高階安裝”,則可以手動指定記憶體分配,也可以啟用自動記憶體管理。
如果資料庫例項的總實體記憶體大於4 GB,則在資料庫安裝和建立期間無法選擇Oracle自動記憶體管理選項。而是使用自動共享記憶體管理。自動共享記憶體管理可根據需要自動在各種元件之間分配可用記憶體,從而允許系統最大限度地使用所有可用的SGA記憶體。
通過自動記憶體管理,Oracle資料庫例項可以自動為你管理和調整記憶體。通過自動記憶體管理,可以選擇memory target,,例項會自動在系統全域性區域(SGA)和例項程式全域性區域(例項PGA)之間分配記憶體。隨著記憶體需求的變化,例項會動態地在SGA和例項PGA之間重新分配記憶體。
可以在資料庫安裝期間或之後啟用自動記憶體管理。安裝後啟用自動記憶體管理涉及關閉並重新啟動資料庫。
注意:
預設情況下,在具有4 GB以上記憶體的節點上執行典型安裝時,將禁用自動記憶體管理。
配置程序數

配置字符集

當根的字符集是AL32UTF8時,插入(plugged into)CDB或克隆的PDB可以具有與根不同的字符集。從CDB seed建立的PDB從其繼承AL32UTF8,但可以將PDB遷移到其他字符集。
當根的字符集不是AL32UTF8時,CDB中的所有PDB都使用root的字符集。
Oracle建議CDB資料庫字符集使用AL32UTF8,CDB國家字符集使用AL16UTF16,因為它們提供了最大的靈活性。
為CDB選擇資料庫字符集時,必須考慮要合併(插入)到此CDB的資料庫的當前字符集。
配置連線模式
此處選擇專用伺服器模式

3.10. 是否開啟EM

3.11. 配置管理使用者密碼

這裡為管理使用者設定統一密碼,因為密碼簡單所以提示以下資訊。

3.12. 選擇建立資料庫選項

選擇建立資料庫

3.13. 建立資料庫

3.14. 資料庫建立成功

4. 配置監聽
4.1. 建立監聽服務

在DBCA建立資料庫的時候如果勾選建立新的監聽則會自動建立監聽,不需要在建立資料庫之後在使用netca手動建立監聽。

在命令列執行DBCA手動建立監聽





4.2. 啟用監聽服務

在Linux 作業系統登入Oracle執行命令netmgr,選擇要新增的監服務的監聽,這裡是預設建立的監聽。

在右上角現在資料庫服務。單機左下角的新增地址,介面入如下。修改對應的全域性資料庫名,Oracle Home,SID
對應修改為資料庫對應資訊。

單機檔案-儲存網路配置,即可完成網路配置。

4.3. 啟動和停止監聽

–停止監聽
在Linux作業系統上執行命令lsnrctl stop

[[email protected] ~]$ lsnrctl stop

LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 31-JUL-2018 00:59:01

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cndba)(PORT=1521)))
The command completed successfully

–啟動監聽
在Linux作業系統上執行命令lsnrctl start

[[email protected] ~]$ lsnrctl start

LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 31-JUL-2018 00:59:03

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

Starting /u01/app/oracle/product/18.1.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 18.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/18.1.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/cndba/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cndba)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cndba)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date                31-JUL-2018 00:59:03
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/18.1.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/cndba/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cndba)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "cndba" has 1 instance(s).
  Instance "cndba", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

–檢視監聽狀態
在Linux作業系統上執行命令lsnrctl status

[[email protected] ~]$ lsnrctl status

LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 31-JUL-2018 00:59:06

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cndba)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date                31-JUL-2018 00:59:03
Uptime                    0 days 0 hr. 0 min. 2 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/18.1.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/cndba/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=cndba)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "cndba" has 1 instance(s).
  Instance "cndba", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully