原創 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
首先要以root登陸,獲取Linux下的最高權限。登陸時選擇其餘帳戶,用戶名輸入root,密碼輸入安裝時設置的root密碼,記得選擇語言爲中文(屏幕最下方正中間位置)。獲得如圖所示的結果。
若是你尚未設置IP爲靜態,請如今設置。
你這個在安裝的時候就設置了,老師上課已經講了,我就不在寫了。
你能夠驗證一下,在這裏
192.168.8.201我是綁定了VMware Virtual Ethernet Adapter for VMnet8 ,和其在一個網段
VMnet8 的ip地址是:192.168.8.111
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:表示套接字發送緩衝區大小的最大值。
修改:/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 |
保存並退出。
修改完參數以後就要重啓了,這樣作是爲了系統能認識咱們以前配置的參數。輸入如下命令:
reboot
以普通用戶登陸(千萬不要用root!!!!),而後切換到root用戶。(密碼就是root的密碼)
su root |
執行如下命令:
groupadd dba |
tail /etc/group
繼續輸入如下命令:
useradd oracle |
將oracle用戶添加到dba組
usermod -g dba oracle |
給這個用戶加一個密碼(密碼必定要好記,別管他的提示),命令以下:
passwd oracle |
測試一下剛纔的操做是否成功:
tail /etc/group tail /etc/passwd |
執行如下命令建立目錄:
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 查看那個幾個文件的權限,個人以下:
上面兩個文件的權限影響後面執行的權限問題,必定記得檢查!
su 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
(從新加載這些參數,必定要重啓系統,其餘不使用)
至此,準備工做所有完成!
獲取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 的權限以及讀寫權限,簡單的來講是他們前面的東西一致
先將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 用戶就最好了。
如你當前系統環境是英文的環境一些不用看
若你是當前系統環境是中文的環境必須看,不然會出現框框亂碼問題,
(
**——設置編碼方式:在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
---------------------------------------------------------------------------