Centos7.4安裝Oracle 10G數據庫

安裝前準備

  • 獲取軟件安裝包

    建議從官網下載,我這裏下載的版本是10.2.0.5.0,包含一個10.2.0.1.0版本包和一個10.2.0.5.0升級包

  • 關閉防火牆
    使用systemctl status firewalld命令查看防火牆狀態,下面是開啓時的狀態


    使用systemctl stop firewalld命令關閉防火牆,然後再次檢驗狀態

  • 禁用Selinux

    selinux的開啓包含很多權限方面限制,會給Linux初學者帶來不便,建議禁用

    編輯/etc/selinux/config文件SELINUX=enforcing改爲SELINUX=disabled,需要重啓生效

    sestatus -vgetenforce命令均可查看selinux狀態

  • 配置主機名

    編輯/etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.0.2.134 testhost
  • 創建用戶和組
groupadd dba
groupadd oinstall
useradd -g oinstall -G dba oracle
passwd oracle
  • 創建安裝目錄,更改目錄權限
mkdir -p /u01/app
chown -R oracle.oinstall /u01/
chmod 775 -R /u01
  • 修改oracle用戶限制參數

    /etc/security/limits.conf文件中添加以下內容

oracle  soft    nproc   10240
oracle  hard    nproc   16384
oracle  soft    nofile  10240
oracle  hard    nofile  65536
oracle  soft    memlock -1
oracle  hard    memlock -1
  • 配置共享內存段

    先修改共享內存段配置,在/etc/sysctl.conf文件中添加以下內容,再執行sysctl -p

vi /etc/sysctl.conf
kernel.shmmax = 524288000
kernel.shmall = 128000
# sysctl -p
  • 配置環境變量

    編輯/home/oracle/.bash_profile增加以下內容

export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32
export ORACLE_SID=myorcl;

然後執行source .bash_profile使環境變量生效

  • yum安裝依賴包
yum install -y binutils compat-db control-center gcc gcc-c++ glibc glibc-common gnome-libs libstdc++ libstdc++-devel make sysstat xscreensaver
yum install libXp.i686 libXp-devel.i686 libXt.i686 libXt-devel.i686 libXtst.i686 libXtst-devel.i686 make.x86_64 gcc.x86_64 libaio.x86_64 glibc-devel.i686 libgcc.i686 glibc-devel.x86_64 compat-libstdc++-33 -y
yum install glibc* gcc* make* compat-db* libstdc* libXp* libXtst* compat-libstdc++* -y

注意:xscreensaver有可能會安裝不成功,會導致無法啓動圖形界面,可以配置epel 和nux-dextop yum源,再yum安裝xscreensaver

開始安裝

使用Oracle用戶解壓安裝包,解壓完出現database目錄和path10205目錄

# mv 10.2.0.5.tar.gz /home/oracle
# cd /home/oracle
# chown oracle.oinstall 10.2.0.5.tar.gz
# su - oracle
$ tar -zxvf 10.2.0.5.tar.gz
$ ls
10.2.0.5.tar.gz  database  path10205

配置圖形界面(每次退出ssh後重進oracle用戶都需要配置一下,DISPLAY變量有可能會變化,有時候是11.0,有時候是12.0)

# export|grep DISPLAY
declare -x DISPLAY="localhost:10.0"
# su - oracle
$ declare -x DISPLAY="localhost:10.0"
$ xhost +
access control disabled, clients can connect from any host

進入database目錄並開始安裝
cd database && ./runInstaller

選擇Advanced Installation


選擇Next


選擇Enterprise Edition表示安裝企業版


選擇Next

選擇Next


選擇Yes

選擇Install database Software only 僅安裝軟件

選擇Install 開始安裝

選擇 Continue忽略報錯(連續出現兩個)

根據提示使用root用戶執行上圖中的兩個腳本,然後選擇OK

點擊Exit然後點Yes確認完成Oracle軟件安裝

執行sqlplus -V驗證數據庫版本,此時版本爲10.2.0.1.0

$ sqlplus -V

SQL*Plus: Release 10.2.0.1.0 - Production

接下來安裝10.2.0.5.0升級包,就是之前解壓生成的path10205目錄

$ ~/path10205/runInstaller

選擇Next

選擇Next

不勾選

選擇Yes,確認不輸入郵箱

選擇Next

選擇Yes

選擇Install,開始安裝


選擇Continue,忽略報錯(會出現兩次不同)

按照提示使用root用戶執行腳本,執行完成後選擇OK

選擇Exit,完成安裝


執行sqlplus -v驗證版本

$ sqlplus -v
SQL*Plus: Release 10.2.0.5.0 - Production

然後執行dbca命令進入建庫圖形界面

$ dbca

選擇Next

選擇Create a Database,創建數據庫

選擇General Purpose,表示通用目的,Data Warehouse表示數據倉庫,Transaction Processing表示在線事物處理

設定全局數據庫名和SID

一般不配置EM(Enterprise Manager),EM是一種基於網頁的數據庫管理工具,配置的話會比較慢

設定系統用戶的密碼,方便起見,這裏選擇全部設爲相同

一般選擇使用文件系統存放數據庫,也可以使用ASM或RAW設備,需要額外配置

選擇數據文件存放的位置,點擊Browse,然後選擇目錄

這裏使用/u01/app/oracle/oradata,改文件夾必須爲Oracle用戶所有

選擇是否啓用FRA,快速恢復區,是否啓用歸檔,可自由選擇

是否創建示例用戶

設置內存、SGA和PGA

設置塊大小、進程限制參數

選擇字符集(根據實際需求選擇、選定後無法更改

默認連接模式(共享或專有)

安裝配置概覽

勾選Create Database,點擊Finish

選擇OK,開始創建數據庫


點擊Exit,完成安裝

登陸驗證

$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Mon Aug 19 06:59:20 2019

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>select status from v$instance;

STATUS
------------
OPEN

打補丁

安裝完成後,打補丁(補丁號:7612454,自行上網搜索)

配置監聽

用oracle用戶執行netca命令啓動監聽配置圖形界面






lsnrctl status查看監聽狀態

$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 19-AUG-2019 22:20:53

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date                19-AUG-2019 22:08:18
Uptime                    0 days 0 hr. 12 min. 35 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File         /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Services Summary...
Service "myorcl" has 1 instance(s).
  Instance "myorcl", status READY, has 1 handler(s) for this service...
Service "myorclXDB" has 1 instance(s).
  Instance "myorcl", status READY, has 1 handler(s) for this service...
Service "myorcl_XPT" has 1 instance(s).
  Instance "myorcl", status READY, has 1 handler(s) for this service...
The command completed successfully

Sql developer驗證遠程連接,密碼爲創建數據庫時設置的所有用戶的統一密碼,sys用戶需要使用sysdba角色,普通用戶角色選默認值,端口號爲1521,是Oracle數據庫監聽的默認端口

內存優化配置

操作系統使用大頁內存功能可以減少內存管理帶來的額外開銷

查看當前大頁內存的參數設置和使用情況

# cat /proc/sys/vm/nr_hugepages
0
# cat /proc/meminfo |grep Hu
AnonHugePages:      6144 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

設置大頁內存,在/etc/sysctl.conf文件中添加以下內容

vm.hr_hugepages=203

至於參數值的選取,可以使用以下shell腳本來決定一個合適的值

#!/bin/bash
#
# hugepages_settings.sh
#
# Linux bash script to compute values for the
# recommended HugePages/HugeTLB configuration
#
# Note: This script does calculation for all shared memory
# segments available when the script is run, no matter it
# is an Oracle RDBMS shared memory segment or not.
# Check for the kernel version
KERN=`uname -r | awk -F. '{ printf("%d.%d\n",$1,$2); }'`
# Find out the HugePage size
HPG_SZ=`grep Hugepagesize /proc/meminfo | awk {'print $2'}`
# Start from 1 pages to be on the safe side and guarantee 1 free HugePage
NUM_PG=1
# Cumulative number of pages required to handle the running shared memory segments
for SEG_BYTES in `ipcs -m | awk {'print $5'} | grep "[0-9][0-9]*"`
do
MIN_PG=`echo "$SEG_BYTES/($HPG_SZ*1024)" | bc -q`
if [ $MIN_PG -gt 0 ]; then
NUM_PG=`echo "$NUM_PG+$MIN_PG+1" | bc -q`
fi
done
# Finish with results
case $KERN in
'2.4') HUGETLB_POOL=`echo "$NUM_PG*$HPG_SZ/1024" | bc -q`;
echo "Recommended setting: vm.hugetlb_pool = $HUGETLB_POOL" ;;
'2.6' | '3.8' | '3.10' | '4.1' ) echo "Recommended setting: vm.nr_hugepages = $NUM_PG" ;;
*) echo "Unrecognized kernel version $KERN. Exiting." ;;
esac
# End

注意:有可能找不到bc命令,執行yum install bc即可

先關閉數據庫,再執行sysctl -p使配置生效,再啓動數據庫

$ sqlplus / as sysdba
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

[root@localhost ~]# sysctl -p
kernel.shmmax = 524288000
kernel.shmall = 128000
vm.nr_hugepages = 203

[root@localhost ~]# cat /proc/meminfo|grep Hu
AnonHugePages:         0 kB
HugePages_Total:     202
HugePages_Free:       15
HugePages_Rsvd:       14
HugePages_Surp:        0
Hugepagesize:       2048 kB

SQL> startup
ORACLE instance started.

Total System Global Area  419430400 bytes
Fixed Size          2096728 bytes
Variable Size         155189672 bytes
Database Buffers      255852544 bytes
Redo Buffers            6291456 bytes
Database mounted.
Database opened.
SQL> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章