軟件環(huán)境:CentOS7.2 + Oracle11.2.0.1.0 + VMware Fusion8.5 + macOS10.12.4
一、配置CentOS環(huán)境
1. 創(chuàng)建用戶和用戶組
$groupadd oinstall
$groupadd dba
$useradd -g oinstall -g dba -m oracle
$passwd oracle
$id oracle
2. 創(chuàng)建Oracle安裝目錄
$mkdir -p /data/oracle
$mkdir -p /data/oraInventory
$mkdir -p /data/database
$chown -R oracle:oinstall /data/oracle
$chown -R oracle:oinstall /data/oraInventory
$chown -R oracle:oinstall /data/database
3. 修改系統(tǒng)標(biāo)識(shí)
$cat /proc/version
$cat /etc/redhat-release
*CentOS Linux release 7.2.1511 (Core)
$vi /etc/redhat-release
$cat /etc/redhat-release
*redhat-7
4. 安裝組件依賴
$yum -y install binutils compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libXi libXtst make sysstat
5. 關(guān)閉防火墻
$systemctl status firewalld.service
$systemctl stop firewalld.service
$systemctl disable firewalld.service
6. 關(guān)閉SELinux
$vi /etc/selinux/config
$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 #此處修改為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
7. 修改內(nèi)核參數(shù)
$vi /etc/sysctl.conf
$cat /etc/sysctl.conf
添加以下配置:
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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
$sysctl -p
8. 對(duì)oracle用戶進(jìn)行限制
$vi /etc/security/limits.conf
$cat /etc/security/limits.conf
->添加如下配置:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
9. 配置環(huán)境變量
$vi /home/oracle/.bash_profile
$cat /home/oracle/.bash_profile
->添加如下配置:
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
$source /home/oracle/.bash_profile
10. 準(zhǔn)備安裝文件
$cd /usr/local/src
$unzip linux.x64_11gR2_database_1of2.zip -d /data/database/
$unzip linux.x64_11gR2_database_2of2.zip -d /data/database/
$chown -R oracle:oinstall /data/database/database/
二、在CentOS上安裝Oracle
1. 切換用戶至oracle,執(zhí)行runInstaller安裝程序
$cd /data/database/database/
$./runInstaller -jreLoc /usr/lib/jvm/jre-1.8.0
2. 先決條件檢查
安裝程序會(huì)檢查當(dāng)前系統(tǒng)環(huán)境是否滿足安裝要求,如果相應(yīng)的依賴包沒有安裝,yum install package_name安裝上即可,如果已安裝的版本較高時(shí),Oracle安裝程序仍會(huì)提示不滿足要求,忽視即可
3. 調(diào)整SWAP分區(qū)
$su root
$free -m
$dd if=/dev/zero of=/home/swap bs=1024 count=1024000
$mkswap /home/swap
$swapon /home/swap
$free -m
4. 安裝失敗解決方案
安裝過程中可能出現(xiàn)錯(cuò)誤提示框未正確顯示的問題,如果無法根據(jù)顯示內(nèi)容跟蹤安裝情況,可以通過檢查安裝日志的方法來繼續(xù)進(jìn)行,日志保存在/data/oraInventory/logs目錄下。如果遇到安裝失敗的情況,重啟虛擬機(jī),先清理之前安裝遺留的文件,再進(jìn)行下一步操作
$su root
$rm -rf /data/oracle/product
$rm -rf /data/oraInvenroty/*
本文操作時(shí)遇到的兩個(gè)情況記錄如下:
ins_ctx.mk
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'install' of makefile '/data/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk'. See '/data/oraInventory/logs/installActions2017-05-11_02-20-57PM.log' for details.
- 缺少compat-libstdc++-33-3.2.3-69.el6導(dǎo)致此問題
- 官網(wǎng)手動(dòng)下載組件對(duì)應(yīng)的rpm包,**http://vault.centos.org/6.3/os/x86_64/Packages/**
- 將依賴包遷移至虛擬機(jī)Downloads目錄下
- 手動(dòng)安裝rpm包
$pwd
#/home/oracle/Downloads
$ls
#compat-libstdc++-33-3.2.3-69.el6.i686.rpm
#compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
#glibc-2.12-1.80.el6.i686.rpm
#glibc-2.12-1.80.el6.x86_64.rpm
#glibc-common-2.12-1.80.el6.x86_64.rpm
#glibc-devel-2.12-1.80.el6.i686.rpm
#glibc-devel-2.12-1.80.el6.x86_64.rpm
#glibc-headers-2.12-1.80.el6.x86_64.rpm
$su root
$rpm -ivh --force --nodeps *.rpm
ins_emagent.mk
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmhs' of makefile '/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/data/oraInventory/logs/installActions2017-05-12_11-49-32AM.log' for details.
- 調(diào)用ins_emagent.mk文件發(fā)生錯(cuò)誤
- 手動(dòng)修改ins_emagent.mk文件,然后點(diǎn)擊錯(cuò)誤提示框的Retry按鈕即可
$cat /data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
$vi /data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
#將$(MK_EMAGENT_NMECTL)修改為$(MK_EMAGENT_NMECTL) -lnnz11
5. 執(zhí)行腳本
安裝完畢后,安裝程序出現(xiàn)Successful字樣,關(guān)閉安裝程序,執(zhí)行兩個(gè)腳本程序
$su root
$pwd
#/data/oracle/product/11.2.0/db_1
$./root.sh
$cd /data/oraInventory
$./orainstRoot.sh
6. 進(jìn)行監(jiān)聽服務(wù)配置和數(shù)據(jù)庫(kù)實(shí)例創(chuàng)建
$netca
$lsnrctl start
$lsnrctl status
$dbca
7. 檢查是否安裝完成
$sqlplus / as sysdba
$startup
$show parameter service_names
$su -oracle
$emctl unsecure dbconsole
#with https
$emctl secure dbconsole
$with http
$emctl start dbconsole
三、在macOS上配置Oracle客戶端
Oracle服務(wù)端安裝完成后,在macOS上可以使用SQLDeveloper/Toad/DataGrip進(jìn)行連接,現(xiàn)在開始配置在macOS中使用終端+SQLPlus連接服務(wù)端Orale
$sqlplus
zsh: sqlplus: command not found...
1. 確定服務(wù)端Oracle版本
$sqlplus / as sysdba
SQL> select * from v$version
2 /
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
2. 客戶端文件配置
下載macOS平臺(tái)適用的對(duì)應(yīng)版本的Oracle客戶端,將兩個(gè)壓縮包解壓至同一目錄
$unzip instantclient-basic-macos.x64-11.2.0.4.0.zip
$unzip instantclient-sqlplus-macos.x64-11.2.0.4.0.zip
# Tuple @ Johnson in /Applications/instantclient_11_2 [11:36:19]
$ cd /Applications/instantclient_11_2
# Tuple @ Johnson in /Applications/instantclient_11_2 [11:36:24]
$ ls
BASIC_README libclntsh.dylib.11.1 libsqlplus.dylib uidrvci
SQLPLUS_README libnnz11.dylib libsqlplusic.dylib xstreams.jar
adrci libocci.dylib.11.1 ojdbc5.jar
genezi libociei.dylib ojdbc6.jar
glogin.sql libocijdbc11.dylib sqlplus
3.環(huán)境變量配置
$vim .bash_profile
->添加如下信息
export ORACLE_HOME=/Applications/instantclient_11_2
export ORACLE_SID=oracent
export DYLD_LIBRARY_PATH=$ORACLE_HOME
export SQLPATH=$ORACLE_HOME
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export PATH=$SQLPATH:$PATH
$vim .zshrc
->添加一行
source .bash_profiile
$env
4.配置tnsnames.ora
$mkdir -p Applications/instantclient_11_2/network/admin
vim $ORACLE_HOME/network/admin/tnsnames.ora
->新增如下內(nèi)容
oracent=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.31.236)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oracent)
)
)
5.配置hosts文件
$ hostname
#Johnson.local
$sudo vim /etc/hosts
->將localhost修改與hostname一致
$cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 Johnson.local
6.使用SQLPlus連接局域網(wǎng)Oracle
$sqlplus scott/jansondors@192.168.31.236/oracent