最小內存 1 GB of RAMhtml
虛擬內存容量,這個oracle也有要求,不用擔憂此時的swap分區不夠oracle的要求 。虛擬內存swap如何增長容量,後面將會講到java
Available RAMlinux |
Swap Space Requiredc++ |
Between 1 GB and 2 GBweb |
1.5 times the size of RAMsql |
Between 2 GB and 16 GBshell |
Equal to the size of RAM數據庫 |
More than 16 GBvim |
16 GBcentos |
硬盤空間要求
數據庫軟件硬盤空間需求:
Installation Type |
Requirement for Software Files (GB) |
Enterprise Edition |
3.95 |
Standard Edition |
3.88 |
數據文件硬盤空間需求:
Installation Type |
Requirement for Data Files (GB) |
Enterprise Edition |
1.7 |
Standard Edition |
1.5 |
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
Oracle 11g 測試機系統及環境:
虛擬機:VMware Workstation Pro 12
操做系統: CentOS 6.5
數據庫版本:Oracle11G R2
系統內存:4G
硬盤:200G
說明:若是操做系統爲Redhat,CentOS,建議操做系統版本使用rhel 5.x ,centos 5.x,由於在後續安裝oracle 11g解決依賴包關係的時候,不少依賴包都在5.x的安裝包裏
oracle 11g R1 使用5.4便可,Oracle 11g R2 具體推薦的操做系統版本本人沒測試過,操做系統版本大體在5.4~5.8,有興趣的小夥伴也能夠試試。不過使用6.x也不影響oracle
安裝使用,但在安裝時解決包依賴關係比較麻煩,有的很差找,固然你能夠忽略掉,不是硬性要求。但若是生產環境想發揮出oracle出色的性能,建議最好解決掉包依賴關係。
oracle 11g R2 ==> rhel 5.5 (親測)
oracle 11g R1 ==> reel 5.4
Oracle安裝步驟:
1 關閉Selinux
2 修改主機名,並添加主機名與IP對應記錄
3 安裝依賴包
4 建立用戶和組
5 修改內核參數
6 修改系統資源限制
7 建立安裝目錄及設置權限
8 設置oracle環境變量
9 安裝
10 提供開機啓動腳本
11 oracle防火牆策略設定(iptables)
一. 關閉Selinux
shell ~]#sed -i "s/^SELINUX=.*/SELINUX=permissive/" /etc/selinux/config
shell ~]#setenforce 0
查看當前Selinux策略
shell ~]#getenforce
能夠看到Selinux已經被禁用,若是是本次修改,須要重啓操做系統
修改主機名,並添加主機名與IP對應記錄
二. 修改主機名
shell ~]#sed -i -r 's/^(HOSTNAME=).*/\1oracle.dongpi.com/g' /etc/sysconfig/network # 重啓操做系統後生效
shell ~]#echo "oracle.dongpi.com" > /proc/sys/kernel/hostname # 即時生效
查看主機名
shell ~]# cat /proc/sys/kernel/hostname
shell ~]# hostname
shell ~]# echo $HOSTNAME ### 從新登陸一邊shell
以前安裝oracle 11g R2主機名配置要求
添加主機名與IP對應記錄
shell ~]#echo -e "`ifconfig eth0 | awk '/addr:[0-9]/{print $2}'| cut -d: -f2` \toracle.dongpi.com" >> /etc/hosts
查看解析結果
shell ~]#ping `hostname`
三. 安裝依賴包:
以前安裝oracle 11g R2 須要解決的依賴包關係截圖,有個大概瞭解,解決依賴關係以前最好掛載上centos 5.x的鏡像和epel源,免得去百度下載,不過每一個人
的操做系統環境不同,有些依賴包解決了,有些沒解決,oracle安裝界面有個從新檢測按鈕,若是有的包關係沒解決,你能夠安裝檢測失敗的包,而後在點那個
從新檢測按鈕。此處只是告訴小夥伴們大概所依賴的軟件包,不須要你再一個一個查而後再安裝,若是所依賴的軟件包提示有兩個如出一轍的名字,主要是對應
兩種cpu架構平臺(32位和64位)這兩種包都須要安裝
shell ~]#yum groupinstall "Development Tools"
shell ~]#yum install libaio glibc compat-libstdc++-33 elfutils-libelf-devel gcc-c++ libaio-devel libgcc libstdc++ libstdc++-devel -y
shell ~]#yum install unixODBC unixODBC-devel pdksh sysstat -y
shell ~]#wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
shell ~]#yum localinstall pdksh-5.2.14-37.el5_8.1.x86_64.rpm
說明:以前安裝oracle 11g R2沒解決的依賴包關係,須要注意的是最好把yum的update功能關閉掉,有可能你在安裝其餘包的時候又破壞了oracle依賴的包的版本要求
推薦幾個網址,小夥伴們能夠在上面搜一下須要的rpm包
1. http://rpm.pbone.net/
2. https://pkgs.org/
四. 建立用戶和組(oracle要求指定的用戶和組名)
shell ~]#groupadd oinstall
shell ~]#groupadd dba
shell ~]#useradd -g oinstall -G dba -d /home/oracle oracle
五. 修改內核參數:
具體的內核參數是什麼樣的值,這裏先給一個要修改的內核參數列表,值的最終肯定能夠經過安裝時檢測獲取,若是相應的內核參數檢測失敗,下面
有解釋:包括指望值和當前值,只要修改相應的內核參數爲oracle所指望的值便可,下面這裏只是個參考
[root@Test_ELK ~]# cat << EOF > oracle.kernel.list > net.ipv4.ip_local_port_range= > fs.file-max= > kernel.shmall= > kernel.shmmax= > kernel.shmmni= > kernel.sem= > net.core.rmem_default= > net.core.wmem_default= > net.core.rmem_max= > net.core.wmem_max= > fs.aio-max-nr= > EOF
到時候根據檢測結果修改成oracle指望的值,而後使用for循環和sed命令追加到/etc/sysctl.conf 文件中
內核參數獲取
shell ~]# sysctl -a | grep "xxx"
修改完要想即時生效須要使內核重讀此配置文件,而後讓oracle從新檢測,後面將會看到,如今不用着急配置
shell ~]# sysctl -p ### 通知內核重讀配置文件
六. 修改系統資源限制:
文件描述符修改
[root@Test_ELK ~]# cat << EOF >> /etc/security/limits.conf > oracle soft nproc 2047 > oracle hard nproc 16384 > oracle soft nofile 1024 > oracle hard nofile 65536 > EOF
pam認證修改
shell ~]#echo "# pam_limits.so" >> /etc/pam.d/login
shell ~]#echo "session required pam_limits.so" >> /etc/pam.d/login
七. 建立安裝目錄及設置權限
建議:oracle的數據文件目錄和安裝目錄分開
oracle的數據文件最好存儲在可靠的物理設備上(可使用幾塊磁盤組成raid10 或者raid 5),最起碼是一個單獨的分區。
這次安裝僅做爲實驗演示,因此使用一個分區上的目錄來建立oracle的工做目錄
查看當前分區容量,只要磁盤剩餘空間符合oracle的要求便可,我通常喜歡安裝大的軟件到/opt下
shell ~]#df -Ph
能夠看到/dev/sd3 即/opt才使用了不到400兆,下面開始建立oracle所須要的幾個目錄
shell ~]# mkdir /opt/oracle/{app,oradata} -pv
shell ~]# chmod 755 /opt/oracle/ /opt/oracle/app
shell ~]# chown -R oracle.oinstall /opt/oracle
八. 設置oracle環境變量:
shell ~]#su - oracle ### 必須使用oracle用戶登陸
[root@oracle ~]# echo '''
ORACLE_BASE=/opt/oracle/app
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
ORACLE_OWNER=oracle
ORACLE_SID=orcl
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
LANG="zh_CN.UTF-8"
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH LANG PATH
''' >> ~/.bash_profile
shell ~]#source ~/.bash_profile
注意此處:最好使用vim修改,由於你的oracle環境PATH有可能有其餘的值
九. 準備工做都作好了,開始安裝
說明:oracle安裝須要在圖形化界面完成,因此若是你的操做系統是最小化安裝,很悲劇你不能經過命令行的模式去完成,這是比較噁心的地方
解決辦法:安裝圖形化組件和vnc服務,而後經過vnc客戶端進行oracle的安裝
CentOS上VNC服務的安裝配置請參考 http://www.ha97.com/4634.html 此處不作演示,很是簡單
shell ~]#mkdir /opt/packages
shell ~]#unzip linux.x64_11gR2_database_1of2.zip
shell ~]#unzip linux.x64_11gR2_database_2of2.zip
解壓後會在當前目錄下生成一個名爲 database的目錄
shell ~]#cd database
shell ~]#xhost +
shell ~]#su - oracle ### 爲了安全,運行oracle進程的屬主不能是root
shell ~]$./runInstaller
解決辦法:
1. 直接設置環境變量LANG爲英文環境
shell ~]$locale -v ### 查看當前用戶的默認語言環境,即Oracle用戶的默認語言環境
shell ~]$locale -a ### 查看系統支持的全部字符編碼集
shell ~]$LANG=en_US.UTF-8 ### 注意只是本次shell進程有效,要想始終有效,能夠在oracle家目錄下的.bash_profile定義LANG變量的值
2. 安裝中易宋體18030 (參考網站:http://www.xpgod.com/soft/8928.html)
zysong.ttf使用方法:
1.在Linux下執行如下命令,把字體庫安裝到相應位置
mkdir -p /usr/share/fonts/zh_CN/TrueType && cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/
2.這樣在安裝的時候。Oracle就會顯示中文了,而再也不是中文亂碼了。
3.索引的丟失可能引發數據庫訪問失敗
4.解決Oracle安裝亂碼問題。
須要將文件同時安裝到/usr/share/fonts/zh_CN/TrueType/和$JAVA_HOME/jre/lib/fonts/fallback/下
3. 若是你還能勉強看懂點英語,建議英文安裝,可是安裝時排錯就比較麻煩
shell ~]$./runinstaller ###再次執行此腳本
圖一:
點擊下一步
圖二:
點擊是,選擇下一步
圖三:
選擇建立和配置數據庫,下一步
圖四:
選擇服務器類,下一步
圖五
選擇單實例數據庫安裝,下一步
圖六:
選擇高級安裝,高級安裝能夠自定義一些配置,下一步
圖七:
選擇語言,通常爲簡體中文和英語下一步
圖八:
選擇企業版,選擇選項裏有六個組件,通常默認便可,下一步
圖九:
說明:oracle會根據以前在oracle家目錄下的.bash_profile文件設置默認的基本目錄和主目錄,因此若是你想在安裝前修改
就能夠在.bash_profile 經過變量ORACLE_BASE,ORACLE_HOME定義,固然你能夠在安裝中經過瀏覽定義,oracle
會修改兩個變量的值
選擇下一步
圖十:
!注意 此清單目錄必定要爲空(好比安裝過程異常中斷,再次安裝oracle),不然會報如下錯誤:
選擇下一步
圖十一:
選擇第一項,點擊下一步
圖十二
輸入全局數據庫名和SID,其中SID也是根據以前的環境變量來獲取的,此處你也能夠更改,下一步
圖十三
若是沒有oracle使用經驗,選擇讓數據庫自動內存管理
選擇合適的字符集,這裏選擇UTF8
選擇下一步
圖十四
選擇第二項,下一步
圖十五
指定oracle數據庫數據存放目錄,選擇文件系統,默認爲/opt/oracle/app/oradata 這也是爲何以前建立的目錄名爲oradata
可是若是在此修改必定要保證修改後的目錄具備如下權限
沒問題,點擊下一步
圖十六
選擇不啓用自動備份,點擊下一步,這個功能安裝後還能修改,不須要安裝時定義,點擊下一步
圖十七
選擇對全部帳戶使用相同的口令,但生產環境不建議這麼作,輸入口令後,點擊下一步
詳細資料裏有密碼規則,不過你能夠忽略,不影響,選擇是,點擊下一步(必定要記住此密碼)
圖十八
oracle用戶組權限說明,保持默認,點下一步
圖十九
oracle檢測目標環境並生成結果
圖二十
檢測一共分三個板塊
1. 內存和交換分區大小
2. 操做系統內核參數
3. 程序包依賴
解決:
說明:每一個檢測失敗的選項,oracle都會給出詳細信息,照着修改便可,通常就是把當前參數的值改成預期值,再從新檢測便可
一. 交換分區大小,通常交換分區在裝系統的時候就已經肯定,下面接下來說解安裝後如何增長swap分區的大小
從上面的報錯能夠看到,預期值爲大概4g,當前值爲2g,因此須要增長2g,可是考慮到其餘進程的使用此處咱們增長4g,反正也是使用磁盤來用做交換分區,只要你
有足夠硬盤空間,你能夠增大到你指望的swap大小。
查看內存使用狀況
shell ~]#free -m
如下的操做都要在root用戶下進行,首先先創建一個分區,採用dd命令好比
這樣就會建立/home/swap這麼一個分區文件。
能夠看到經過dd建立了一個4G大小的swap文件,接着再把這個分區變成swap分區。
再接着使用這個swap分區。其實就是掛載,使其成爲有效狀態。
如今再用free -m命令查看一下內存和swap分區大小,就發現增長了4G的空間了。
不過當計算機重啓了之後,發現swap仍是原來那麼大,新的swap沒有自動啓動,還要手動啓動。
那咱們須要修改/etc/fstab文件,增長以下一行
你就會發現你的機器自動啓動之後swap空間也增大了。
點擊從新檢查:以下圖二十一
能夠看到,交換分區檢測經過,不在報檢測失敗
二. 操做系統內核參數
你不必先手動一個一個去修改,選擇修補並再次檢查,oracle安裝程序裏有個腳本會自動幫你解決內核參數檢測不經過的問題,若是次腳本執行完
還報某幾個選項檢測失敗,這時你能夠手動修改了 (使用sysctl命令修改並保存結果到/etc/sysctl.conf中)
圖二十二
按提示修改便可:
shell ~]# bash /tmp/CVU_11.2.0.1.0_oracle/runfixup.sh
能夠看到,運行此腳本後,會自動修改操做系統內核參數,點肯定
圖二十三:
圖二十四
三 .軟件包依賴關係,這裏建議都解決了,主要是從CentOS5.x上和google找,此處所有忽略,下一步
圖二十五
安裝過程當中配置的清單,能夠選擇保存到本地,默認會生成一個名爲db.rsp的應答文件,oracle應答文件能夠完成腳本式自動安裝部署,可使用圖形化安裝中生成
的應答文件做爲模板。選擇保存,此處不作如何使用應答文件快速部署oracle,感興趣的小夥伴能夠自行google或者百度。
shell ~]# mkdir /opt/oracle_rsp;chown oracle.oinstall /opt/oracle_rsp
保存完成後,點擊下一步
圖二十六:
等待最後安裝,這個時間有點長,主要和你的機器配置有關, 可使用top看下負載
shell ~]#top -u oracle -c
能夠看到安裝Oracle須要用到java,不過oracle的安裝包裏已經替咱們安裝了java,其實oracle圖形化安裝界面就是用java寫的
再看看進度
圖二十七
只要安裝狀態成功就OK,從上面能夠看到安裝最後一個步驟須要運行一個腳本,點擊詳細資料能夠看到安裝的詳細過程
圖二十八
爲了防止進程假死,你最好使用上面的top命令和打開詳細過程按鈕監控着,以避免你在這裏一廂情願地浪費感情,這裏你注意oracle的日誌目錄,裏面有安裝日誌
終於彈下一個窗了,我覺得卡死了,這時你就要注意oracle安裝日誌有沒有變更,若是有變更那說明沒問題
圖二十九
注意當前操做的日誌文件路徑 /opt/oracle/app/cfgtoollogs/dbca/orcl
圖三十
說明:上面紅色箭頭的部分都要留意下,主要有如下幾方面注意的
1. 數據庫建立日誌
2. 數據庫信息
3. 登陸方式:URL https://oracle.dongpi.com:1158/em ### 經過web方式登陸oracle的OEM
4. 備份加密祕鑰文件
shell ~]#mkdir /root/oracle_key
shell ~]#cp -ra /opt/oracle/app/product/11.2.0/dbhome_1/oracle.dongpi.com_orcl/sysman/config/emkey.ora /root/oracle_key/
5. 口令管理,默認oralce會鎖定除了(sys,system)用戶外的其餘帳戶。這裏咱們能夠選擇解鎖一個用戶scott
點擊肯定:
圖三十一
按上述提示執行如下操做,主要是執行兩個腳本
shell ~]#bash /opt/oracle/oraInventory/orainstRoot.sh
shell ~]#bash /opt/oracle/app/product/11.2.0/dbhome_1/root.sh
執行完腳本,點肯定
圖三十二
十. 基本上Oracle安裝算完成了,接下來看看如何啓動關閉oracle,並提供sysv風格的啓動腳本
用OUI安裝並配置Oracle數據庫後,Oracle就開啓了(包括:數據庫實例、監聽器、EM)。在重啓操做系統以後,Oracle默認是沒有啓動的。使用以下命令查看Oracle相關服務是否已啓動:
oracle相關服務說明:
1.tcp/1158: oracle EM監聽端口,網頁版的管理器
- 狀態查看:shell ~]#emctl status dbconsole ### 切換到orcale用戶執行
- 啓動和關閉:shell ~]#emctl start/stop dbconsole
- 訪問方式:可在web瀏覽器中輸入:https://{ServerIP|Hostname}:1158/em
注意必定要手動輸入https://
2. tcp/17191: oracle 數據庫實例監聽的端口(此端口每次重啓oracle都會改變)
手工啓動oracle實例,可用sqlplus創建一個idle instance,而後使用startup啓動或關閉,以下:
oracle實例關閉:
使用netstat命令再次查看:
能夠看到oracle實例已經關閉,可是監聽器和EM沒有被關閉,接下來咱們啓動oracle實例
oracle實例啓動:
注意以上在關閉oracle實例後,使用sqlplus鏈接到一個空閒實例(再也不是orcl),oralce有一個鏈接後的默認實例-orcl
使用netstat查看oracle相關tcp鏈接
3. tcp/1521: oracle監聽器,數據庫實例啓動後,須要啓動監聽器,才能讓遠程用戶創建鏈接。
- 監聽器狀態查看:shell ~]#su -oracle -c "lsnrctl status" ##切換到oracle用戶
- 監聽器關閉:shell ~] su - oracle -c "lsnrctl stop"
使用sqlplus鏈接oracle
初學oracle的小夥伴有可能就會疑惑,爲何關閉監聽器後任然能夠鏈接oracle,實際上是這樣子的oracle鏈接分爲本地鏈接和遠程鏈接,具體以下:
經過sqlplus命令行鏈接oracle四種方法 1. sqlplus / as sysdba 操做系統認證,不須要數據庫服務器啓動listener,也不須要數據庫服務器處於可用狀態。好比咱們想要啓動數據庫就能夠用這種方式 進入 sqlplus,而後經過startup命令來啓動。 2. sqlplus username/password 鏈接本機數據庫,不須要數據庫服務器的listener進程,可是因爲須要用戶名密碼的認證,所以須要數據庫服務器處於可用狀態才行。 3. sqlplus usernaem/password@orcl 經過網絡鏈接,這是須要數據庫服務器的listener處於監聽狀態。此時創建一個鏈接的大體步驟以下 a. 查詢sqlnet.ora,看看名稱的解析方式,默認是TNSNAME b. 查詢tnsnames.ora文件,從裏邊找orcl的記錄,而且找到數據庫服務器的主機名或者IP,端口和service_name c. 若是服務器listener進程沒有問題的話,創建與listener進程的鏈接。 d. 根據不一樣的服務器模式如專用服務器模式或者共享服務器模式,listener採起接下去的動做。默認是專用服務器模式,沒有問題的 話客戶端 就鏈接上了數據庫的server process。 e. 這時鏈接已經創建,能夠操做數據庫了。 4.sqlplus username/password@//host:port/sid 用sqlplus遠程鏈接oracle命令(例:sqlplus risenet/1@//192.168.130.99:1521/risenet)
上面的方式爲本地鏈接,不須要開啓oracle監聽器,接下來咱們使用帳號密碼遠程鏈接oracle:
能夠看到本地鏈接,不須要開啓監聽器,遠程鏈接必須開啓監聽器。注意conn格式(本地和遠程)
若是每次重啓操做系統都要進行以上操做好麻煩,那麼如何讓Oracle做爲系統服務在開機的時候自動啓動呢?
Oracle在$ORACLE_HOME/bin下提供許多對數據庫進行操做的腳本,其中dbstart和dbshut可分別用來啓動和關閉數據庫。注意,這兩個腳本已包含監聽器的啓動或關閉,但並未對EM進行相關的操做。使用以下命令腳本:
1 /opt/oracle/app/product/11.2.0/dbhome_1/bin/dbstart ### 啓動數據庫實例(包含監聽器) 2 /opt/oracle/app/product/11.2.0/dbhome_1/bin/dbshut ### 關閉數據庫實例(包含監聽器)
以上命令要成功啓動數據庫實例還得打開Oracle設置的一個關卡:vim /etc/oratab,修改行:
編寫oracle開機啓動腳本以下:
shell ~]vim /sh/oracle.sh
1 #!/bin/env bash 2 # 3 #********************* 4 # version: 1.0.0 5 # author: 賈俊偉 6 # contact: 7 # - QQ:765482322 8 #********************* 9 10 # chkconfig:35 20 80 11 # description: Oracle sysv init Boot scipt. 12 13 # 自定義變量 14 LogFile=/var/log/oracleinit.log 15 ORA_OWNER=oracle 16 PID= 17 18 # 讀取oracle環境變量 19 source /home/oracle/.bash_profile 20 21 # 讀取系統functions腳本 22 . /etc/init.d/functions 23 24 # 網絡相關檢查 25 if [ ! -f /etc/sysconfig/network ]; then 26 exit 0 27 fi 28 29 . /etc/sysconfig/network 30 31 # Check that networking is up. 32 [ "${NETWORKING}" = "no" ] && exit 0 33 34 start() { 35 36 if [ ! -x ${ORACLE_HOME}/bin/dbstart ];then 37 echo "$(date +"%Y-%m-%d %H:%M:%S") [Warning] The file does not exist or can not be executed." | tee -a $LogFile 2>&1 38 exit 1 39 else 40 echo "$(date +"%Y-%m-%d %H:%M:%S") [Note] Server ORACLE boot start ..." | tee -a $LogFile 2>&1 41 su - ${ORA_OWNER} -c "${ORACLE_HOME}/bin/dbstart ${ORACLE_HOME}" | tee -a $LogFile 2>&1 42 43 if (netstat -tnpl | grep -iq ":1521");then 44 PID=$(pgrep tnslsnr) 45 echo "$(date +"%Y-%m-%d %H:%M:%S") [Note] ORACLE($PID) Boot is OK." | tee -a $LogFile 2>&1 46 else 47 echo "$(date +"%Y-%m-%d %H:%M:%S") [Warning] ORACLE($PID) Boot is Failed,Please start manually" | tee -a $LogFile 2>&1 48 exit 1 49 fi 50 51 fi 52 } 53 54 stop() { 55 if [ ! -x ${ORACLE_HOME}/bin/dbshut ];then 56 echo "$(date +"%Y-%m-%d %H:%M:%S") [Warning] The file does not exist or can not be executed." 57 exit 1 58 else 59 echo "$(date +"%Y-%m-%d %H:%M:%S") [Note] Server ORACLE Stop start ..." 60 if (netstat -tnpl | grep -iq ":1521");then 61 su - ${ORA_OWNER} -c "${ORACLE_HOME}/bin/dbshut ${ORACLE_HOME}" 62 sleep 3 63 if (netstat -tnpl | grep -iq ":1521");then 64 PID=$(pgrep tnslsnr) 65 kill -9 $PID 66 fi 67 echo "$(date +"%Y-%m-%d %H:%M:%S") [Note] ORACLE Stop is OK." 68 else 69 echo "$(date +"%Y-%m-%d %H:%M:%S") [Note] ORACLE is already stopped." 70 fi 71 fi 72 } 73 74 case $1 in 75 start) 76 start 77 ;; 78 79 stop) 80 stop | tee -a $LogFile 2>&1 81 ;; 82 83 *) 84 echo "Usage:`basename $0` {start|stop}" 85 esac
腳本說明:此腳本判斷oracle是否正常啓動依據的是監聽器,若是監聽器沒有啓動就認爲oracle沒有啓動,其實這是有問題的,不過這種狀況只在手動使用命令啓動或者關閉oracle
相關服務進程的時候纔會出現,正常狀況下oracle提供的默認腳本,啓動和關閉都包含對監聽器的操做。固然亦能夠根據以上腳本修改更加嚴格的判斷條件,好比只有oracle三個tcp鏈接同時存在做爲啓動判別標準。爲了安全起見,本腳本沒有啓動oracle 管理器EM。
shell ~]cp /sh/oracle.sh /etc/init.d/oracle ## 複製到系統默認開機啓動腳本目錄,該目錄包含了sysv風格的服務啓動腳本,便可以使用service命令
shell ~]chmod +x /etc/init.d/oracle ### 添加可執行權限
shell ~]chkconfig --level 35 oracle on ### 加入開機啓動
測試腳本:
1.啓動oracle,這裏咱們先使用pkill強行殺死全部oracle進程
1 shell ~]#pkill -9 oracle 2 shell ~]#ps -ef | grep -i "oracle|java" ### 殺掉包含oracle或者java關鍵字的進程(oracle使用java開發,爲防止誤殺,請首先確認是否有其餘java進程)
3 shell ~]#netstat -tnpl | egrep -i ":1521|:1158|ora"
返回爲空說明,所有殺死。使用sercie命令啓動oracle
2.關閉oracle,一樣使用service命令
3. oracle啓動關閉相關日誌:$ORACLE_HOME/{starup.log|shutdown.log}
十一. oracle 防火牆設定
主要是開放oracle三個tcp端口中的(1521:監聽器,1158:em)
iptables -A INPUT -s 192.168.95.0/24 -p tcp -m state --state NEW -m multiport --dports 1521,1158 -j ACCEPT
使用navicat鏈接驗證:以下圖點擊測試鏈接。
至此有關oracle 11g r2基本環境部署就先介紹到這裏,後續我會繼續分享oracle基本操做命令,oracle備份與恢復。