在Linux中安裝Oracle(較詳細圖解)


原創 http://www.cnblogs.com/nucdy/p/5603998.html 

參考視屏:鏈接: https://pan.baidu.com/s/1kViEZQZ  密碼: z7ha  

(環境:oracle11g, linux64 RHEL6)

安裝RHEL6

    假設你已經正確安裝VM軟件並激活。點擊創建新的虛擬機:

這個你可以將其安裝的內存小一些,也沒有多大的關系

點擊虛擬機菜單欄上的編輯->虛擬網絡配置

 

 

設置網絡(要根據自己的實際情況設定):

設置分區:

創建分區的要點大致如下:

分區名稱

大小(MB)

/boot

128

swap

4096

/

20480

/home

5000

 

 

 

此外,這塊你也要選擇一些那個“開發”中選項,將那個能選擇的全選擇了,安裝oracle是會省很多的事情。

 

后面設置全部自動

 

出現此畫面表示安裝成功!

安裝VMwaretools的操作略過,請自行完成

可以參考這個:http://www.cnblogs.com/nucdy/p/5235791.html

在Linux操作系統中安裝Oracle

1.以root用戶登錄Linux

    首先要以root登錄,獲取Linux下的最高權限。登錄時選擇其他賬戶,用戶名輸入root,密碼輸入安裝時設置的root密碼,記得選擇語言為中文(屏幕最下方正中間位置)。得到如圖所示的結果。

 

 

 

  

2.安裝前的准備工作(我的可以,但有時機子不同導致失敗的,可以查看這幾個文件:http://pan.baidu.com/s/1ge9zYxX

2.0 設置IP地址為靜態(固定IP地址)

         如果你還沒有設置IP為靜態,請現在設置。

你這個在安裝的時候就設置了,老師上課已經講了,我就不在寫了。

你可以驗證一下,在這里

192.168.8.201我是綁定了VMware Virtual Ethernet Adapter for VMnet8 ,和其在一個網段

VMnet8 的ip地址是:192.168.8.111

2.1 修改stsctl.conf文件

    Linux是為小文件設計的,Oracle數據庫安裝需要占用較多資源,要把各項參數調大。

    使用vi編輯/etc/sysctl.conf文件。命令如下:

vi /etc/sysctl.conf

 

    按i進入插入模式,把光標移到文檔最后,將以下一段文字(復制自Oracle 11g官方文檔)插入到文檔最后。

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

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

net.ipv4.tcp_wmem = 262144 262144 262144

 net.ipv4.tcp_rmem = 4194304 4194304 4194304

 

 注意注釋掉

 # Disable netfilter on bridges.

 #net.bridge.bridge-nf-call-ip6tables = 0

 #net.bridge.bridge-nf-call-iptables = 0

 #net.bridge.bridge-nf-call-arptables = 0

(重新加載這些參數,一定要重啟系統,其他不使用)

    復制完成后,按【ESC】鍵輸入:wq保存退出。

 

各參數詳解:

kernel.shmmax:是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值。設置應該足夠大,能在一個共享內存段下容納下整個的SGA ,設置的過低可能會導致需要創建多個共享內存段,這樣可能導致系統性能的下降。至於導致系統下降的主要原因為在實例啟動以及ServerProcess創建的時候,多個小的共享內存段可能會導致當時輕微的系統性能的降低(在啟動的時候需要去創建多個虛擬地址段,在進程創建的時候要讓進程對多個段進行“識別”,會有一些影響),但是其他時候都不會有影響。

 

官方建議值:

32位linux系統:可取最大值為4GB(4294967296bytes)-1byte,即4294967295。建議值為多於內存的一半,所以如果是32為系統,一般可取值為4294967295。32位系統對SGA大小有限制,所以SGA肯定可以包含在單個共享內存段中。

64位linux系統:可取的最大值為物理內存值-1byte,建議值為多於物理內存的一半,一般取值大於SGA_MAX_SIZE即可,可以取物理內存-1byte。例如,如果為12GB物理內存,可取12*1024*1024*1024-1=12884901887,SGA肯定會包含在單個共享內存段中。

 

kernel.shmall: 該參數控制可以使用的共享內存的總頁數。Linux共享內存頁大小為4KB,共享內存段的大小都是共享內存頁大小的整數倍。一個共享內存段的最大大小是16G,那么需要共享內存頁數是16GB/4KB=16777216KB /4KB=4194304(頁),也就是64Bit系統下16GB物理內存,設置kernel.shmall = 4194304才符合要求(幾乎是原來設置2097152的兩倍)。這時可以將shmmax參數調整到16G了,同時可以修改SGA_MAX_SIZE和SGA_TARGET為12G(您想設置的SGA最大大小,當然也可以是2G~14G等,還要協調PGA參數及OS等其他內存使用,不能設置太滿,比如16G)

 

kernel.shmmni:該參數是共享內存段的最大數量。shmmni缺省值4096,一般肯定是夠用了。

 

fs.file-max:該參數決定了系統中所允許的文件句柄最大數目,文件句柄設置代表linux系統中可以打開的文件的數量。

 

fs.aio-max-nr:此參數限制並發未完成的請求,應該設置避免I/O子系統故障。推薦值是:1048576 其實它等於 1024*1024 也就是 1024K 個。

 

kernel.sem:以kernel.sem = 250 32000 100 128為例:

       250是參數semmsl的值,表示一個信號量集合中能夠包含的信號量最大數目。

       32000是參數semmns的值,表示系統內可允許的信號量最大數目。

       100是參數semopm的值,表示單個semopm()調用在一個信號量集合上可以執行的操作數量。

       128是參數semmni的值,表示系統信號量集合總數。

 

net.ipv4.ip_local_port_range:表示應用程序可使用的IPv4端口范圍。

net.core.rmem_default:表示套接字接收緩沖區大小的缺省值。

net.core.rmem_max:表示套接字接收緩沖區大小的最大值。

net.core.wmem_default:表示套接字發送緩沖區大小的缺省值。

net.core.wmem_max:表示套接字發送緩沖區大小的最大值。

 

 

 

 

 

2.2 修改limits.conf

    修改:/etc/security/limits.conf

vi /etc/security/limits.conf

    在文件末尾加入以下內容:

oracle soft nproc  2047

oracle hard nproc  16384

oracle soft nofile 1024

oracle hard nofile 65536

 oracle hard stack 10240

 

保存並退出。

2.3 重啟系統

    修改完參數之后就要重啟了,這樣做是為了系統能認識我們之前配置的參數。輸入以下命令:

reboot

2.4 執行一系列操作

    以普通用戶登錄(千萬不要用root!!!!),然后切換到root用戶。(密碼就是root的密碼)

su root

執行以下命令:

2.4.1 創建組dba

groupadd dba

 

tail /etc/group

 

2.4.2 創建oracle用戶並添加到dba組

    繼續輸入以下命令:

useradd oracle

 

 

 

    將oracle用戶添加到dba組

usermod -g dba oracle

 

 

給這個用戶加一個密碼(密碼一定要好記,別管他的提示),命令如下:

passwd oracle

 

 

 

測試一下剛才的操作是否成功:

tail /etc/group

tail /etc/passwd

 

2.4.3 為Oracle安裝創建目錄

    執行以下命令創建目錄:

mkdir -p /u01/app/oracle

執行以下命令,將文件的屬主改為Oracle,屬組改為dba:

chown -R oracle:dba /u01/app/oracle

修改文件的訪問權限為777(4+2+1,4+2+1,4+2+1):

chmod -R 777 /u01/app/oracle

查看一下你剛建的文檔權限,這個十分重要,用命令: ll    查看那個幾個文件的權限,我的如下:

 

drwxr-xr-x.   3  root root  4096 Jun 19 16:39   u01                        
drwxr-xr-x. 4  root root 4096 Jun 19 18:24      app                                                            

[oracle@server app]$ ll
total 8
drwxrwxrwx. 10  oracle dba 4096 Jun 19 20:22  oracle
drwxrwx---.  5  oracle dba 4096 Jun 19 18:59  oraInventory 
 

 

上面兩個文件的權限影響后面執行的權限問題,一定記得檢查!

 

2.4.4 切換到Oracle用戶

su oracle

2.4.5 配置概要文件(oracle下)

    輸入以下命令:

cd /home/oracle

vi .bashrc

    進入vi后按鍵盤上的字母i切換到插入模式,然后插入以下內容:

umask 002

ORACLE_BASE=/u01/app/oracle      //這個決定后面按安裝的目錄

export ORACLE_BASE

 

ORACLE_HOME=$ORACLE_BASE/product/11.2.0    //這個也是

export ORACLE_HOME

 

ORACLE_SID=dog         //和你后要建的數據庫事例名字一樣,我的是:dog,以防出現SID不一致的問題

export ORACLE_SID

 

PATH=/usr/bin:/bin:usr/local/bin:/usr/bin/X11:/usr/bin/X11R6

PATH=$PATH:$ORACLE_HOME/bin

export PATH

4、添加/etc/hosts中dns解析信息(這個是root下執行,這個里面原來是有東西的,不是一個新的文件,將一些的文件追加到文件的最后)

192.168.1.102             jiangwf-linux(這個是你安裝linux時的主機名)

192.168.1.102             localhost

 

 

5.root 用戶下(文件里面是有東西的,在最后追加)

  vi /etc/pam.d/login

   session required /lib/security/pam_limits.so

   session required pam_limits.so 

 

 

(重新加載這些參數,一定要重啟系統,其他不使用)

 

至此,准備工作全部完成!

 

 

3.安裝Oracle

3.1 創建安裝目錄並將其屬組改為Oracle

    獲取root權限並執行以下命令:

su root

mkdir /u01/app/oraInventory

ls -l /u01/app

chown -R oracle:dba /u01/app/oraInventory

chmod -R 775 /u01/app/oraInventory

ls -l /u01/app

主要一定要看上面的文件是否權限一致,這特便是是oracle  和 oraInventory 的權限以及讀寫權限,簡單的來說是他們前面的東西一致

3.2 解壓Oracle安裝文件

    先將oracle安裝程序拷貝到一個目錄下(我解壓到tmp的oracle目錄下,如果沒有,自己建一個目錄,在外面復制安裝程序,里面粘貼。如果文件無法導入到虛擬機,請檢查VMtools是否正確安裝):

 

 

 

 

 

 

 

 

 

 

另一個文件同理。最終得到如下結果:

 

 

這里,其實還有很多問題,若你用的是WinScp上傳的話,可能是root權限。建議用oracle用戶上傳,若是root 的用戶,那 你的

先root 下進行建文件夾,而后 將其改成oracle的 宿主 ,即:

[oracle@server app]$ mkdir  temo

[oracle@server app]$ chown -R oracle:dba  temo

[oracle@server app]$ chmod 777  temo

然后你在oracle用戶下按上面的操作,將其解壓到temo 中,

而后最好我的建議是你查看一下剛剛解壓后的文件的權限,若database中的文件都是oracle 用戶就最好了。

3.3 運行安裝文件(oracle用戶下安裝,因為這個是oracle用戶用的)

如你當前系統環境是英文的環境一些不用看

若你是當前系統環境是中文的環境必須看,否則會出現框框亂碼問題,

**——設置編碼方式:在oracle用戶下:

export LANG=en_US.UTF-8

這個你可以參考博客:http://www.cnblogs.com/nucdy/p/5598497.html

有關一個“red hat 系統將中文設置為英文環境“ 文章

若你已經運行了,沒有關系,點擊oracle的那個close ,

然后在命令行中以oracle用戶下輸入

export LANG=en_US.UTF-8

而后執行下面繼續運行沒有問題

***)

這個是在oracle用戶  下運行的

[oracle@server app]$

 

cd /tmp/Oracle/database          //這個是進入到你oracle解壓后的目錄下,根據你自己

./runInstaller

 

 

 

下一步是典型安裝:畢竟現在在是用來進行學習的,先安裝上即可,不用先急的去安裝一個自己手工設置的數據事例,以后在進行嘗試也不遲,況且這樣做完了,你還得進行配置更多的其他東西,你可以網上搜索一下,安裝完還是要需要進行一些數據庫事例的相關配置很麻煩的,這個先不講,以下我主要介紹是典型安裝的過程

 

 

選擇typical install

 

然后,選擇下一步,下一步

接下來是會出現,一下界面,你按照這個繼續進行中就行

由於Oracle安裝時缺少依賴包,我們需要添加這些依賴包,命令另起一個終端,輸入:

 

 

安裝依賴包比較麻煩,可以直接把老師發的iso文件放入linux,(/media/RHEL_6.2 i386 Disc 1/Packages) ,這個目錄找上面對應的所需要的.rmp 文件,進行安裝

rpm -ivh xxx.rpm安裝即可

在packages找到相應的rpm文件,在終端執行命令 rpm -ivh xxx.rpm安裝即可

可能出現的錯誤(包很多或者修改文件權限不夠):例如

 

 

其實,我想說的是出現這個問題,是應為你在安裝linux時候就應該選擇定制軟件包的時候,選擇上那個“開發” ,將那幾個能選擇的都選擇上肯定不會出現這種情況。

當然,你也可以自己找找,里面有關這個gcc c 啥啥的東西,后面忘了,還有gcc c++啥的包,就不會出現上面的問題

 

解決這個問題可以參考http://blog.csdn.net/zb0567/article/details/41048263或者百度。

 

 

(其中,在這里若出現了那個soft Limit:maximux usr pricess 情況,即:maximum user processes),是你之前配置的 /etc/security/limits.conf中出現問題了,請去檢查相關的是否寫錯。

 

同時。老師那個/etc/sysctl.conf中信息的一個信息改為:kernel.shmall = 2097152

/etc/sysctl.conf中信息

fs.aio-max-nr = 1048576

 fs.file-max = 6815744

 kernel.shmall = 2097152

 kernel.shmmax = 536870912

 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 = 1048586

 net.ipv4.tcp_wmem = 262144 262144 262144

 net.ipv4.tcp_rmem = 4194304 4194304 4194304

 

 

 

 

找到相應依賴包,如果不能成功的話,su root ——>輸入密碼  然后找到對應的rpm文件再重新在終端執行命令 rpm -ivh xxx.rpm。

 

大家可以參考文檔http://www.jb51.net/article/53769.htm

而后點擊安裝完上面的rpm后,點擊Check again 即可,沒問題,就下一步

這塊,沒有截圖,有一個從新彈出一個框,

而后,你可以將點擊那個修改,進行將一些用戶進行解鎖,

比如較為長用的一個用戶Scott,將對勾進行點擊去掉,而后輸入密碼,確認密碼,

點擊確定,對話框點擊yes

 

后面就行下一步,繼續即可

 

 

看到這個頁面可以初步判斷oracle初步安裝成功,接下來按照步驟創建數據庫即可。

 

我安裝參考的文檔:http://www.jb51.net/article/53769.htm

好,上面如果你能成功的安裝了,就暫時說明好了,但是你還得去oracle中查看一下,是否啟動。

 

(我一般是將的關閉防火牆:chkconfig iptables off)讀者可以不去選擇去執行

 

手工啟動:(這里是啟動一些服務,就行windows中的服務一些,需要手工啟動,讀者進操作一些的命令即可)

 

[oracle@crmdb ~]$ lsnrctl start           //success 表明成功

[oracle@crmdb ~]$ dbstart   //啟動監聽器,我自己試了一下,沒啟動也沒有事情

[oracle@crmdb ~]$ emctl start dbconsole   

//自后出現啥啥啥success,代表成功 ,這個是可以啟動瀏覽器的進行的操作

/**瀏覽器中輸入https://localhost:1158/em/ 

//usrname :sys

//password:自己設置的密碼

登錄即可,出現  

就行了

****/

 

//下面我沒有操作,而是直接進行后面步驟:“二、去試試你安裝的數據庫,查看一下是否能用” ,如果能用,說明你的已經裝成功了,下面就不用去管了

應對shared memory realm does not exist 錯誤的處理

1、實例沒有啟動

sqlplus /nolog

connect / as sysdba

startup

 

*****************************************************

監聽器啟動出現問題:

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener 

使用oracle用戶執行dbstart啟動數據庫提示如下:

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

Usage: /oracle/11g/bin/dbstart ORACLE_HOME

Processing Database instance "orcl": log file /oracle/11g/startup.log

 

修改dbstart以及dbshut兩個文件

--------------------------

第一步:

把ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle注釋掉

然后修改/home/oracle/.bash_profile

添加export ORACLE_HOME_LISTNER=$ORACLE_HOME一句

生效變量:

[root@oracle01 ~]# source /home/oracle/.bash_profile

圖為:

 

---------------------------

第二步:

#vi /etc/oratab

找到orcl=/u01/app/oracle:N這一行

改為:

orcl=/u01/app/oracle:Y

也就是將最后的N改為Y,意思是將不允許自動啟動改為允許自動啟動。即可解決問題$

*******************************************************

 

自動啟動的腳本:

**********1******************************

首先修改/etc/oratab文件

#vi /etc/oratab

找到orcl=/u01/app/oracle:N這一行

改為:

orcl=/u01/app/oracle:Y

也就是將最后的N改為Y,意思是將不允許自動啟動改為允許自動啟動。

 

**********2************************************

啟動了Linux系統之后,轉到  /etc/init.d  目錄下;

[root@oracle ~]# cd /etc/init.d

使用 vi 命令,新建一個以 oracle 命名的文件(並將以下代碼復制至文件中)

[root@oracle init.d]# vi oracle

以下是代碼:

曾經出現過一個問題:

“服務不支持 chkconfig”:——這個提示是因為oracle自啟動腳本前面必須要有以下這兩行

#chkconfig: 2345 00 01

#description:oracle 11g service

--------------------------------------------------------------------------------------------------------------

#!/bin/sh

# chkconfig: 345 61 61

# description: Oracle 11g AutoRun Services

# /etc/init.d/oracle

#

# Run-level Startup script for the Oracle Instance, Listener, and

# Web Interface

 

export ORACLE_BASE=/opt/oracle

export ORACLE_HOME=$ORACLE_BASE/oracle

export ORACLE_SID=zqaccp

export PATH=$PATH:$ORACLE_HOME/bin

 

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 dbserver Start Succesful!OK."

     su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl start dbconsole"

     echo "Oracle dbconsole Start Succesful!OK."

     su $ORA_OWNR -lc "$ORACLE_HOME/bin/lsnrctl start"

     echo "Oracle Listeners 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

 

-------------------------------------------------------------------------------------------------------------

 

 在編輯完成之后,使用 :x  命令保存此文件。

 

賦予執行權限

 

[root@oracle init.d]# chmod 750 /etc/init.d/oracle

 

鏈接:

 

[root@oracle init.d]# ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle

 

[root@oracle init.d]# ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle

 

執行以下命令:

 

[root@oracle init.d]# chkconfig --level 345 oracle on

 

[root@oracle init.d]# chkconfig --add oracle         //添加到服務里

 

 

 

二、去試試你安裝的數據庫,查看一下是否能用

 [oracle@mylinux database]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.3.0 Production on Sat Nov 5 05:50:34 2011

 

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

 

 

Connected to:

 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – Production

 With the Partitioning, OLAP, Data Mining and Real Application Testing options

 

SQL> select * from v$version;

 

BANNER

 ——————————————————————————–

 Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – Production

 PL/SQL Release 11.2.0.3.0 – Production

 CORE    11.2.0.3.0      Production

 TNS for Linux: Version 11.2.0.3.0 – Production

 NLSRTL Version 11.2.0.3.0 – Production

 

 

//你也可以用賬號scott 進行登錄,(注意:在安裝的時候要進行解鎖,設置密碼,和windows中安裝是進行解鎖操作一樣)

登陸:      sql>conn scott/你設置密碼

查看dept:  sql>select * from dept;

 

 

 

-------------------------------------------

要讓修改的ip永久生效就必須修改配置文件/etc/sysconfig/network-scrips/ifcfg-eth0

 

DEVICE=eth0

BOOTPROTO=none

HWADDR=00:13:D3:90:95:4D

ONBOOT=yes

TYPE=Ethernet

NETMASK=255.255.255.0

IPADDR=192.168.2.102

USERCTL=no

IPV6INIT=no

PEERDNS=yes

IGATEWAY=61.144.47.225

GATEWAY=61.144.47.225

 

 DEVICE=eth0

 BOOTPROTO=none

 BROADCAST=192.168.1.255

 IPADDR=192.168.1.33

 NETMASK=255.255.255.0

 NETWORK=192.168.1.0

 ONBOOT=yes

 USERCTL=no

 PEERDNS=no

 TYPE=Ethernet


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM