安裝前準備
-
獲取軟件安裝包
建議從官網下載,我這裏下載的版本是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 -v
和getenforce
命令均可查看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>