一、安裝環(huán)境
CentOS Linux 7
Oracle 11g R2
二磺芭、安裝前準(zhǔn)備
2.1. 修改主機(jī)名稱
#查看主機(jī)名稱
[root@oracle ~]# hostnamectl status
[root@oracle ~]# hostnamectl set-hostname oracle
2.2. 修改hosts文件
修改hosts文件是為了保持ip 與 主機(jī)名對(duì)應(yīng)
[root@oracle ~]# vim /etc/hosts
#新增ip與主機(jī)名對(duì)應(yīng)
127.0.0.1 oracle
10.10.0.7 oracle #本機(jī)ip地址
#重啟機(jī)器
[root@oracle ~]# reboot
2.3. 關(guān)閉Selinux(太深?yuàn)W婴噩,先關(guān)閉了)
[root@oracle ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@oracle ~]# setenforce 0
2.4. 防火墻開放 1521 端口
#centos7防火墻與centos6防火墻有比較大差異
#關(guān)閉centos7防火墻
[root@oracle ~]# systemctl stop firewalld.service
#關(guān)閉開機(jī)啟動(dòng)
[root@oracle ~]# systemctl disable firewalld.service
#安裝iptables防火墻
[root@oracle ~]# yum install iptables-services
[root@oracle ~]# vim /etc/sysconfig/iptables
#新增1521接口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
#設(shè)置開機(jī)啟動(dòng)
[root@oracle ~]# systemctl enable iptables
#重啟iptabls服務(wù)
[root@oracle ~]# systemctl restart iptables.service
2.5 安裝所需的軟件包
查看Oracle安裝文檔中列出的Package Requirements可以查看在不同平臺(tái)上需要的軟件包。
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
Oracle ODBC Drivers
On Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4:
unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later
安裝軟件包
yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC
2.6. 創(chuàng)建用戶組與用戶
[root@oracle ~]# groupadd oinstall
[root@oracle ~]# groupadd dba
#可不需要該用戶組 oper
[root@oracle ~]# groupadd oper
[root@oracle ~]# useradd -g oinstall -G dba,oper oracle
[root@oracle ~]# passwd oracle
2.7. 修改kernel內(nèi)核
[root@oracle ~]# vim /etc/sysctl.conf
#配置文件內(nèi)加入 修改以下參數(shù)料滥。如果沒有可以自己添加然眼,如果默認(rèn)值比參考值大,則不需要修改葵腹。
kernel.shmmni = 4096 #這個(gè)內(nèi)核參數(shù)用于設(shè)置系統(tǒng)范圍內(nèi)共享內(nèi)存段的最大數(shù)量高每。該參數(shù)的默認(rèn)值是 4096 屿岂。通常不需要更改。
kernel.shmmax = 2147483648 #該參數(shù)定義了共享內(nèi)存段的最大尺寸(以字節(jié)為單位)鲸匿。缺省為32M爷怀,對(duì)于oracle來說,該缺省值太低了带欢,通常將其設(shè)置為2G运授。
kernel.shmall = 2097152 #該參數(shù)表示系統(tǒng)一次可以使用的共享內(nèi)存總量(以頁為單位)。缺省值就是2097152乔煞,通常不需要修改吁朦。
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 65536 #設(shè)置最大打開文件數(shù)
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范圍
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
保存后退出并立即生效:
[root@oracle ~]# sysctl -p
2.8. 修改系統(tǒng)資源限制
[root@oracle ~]# 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
#修改用戶驗(yàn)證選項(xiàng) 關(guān)聯(lián)設(shè)置
[root@oracle ~]# vim /etc/pam.d/login
#加入以下語句:
session required /lib64/security/pam_limits.so
session required pam_limits.so
#(注意:根據(jù)最后一條session規(guī)則的注釋,應(yīng)該加在最后一條規(guī)則之前)
2.9. 創(chuàng)建安裝目錄與目錄權(quán)限
#創(chuàng)建安裝目錄渡贾,并賦予用戶與用戶組
#oracle目錄 安裝目錄
#oradata 數(shù)據(jù)存儲(chǔ)目錄
#inventory 清單目錄
#fast_recovery_area 恢復(fù)目錄
[root@oracle ~]# mkdir -p /data/oracle/product/11.2.0
[root@oracle ~]# mkdir /data/oracle/oradata
[root@oracle ~]# mkdir /data/oracle/inventory
[root@oracle ~]# mkdir /data/oracle/fast_recovery_area
[root@oracle ~]# chown -R oracle:oinstall /data/oracle
[root@oracle ~]# chmod -R 775 /data/oracle
2.10. 創(chuàng)建Oracle環(huán)境變量
#11G R1需要,R2可省略
[root@oracle ~]# vim /etc/profile
#在末尾增加以下內(nèi)容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/sh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
三逗宜、安裝Oracle Database
3.1. 上傳安裝文件到home目錄,并解壓
[oracle@oracle ~]# unzip linux.x64_11gR2_database_1of2.zip
[oracle@oracle ~]# unzip linux.x64_11gR2_database_2of2.zip
3.2. 準(zhǔn)備oracle安裝應(yīng)答模板文件db_install.rsp文件
[oracle@oracle database]$ cp response/* /usr/local/oracle/
[oracle@oracle oracle]$ chmod 755 ./*.rsp
#編輯
[oracle@oracle oracle]$ vim db_install.rsp
#修改文件中一下內(nèi)容
//安裝類型,只裝數(shù)據(jù)庫軟件
oracle.install.option=INSTALL_DB_SWONLY
//主機(jī)名稱(命令hostname查詢)
ORACLE_HOSTNAME=oracle
// 安裝組
UNIX_GROUP_NAME=oinstall
//INVENTORY目錄(**不填就是默認(rèn)值,本例此處需修改,因個(gè)人創(chuàng)建安裝目錄而定)
INVENTORY_LOCATION=/usr/local/oraInventory
// 選擇語言
SELECTED_LANGUAGES=en,zh_CN
// oracle_home *路徑根據(jù)目錄情況注意修改 本例安裝路徑/usr/local/oracle
ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1
// oracle_base *注意修改
ORACLE_BASE=/usr/local/oracle
// oracle版本
oracle.install.db.InstallEdition=EE
//自定義安裝空骚,否纺讲,使用默認(rèn)組件
oracle.install.db.isCustomInstall=false
//dba用戶組
oracle.install.db.DBA_GROUP=dba
//oper用戶組
oracle.install.db.OPER_GROUP=dba
// **注意此參數(shù) 設(shè)定一定要為true
DECLINE_SECURITY_UPDATES=true
3.3. 設(shè)置Oracle用戶環(huán)境變量
[oracle@oracle ~]$ vim .bash_profile
#添加以下內(nèi)容
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=infoyb
export ORACLE_OWNER=oracle
export NLS_LANG=american_america.AL32UTF8
export LANG=en_US.UTF-8
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/lib:$ORACLE_HOME/bin
export PATH
#立即生效
[oracle@oracle ~]$ source .bash_profile
3.4. 在oracle 用戶下安裝
#進(jìn)入解壓目錄
[oracle@oracle ~]$ cd ~/database
[oracle@oracle ~]$ ./runInstaller -silent -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp
/home/database是安裝包解壓后的路徑,此處根據(jù)安裝包解壓所在位置做修改囤屹,因人而異熬甚。
runInstaller 是主要安裝腳本
-silent 靜默模式
-force 強(qiáng)制安裝
-ignorePrereq忽略warning直接安裝。
-responseFile讀取安裝應(yīng)答文件肋坚。
出現(xiàn)以下內(nèi)容代表安裝成功
根據(jù)提示內(nèi)容乡括,切換root用戶執(zhí)行以下語句。
/data/oracle/inventory/orainstRoot.sh
/data/oracle/product/11.2.0/root.sh
四冲簿、以靜默方式配置監(jiān)聽
[oracle@oracle ~]$ netca /silent /responseFile /home/oracle/response/netca.rsp
成功運(yùn)行后粟判,在/data/oracle/product/11.2.0/network/admin/中生成listener.ora和sqlnet.ora
通過netstat命令可以查看1521端口正在監(jiān)聽。
五峦剔、以靜默方式建立新庫档礁,同時(shí)也建立一個(gè)對(duì)應(yīng)的實(shí)例
[oracle@oracle ~]$ vim /home/oracle/response/dbca.rsp
GDBNAME= "infoyb"
SID =" infoyb"
SYSPASSWORD= "com.oracle2015"
SYSTEMPASSWORD= "com.oracle2015"
SYSMANPASSWORD= "com.oracle2015"
DBSNMPPASSWORD= "com.oracle2015"
DATAFILEDESTINATION=/data/oracle/oradata
RECOVERYAREADESTINATION=/data/oracle/fast_recovery_area
CHARACTERSET= "AL32UTF8"
TOTALMEMORY= "6553"
其中TOTALMEMORY ="6553" 為6553MB,物理內(nèi)存8G*80%吝沫。
進(jìn)行靜默配置:
[oracle@oracle ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
查看監(jiān)聽狀態(tài):
登陸查看實(shí)例狀態(tài):
[oracle@oracle ~]$ sqlplus / as sysdba
#select status from v$instance;
六呻澜、創(chuàng)建表空間與用戶
6.1.創(chuàng)建表空間
create tablespace infoyb logging datafile'/data/oracle/oradata/infoyb/infoyb.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;
6.2.創(chuàng)建用戶
create user infoyb identified by infoyb default tablespace infoyb;
6.3.給用戶賦權(quán)限
#為了省事,先把DBA權(quán)限賦值惨险。
grant dba to infoyb;
七羹幸、鏈接測試
八、設(shè)置開機(jī)啟動(dòng)
8.1.修改/data/oracle/product/11.2.0/bin/dbstart
[oracle@oracle ~]$ vim /data/oracle/product/11.2.0/bin/dbstart
#將ORACLE_HOME_LISTNER=$1
#修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
8.2.修改/data/oracle/product/11.2.0/bin/dbshut
[oracle@oracle ~]$ vim /data/oracle/product/11.2.0/bin/dbshut
#將ORACLE_HOME_LISTNER=$1
#修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
8.3.修改/etc/oratab文件
[oracle@oracle ~]$ vim /etc/oratab
#將infoyb:/data/oracle/product/11.2.0:N中最后的N改為Y
8.4.創(chuàng)建啟動(dòng)文件
#用root用戶執(zhí)行
[root@oracle ~]$ vim /etc/init.d/oracle
#新增以下內(nèi)容
#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=infoyb
export ORACLE_UNQNAME=$ORACLE_SID
export PATH=$ORACLE_HOME/bin:/user/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0
8.5.設(shè)置啟動(dòng)文件權(quán)限
[root@oracle ~]$ chmod +x oracle
[root@oracle ~]$ chkconfig --add oracle
[root@oracle ~]$ chkconfig oracle on
8.6.重啟測試
[root@oracle ~]$ reboot
重啟后查看監(jiān)聽狀態(tài)辫愉,上圖代表啟動(dòng)成功