http://blog.csdn.net/sheen1991/article/details/47026591
在Linux系統(tǒng)中乙埃,安裝oracle有時還是比較蛋疼的一件事情。但是如果安裝前的準(zhǔn)備工作做的好的話匾效,可能就比較順利辩棒。如依賴包安裝完整薪丁,配置文件設(shè)置正確产上。如下的總結(jié)是在centos服務(wù)器上安裝oracle10g,不過此方法在本機的centos7上安裝oracle12C驗證也通過假颇,感覺在centos7上安裝oracle12C要比在censor6.5上安裝oracle10g容易,可能是新系統(tǒng)兼容性比較好的緣故风秤。
由于本人水平有限鳖目,搞Linux只是業(yè)余,主要工作還是Java后端開發(fā)缤弦,目前使用kotlin語言疑苔。可能很多地方不完善甸鸟,希望大家提出寶貴的意見,大家一起進步兵迅。謝謝G谰隆!
centos6系列安裝oracle11g教程
1恍箭、centos系統(tǒng)的安裝
1刻恭、做好u盤啟動系統(tǒng)。
2扯夭、安裝系統(tǒng)鳍贾。
a、安裝系統(tǒng)時交洗,分區(qū)一般按照如下分配:
/boot 200MB
/swap 一般為內(nèi)存的1.5到2倍
/u01 120000MB
/ 剩余的空間
3骑科、安裝定制軟件包。
注意:Development Tools中构拳,選中l(wèi)ibXp和glibc開頭的幾個包咆爽。
4、網(wǎng)絡(luò)配置
vi /etc/sysconfit/network-scripts/ifcfg-eth0
一般更改為如下配置:
ONBOOT=yes
BOOTPROTO=static #注意:此處應(yīng)該更改為static,否則安裝會報錯
IPADDR=X.X.X.X #ip地址
NETMASK=255.255.255.0 #子網(wǎng)掩碼
GATEWAY=X.X.X.X #默認網(wǎng)關(guān)
dns1=X.X.X.X #DNS
保存退出,然后重啟網(wǎng)絡(luò)置森。
service network restart
如果以上命令失敗斗埂,則直接配置網(wǎng)絡(luò)。
打開網(wǎng)絡(luò)配置:
按照如上配置之后凫海,點擊Apply保存網(wǎng)絡(luò)呛凶。然后重啟網(wǎng)絡(luò)。
重啟成功之后行贪,進入網(wǎng)絡(luò)配置漾稀,vi /etc/sysconfit/network-scripts/ifcfg-eth0
將里面的BOOTPROTO更改為static,然后重啟網(wǎng)絡(luò)模闲。在終端ping www.baidu.com,如果通了說明網(wǎng)絡(luò)配置好了。
5县好、安裝必須的依賴包围橡。
執(zhí)行以下命令,安裝完所有的依賴包缕贡,一般在oracle安裝時不會再報錯了(一下安裝包在oracle10g和oracle12c已經(jīng)驗證)翁授。
yum install -y compat-libcap1.i686 binutils.x86_64 binutils-devel.x86_64 compat-libstdc++-296.i686 compat-libstdc++-33.x86_64 gcc.x86_64 gcc-c++.x86_64 glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 ksh.x86_64 libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.x86_64 libstdc++-devel.i686 libaio.i686 libaio.x86_64 libaio-devel.x86_64 libaio-devel.i686 libXext.x86_64 libXext.i686 libXext-devel.i686 libXext-devel.x86_64 libXtst.x86_64 libXtst-devel.x86_64 libXtst.i686 libXtst-devel.i686 libX11.x86_64 libX11.i686 libX11-devel.x86_64 libX11-devel.i686 libXau.x86_64 libXau.i686 libXau-devel.x86_64 libXau-devel.i686 libxcb.x86_64 libxcb-devel.x86_64 libxcb.i686 libxcb-devel.i686 libXi.x86_64 libXi.i686 libXi-devel.x86_64 libXi-devel.i686 make.x86_64 sysstat.x86_64 libXp.x86_64 libXp-devel.x86_64 libXp.i686 libXp-devel.i686 libXpm.x86_64 libXpm-devel.x86_64 libXpm.i686 libXpm-devel.i686
2、安裝oracle之前必要配置
1晾咪、修改linux系統(tǒng)所需的配置文件
Oracle數(shù)據(jù)庫的安裝不建議在超級用戶root上安裝收擦,建議另外增加一個用戶oracle在linux系統(tǒng)上。但是在增加該用戶之前谍倦,我們還需要為該用戶設(shè)置一些系統(tǒng)內(nèi)核參數(shù)塞赂。
使用Vi編輯器在/etc/sysctl.conf文件的末尾增加下面的參數(shù):
kernel.shmall= 2097152 #表示系統(tǒng)一次可以使用的共享內(nèi)存總量(以頁為單位)。
kernel.shmmax= 2147483648 #定義了共享內(nèi)存段的最大尺寸(以字節(jié)為單位)昼蛀。缺省為32M宴猾,對于oracle來說,該缺省值太低了叼旋,通常將其設(shè)置為2G仇哆。
kernel.shmmni= 4096 #用于設(shè)置系統(tǒng)范圍內(nèi)共享內(nèi)存段的最大數(shù)量。該參數(shù)的默認值是 4096
kernel.sem= 250 32000 100 128 #表示設(shè)置的信號量
net.ipv4.ip_local_port_range= 1024 65000 #本地端口數(shù)量上限
net.core.rmem_default=4194304 #默認的接收窗口大小
net.core.rmem_max=4194304 #接收窗口的最大大小
net.core.wmem_default=262144 #默認的發(fā)送窗口大小
net.core.wmem_max=262144 #發(fā)送窗口的最大大小
[root@CentOS6~]# /sbin/sysctl -p #執(zhí)行生效
編輯/etc/security/limits.conf文件夫植,用于設(shè)置系統(tǒng)資源限制讹剔。假如未來由oracle這個用戶來安裝oracle數(shù)據(jù)庫,則需要系統(tǒng)管理員將以下參數(shù)添加到limits.conf详民。
vi/etc/security/limits.conf
加入以下四行:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
然后在編輯/etc/pam.d/login文件延欠,增加以下參數(shù):
vi/etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
注:
etc目錄下包括pam.d目錄,在pam.d目錄下還有個login子目錄沈跨。etc指的系統(tǒng)配置文件目錄由捎,pam.d指的是驗證登陸配置,login是登陸配置文件饿凛。簡單說就是linux操作系統(tǒng)的登陸配置文件隅俘。
2、創(chuàng)建相應(yīng)的用戶名及用戶組
在這里只討論單主機環(huán)境笤喳,不考慮RAC環(huán)境的配置为居。執(zhí)行以下指令以新增oracle安裝時所需要的使用者與群組。
2.1建立群組oinstall
groupadd oinstall
2.2建立群組dba
groupadd dba
2.3建立用戶oracle將加入oinstall和dba群組杀狡,并測試
useradd -g oinstall -G dba oracle
2.4 建立oracle的新密碼
passwd oracle
3蒙畴、修改/etc/profile,修改用戶的shell limits
將以下代碼新增到profile文件中:
if [[ $USER = "oracle" ]]; then
if [[ $SHELL = "/bin/ksh" ]]; then
ulimit -p16384
ulimit -n65536
else
ulimit -u16384 -n 65536
fi
fi
注意中括號的空格。
4膳凝、修改Linux發(fā)行版本信息
由于Oracle10g發(fā)行的時候碑隆,CentOS6.6沒有發(fā)行,所以O(shè)racle10g并沒有對CentOS6.6確認支持蹬音,需要修改相關(guān)文件讓Oracle10g支持CentOS 6上煤。
我們需要手工修改Linux的發(fā)行注記,讓Oracle 10g支持CentOS6.5著淆。
編輯/etc/RedHat-release文件
vim /etc/redhat-release
將其中的內(nèi)容CentOS release 6.5 (Final)修改為redhat 4
5劫狠、創(chuàng)建oracle的安裝文件夾及數(shù)據(jù)存放目錄
mkdir –p /u01/app/oracle
5.1修改/u01/app/oracle目錄所屬用戶及組,修改為oracle和oinstall組永部。
查看目前oracle目錄的用戶及組:ls –la |grep oracle
修改oracle目錄用戶及組:
chown -R oracle:oinstall /u01/app/oracle
5.2 修改/u01/app/oracle的目錄權(quán)限独泞,使oinstall組對/u01/app/oracle目錄也有可讀寫執(zhí)行權(quán)限。
使用如下命令:
chmod -R 775 /u01/app/oracle
6苔埋、配置oracle用戶的環(huán)境變量
打開cd /home/oracle懦砂,使用Vi編輯.bash_profile。如下圖:
修改并加入以下內(nèi)容:
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_BASE=/u01/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1;
export ORACLE_SID=orcl;
export ORACLE_TERM=xterm;
export PATH=/usr/sbin:$PATH;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
保存后使用如下命令组橄,使設(shè)置生效:
source /home/oracle/.bash_profile
7荞膘、安裝Oracle,并進行相關(guān)設(shè)置
7玉工、1將下載的壓縮包放至即將安裝oracle的文件夾/uo1/app/oracle下
unzip 文件名羽资,將該文件解壓。
解壓縮完成會在同一個文件夾中看到database的文件夾
目前database文件夾的所有者和用戶組均是root∥屠酰現(xiàn)在我們要該更它:
chown -R oracle:oinstall /u01/app/oracle/database
3、安裝oracle數(shù)據(jù)庫
1瞄勾、安裝準(zhǔn)備
上述解壓oracle安裝包后费奸,我們要注銷掉root用戶,使用Oracle用戶登錄进陡,然后使用該用戶進行oracle的安裝愿阐。
在終端下,進入/u01/app/oracle/database目錄:
準(zhǔn)備執(zhí)行數(shù)據(jù)庫安裝趾疚,如果你的centos是中文環(huán)境缨历,安裝時會出現(xiàn)中文亂碼,請下以下指令糙麦。使系統(tǒng)臨時為英文狀態(tài):
export LC_ALL=en_US.UTF-8
2辛孵、安裝oracle
進入database目錄,執(zhí)行./ runInstaller
等待一會赡磅,出現(xiàn)下面這個界面魄缚,說明啟動安裝。
選擇高級安裝
注意:修改存放目錄。
上圖是指定證書存放的目錄冶匹。(如果提示目錄不存在习劫,請先創(chuàng)建目錄)
上圖選擇安裝的數(shù)據(jù)庫類型及oracle所支持的語言,這里選擇企業(yè)版嚼隘,語言選擇英文和簡體中文诽里。
上圖指定oracle環(huán)境變量,及安裝路徑飞蛹。因為我們在.bash_profile中已經(jīng)聲明谤狡,所以這里會自動填充。
以上步驟桩皿,如果有錯或者警告豌汇,根據(jù)信息來做相應(yīng)調(diào)整,調(diào)整之后泄隔,再次點擊Retry檢查拒贱,檢查通過后,點擊Next繼續(xù)安裝佛嬉。
選擇配置選項逻澳,在這有三個選擇項:創(chuàng)建數(shù)據(jù)庫、配置自動存儲管理暖呕、只安裝數(shù)據(jù)軟件斜做。
我們在此選擇第一項,創(chuàng)建數(shù)據(jù)庫湾揽。創(chuàng)建數(shù)據(jù)庫后瓤逼,我們就不必再執(zhí)行"dbca"進行數(shù)據(jù)庫的創(chuàng)建。
此處選擇第四個Advanced库物,因為 "Advanced" 后面有很多SGA霸旗,文件系統(tǒng)都可以自行設(shè)置。
指定oracle數(shù)據(jù)庫默認的SID戚揭。指定字符集為庫所用的字符集诱告,中文為simplified Chinesezhs16gbk。如果字符集不對民晒,可能造成以后數(shù)據(jù)亂碼精居。最下面不用打鉤Create databasewithsample schemas(已有的模式建庫)。
配置數(shù)據(jù)庫的數(shù)據(jù)文件存儲的位置
配置數(shù)據(jù)庫備份恢復(fù)的相關(guān)選項
配置數(shù)據(jù)庫相關(guān)用戶密碼潜必,輸入所有用戶使用同一個密碼靴姿。
開啟一個新的終端,su到root磁滚。將要求執(zhí)行的兩段script依序執(zhí)行空猜。
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/10.2.0/db_1/root.sh
到此oracle數(shù)據(jù)庫安裝完畢。
查看數(shù)據(jù)庫的狀態(tài):
登錄數(shù)據(jù)庫:
sqplus / as sysdba
SQL> select instance_name,status fromv$instance;
INSTANCE_NAME STATUS
orcl OPEN
3、創(chuàng)建數(shù)據(jù)庫
如果上一步?jīng)]有選擇創(chuàng)建數(shù)據(jù)庫辈毯,則現(xiàn)在創(chuàng)建數(shù)據(jù)庫坝疼。
進入oracle安裝目錄的bin/目錄下,執(zhí)行./dbca即可創(chuàng)建數(shù)據(jù)庫谆沃。
注意:創(chuàng)建數(shù)據(jù)的時候钝凶,如果報錯提示:unable to create shared memory segment
執(zhí)行如下命令:
[root@zhaotong database]# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
[root@zhaotong database]# echo 501 >/proc/sys/vm/hugetlb_shm_group
4、創(chuàng)建監(jiān)聽
如果沒有創(chuàng)建監(jiān)聽唁影,則創(chuàng)建監(jiān)聽耕陷。
進入oracle的安裝目錄的bin/目錄下,執(zhí)行./netcat即可創(chuàng)建監(jiān)聽据沈。
4哟沫、oracle安裝的后續(xù)工作
1、oracle數(shù)據(jù)庫中文亂碼
SQL> select userenv('language') from dual;
把結(jié)果記錄下來
然后到Oracle用戶下 vim .bash_profile
查看NLS_LANG對應(yīng)的值與這里寫圖片是否一樣锌介,不一樣的話嗜诀,改為圖片上的編碼格式。
如果bash_profile里面沒有NLS_LANG選項孔祸,就自己添加
2隆敢、開放端口
/sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT #寫入修改
/sbin/iptables -I INPUT -p tcp --dport 1158 -j ACCEPT #寫入修改
/etc/init.d/iptables save #保存修改
service iptables restart #重啟防火墻,修改生效
3崔慧、監(jiān)聽管理
如果沒有創(chuàng)建監(jiān)聽拂蝎,使用oracle用戶登錄,進入oracle的安裝目錄下的bin目錄惶室,執(zhí)行./netca即可創(chuàng)建監(jiān)聽
查看oracle的監(jiān)聽狀態(tài)
lsnrctl status
停止監(jiān)聽
lsnrctl stop
啟動監(jiān)聽
lsnrctl start
查看oracle監(jiān)聽參數(shù)文件温自,一般在oracle安裝目錄下的/network/admin目錄下
listener.ora和ternname.ora
啟動指定的監(jiān)聽:
lsnrctl start [監(jiān)聽名]
重啟監(jiān)聽
lsnrctl reload
監(jiān)聽幫助
lsnrctl help
某個監(jiān)聽命令的詳細幫助
lsnrctl help start
4、oracle數(shù)據(jù)庫的啟動與停止
4.1皇钞、啟動數(shù)據(jù)庫
4.1.1悼泌、第一種方法:
以oracle用戶登錄終端,進入到oracle安裝目錄的bin目錄下鹅士,執(zhí)行dbstart券躁,等待完成oracle數(shù)據(jù)庫的啟動惩坑。
4.1.2.掉盅、第二種方法:
以oracle用戶登錄終端:
使用sqlplus登錄數(shù)據(jù)庫:
sqlplus / as sysdba
執(zhí)行:
startup
4.2、停止數(shù)據(jù)庫
4.2.1以舒、第一種方法
使用sqlplus登錄數(shù)據(jù)庫:
sqlplus / as sysdba
執(zhí)行:
shutdown immediate
4.2.2趾痘、第二種方法
以oracle用戶登錄終端,進入到oracle安裝目錄的bin目錄下蔓钟,執(zhí)行dbshut永票,等待完成oracle數(shù)據(jù)庫的啟動
5、oracle設(shè)置開機自啟動
1、以root身份登錄到系統(tǒng)侣集。
執(zhí)行命令:vi /etc/oratab
orcl:/u01/app/oracle/product/10.2.0/db_1/dbhome_1:N
將以上內(nèi)容更改為:
orcl:/u01/app/oracle/product/10.2.0/db_1/dbhome_1:Y
保存退出键俱。
注意:/u01/app/oracle/product/10.2.0/db_1為oracle的安裝目錄。
執(zhí)行命令:vi /etc/rc.d/rc.local
加入以下配置:
su oracle -lc "/u01/app/oracle/product/10.2.0/db_1/bin/lsnrctl start"
su oracle -lc /u01/app/oracle/product/10.2.0/db_1/bin/dbstart
保存退出世分。
注意:第一行因為有空格编振,所以要加引號。
重啟系統(tǒng)臭埋。
6踪央、oracle常見問題
1、啟動數(shù)據(jù)庫的時候報錯:ORA-27125: unable to create shared memory segment
執(zhí)行如下命令:
[root@zhaotong database]# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
[root@zhaotong database]# echo 501 >/proc/sys/vm/hugetlb_shm_group
但以上這種方式在重啟操作系統(tǒng)后失效瓢阴, /proc/sys/vm/hugetlb_shm_group又變?yōu)榱?畅蹂,建議采用以下方式解決:
加入vm.hugetlb_shm_group = 501 到/etc/sysctl.conf中來解決:
vi /etc/sysctl.conf
加入如下的內(nèi)容,其中501為dba組號荣恐,需要根據(jù)你實際的情況進行改變液斜。
vm.hugetlb_shm_group = 501
保存退出!
執(zhí)行生效:
/sbin/sysctl -p