虛擬機環境:Vmware Workstation 11.1.0 + Oracle Enterprise Linux 5.5 X86-64
1、物理機內存設置
最小:1GB
推薦:2GB或以上
檢測內存大小:
# grep MemTotal /proc/meminfo
查看可用的內存空間:
free
2、交換分區(swap)設置
物理內存 交換分區大小
1~2G 前者的1.5倍
2G~16G 與前者相等
>16GB 16GB
查看交換分區的大小:
# grep SwapTotal /proc/meminfo
3、查看操作系統信息(此處主要驗證操作系統版本是否對Oracle 11gr2的支持)
操作系統類型:
# uname -m
操作系統內核版本:
# cat /proc/version
# uname -r
4、安裝系統包(注:安裝的包版本必須等於或大於以下版本)
包安裝方法:
# rpm -ivh binutils-2.17.50.0.6*
驗證包是否已經安裝:
# rpm -q binutils-2.17.50.0.6
安裝包列表(以下這些包都在oel5.5鏡像文件的Server文件夾下):
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11 (32-bit) or later
unixODBC-devel-2.2.11 (32-bit) or later
unixODBC-devel-2.2.11 (64-bit) or later
unixODBC-2.2.11 (64-bit) or later
5、安裝用戶和用戶組
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba oracle
6、修改系統內核參數
查看參數值:
# /sbin/sysctl -a | grep parameter_name
參數及推薦值列表:
/proc/sys/kernel/sem 250 32000 100 128
/proc/sys/kernel/shmall 2097152
/proc/sys/kernel/shmmax 536870912
/proc/sys/kernel/shmmni 4096
/proc/sys/fs/file-max 6815744
/proc/sys/net/ipv4/ip_local_port_range 9000 65500
/proc/sys/net/core/rmem_default 262144
/proc/sys/net/core/rmem_max 4194304
/proc/sys/net/core/wmem_default 262144
/proc/sys/net/core/wmem_max 1048576
/proc/sys/fs/aio-max-nr 1048576
使用vi編輯器修改參數文件/etc/sysctl.conf,增加或修改如下內容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
執行以下命令或者重啟(reboot)操作系統使以上修改內核參數文件生效:
# /sbin/sysctl -p
7、為Oracle軟件安裝用戶檢測資源限制條件
# su - oracle
$ ulimit -Sn
1024
$ ulimit -Hn
65536
$ ulimit -Su
2047
$ ulimit -Hu
16384
$ ulimit -Ss
10240
$ ulimit -Hs
32786
更新資源限制文件/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
8、創建Oracle安裝時需要的目錄
查看所有文件系統的掛載信息:
# df -k
創建軟件安裝時所需目錄:
# mkdir -p /u01/app/
# chown -R oracle:oinstall /u01/app/
# chmod -R 775 /u01/app/
9、配置Oracle用戶的環境
以下命令需要在主機執行,以下一系列操作確保操作系統支持對圖形界面的支持
# xhost +
$ su - oracle
$ xhost +
$ echo $SHELL
$ . ./.bash_profile
$ w
$ export DISPLAY=local_host:0.0
$ echo $SHELL
$ echo $DISPLAY
$ xclock
如果需要用ssh客戶端工具操作圖形界面,則需要執行以下命令
$ export DISPLAY=local_host:0.0
$ xclock
設置ORACLE_BASE和ORACLE_SID,以下的設置方法是基於臨時會話的設置,後文中會講述永久設置的方法
$ ORACLE_BASE=/u01/app/oracle
$ ORACLE_SID=orcl
$ export ORACLE_BASE ORACLE_SID
使用默認的ORACLE_HOME和TNS_ADMIN
$unset ORACLE_HOME
$unset TNS_ADMIN
10、准備Oracle安裝軟件
安裝 vmware-tool工具,否則無法實現主機與物理機的文件共享
使用vmware的共享功能將下載的Oracle軟件包共享給虛擬機
使用linux unzip工具將Oracle安裝軟件解壓到/u01/目錄下,具體命令如下:
# unzip /mnt/hgfs/share_file_dir/linux.x64_11gR2_database_1of2.zip /u01/
# unzip /mnt/hgfs/share_file_dir/linux.x64_11gR2_database_2of2.zip /u01/
11、安裝Oracle數據庫管理軟件
# su - oracle
$ ./runInstaller
注意:在安裝過程中,選擇只安裝oracle數據庫軟件,oracle數據庫我們接下來會單獨創建和配置,這樣做的好處在於理解oracle的整體結構
12、創建和管理Oracle數據庫
$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
$ cd $ORACLE_HOME/bin
$ ./dbca
注意:在安裝過程中可能會提示安裝監聽,在另一個會話中執行以下命令完成監聽器的配置
$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
$ cd $ORACLE_HOME/bin
$ ./netca
13、啟動和登錄數據庫
# su - oracle
$ export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/
注意:由於沒有設置ORACLE_SID環境變量,連接庫時可能出現錯誤
$ export ORACLE_SID=orcl
$ cd $ORACLE_HOME/bin
$ ./sqlplus /nolog
SQL> conn / as sysdba
SQL> startup nomount;
SQL> alter database mount;
SQL> alter database open;
/*
注意:
將數據庫啟動到掛載(mount)狀態的時候可能會出現
ORA-01102: cannot mount database in EXCLUSIVE mode
原因分析:
1、在ORACLE_HOME/dbs/存在 "sgadef<sid>.dbf" 文件或者lk<db_name> 文件。這兩個文件是用來用於鎖內存的。
2、oracle的 pmon, smon, lgwr and dbwr等進程未正常關閉。
3、數據庫關閉後,共享內存或者信號量依然被占用。
解決方案:
1、關閉數據庫
SQL> shutdown immediate
2、fuser -u lk<db_name> 查看使用 lk<db_name> 文件的進程和用戶
$ /sbin/fuser -u lkGLOBAL_ORCL
3、使用 fuser -k lk<db_name> 殺死這些正在訪問lk<db_name>的進程
$ /sbin/fuser -k lkGLOBAL_ORCL
4、確認相關進程全被終止
$ /sbin/fuser -u lkGLOBAL_ORCL
5、依次啟動數據庫
SQL> startup nomount;
SQL> alter database mount;
SQL> alter database open;
*/
14、為了操作方便,這裡說明設置環境變量的方法,這樣就可以直接在會話中使用sqlplus命令了
# su - oracle
$ echo "export ORACLE_SID=orcl" >> /home/oracle/.bash_profile
$ echo "export ORACLE_BASE=/u01/app/oracle" >> /home/oracle/.bash_profile
$ echo "export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1" >> /home/oracle/.bash_profile
$ echo "export TNS_ADMIN=$ORACLE_HOME/network/admin" >> /home/oracle/.bash_profile
$ echo "export PATH=$ORACLE_HOME/bin:$PATH" >> /home/oracle/.bash_profile
15、官方參考文檔
https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#CEGHFFGG
https://docs.oracle.com/cd/E11882_01/server.112/e25494/create.htm#ADMIN002
https://docs.oracle.com/cd/E11882_01/server.112/e25494/start.htm#ADMIN004