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

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

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

(環境:oracle11g, linux64 RHEL6)c++

安裝RHEL6sql

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

這個你能夠將其安裝的內存小一些,也沒有多大的關係windows

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

 

 

設置網絡(要根據本身的實際狀況設定):bash

設置分區:網絡

建立分區的要點大體以下:session

分區名稱

大小(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

四、添加/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:本身設置的密碼

登陸便可,出現  

就好了

****/

 

//下面我沒有操做,而是直接進行後面步驟:「2、去試試你安裝的數據庫,查看一下是否能用」 ,若是能用,說明你的已經裝成功了,下面就不用去管了

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

一、實例沒有啓動

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         //添加到服務裏

 

 

 

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

 [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

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

相關文章
相關標籤/搜索