1. 程式人生 > >linux Oracle 11g安裝

linux Oracle 11g安裝

Cent OS 6_5(x86_64)下安裝Oracle 11g

1 硬體要求  

1.1 記憶體 & swap

實體記憶體不少於1G

硬碟可以空間不少於5G

swap分割槽空間不少於2G

Minimum: 1 GB of RAM  

Recommended: 2 GB of RAM or more

1.2 硬碟

由於CentOS安裝後差不多有4~5G,再加上Oracle等等的安裝,所以請準備至少10G的硬碟空間。

檢查磁碟情況 :# df -h

2 軟體

系統平臺:CentOS6.5(x86_64)無圖形介面

oracle版本:Oracle11g

Linux.x64_11gR2_database_1of2.zip

linux.x64_11gR2_database_2of2.zip

3 安裝注意

本文中所描述的系統命令,未經特殊標示,均為“#”代表root許可權,“$”代表oracle許可權。

本文中所描述的所有安裝包、依賴包均在附件中,請自行存放位置,以便安裝。

本文中的命令和文字內容,不能完全直接複製使用!

4 安裝前準備

首先,請先以root賬號登入作一些前置設定作業。

輸入密碼後進入root賬戶

4.1 作業系統準備

檢視主機名

 

 

#hostname

 

顯示chances

在/etc/hosts檔案內容的最底下新增主機名

 

#vi /etc/hosts

 

注掉原來的,然後新增192.168.206.135 CentOS

 

 #127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

127.0.0.1 localhost

192.168.220.158 chances

   

4.2關閉、防火牆

關閉selinux

  

 

#vi /etc/selinux/config

 

設定SELINUX=disabled

 

  

#setenforce 0

防火牆臨時關閉命令:

 

#service iptables stop

 

 

4.3安裝依賴包

命令:#rpm -ivh 依賴包名(請先進入存放依賴包的目錄下)

根據 #ls顯示的檔案順序,直接將所有依賴包安裝!

因為有依賴關係,所以如果沒有出現進度條,並且提示錯誤資訊,那就直接在命令最後,忽略依賴關係,直接安裝!

安裝命令:#rpm -ivh 依賴包名 --force --nodeps (進入依賴包的目錄下,直接執行)

 

#rpm -ivh * --force --nodeps

 

安裝依賴過程如下(執行順序參考,可以忽略):

rpm -ivh binutils-2.20.51.0.2-5.46.el6.x86_64.rpm --force --nodeps

rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm --force --nodeps

rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm --force --nodeps

rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm --force --nodeps

rpm -ivh cpp-4.4.7-18.el6.x86_64.rpm --force --nodeps

rpm -ivh elfutils-0.164-2.el6.x86_64.rpm --force --nodeps

rpm -ivh elfutils-libelf-0.164-2.el6.x86_64.rpm --force --nodeps

rpm -ivh elfutils-libelf-devel-0.164-2.el6.x86_64.rpm --force --nodeps

rpm -ivh elfutils-libs-0.164-2.el6.x86_64.rpm --force --nodeps

rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm --force --nodeps

rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm --force --nodeps

rpm -ivh glibc-2.12-1.209.el6_9.1.i686.rpm --force --nodeps

rpm -ivh glibc-2.12-1.209.el6_9.1.x86_64.rpm --force --nodeps

rpm -ivh glibc-common-2.12-1.209.el6_9.1.x86_64.rpm --force --nodeps

rpm -ivh glibc-devel-2.12-1.209.el6_9.1.x86_64.rpm --force --nodeps

rpm -ivh glibc-headers-2.12-1.209.el6_9.1.x86_64.rpm --force --nodeps

rpm -ivh ksh-20120801-33.el6.x86_64.rpm --force --nodeps

rpm -ivh libaio-0.3.107-10.el6.i686.rpm --force --nodeps

rpm -ivh libaio-devel-0.3.107-10.el6.i686.rpm --force --nodeps

rpm -ivh libaio-devel-0.3.107-10.el6.x86_64.rpm --force --nodeps

rpm -ivh libgcc-4.4.7-18.el6.i686.rpm --force --nodeps

rpm -ivh libgcc-4.4.7-18.el6.x86_64.rpm --force --nodeps

rpm -ivh libgomp-4.4.7-18.el6.x86_64.rpm --force --nodeps

rpm -ivh libstdc++-4.4.7-18.el6.i686.rpm --force --nodeps

rpm -ivh libstdc++-4.4.7-18.el6.x86_64.rpm --force --nodeps

rpm -ivh libstdc++-devel-4.4.7-18.el6.x86_64.rpm --force --nodeps

rpm -ivh make-3.81-23.el6.x86_64.rpm --force --nodeps

rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm --force --nodeps

rpm -ivh nss-softokn-freebl-3.14.3-23.3.el6_8.i686.rpm --force --nodeps

rpm -ivh nss-softokn-freebl-3.14.3-23.3.el6_8.x86_64.rpm --force --nodeps

rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm --force --nodeps

rpm -ivh sysstat-9.0.4-33.el6.x86_64.rpm --force --nodeps

rpm -ivh tzdata-Java-2017b-1.el6.noarch.rpm --force --nodeps

rpm -ivh unixODBC-2.2.14-14.el6.x86_64.rpm --force --nodeps

rpm -ivh unixODBC-devel-2.2.14-14.el6.x86_64.rpm --force --nodeps

 

 

4.4 建立安裝使用者、組、目錄

4.4.1建立安裝使用者和組

 

#groupadd oinstall

#groupadd dba

#useradd -g oinstall -G dba oracle

#passwd oracle

#id oracle

  

輸入後可以看到群組的情況:

 

 

4.4.2建立軟體安裝目錄

 

#mkdir -p /opt/oracle 
//$ORACLE_BASE

#mkdir -p /opt/oracle/product/112010/db_1 
//$ORACLE_HOME

#mkdir /opt/oracle/oradata 
//存放資料庫目錄

#mkdir /opt/oracle/inventory

#mkdir /opt/oracle/flash_recovery_area

#chown -R oracle:oinstall /opt/oracle

Chmod -R 775 /opt/oracle

  

4.4.3 將oracle使用者加入到sudo群組中

 

#vi /etc/sudoers

 

輸入上面的命令後,開啟sudoers檔案進行編輯,找到
root       ALL=(ALL)       ALL 
這行,並且在底下再加入以下命令:(按esc退出insert插入模式,按下i進入編輯模式)

   

 

oracle ALL=(ALL) ALL

 

按下esc,直到退出insert模式,在最底下空白行輸入“:wq!”(由於這是一份只讀文件所以需要再加上!)並且按下Enter

修改後,可以開啟/etc/sudoers檔案確認一下修改是否完成

注:修改檔案儲存退出:“:wq”,不儲存直接退出:”:q”,強制執行在命令後加”!”

 

4.5 配置系統環境

4.5.1 修改核心引數

# vi /etc/sysctl.conf

 

修改、新增以下內容(不能小於下面的數值,灰色的是已存在的不能比這個小

 

kernel.shmall = 2097152

kernel.shmmax = 1073741824

fs.aio-max-nr = 1048576

fs.file-max = 6815744

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

 

4.5.2修改使用者限制檔案

 

#vi /etc/security/limits.conf

 

行末新增以下內容

 

oracle           soft    nproc           2047

oracle           hard    nproc           16384

oracle           soft    nofile          1024

oracle           hard    nofile         65536

oracle           soft    stack           10240

 

4.5.3關聯設定

 

#vi /etc/pam.d/login

 

行末新增以下內容:

 

session required  /lib64/security/pam_limits.so

session required   pam_limits.so

 

4.5.4修改/etc/profile

 

#vi /etc/profile

 

新增以下內容:

 

if [ $USER = "oracle" ]; then

 

if [ $SHELL = "/bin/ksh" ]; then

 

ulimit -p 16384

 

ulimit -n 65536

 

else

 

ulimit -u 16384 -n 65536

 

fi

 

fi

 

 

在root使用者下,使用命令source profile使環境變數生效

#source /etc/profile

 

 

4.5.5 修改使用者環境變數

 

#vi /home/oracle/.bash_profile

  

在最底下加入以下內容

 

# For Oracle

 

export  ORACLE_BASE=/opt/oracle;

 

export  ORACLE_HOME=/opt/oracle/product/112010/db_1

 

export  ORACLE_SID=orcl;

 

export  PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

 

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

 

if [ $USER = "oracle" ]; then

 

if [ $SHELL = "/bin/ksh" ]; then

 

ulimit -p 16384

 

ulimit -n 65536

 

else

 

ulimit -u 16384 -n 65536

 

fi

 

umask 022

 

fi

   

使環境變數生效

 

#source /home/oracle/.bash_profile

 

檢視命令:# env

 

 

 

 

 

5正式安裝

5.1解壓oracle安裝檔案

Oracle 11g安裝包:將安裝包上傳至伺服器/opt/oracle/ 下面,這兩個包屬於oracle使用者

 

linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip

 

安裝包解壓命令(使用oracle使用者解壓 )

 

$unzip linux.x64_11gR2_database_1of2.zip

$unzip linux.x64_11gR2_database_2of2.zip

  

解壓完成後/opt/oracle下會生成database目錄

 

 

5.2編輯oracle資料庫安裝應答檔案

1、/opt/oracle/database/response(解壓後的檔案中)下有有db_install.rsp、dbca.rsp和netca.rsp三個應答檔案,分別資料庫安裝檔案、建立資料庫例項和監聽配置安裝檔案

Vidb_install.rsp

修改以下內容

 

oracle.install.option=INSTALL_DB_SWONLY   //29 行 安裝型別

 

ORACLE_HOSTNAME=chances //37 行 主機名稱

 

UNIX_GROUP_NAME=oinstall //42 行 安裝組

 

INVENTORY_LOCATION=/opt/oracle/inventory //47 行 INVENTORY目錄

 

SELECTED_LANGUAGES=zh_CN //78 行 選擇語言

 

ORACLE_HOME=/opt/oracle/product/112010/db_1 //83 行 oracle_home

 

ORACLE_BASE=/opt/oracle //88 行 oracle_base

 

oracle.install.db.InstallEdition=EE //99 行 oracle版本

 

oracle.install.db.DBA_GROUP=dba //142行dba使用者組

 

oracle.install.db.OPER_GROUP=oinstall //147行oper使用者組

 

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //160行 資料庫型別

 

oracle.install.db.config.starterdb.globalDBName=orcl //165行globalDBName

 

oracle.install.db.config.starterdb.SID=orcl //170行SID

 

oracle.install.db.config.starterdb.memoryLimit=800  //192行 自動管理記憶體的最小記憶體(M)

 

oracle.install.db.config.starterdb.password.ALL=oracle //233行 設定所有資料庫使用者使用同一個密碼

 

DECLINE_SECURITY_UPDATES=true //385行 設定安全更新

 

 

5.3安裝

 

 

使用oracle使用者安裝

 

#su oracle

 

進入剛才解壓的database目錄

 

$cd /opt/oracle/database/

 

$./runInstaller -silent -responseFile /opt/oracle/response/db_install.rsp -ignorePrereq

 

 

接下來就是等待(有點長,不要著急!!!)開始計時,快的話10分鐘左右。(安裝好的圖示在下頁)

安裝過程中,如果提示[WARNING]不必理會,此時安裝程式仍在後臺進行,如果出現[FATAL],則安裝程式已經停止了。

可以在以下位置找到本次安裝會話的日誌:

/optoracle/oraInventory/logs/installActions2015-06-08_04-00-25PM.log

 

可以使用命令檢視日誌:後面的地址應該以安裝過程中的提示為準

#tail -100f /optoracle/oraInventory/logs/installActions2015-06-08_04-00-25PM.log

 

 

 

從下可以看到:

安裝過程是沒有任何進度提示的,最多隻能通過日誌檔案檢視!

 

 

安裝好或者是失敗會有提示如下所示,是安裝成功的資訊提示。

 

 

5.4 安裝後操作

按照要求執行指令碼。

 

開啟新的終端,以root身份登入,執行指令碼:

 

#/opt/oracle/inventory/orainstRoot.sh

#/opt/oracle/product/112010/db_1/root.sh

 

完成後,返回原來的終端按下回車鍵

 

 

Oracle11g的安裝就到此結束!

 

 

6 配置監聽

編輯oracle安裝目錄下的netca.rsp應答檔案,地址為:

/opt/oracle/database/response/netca.rsp,主要檢視以下引數配置:

 

INSTALL_TYPE=""custom""安裝的型別

 

LISTENER_NUMBER=1監聽器數量

 

LISTENER_NAMES={"LISTENER"}監聽器的名稱列表

 

LISTENER_PROTOCOLS={"TCP;1521"}監聽器使用的通訊協議列表

 

LISTENER_START=""LISTENER""監聽器啟動的名稱

 

檢查完畢後,執行命令:

 

$netca /silent /responseFile /opt/oracle/database/response/netca.rsp

 

執行後成功如下所示:

 

 

成功執行後,在/opt/oracle/product/112010/network/admin/中生成listener.ora和sqlnet.ora

 

 

 

安裝完成後通過netstat命令可以檢視1521埠正在監聽(重開一個視窗

 

#netstat -tnulp | grep 1521

 

錯誤:

 

出現某某檔案too short的錯誤,很有可能是作業系統有問題,建議重灌linux系統。

 

  

錯誤:

進入紅色部分去看一下日誌 #cat 路徑

 

看到日誌一大堆,最下面是關鍵host的ip迴環沒有配好,由於新系統,系統的host是預設的。

 

解決:

我們要用自己的host名:

#vi /etc/hosts

這步最早已經做過了(見4.1),這一步完成只是臨時的,重啟後據說就不行了

 

下面修改正式的內容:

 

#vi /etc/sysconfig/network

 

  

由於上面執行netca的時候已經生成了listener監聽了,所以我們需要修改下面檔案:

 

$vi $ORACLE_HOME/network/admin/listener.ora

 

這裡把localhost 改成本機ip儲存退出就好了

下面我們繼續開啟監聽:$lsnrctl start 有一大堆東西,然後就可以繼續下一步

 

7 新增資料庫例項

7.1 修改/opt/oracle/database/response/dbca.rsp(就是解壓安裝檔案目錄下的)

根據資料庫建立方式的不同編輯不同的資料庫庫選項。

比如在本次安裝過程中設定了下列引數:(注意下面引數視情況而定,不要照抄,原檔案都有說明的)

 

RESPONSEFILE_VERSION ="11.2.0"//不能更改

OPERATION_TYPE ="createDatabase"

GDBNAME ="orcl"//資料庫的名字

SID ="ORCL"//對應的例項名字

TEMPLATENAME ="General_Purpose.dbc"//建庫用的模板檔案

SYSPASSWORD ="oracle"//SYS管理員密碼

SYSTEMPASSWORD ="oracle"//SYSTEM管理員密碼

SYSMANPASSWORD= "oracle"

DBSNMPPASSWORD= "oracle"

DATAFILEDESTINATION =/opt/oracle/oradata//資料檔案存放目錄

RECOVERYAREADESTINATION=/opt/oracle/flash_recovery_area//恢復資料存放目錄

CHARACTERSET ="ZHS16GBK"//字符集,重要!!!建庫後一般不能更改,所以建庫前要確定清楚。

TOTALMEMORY ="1638"//1638MB,實體記憶體2G*80%。

 

7.2 安裝

進入oracle安裝目錄的bin下,執行dbca命令

 

$dbca -silent -responseFile /opt/oracle/database/response/dbca.rsp

 

 

這裡介面可能會出現閃動,可以等全部東西都不見了,是要輸入SYS密碼,但不知道為什麼看不見提示,一閃而過。

然後輸入完畢按下回車,又看見SYSTEM密碼一閃而過,再次輸入密碼回車,這時就開始建庫了。

 

完成(上述輸入密碼的步驟有可能直接略過)

 

建庫後進行例項程序檢查:

 

$ps -ef | grep ora_ | grep -v grep

檢視監聽狀態:

 

$ lsnrctl status

  

修改/opt/oracle/product/112010/db_1/bin/dbstart

 

$ vi /opt/oracle/product/112010/db_1/bin/dbstart

 將ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME

  

修改/opt/oracle/product/112010/db_1/bin/dbshut

 

$ vi /opt/oracle/product/112010/db_1/bin/dbshut

 

 

將ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME

 

修改/etc/oratab檔案

 

$vi /etc/oratab

  

將orcl:/data/oracle/product/11.2.0:N中最後的N改為Y,成為

orcl:/data/oracle/product/11.2.0:Y

 

輸入命令dbshut和dbstart測試

 

$ dbshut

Oracle監聽停止,程序消失。

 

$lsnrctl status

$ps -ef |grep ora_ |grep -v grep

 Oracle 監聽啟動,程序啟動。

 

$ dbstart

$lsnrctl status

$ps -ef |grep ora_ |grep -v grep

 

 

 

登入檢視例項狀態:

 

$ sqlplus / as sysdba

 

錯誤:

 

 

解決:

 

$echo $ORACLE_HOME

$echo $ORACLE_SID

$export ORACLE_SID=orcl (sid看自己設的什麼)

 

或者$env |grep ORACLE

 

繼續

 

SQL> select status from v$instance;

 

 

錯誤:

 

解決:

該問題一般是認為sid設定混亂造成,oracle安裝過程中有幾個地方都設定sid和資料庫名稱之類的,很容易記錯。

 

SQL>shutdown

SQL>quit

$dbshut

 

$echo $ORACLE_SID

或者$env |grep ORACLE

 

$export ORACLE_SID=orcl (sid看自己設的什麼)

$dbstart

重新:$sqlplus / as sysdba

SQL>startup

8 收尾

8.1完成之後,我們需要將selinux開啟

不然重啟會出現問題,無法開機!!!

 

#vi /etc/selinux/config

 

將之前的disabled 改成targeted 然後就可以安心了。

 

8.2檢查listener.ora

/opt/oracle/product/112010/db_1/network/admin/listener.ora

 

 

如果在安裝監聽過程中出現什麼問題,可以將這個檔案刪除,然後重新執行netca步驟

 裡面的內容應該是這樣的

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = orcl)

      (ORACLE_HOME = /opt/oracle/product/112010/db_1)

      (SID_NAME = orcl)

    )

  )

 

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.1.48)(PORT = 1521))

    )

  )

 

ADR_BASE_LISTENER = /opt/oracle

 

接下來:

如果在lsnrctl start 或是lsnrctl status中有看到下面紅色部分:

 

那麼需要執行以下步驟:

 

sql> alter system register

sql> show parameter local_listener

(address=(protocol=tcp)(host=192.168.129.201)(port=1521))

而listener實際用的ip是192.168.155.100。

發現這臺機器有兩張網絡卡,ip分別為:192.168.155.100和192.168.129.201,之前有維護人員大概想將listener繫結到192.168.129.201這個ip上,但採用的方法不對。

修改local_listener引數,sql> alter system set local_listener='';

再重新註冊服務,sql> alter system register;

檢視註冊情況,$ lsnrctl status

 

8.3最後:看看密碼

 

9 解除安裝ORACLE

 

Oracle解除安裝

1.停止監聽服務(oracle使用者登入)

[[email protected] ~]$ lsnrctl stop

2.停止資料庫

[[email protected] ~]$ sqlplus / as sysdba

SQL>shutdown

3.刪除oracle安裝路徑(root使用者登入)

[[email protected] deps]# rm -rf /opt/oracle/product

[[email protected] deps]# rm -rf /opt/oracle/inventory

……安裝前建立的和安裝後生成的都刪掉(oracle解壓檔案database不要誤刪)

4.刪除系統路徑檔案(root使用者登入)

[[email protected] deps]# rm -rf /usr/local/bin/dbhome

[[email protected] deps]# rm -rf /usr/local/bin/oraenv

[[email protected] deps]# rm -rf /usr/local/bin/coraenv

5.刪除資料庫例項表(root使用者登入)

[[email protected] deps]# rm -rf /etc/oratab

6.刪除資料庫例項lock檔案(root使用者登入)

[[email protected] deps]# rm -rf /etc/oraInst.loc

7.刪除oracle使用者及使用者組(root使用者登入)重灌oracle的話就不用刪了

[[email protected] deps]# userdel -r oracle

[[email protected] deps]# groupdel oinstall

[[email protected] deps]# groupdel dba

 

10 其他操作

 

開啟oracle服務:

$dbstart

$lsnrctl start

$sqlplus / as sysdba

SQL>startup

 

 

 

關閉oracle服務:

$dbshut

$lsnrctl stop

$sqlplus / as sysdba

SQL>shutdown