1.安裝前環(huán)境準備
- VMware Workstation 11 搭建 Centos7虛擬機,Centos7操作系統(tǒng)最小化安裝,2G內(nèi)存,20G磁盤空間,1核CPU,已配置好網(wǎng)絡(luò)IP:192.168.1.108;
- 已下載Oracle 11g Linux安裝文件:linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip.
- 通過Xmanager Xftp上傳到虛擬機/tmp目錄中.
2.操作系統(tǒng)準備工作
- 使用root用戶登錄操作系統(tǒng).
- yum 安裝 unzip 軟件久信,用來解壓上傳的Oracle安裝文件.
[root@Centos ~]# yum install unzip –y
- 解壓Oracle 安裝程序
[root@Centos ~]# cd /tmp
[root@Centos tmp]# unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip
等待解壓完成后,會在/tmp目錄下生產(chǎn)一個database文件夾漓摩,里面就Oracle 11g安裝文件裙士。
[root@centos tmp]# ll
總用量 2295596
drwxr-xr-x. 8 root root 128 8月 21 2009 database
-rwx------. 1 root root 836 8月 22 2017 ks-script-H6QMJc
-rw-r--r--. 1 root root 1239269270 7月 27 19:39 linux.x64_11gR2_database_1of2.zip
-rw-r--r--. 1 root root 1111416131 7月 27 16:15 linux.x64_11gR2_database_2of2.zip
drwx------. 3 root root 17 8月 22 08:58 systemd-private-b478623aa5414c939af3b7dd864bd991-vmtoolsd.service-UQ4SHd
-rw-------. 1 root root 0 8月 22 2017 yum.log
- Yum 安裝vim軟件,用于編輯配置文件(個人習(xí)慣管毙,不安裝vim腿椎,使用vi也可以).
[root@Centos tmp]# yum install vim -y
- 在/etc/hosts文件中添加主機名
[root@Centos tmp]# vim /etc/hostname
centos # 修改主機名
# :wq保存退出
[root@Centos tmp]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.108 centos # 新增對應(yīng)
- 關(guān)閉selinux
[root@Centos tmp]# vim /etc/selinux/config
# 修改屬性
SELINUX=disabled
#執(zhí)行刷新
[root@Centos tmp]# setenforce 0
- 關(guān)閉防火墻 -- 按照現(xiàn)場環(huán)境
[root@Centos tmp]# service iptables stop
[root@Centos tmp]# systemctl disable iptables
[root@Centos ~]# systemctl stop firewalld
[root@Centos ~]# systemctl disable firewalld
- 安裝Oracle 11g依賴包
[root@Centos tmp]# yum install yum install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel –y
- 添加安裝用戶和用戶組
[root@Centos tmp]# groupadd oinstall
[root@Centos tmp]# groupadd dba
[root@Centos tmp]# useradd -g oinstall -G dba oracle
[root@Centos tmp]# passwd oracle
[root@Centos tmp]# id oracle
uid=1001(oracle) gid=1001(oinstall) 組=1001(oinstall),1002(dba)
- 修改內(nèi)核參數(shù)配置文件
[root@Centos ~]# vim /etc/sysctl.conf
# 添加以下內(nèi)容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
[root@Centos ~]# sysctl -p
其中kernel.shmmax = 1073741824為本機物理內(nèi)存(2G)的一半,單位為byte夭咬。
- 修改用戶的限制文件
[root@Centos ~]# vim /etc/security/limits.conf
# 添加以下內(nèi)容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
修改/etc/pam.d/login文件:
[root@Centos ~]# vim /etc/pam.d/login
# 添加以下內(nèi)容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
修改/etc/profile文件:vim /etc/profile
[root@Centos ~]# vim /etc/profile
# 添加以下內(nèi)容:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
- 創(chuàng)建安裝目錄和設(shè)置文件權(quán)限
[root@Centos ~]# mkdir -p /ibmp_data/oracle/product/11.2.0
[root@Centos ~]# mkdir /ibmp_data/oracle/oradata
[root@Centos ~]# mkdir /ibmp_data/oracle/inventory
[root@Centos ~]# mkdir /ibmp_data/oracle/fast_recovery_area
[root@Centos ~]# chown -R oracle:oinstall /ibmp_data/oracle
[root@Centos ~]# chmod -R 775 /ibmp_data/oracle
- 設(shè)置oracle用戶環(huán)境變量
[root@Centos ~]# su - oracle
[oracle@Centos ~]$ vim .bash_profile
# 添加如下內(nèi)容:
ORACLE_BASE=/ibmp_data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
環(huán)境變量生效
source .bash_profile
- 編輯靜默安裝響應(yīng)文件
[oracle@Centos ~]$ cp -R /tmp/database/response/ .
[oracle@Centos ~]$ cd response/
[oracle@Centos response]$ vim db_install.rsp
# 需要設(shè)置的選項如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=centos
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/ibmp_data/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/ibmp_data/oracle/product/11.2.0
ORACLE_BASE=/ibmp_data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
3.根據(jù)響應(yīng)文件靜默安裝Oracle 11g
[oracle@Centos response]$ cd /tmp/database/
[oracle@Centos database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
開始Oracle在后臺靜默安裝啃炸。安裝過程中,如果提示[WARNING]不必理會皱埠,此時安裝程序仍在后臺進行肮帐,如果出現(xiàn)[FATAL],則安裝程序已經(jīng)停止了
可以在以下位置找到本次安裝會話的日志:
/ibmp_data/oracle/inventory/logs/installActions2015-06-08_04-00-25PM.log
可以切換終端執(zhí)行top命令查看后臺進程一直是在安裝的边器,/ibmp_data目錄也在不斷增大训枢,
當出現(xiàn)以下提示時,代表安裝成功:
按照要求執(zhí)行腳本忘巧。
打開終端恒界,以root身份登錄,執(zhí)行腳本:
[root@Centos ~]# sh /ibmp_data/oracle/inventory/orainstRoot.sh
[root@Centos ~]# sh /ibmp_data/oracle/product/11.2.0/root.sh
4.以靜默方式配置監(jiān)聽
重新使用oracle用戶登錄
[oracle@Centos ~]$ netca /silent /responsefile /home/oracle/response/netca.rsp
成功運行后砚嘴,在/ibmp_data/oracle/product/11.2.0/network/admin/中生成listener.ora和sqlnet.ora
netstat -tnulp | grep 1521
通過netstat命令可以查看1521端口正在監(jiān)聽十酣。
Yum安裝netstat軟件,軟件包是在net-tools中际长。
yum install net-tools
[oracle@Centos ~]$ lsnrctl start
5.以靜默方式建立新庫耸采,同時也建立一個對應(yīng)的實例。
[oracle@Centos ~]$ vim /home/oracle/response/dbca.rsp
# 設(shè)置以下參數(shù):
GDBNAME = "orcl" //數(shù)據(jù)庫名
SID = "orcl" //sid
SYSPASSWORD = "ibmp"
SYSTEMPASSWORD = "ibmp"
SYSMANPASSWORD = "ibmp"
DBSNMPPASSWORD = "ibmp"
DATAFILEDESTINATION =/ibmp_data/oracle/oradata
RECOVERYAREADESTINATION= /ibmp_data/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"
其中TOTALMEMORY = "1638" 為1638MB工育,物理內(nèi)存2G80%虾宇。*
進行靜默配置:
[oracle@Centos ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
如果出現(xiàn)
將/ibmp_data/oracle/product/11.2.0/assistants/dbca/templates 目錄下拷貝到對應(yīng)文件夾下 重新運行
[oracle@Centos ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
建庫后進行實例進程檢查
[oracle@Centos ~]$ ps -ef | grep ora_ | grep -v grep
查看監(jiān)聽狀態(tài):
[oracle@Centos ~]$ lsnrctl status
登錄查看實例狀態(tài)
[oracle@Centos ~]$ sqlplus / as sysdba
SQL> select status from v$instance;
如出現(xiàn):
startup
starup 報錯 缺失文件
復(fù)制 /ibmp_data/oracle/admin/hg_ibmp_db/pfile/init.ora.722017115140
到/ibmp_data/oracle/product/11.2.0/dbs/ 重命名為 initorcl.ora
重啟reboot
切換到oracle用戶
sqlplus / as sysdba
startup
select status from v$instance;
如出現(xiàn):
**修改 /ibmp_data/oracle/product/11.2.0/network/admin/listener.ora **
vim /ibmp_data/oracle/product/11.2.0/network/admin/ listener.ora
# 添加
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = hg_ibmp_db)
(SID_NAME = orcl)
)
)
重啟監(jiān)聽
lsnrctl stop
lsnrctl start
6.Oracle開機自啟動設(shè)置
- 修改/ibmp_data/oracle/product/11.2.0/bin/dbstart
[oracle@Centos ~]$ vim /ibmp_data/oracle/product/11.2.0/bin/dbstart
# 將ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
ORACLE_HOME_LISTNER = $ORACLE_HOME
- 修改/ibmp_data/oracle/product/11.2.0/bin/dbshut
[oracle@Centos ~]$ vim /ibmp_data/oracle/product/11.2.0/bin/dbshut
#將ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
將ORACLE_HOME_LISTNER = $ORACLE_HOME
- 修改/etc/oratab文件(沒有此文件可手動創(chuàng)建一個)
[oracle@Centos ~]$ vim /etc/oratab
# 將orcl:/ibmp_data/oracle/product/11.2.0:N中最后的N改為Y
orcl:/ibmp_data/oracle/product/11.2.0:Y
- 輸入命令dbshut和dbstart測試
[oracle@Centos ~]$ dbshut
Oracle監(jiān)聽停止,進程消失.
[oracle@Centos ~]$ dbstart
Oracle監(jiān)聽啟動如绸,進程啟動.
- 切換到root賬戶建立自啟動腳本
[oracle@Centos ~]$ su -
[root@Centos ~]# vim /etc/rc.d/init.d/oracle
#添加以下內(nèi)容(有些值如ORACLE_HOME和ORACLE_USER等根據(jù)實際情況可以修改):
#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/ibmp_data/oracle/product/11.2.0
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n $"Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n $"Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
- 修改/etc/init.d/oracle服務(wù)文件權(quán)限
[root@Centos init.d]# chmod 755 /etc/init.d/oracle
- 設(shè)置為開機啟動
[root@Centos ~]# chkconfig oracle on
進行service oracle start/stop/restart測試
Reboot重啟查看Oracle監(jiān)聽和實例進程均能自動啟動嘱朽。
注:如果自啟動有問題旭贬,可使用dbstart命令手動啟動數(shù)據(jù)庫,用lsnrctl start啟動監(jiān)聽搪泳。
[oracle@Centos ~]$ dbstart
[oracle@Centos ~]$ lsnrctl start
- 測試鏈接
如果各項配置都沒問題還是不能連接
檢查 /etc/hosts 文件是否配置對應(yīng)關(guān)系
檢查 /ibmp_data/oracle/diag/tnslsnr/ibmp_centOS/listener/alert/log.xml
找不到問題 刪除試試
7.刪除實例
關(guān)閉所有oracle進程,其實只要shutdown
abort即可.因我的機器oracle沒設(shè)置為開機自動啟動,重啟機器后oracle進程一個也沒有,系統(tǒng)很是干凈.刪除實例數(shù)據(jù)文件和dump文件;
find $ORACLE_BASE/ -name $ORACLE_SID
在我系統(tǒng)里面顯示如下,將這些目錄直接刪除
/ibmp_data/oracle/diag/rdbms/ibank
/ibmp_data/oracle/diag/rdbms/ibank/ibank
/ibmp_data/oracle/cfgtoollogs/dbca/ibank
/ibmp_data/oracle/flash_recovery_area/ibank
/ibmp_data/oracle/oradata/ibank
/ibmp_data/oracle/admin/ibank
- 刪除其他配置文件
find $ORACLE_BASE/* -name '*[Bb][Tt][Ss][Dd][Bb]2*' | grep -v admin| grep -v oradata
將查找結(jié)果出現(xiàn)的文件也一一刪除,當然你可以用xarg結(jié)合rm刪除.
find結(jié)果如下:
/ibmp_data/oracle/flash_recovery_area/ibank
/ibmp_data/oracle/product/11.2.0/oc4j/j2ee/OC4J_DBConsole_host_ibank
/ibmp_data/oracle/product/11.2.0/rdbms/log/alert_ibank.log
/ibmp_data/oracle/product/11.2.0/host_ibank
/ibmp_data/oracle/product/11.2.0/host_ibank/sysman/emd/state/A190EE260BF6B09EB5805807
28916A3B.alert_ibank.log
/ibmp_data/oracle/product/11.2.0/host_ibank/sysman/log/nmcibank1521
/ibmp_data/oracle/product/11.2.0/dbs/alert_ibank.log
/ibmp_data/oracle/product/11.2.0/dbs/lkibank
/ibmp_data/oracle/product/11.2.0/dbs/hc_ibank.dat
/ibmp_data/oracle/product/11.2.0/dbs/orapwibank
/ibmp_data/oracle/product/11.2.0/dbs/spfileibank.ora
- 最重要的一步,如果你要重建的實例和剛刪除實例的實例名一樣的話,刪除
/etc/oratab文件最后一行稀轨。
至此,已干凈刪除linux系統(tǒng)的oracle實例。