Centos7.5 安裝oracle database 11g
1.說明
最近項(xiàng)目經(jīng)常接觸到oracle database11g冯键,做個(gè)記錄
時(shí)間點(diǎn):2018年7月
環(huán)境和版本
centos 7.5(圖形界面,如果你用的是字符界面系統(tǒng),我暫時(shí)還沒有研究過)
oracle database linux 11g
2.系統(tǒng)準(zhǔn)備
linux的oracle安裝和windows有個(gè)最大的不同,就是你必須用oracle用戶來操作,這在前期設(shè)定上必須要注意的
同時(shí)要對(duì)各類配置文件增加一些配置項(xiàng)
2.1 修改配置文件/etc/security/limits.conf
cat <<EOF>>/etc/security/limits.conf
proc 2047
oracle hard nofile 65536
oracle hard nproc 16384
oracle soft nofile 1024
EOF
2.2 修改/etc/sysctl.conf
cat <<EOF>>/etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
2.3 創(chuàng)建oinstall和dba組仰猖,和oracle用戶
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
passwd oracle
2.4 修改oracle用戶的相關(guān)變量和創(chuàng)建一些必要的目錄
# 以下javahome目錄根據(jù)實(shí)機(jī)java目錄更正,要su到oracle用戶執(zhí)行奈籽,避免你還要修改權(quán)限
su - oracle
vi ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=.:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export JAVA_HOME=/opt/jdk1.7.0_80/
export PATH=$PATH:$JAVA_HOME/jre/bin
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPAT
# :wq保存完以后饥侵,立即載入
source ~/.bash_profile
# 退出oracle用戶
exit
3.開始安裝
3.1 安裝包和圖形設(shè)置
解壓安裝包和安裝
安裝包一般下載下來有兩個(gè),分別解壓以后合并
# 在安裝之前還有一些設(shè)置衣屏,以root用戶操作
chmod -R 755 <壓縮包解壓目錄>/database
chown -R oracle:oinstall <壓縮包解壓目錄>
# 以下是圖形顯示許可躏升,通過該命令讓oracle用戶可以執(zhí)行圖形程序
xhost +
# 然后切換到oracle用戶
su - oracle
# display設(shè)置和語言設(shè)置,設(shè)置成英文是為了不亂碼
export DISPLAY=:0.0
export LANG=en_US
# 開始安裝
cd <壓縮包目錄>/database
./runInstaller
3.2 圖形安裝相關(guān)
3.2.1 跳過驗(yàn)證相關(guān)
3.2.2 選擇安裝類型
本教程為了之后配置詳細(xì)勾拉,所以安裝選項(xiàng)里選的是只安裝數(shù)據(jù)庫軟件煮甥,數(shù)據(jù)配置在后面配置盗温。
3.2.3 選擇需要的語言包(國內(nèi)項(xiàng)目別忘了中文勾上)
3.2.4 選擇要安裝的位置
這一項(xiàng)要注意了藕赞,如果你事前沒有創(chuàng)建好相應(yīng)的目錄,請(qǐng)切另一個(gè)終端用root創(chuàng)建目錄卖局,然后還要把權(quán)限改成oracle:oinstall斧蜕,不然就會(huì)出現(xiàn)以下報(bào)錯(cuò)。
打開一個(gè)終端砚偶,用root用戶創(chuàng)建以上兩個(gè)目錄批销,然后權(quán)限改成oracle:oinstall
mkdir -p /u01/app/oracle
mkdir -p /app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/dbhome_1
3.2.5 額外選項(xiàng)
以下是一些優(yōu)化項(xiàng)和額外功能需要的依賴洒闸,如果你不能提供這些功能(rpm相關(guān)依賴),那就請(qǐng)忽略均芽,選右上角的Ignore All
3.2.6 初始化腳本
安裝完以后會(huì)提示你要運(yùn)行一個(gè)初始化腳本丘逸,該腳本必須是root用戶運(yùn)行。你可以運(yùn)行也可以不運(yùn)行掀宋,是一些系統(tǒng)方面的相關(guān)配置深纲,例如創(chuàng)建oracle開機(jī)啟動(dòng)的/etc/oratab文件
4.配置和創(chuàng)建數(shù)據(jù)庫實(shí)例
oracle方面,實(shí)例對(duì)應(yīng)的是Mysql的數(shù)據(jù)庫劲妙。
用oracle用戶湃鹊,如果你之前配好了環(huán)境變量,那dbca應(yīng)該可以運(yùn)行镣奋。
運(yùn)行前最好運(yùn)行以下兩個(gè)命令
export DISPLAY=:0.0
export LANG=en_US
4.1創(chuàng)建數(shù)據(jù)庫類型
這邊只是測(cè)試用币呵,所以選擇第一個(gè)就可以了,如果項(xiàng)目有明確規(guī)定侨颈,根據(jù)項(xiàng)目來
4.2 實(shí)例名
實(shí)例名就是你的數(shù)據(jù)庫名余赢,也是你連接你的數(shù)據(jù)庫用到的名字,所以該參數(shù)請(qǐng)根據(jù)要求填寫哈垢。我這里是測(cè)試用的没佑,用的默認(rèn)名orcl
[圖片上傳失敗...(image-b5c2ec-1532875421244)]
4.3 管理選項(xiàng)
這里要注意的是,不開啟oracle監(jiān)聽是無法下一步的温赔,請(qǐng)打開一個(gè)終端蛤奢,用oracle用戶執(zhí)行以下命令打開監(jiān)聽程序
lsnrctl start
4.4 用戶密碼
你可以分別為每個(gè)默認(rèn)用戶設(shè)定一個(gè)密碼,也可以用統(tǒng)一一個(gè)密碼陶贼。
4.5 數(shù)據(jù)庫文件存放位置
該選項(xiàng)如果在正式的生產(chǎn)環(huán)境里啤贩,一般都是要掛盤的,根據(jù)掛盤位置更改拜秧,我這里測(cè)試就默認(rèn)了痹屹。
4.6 模板和腳本
該選項(xiàng)給你選擇是否用示例模板或著自定義腳本來定制你的數(shù)據(jù)庫。
4.7 參數(shù)設(shè)定
一些相關(guān)參數(shù)的選擇枉氮,我這里只是定義了字符集為中文字符集志衍。
但要注意的是國家設(shè)定里,依然選擇UTF聊替,不然會(huì)造成???返回信息的情況楼肪。
4.8 數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)
該選項(xiàng)讓你查看你的數(shù)據(jù)庫存儲(chǔ)結(jié)構(gòu)和進(jìn)行一些設(shè)定
4.9 安裝確認(rèn)和是否創(chuàng)建模板,或是自定義腳本
該選項(xiàng)就是開始創(chuàng)建數(shù)據(jù)庫了惹悄,還可以選擇是否創(chuàng)建模板和腳本春叫,便于以后批量創(chuàng)建相同的數(shù)據(jù)庫。
5 安裝完后的配置和驗(yàn)證
5.1 listener.ora文件和tnsnames.ora文件
以下兩個(gè)文件是關(guān)于監(jiān)聽服務(wù)的,如果缺失這兩個(gè)文件暂殖,你的數(shù)據(jù)庫就無法外部連接价匠,所以請(qǐng)根據(jù)以下配置,其中l(wèi)ocalhost是oracle可以識(shí)別的主機(jī)名呛每,我這里寫的是本地踩窖。
listener.ora文件
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracl
tnsnames.ora文件
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
REORATEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = reoratest)
)
)
修改完以后請(qǐng)重啟監(jiān)聽
lsnrctl stop
lsnrctl start
5.2 驗(yàn)證
5.2.1 本地驗(yàn)證
oracle用戶輸入sqlplus system/<你之前設(shè)定的密碼>@<實(shí)例名>
如下如果不需要輸入密碼,說明你設(shè)定監(jiān)聽是正確的晨横,如果要輸入密碼毙石,說明你設(shè)定的監(jiān)聽有問題,請(qǐng)依次確認(rèn)
1.listener.ora文件格式颓遏,權(quán)限徐矩,主機(jī)名
2.tnsnamer.ora文件格式,權(quán)限叁幢,主機(jī)名
3.用tnsping <主機(jī)名>來確認(rèn)你的主機(jī)名是不是有問題滤灯。
[oracle@localhost ~]$ sqlplus system/123456@orcl
SQL*Plus: Release 11.2.0.4.0 Production on Sun Jul 29 22:12:12 2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select status from V$instance;
STATUS
------------
OPEN
SQL> quit;
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
有問題的輸出
[oracle@localhost ~]$ sqlplus system/nihahah@orcl
SQL*Plus: Release 11.2.0.4.0 Production on Sun Jul 29 22:11:47 2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
ERROR:
ORA-01017: invalid username/password; logon denied
Enter user-name: ^C
5.2.2 外部連接測(cè)試
外部sql連接工具我這里推薦oracle sql developer,免費(fèi)好用.
不要用什么navicat premium的曼玩,收費(fèi)還經(jīng)常oci文件有問題鳞骤,搞得我一直覺得是我設(shè)置有問題。
6 開機(jī)啟動(dòng)數(shù)據(jù)庫相關(guān)
根據(jù)以上你已經(jīng)完成了oracle相關(guān)的安裝和配置黍判,但是開機(jī)啟動(dòng)也是重要的一項(xiàng)豫尽,為了開機(jī)啟動(dòng)數(shù)據(jù)庫,你要修改/etc/oratab文件顷帖,讓你數(shù)據(jù)庫的條目后面的參數(shù)為Y
然后我寫了一個(gè)開機(jī)啟動(dòng)數(shù)據(jù)庫的腳本美旧,供參考
#!/bin/bash
lisenerfile="/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora"
tnsnerfile="/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora"
myhostname=`uname -n`
longname=`grep $myhostname /etc/hosts|awk '{print $2}'`
lisneraddr=`awk '/HOST =/{split($(NF-2),a,")");print a[1]}' $lisenerfile`
if [ "$lisneraddr" != "$longname" ];then
sed -i "s/$lisneraddr/$longname/" $lisenerfile
fi
tnsneraddr=`awk '/HOST =/{split($(NF-2),a,")");print a[1]}' $tnsnerfile`
if [ "$tnsneraddr" != "$longname" ];then
sed -i "s/$tnsneraddr/$longname/" $tnsnerfile
fi
su - oracle -c "dbstart"
su - oracle -c "lsnrctl start"
該腳本是為了vmware模板部署虛擬機(jī)時(shí)配的,可以看到我特別修改了監(jiān)聽文件中的hostname名贬墩。把這個(gè)腳本加到/etc/rc.local里就可以完成數(shù)據(jù)庫開機(jī)啟動(dòng)榴嗅。