最近公司購買了一臺(tái)新的服務(wù)器塞琼,我負(fù)責(zé)給這臺(tái)服務(wù)器安裝oracle ,磕磕絆絆的終于裝好了叠洗,但是卻花了不少時(shí)間凫海,算起來差不多用了2.5天的時(shí)間呛凶,下面開始講講我的血淚史
安裝前的準(zhǔn)備:步驟如下:
第一步: 檢查當(dāng)前服務(wù)器操作系統(tǒng)是64位還是32位(以我的為例是centos7是64位的)
[root@chances127 ~]# uname ?-a
Linux chances127 3.10.0-327.28.3.el7.x86_64 #1 SMP Thu Aug 18 19:05:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
不存在x86_64 x86_64 x86_64表示是32位的操作系統(tǒng)
第二步:檢查內(nèi)存
說明:
內(nèi)存大于1G(使用虛擬機(jī)安裝時(shí)內(nèi)存要稍微大一些,否則安裝檢查不通過)
查看內(nèi)存大小#cat /proc/meminfo
交換分區(qū)是內(nèi)存的1.5倍行贪,可根據(jù)實(shí)際情況調(diào)整
查看交換分區(qū)大小#grep SwapTotal /proc/meminfo
硬盤空間要滿足所需軟件的大小漾稀,要求/tmp 分區(qū)不少于 400M ,安裝目錄應(yīng)大于4G:
查看磁盤空間使用情況#df –h
查看目錄空間大小#du -ch
操作:
#free –m
Swap少于1024的請(qǐng)?jiān)黾觾?nèi)存
1.1增加內(nèi)存
1)增加內(nèi)存
#dd if=/dev/zero of=/tmpswap bs=1k count=2048000
2048000+0 records in
2048000+0 records out
2097152000 bytes (2.1 GB) copied, 169.875 seconds, 12.3 MB/s
2)設(shè)置交換文件
# mkswap /tmpswap
Setting up swapspace version 1, size = 2097147 kB
3)立即啟用交換分區(qū)文件
# swapon tmpswap
再查看swap分區(qū)大小發(fā)現(xiàn)增加了2G
4)引導(dǎo)時(shí)自動(dòng)啟用
#vi/etc/fstab
增加如下內(nèi)容:
查看一下swap
# swapon -s
安裝時(shí)我的內(nèi)存是符合條件的建瘫,所以上述步驟就省了(供參考)
第三步: 軟件檢查崭捍,安裝oracle所依賴的組件包:
1.binutils-2.17.50.0.6
2.compat-libstdc++-33-3.2.3
3.elfutils-libelf-0.125
4.elfutils-libelf-devel-0.125
5.elfutils-libelf-devel-static-0.125
6.gcc-4.1.2
7.gcc-c++-4.1.2
8.glibc-2.5-24
9.glibc-common-2.5
10.glibc-devel-2.5
11.glibc-headers-2.5
12.kernel-headers-2.6.18
13.pdksh-5.2.14
14.libaio-0.3.106
15.libaio-devel-0.3.106
16.libgcc-4.1.2
17.libgomp-4.1.2
18.libstdc++-4.1.2
19.libstdc++-devel-4.1.2
20.make-3.81
21.numactl-devel-0.9.8.i386
22.sysstat-7.0.2
23.unixODBC-2.2.11
24.unixODBC-devel-2.2.11
包檢查命令:#rpm –qa |grep 軟件包名稱
包安裝命令:#rpm –ivh 軟件包名稱
?或
#yum install 軟件包名稱
第四步:關(guān)閉防火墻
說明:centos7默認(rèn)使用的防火墻是firewall,iptables雖然也安裝了啰脚,但沒有啟用
所以關(guān)閉防火墻操作為:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service?#禁止firewall開機(jī)啟動(dòng)
參考文檔:http://www.cnblogs.com/silent2012/archive/2015/07/28/4682770.html
第五步:關(guān)閉SELIINUX
#vi /etc/selinux/config確保以下內(nèi)容
SELINUX=disabled
第五步:配置系統(tǒng)環(huán)境
1.1 linux內(nèi)核參數(shù)設(shè)置
#vi /etc/sysctl.conf ,在行末添加以下內(nèi)容
fs.file-max = 6815744
fs.aio-max-nr=1048576
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
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152(可以按照系統(tǒng)默認(rèn)殷蛇,不修改)
kernel.shmmax = 536870912(可以按照系統(tǒng)默認(rèn),不修改)
#sysctl –p 讓內(nèi)核參數(shù)生效
Linux下安裝oracle對(duì)內(nèi)核參數(shù)的要求說明:
kernel.shmall為物理內(nèi)存除以pagesize
kernel.shmmax為物理內(nèi)存的一半
fs.file-max為512乘以processes(如128個(gè)process拣播,則為65536)
備注:
下圖中的內(nèi)核參數(shù)是我當(dāng)時(shí)安裝oracl的參數(shù)設(shè)置:
部分講解:
以kernel.sem = 250 32000 100 128為例:
250是參數(shù)semmsl的值晾咪,表示一個(gè)信號(hào)量集合中能夠包含的信號(hào)量最大數(shù)目。
32000是參數(shù)semmns的值贮配,表示系統(tǒng)內(nèi)可允許的信號(hào)量最大數(shù)目谍倦。
100是參數(shù)semopm的值,表示單個(gè)semopm()調(diào)用在一個(gè)信號(hào)量集合上可以執(zhí)行的操作數(shù)量泪勒。
128是參數(shù)semmni的值昼蛀,表示系統(tǒng)信號(hào)量集合總數(shù)
為什么要進(jìn)行參數(shù)設(shè)置呢:
其實(shí)oracle 中有一個(gè)文件,cvu_prereq.xml文件圆存。
這個(gè)文件中有參數(shù)值和依賴包叼旋,是oracle安裝所以依賴的,靜默安裝時(shí)會(huì)進(jìn)行過監(jiān)測(cè)沦辙,監(jiān)測(cè)不通過夫植,就不能安裝
說明:
當(dāng)時(shí)我安裝的時(shí)候,參數(shù)監(jiān)測(cè)就沒通過(其實(shí)安裝前我是對(duì)參數(shù)設(shè)置好了的,不知道為什么設(shè)置好的參數(shù)值不見了详民,可能是因?yàn)椋何以趫?zhí)行靜默安裝的時(shí)候檢查各種報(bào)錯(cuò)延欠,又不斷重新執(zhí)行,導(dǎo)致參數(shù)丟失吧沈跨,其他原因暫時(shí)不清楚由捎。后來根據(jù)報(bào)錯(cuò),重新設(shè)置了參數(shù)值)
執(zhí)行過程(當(dāng)然目前按照上述步驟饿凛,還不能執(zhí)行這一步狞玛,只是為了解釋為什么要進(jìn)行參數(shù)設(shè)置和安裝依賴包)
[oracle@chances127 database]$ ./runInstaller -silent -responseFile? /opt/oracle_11g/database/response/db_install.rsp
正在啟動(dòng) Oracle Universal Installer...
檢查臨時(shí)空間: 必須大于 120 MB。? 實(shí)際為 286724 MB? ? 通過
檢查交換空間: 必須大于 150 MB涧窒。? 實(shí)際為 16383 MB? ? 通過
準(zhǔn)備從以下地址啟動(dòng) Oracle Universal Installer /tmp/OraInstall2016-09-20_10-41-12AM. 請(qǐng)稍候...[oracle@chances127 database]$ [WARNING] [INS-32018] 所選 Oracle 主目錄位于 Oracle 基目錄外部心肪。
原因: 所選 Oracle 主目錄位于 Oracle 基目錄外部。
操作: Oracle 建議在 Oracle 基目錄中安裝 Oracle 軟件纠吴。請(qǐng)相應(yīng)調(diào)整 Oracle 主目錄或 Oracle 基目錄蒙畴。
[WARNING] [INS-32055] 主產(chǎn)品清單位于 Oracle 基目錄中。
原因: 主產(chǎn)品清單位于 Oracle 基目錄中呜象。
操作: Oracle 建議將此主產(chǎn)品清單放置在 Oracle 基目錄之外的位置中。
[FATAL] [INS-13013] 目標(biāo)環(huán)境不滿足一些必需要求碑隆。
原因: 不滿足一些必需的先決條件恭陡。有關(guān)詳細(xì)信息, 請(qǐng)查看日志。/tmp/OraInstall2016-09-20_10-41-12AM/installActions2016-09-20_10-41-12AM.log
操作: 從日志 /tmp/OraInstall2016-09-20_10-41-12AM/installActions2016-09-20_10-41-12AM.log 中確定失敗的先決條件檢查列表上煤。然后, 從日志文件或安裝手冊(cè)中查找滿足這些先決條件的適當(dāng)配置, 并手動(dòng)進(jìn)行修復(fù)休玩。
備注:fatal表示安裝失敗,需要重新安裝
warning信息劫狠∷┌蹋可以先不用管
部分日志信息:
Error Message:PRVF-7543 : 操作系統(tǒng)內(nèi)核參數(shù) "wmem_max" 在節(jié)點(diǎn) "chances127" 上沒有適當(dāng)?shù)闹?[應(yīng)為 = "1048576"; 找到 = "262144"]
Error?Message:PRVF-7543?:?操作系統(tǒng)內(nèi)核參數(shù)?"rmem_max"?在節(jié)點(diǎn)?"chances127"?上沒有適當(dāng)?shù)闹?[應(yīng)為?=?"4194304";?找到?=?"262144"]。
Error?Message:PRVF-7543?:?操作系統(tǒng)內(nèi)核參數(shù)?"ip_local_port_range"?在節(jié)點(diǎn)?"chances127"?上沒有適當(dāng)?shù)闹?[應(yīng)為?=?"between?9000?&?65500";?找到?=?"between?1024?&?65000"]独泞。
Error?Message:PRVF-7543?:?操作系統(tǒng)內(nèi)核參數(shù)?"file-max"?在節(jié)點(diǎn)?"chances127"?上沒有適當(dāng)?shù)闹?[應(yīng)為?=?"6815744";?找到?=?"6553600"]呐矾。
INFO:?Cause:?內(nèi)核參數(shù)值不滿足要求。
:?Error?Message:PRVF-7543?:?操作系統(tǒng)內(nèi)核參數(shù)?"semmni"?在節(jié)點(diǎn)?"chances127"?上沒有適當(dāng)?shù)闹?[應(yīng)為?=?"128";?找到?=?"0"]懦砂。
INFO:?Cause:?內(nèi)核參數(shù)值不滿足要求蜒犯。
1.2 修改進(jìn)程數(shù)和最大會(huì)話數(shù)
#vi /etc/security/limits.conf,行末添加以下內(nèi)容
oracle ??????????soft ???nproc ??2047
oracle ??????????hard ???nproc ??16384
oracle ??????????soft ???nofile ?1024
oracle ??????????hard ???nofile ?65536
:
以我的為例:
1.3關(guān)聯(lián)設(shè)置
#vi /etc/pam.d/login ? ?行末添加以下內(nèi)容
session ???required ????pam_limits.so
操作系統(tǒng)是x64的則為
session ???required ????/lib64/security/pam_limits.so
以我的為例:
備注:我當(dāng)時(shí)安裝的時(shí)候荞膘,此配置配的是session? ? required? ? pam_limits.so罚随,可能這也是導(dǎo)致安裝失敗的原因吧,由于是第一次安裝羽资,不知道是不是這個(gè)原因
1.4 在/etc/profile里添加如下淘菩,紅色為實(shí)際oracle用戶(行末添加即可)
export LIBXCB_ALLOW_SLOPPY_LOCK=true
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
unset i
在root用戶下,使用命令source profile使環(huán)境變量生效
#cd /etc
#source profile
以我的為例
說明:
當(dāng)時(shí)此配置屠升,我配置的內(nèi)容是:
#vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
少了export LIBXCB_ALLOW_SLOPPY_LOCK=true以及unset i 當(dāng)時(shí)安裝沒有成功潮改,不知道這個(gè)是不是其中一個(gè)原因
1.5 修改/etc/redhat-release文件狭郑,改成系統(tǒng)支持的版本
redhat-4
以我的為例:
說明:
其實(shí)為什么要修改系統(tǒng)版本,我也不是很清楚进陡,我也是安裝失敗了愿阐,查閱資料:
由于oracle10g發(fā)行的時(shí)候,centos6/7沒有發(fā)行趾疚,所以oracle10g并沒有對(duì)centos6/7確認(rèn)支持缨历,需要修改文件讓oracle10g支持centos6/7.
編輯/etc/redhat-release文件
# vi /etc/redhat-release 將其中的內(nèi)容Centos Linux release 7.1.1503(Core) 修改為redhat 4
不過我現(xiàn)在安裝的是oracle11g,需不需要修改版本號(hào),我也不是很清楚糙麦,但是為了防止安裝失敗辛孵,我還是修改了版本號(hào)
第一次安裝,很多錯(cuò)誤和原因我也都很茫然赡磅,只能死馬當(dāng)活馬醫(yī)
1.6 修改主機(jī)名
vi /etc/hosts文件
127.0.0.1? localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 ????????localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.20.237 ?主機(jī)名
#hostname ? 主機(jī)名
以我的為例
上面的準(zhǔn)備工作做好之后魄缚,接下來開始安裝過程:
第一步:創(chuàng)建oracle用戶和用戶組
#groupadd oinstall (創(chuàng)建oinstall組)
#groupadd dba (創(chuàng)建dba組)
#useradd -g oinstall -G dba oracle ?(新建用戶oracle,設(shè)定其主組為oinstall,副組為dba)
#id oracle (檢查結(jié)果)
#passwd oracle (設(shè)置oracle用戶密碼)
第二步:創(chuàng)建oracle安裝目錄
#mkdir -p /opt/oracle_11g/product/110201/db_1
說明:1 、我當(dāng)時(shí)執(zhí)行靜默安裝佛掖,報(bào)了如下錯(cuò)誤(其實(shí)是警告椰弊,可以不管的)
準(zhǔn)備從以下地址啟動(dòng) Oracle Universal Installer /opt/oracle_11g/u01/tmp/OraInstall2016-09-19_01-52-29PM. 請(qǐng)稍候...[oracle@chances127 database]$ [WARNING] [INS-32055] 主產(chǎn)品清單位于 Oracle 基目錄中。
原因:?主產(chǎn)品清單位于?Oracle?基目錄中嚼隘。
操作:?Oracle?建議將此主產(chǎn)品清單放置在?Oracle?基目錄之外的位置中
? 2、根據(jù)警告信息:我又將創(chuàng)建好的product/110201/db_1刪除了袒餐,在opt目錄下創(chuàng)建了安裝目錄如:/opt/product/110201/db_1
特別要注意的是:創(chuàng)建安裝目錄最好不要一個(gè)個(gè)創(chuàng)建飞蛹,以及最好也不要一個(gè)一個(gè)目錄進(jìn)行修改用戶和用戶組
原因:第一:麻煩不說,還容易出錯(cuò)灸眼,oracle_11g目錄以及所有子目錄都要是oracle用戶和oinstall組
以我的為例:我當(dāng)時(shí)在/opt/目錄下重新創(chuàng)建了product 110201 db_1 三個(gè)目錄卧檐,由于是用root用戶進(jìn)行操作的,當(dāng)時(shí)沒有修改成oracle用戶和oinstall組焰宣。導(dǎo)致:執(zhí)行靜默安裝時(shí)報(bào)如下錯(cuò)誤:
準(zhǔn)備從以下地址啟動(dòng) Oracle Universal Installer /tmp/OraInstall2016-09-19_11-37-25AM. 請(qǐng)稍候...[oracle@chances127 database]$ [FATAL] [INS-32012] 無法創(chuàng)建目錄霉囚。
原因: 沒有授予創(chuàng)建目錄的正確權(quán)限, 或卷中沒有剩余空間。
操作: 請(qǐng)檢查您對(duì)所選目錄的權(quán)限或選擇另一個(gè)目錄宛徊。
此會(huì)話的日志當(dāng)前已保存為: /tmp/OraInstall2016-09-19_11-37-25AM/installActions2016-09-19_11-37-25AM.log佛嬉。如果要保留此日志, Oracle 建議將它從臨時(shí)位置移動(dòng)到更持久的位置
我一直以為是/tmp空間不夠,tmp是根目錄下的一個(gè)目錄闸天,不是一個(gè)分區(qū)暖呕,對(duì)linux不是很懂,就不多說苞氮,我又重新指定了一個(gè)目錄
# vim /home/oracle
# ll -a?
# vim .bash_profile
添加下面連個(gè)變量:
export TEMP=/opt/oracle_11g/u01/tmp
export TMPDIR=/opt/oracle_11g/u01/tmp
u01和tmp是在oracel_11g目錄下新建的兩個(gè)目錄
但是執(zhí)行:./runInstaller -silent -responseFile還是報(bào)了錯(cuò)
準(zhǔn)備從以下地址啟動(dòng) Oracle Universal Installer /opt/oracle_11g/u01/tmp/OraInstall2016-09-19_11-37-25AM. 請(qǐng)稍候...[oracle@chances127 database]$ [FATAL] [INS-32012] 無法創(chuàng)建目錄湾揽。
原因: 沒有授予創(chuàng)建目錄的正確權(quán)限, 或卷中沒有剩余空間。
操作: 請(qǐng)檢查您對(duì)所選目錄的權(quán)限或選擇另一個(gè)目錄。
此會(huì)話的日志當(dāng)前已保存為: /opt/oracle_11g/u01/tmp/OraInstall2016-09-19_11-37-25AM/installActions2016-09-19_11-37-25AM.log库物。如果要保留此日志, Oracle 建議將它從臨時(shí)位置移動(dòng)到更持久的位置
檢查opt/oracle_11g/u01/tmp,用戶和用戶組已經(jīng)設(shè)置成oraclehe oinstall霸旗,最后又檢查了一下/opt/product/110201/db_1幾個(gè)目錄:發(fā)現(xiàn)product 110201 db_1三個(gè)目錄用戶和用戶組是root,最后又執(zhí)行:#chown oracle:oinstall product
# chown oracle:oinstall 110201
#chown oracle:oinstall db_1
發(fā)現(xiàn)一個(gè)問題吧:
一個(gè)個(gè)設(shè)置是不是麻煩戚揭,還容易漏設(shè)置诱告,所以按照下面兩步就搞定:
#mkdir -p /opt/oracle_11g/product/110201/db_1
#chown -R? oracle.oinstall /opt/oracle_11g/
特別聲明:我就是因?yàn)榫嫘畔⒄`導(dǎo),把目錄刪除移到基目錄外面重新創(chuàng)建產(chǎn)品目錄民晒,導(dǎo)致新建的目錄又沒有修改用戶和用戶組精居,導(dǎo)致安裝oracle時(shí)。日志信息不能寫入到/tmp
product/110201/db_1目錄下的內(nèi)容是執(zhí)行:./runInstaller成功后自動(dòng)生成的
我安裝時(shí)創(chuàng)建的目錄結(jié)構(gòu)時(shí):
/opt/oracle_11g/(oraclea安裝壓縮包)
/opt/product/110201/db_1/(oracle安裝路徑)
第三步:改變oracle安裝目錄的用戶和用戶組
#chown -R? oracle.oinstall /opt/oracle_11g/
第四步:給安裝目錄賦予權(quán)限
#chmod -R 755 ?/opt/oracle_11g/
第五步:設(shè)置用戶環(huán)境變量
#vi /home/oracle/.bash_profile
export ORACLE_BASE=/opt/oracle_11g//軟件安裝基目錄
export ORACLE_SID=orcl ??//實(shí)例名
export ORACLE_HOME=$ORACLE_BASE/product/110201/db_1 //軟件安裝產(chǎn)品目錄
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
#source /home/oracle/.bash_profile 配置生效
#env |more 查看配置的環(huán)境變量是否正確
ORACLE_BASE下是admin和product
ORACLE_HOME下是ORACLE的命令潜必、連接庫靴姿、安裝助手、listener等磁滚。
這只是ORACLE自己的定義習(xí)慣佛吓。ORACLE_HOME比ORACLE_BASE目錄要更深一些。也就是說:ORACLE_HOME=$ORACLE_BASE/product/version垂攘。
ORACLE_BASE是oracle的根目錄维雇,ORACLE_HOME是oracle產(chǎn)品的目錄。
簡單說晒他,如果裝了2個(gè)版本的oracle谆沃,那么ORACLE_BASE可以是一個(gè),但ORACLE_HOME是2個(gè)仪芒。
全局?jǐn)?shù)據(jù)庫名用于區(qū)別分布式數(shù)據(jù)庫各個(gè)不同機(jī)器上的實(shí)例;SID用于區(qū)別同一臺(tái)機(jī)器上的不同實(shí)例耕陷。
即一個(gè)用于外部區(qū)分掂名;一個(gè)用于內(nèi)部區(qū)分。
以我的為例:
說明:下面是oracle10g安裝時(shí)哟沫,設(shè)置的內(nèi)容
#vi home/sc-oracle/.bash_profile用oracle用戶編輯加入以下內(nèi)容
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
#For sc-Oracle
export ?ORACLE_BASE=/oracle;
export ?ORACLE_HOME=/oracle/product/db_1;
export ?ORACLE_SID=ORCL;
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/lib64/;
if [ $USER = "sc-oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
#PATH=$PATH:$HOME/bin
#export PATH
使環(huán)境變量生效
$ source .bash_profile
但是我安裝時(shí)是用root用戶添加的饺蔑,且export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/lib64/;與我設(shè)置的export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib有點(diǎn)不一樣,不知道有沒有影響嗜诀,但是我安裝成功了
到此配置結(jié)束:下面正式開始o(jì)racle安裝吧:
第一步:將oracle11g安裝壓縮包上傳至/opt/oracle_11g/目錄下
第二步:解壓縮
#unzip linux_11gR2_database_1of2.zip
#unzip linux_11gR2_database_2of2.zip
說明:上面兩個(gè)壓縮包要放在同一個(gè)目錄下解壓縮
如果有人嘗試:將這兩個(gè)壓縮包放到不同目錄下解壓縮猾警,解壓后的文件都是database文件,有人如果疑問:在同一個(gè)目錄下解壓縮database不會(huì)被覆蓋嗎隆敢?其實(shí)則不然:這個(gè)兩個(gè)壓縮包解壓出來是同一個(gè)文件发皿,只是把一個(gè)大的文件分成了兩個(gè)部分
第三步:編輯oracle數(shù)據(jù)庫安裝應(yīng)答文件
1 在/opt/oracle_11g/database/response目錄下有三個(gè)應(yīng)答文件
2# vi? db_install.rsp修改以下內(nèi)容:
供參考:
RESPONSEFILE_VERSION=2.2.1.0.0
UNIX_GROUP_NAME="oinstall"
ORACLE_HOME_NAME="OraDb10g_home1"
ORACLE_HOME="/oracle/product/db_1"
SHOW_INSTALL_PROGRESS_PAGE= true
SHOW_END_OF_INSTALL_MSGS= true
COMPONENT_LANGUAGES={"zh_CN"}
s_nameForDBAGrp= "dba"
s_nameForOPERGrp="dba"
INSTALL_TYPE="EE"
n_configurationOption=3
RESTART_SYSTEM=false
RESTART_REMOTE_SYSTEM=false
以我的為例:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
ORACLE_HOSTNAME=chances127
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle_11g/oraInventory
SELECTED_LANGUAGES=en,zh_CN,zh_TW
ORACLE_HOME=/opt/product/110201/db_1
ORACLE_BASE=/opt/oracle_11g
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
PROXY_PORT=
PROXY_PWD=
上面的參數(shù)不是都要修改的,按照我上面供參考的參數(shù)進(jìn)行修改就ok了拂蝎,其他參數(shù)沒有的值的可以不用管
第四步:以上提到的所有操作都是在root用戶下進(jìn)行操作的:
下面開始要正式安裝oracle了穴墅,所以先要切換至oracle用戶:
# su - oracle
進(jìn)入到/opt/oracle_11g/database下執(zhí)行靜默安裝:
#cd /opt/oracle_11g/database
第一步:靜默安裝
# ./runInstaller -silent -responseFile ?/opt/oracle_11g/database/response/db_install.rsp
注意文件位置視自己剛剛修改的文件位置而定
這時(shí)如果報(bào)錯(cuò)類似這樣的錯(cuò):
解決辦法:如果沒有指定目錄,則默認(rèn)日志寫入到/tmp下
第一,先檢查/tmp所在分區(qū)空間大小是否大于60兆
第二:檢查product/110201/db_1 目錄用戶和用戶組是否是oracle和oinstall
第三:檢查/tmp有無寫入權(quán)限
上述的報(bào)錯(cuò):我是重新指定oracle安裝日志的寫入目錄玄货,但是還是提示不能寫入或空間不夠皇钞,最后原因:是因?yàn)椋何抑鞍裵roduct/110201/db_1刪除,到基目錄外重新創(chuàng)建此目錄松捉,沒有修改此目錄的用戶和用戶組夹界,最后將此目錄修改成oracle用戶,變可解決此問題
不過隘世,找到問題原因了可柿,我就將指定的目錄給注釋掉了
再重新執(zhí)行:
# ./runInstaller -silent -responseFile? /opt/oracle_11g/database/response/db_install.rsp
發(fā)現(xiàn)沒有上述報(bào)錯(cuò),但如果又出現(xiàn)其他報(bào)錯(cuò)如:
根據(jù)報(bào)錯(cuò)原因:到日志目錄下以舒,找到原因:
第一:內(nèi)核參數(shù)監(jiān)測(cè)不過
第二:依賴包沒有裝全
參數(shù)的問題:
其實(shí)內(nèi)核參數(shù)我都是設(shè)置好了的趾痘,不知道為什么再次檢查內(nèi)核參數(shù)的時(shí)候,發(fā)現(xiàn)丟失了蔓钟,之后又再重新設(shè)置了一遍
依賴包的問題:
libstdc++-3.4.6 (i386)
libgcc-3.4.6?(i386)
libaio-devel-0.3.105?(i386)
compat-libstdc++-33-3.2.3?(i386)
glibc-2.3.4-2.41?(i686)
unixODBC-devel-2.2.11
pdksh-5.2.14
發(fā)現(xiàn)少了上述的依賴包:而且這些依賴還是32位的永票,其實(shí)我的系統(tǒng)是64位的,oracle11g也是64位的滥沫,這些依賴包我也是都裝了的侣集,只是oracle11g不認(rèn)
原來是因?yàn)椋簅racle11g安裝,不僅要依賴64位的
還要依賴32位的兰绣,而centos使用yum安裝這些依賴的包的時(shí)候世分,是不去區(qū)分你安裝的是32位的還是64位的,centos是64位的缀辩,yum安裝自然 默認(rèn)裝的是64位的臭埋,所以這是oracle自己的一個(gè)認(rèn)證漏洞:
解決辦法:
在oracle里面有一個(gè)cvu_prereq.xml文件
#vim cvu_prereq.xml
找到i386,將其全部改成i686
再執(zhí)行yum安裝上述依賴包
#yum install libgcc.i686(其他依賴包也是這么安裝)
注意:
pdksh依賴包,在centos7里不叫此名臀玄,而是ksh(特別要注意)
compat-libstdc這個(gè)依賴使用yum是找不到的瓢阴,所以這個(gè)安裝包,我當(dāng)時(shí)是自己去下載的
我的百度云盤有這個(gè)依賴包
好了解決上述問題后健无,再重新執(zhí)行以下吧
# ./runInstaller -silent -responseFile? /opt/oracle_11g/database/response/db_install.rsp
[oracle@chances127?database]$?./runInstaller?-silent?-responseFile??/opt/oracle_11g/database/response/db_install.rsp
正在啟動(dòng)?Oracle?Universal?Installer...
檢查臨時(shí)空間:?必須大于?120?MB荣恐。???實(shí)際為?286724?MB????通過
檢查交換空間:?必須大于?150?MB。???實(shí)際為?16383?MB????通過
準(zhǔn)備從以下地址啟動(dòng)?Oracle?Universal?Installer?/tmp/OraInstall2016-09-20_11-09-22AM.?請(qǐng)稍候...[oracle@chances127?database]$?[WARNING]?[INS-32018]?所選?Oracle?主目錄位于?Oracle?基目錄外部累贤。
原因:?所選?Oracle?主目錄位于?Oracle?基目錄外部叠穆。
操作:?Oracle?建議在?Oracle?基目錄中安裝?Oracle?軟件。請(qǐng)相應(yīng)調(diào)整?Oracle?主目錄或?Oracle?基目錄臼膏。
[WARNING]?[INS-32055]?主產(chǎn)品清單位于?Oracle?基目錄中硼被。
原因:?主產(chǎn)品清單位于?Oracle?基目錄中。
操作:?Oracle?建議將此主產(chǎn)品清單放置在?Oracle?基目錄之外的位置中渗磅。
[WARNING]?[INS-13014]?目標(biāo)環(huán)境不滿足一些可選要求祷嘶。
原因:?不滿足一些可選的先決條件屎媳。有關(guān)詳細(xì)信息,?請(qǐng)查看日志。/tmp/OraInstall2016-09-20_11-09-22AM/installActions2016-09-20_11-09-22AM.log
操作:?從日志?/tmp/OraInstall2016-09-20_11-09-22AM/installActions2016-09-20_11-09-22AM.log?中確定失敗的先決條件檢查列表论巍。然后,?從日志文件或安裝手冊(cè)中查找滿足這些先決條件的適當(dāng)配置,?并手動(dòng)進(jìn)行修復(fù)烛谊。
[WARNING]?[INS-32018]?所選?Oracle?主目錄位于?Oracle?基目錄外部。
原因:?所選?Oracle?主目錄位于?Oracle?基目錄外部嘉汰。
操作:?Oracle?建議在?Oracle?基目錄中安裝?Oracle?軟件丹禀。請(qǐng)相應(yīng)調(diào)整?Oracle?主目錄或?Oracle?基目錄。
[WARNING]?[INS-32055]?主產(chǎn)品清單位于?Oracle?基目錄中鞋怀。
原因:?主產(chǎn)品清單位于?Oracle?基目錄中双泪。
操作:?Oracle?建議將此主產(chǎn)品清單放置在?Oracle?基目錄之外的位置中。
[WARNING]?[INS-13014]?目標(biāo)環(huán)境不滿足一些可選要求密似。
原因:?不滿足一些可選的先決條件焙矛。有關(guān)詳細(xì)信息,?請(qǐng)查看日志。/tmp/OraInstall2016-09-20_11-09-22AM/installActions2016-09-20_11-09-22AM.log
操作:?從日志?/tmp/OraInstall2016-09-20_11-09-22AM/installActions2016-09-20_11-09-22AM.log?中確定失敗的先決條件檢查列表残腌。然后,?從日志文件或安裝手冊(cè)中查找滿足這些先決條件的適當(dāng)配置,?并手動(dòng)進(jìn)行修復(fù)村斟。
可以在以下位置找到本次安裝會(huì)話的日志:
/opt/oracle_11g/oraInventory/logs/installActions2016-09-20_11-09-22AM.log
[oracle@chances127?database]$
[oracle@chances127?database]$?以下配置腳本需要以?"root"?用戶的身份執(zhí)行。
#!/bin/sh
#要運(yùn)行的?Root?腳本
/opt/oracle_11g/oraInventory/
orainstRoot.sh
/opt/product/110201/db_1/
root.sh
要執(zhí)行配置腳本,?請(qǐng)執(zhí)行以下操作:
1.?打開一個(gè)終端窗口
2.?以?"root"?身份登錄
3.?運(yùn)行腳本
4.?返回此窗口并按?"Enter"?鍵繼續(xù)
Successfully?Setup?Software.
看到安裝結(jié)果信息抛猫,好多警告蟆盹,以為沒安裝成功,但是查閱資料:
只要看到Successfully Setup Software.表明oracle安裝成功了
第二步:執(zhí)行腳本
按照上面的安裝成功信息提示:
?切換至root用戶分別執(zhí)行信息中提到的腳本
1 執(zhí)行腳本orainstRoot.sh
#/opt/oracle_11g/oraInventory/orainstRoot.sh
2 執(zhí)行腳本root.sh?
#/opt/product/110201/db_1/root.sh
第三步:安裝監(jiān)聽
編輯oracle安裝目錄下的netca.rsp應(yīng)答文件闺金,地址為:/database/response/netca.rsp逾滥,主要查看以下參數(shù)配置:
INSTALL_TYPE=""custom""安裝的類型
LISTENER_NUMBER=1監(jiān)聽器數(shù)量
LISTENER_NAMES={"LISTENER"}監(jiān)聽器的名稱列表
LISTENER_PROTOCOLS={"TCP;1521"}監(jiān)聽器使用的通訊協(xié)議列表
LISTENER_START=""LISTENER""監(jiān)聽器啟動(dòng)的名稱
運(yùn)行安裝命令:
#/opt/product/110201/db_1/bin/netca? /silent /responseFile? /opt/oracle_11g/database/response/netca.rsp
第四步:添加數(shù)據(jù)庫實(shí)例
1、修改/database/response/dbca.rsp(就是解壓安裝文件目錄下的)
根據(jù)數(shù)據(jù)庫建立方式的不同編輯不同的數(shù)據(jù)庫庫選項(xiàng)败匹。
比如在本次安裝過程中設(shè)置了下列參數(shù):(注意下面參數(shù)視情況而定啦不要照抄該選項(xiàng)原文件都有說明的)
RESPONSEFILE_VERSION = "10.0.0"
OPERATION_TYPE = "createDatabase"
GDBNAME = "ORCL" --數(shù)據(jù)庫全局名稱
SID = "ORCL" ?--這個(gè)sid必須要和前面的/home/oracle/.bash_profile文件中的sid相同
TEMPLATENAME = "New_Database.dbt"
SYSPASSWORD = "ches"用戶的初始密碼
SYSTEMPASSWORD = "ches"初始密碼
DATAFILEDESTINATION ="/oracle/oradata/"
RECOVERYAREADESTINATION="/oracle/flash_recovery_area"
CHARACTERSET = "ZHS16GBK"--數(shù)據(jù)庫字符集(中文為ZHS16GBK)
SCRIPTDESTINATION ="/oracle/admin/ora10g/scripts"
EMCONFIGURATION=”LOCAL”
SYSMANPASSWORD = "ches”
DBSNMPPASSWORD = "ches”
以我的為例:(只是部分參數(shù)寨昙,其他的參考上面給的參數(shù)即可)
DATAFILEDESTINATION="/opt/oracle_11g/oracledata/"
RECOVERYAREADESTINATION="/opt/oracle_11g/flash_recovery_area"
CHARACTERSET="ZHS16GBK"
NATIONALCHARACTERSET= "UTF8"
TEMPLATENAME="General_Purpose.dbc”
2 安裝
#/opt/product/110201/db_1/bin/dbca - silent? - responseFile? /opt/oracle_11g/database/response/dbca.rsp
如果報(bào)錯(cuò):類似下圖中的錯(cuò)誤:
解決辦法:
#export DISPLAY=IP:1.0
ip填寫服務(wù)器的ip
再重新安裝一次:
#/opt/product/110201/db_1/bin/dbca - silent? - responseFile? /opt/oracle_11g/database/response/dbca.rsp
可以發(fā)現(xiàn)上述錯(cuò)誤解決了 ,但是如果又有新的報(bào)錯(cuò):如下:
解決辦法:
/opt/product/110201/db_1/assistants/dbca/templates到這個(gè)目錄下添加存在的模板
修改/database/response/dbca.rsp掀亩,將TEMPLATENAME都要換掉毅待,換成:General_Purpose.dbc
再重新安裝一次:
安裝成功!
第五步:啟動(dòng)監(jiān)聽
到bin目錄下啟動(dòng)監(jiān)聽:
/opt/product/110201/db_1/bin
bin#./lsnrctl start
如果報(bào)下面錯(cuò)誤:
TNS-01106: Message 1106 not found; No message file for product=network, facility=TNS ? [LISTENER]
解決辦法:
查看監(jiān)聽程序的配置文件
cat /opt/product/110201/db_1/network/admin/listener.ora
添加:(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
以我的為例归榕;
我的listener.ora文件多了一個(gè)配置:
SID_LIST_LSNR =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /opt/product/110201/db_1)
(SID_NAME = orcl)
)
)
其實(shí)我也不知道這個(gè)要不要加上去,只是我啟動(dòng)監(jiān)聽始終報(bào)下面這個(gè)錯(cuò):所以多加了一個(gè)配置
TNS-01106: Message 1106 not found; No message file for product=network, facility=TNS ? [LISTENER]
我重新登陸服務(wù)吱涉,再次啟動(dòng)監(jiān)聽:
bin#./lsnrctl start
發(fā)現(xiàn)啟動(dòng)成功刹泄!
通過查看監(jiān)聽狀態(tài):
status ready表示oracle服務(wù)是正長啟動(dòng)的
第六步:啟動(dòng)數(shù)據(jù)庫實(shí)例:
到這個(gè)目錄下啟動(dòng)數(shù)據(jù)庫實(shí)例:
/opt/product/110201/db_1/bin
bin#./dbstart
如果報(bào)如下錯(cuò)誤:
請(qǐng)檢查oracle_home路徑是否正確,如果路徑?jīng)]問題怎爵,一定是/etc/oratab文件路徑寫錯(cuò)了
果不其然:路徑與oracle_home不一致(但是是我從別的地方copy過來的特石,忘記改路徑了)
再重新啟動(dòng)數(shù)據(jù)庫實(shí)例:
發(fā)現(xiàn)啟動(dòng)成功!
第七步:設(shè)置開始自動(dòng)
1 修改$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut文件:
$vi $ORACLE_HOME/bin/dbstart
$vi $ORACLE_HOME/bin/dbshut
找到ORACLE_HOME_LISTNER=$1,修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
2修改/etc/oratab文件
$ vi /etc/oratab
找到最后一行:
orcl:/opt/product/110201/db_1:N
最后設(shè)置的是“N”(此環(huán)境只有一個(gè)實(shí)例鳖链,所以只有一行配置語句)姆蘸,需要把“N”修改成“Y”墩莫。保存退出。
3修改/etc/rc.d/rc.local文件
把emctl start dbconsole 逞敷、lsnrctl start和dbstart添加到rc.local文件中,命令如下:
#vi /etc/rc.d/rc.local
添加:
su oracle -lc "home/oracle_11/app/product/11.2.0/dbhome_1/bin/emctl start dbconsole" ??//填寫可執(zhí)行程序的完整路徑狂秦,填寫$ORACLE_HOME/bin/環(huán)境變量加目錄加可執(zhí)行程序不行,不知道為什么
su oracle -lc " home/oracle_11/app/product/11.2.0/dbhome_1/bin/lsnrctl start "
su oracle -lc ?home/oracle_11/app/product/11.2.0/dbhome_1/bin/dbstart
注意:命令有空格推捐,要用引號(hào)
以我的為例:
#reboot重啟服務(wù)監(jiān)測(cè)是否可以開機(jī)自啟動(dòng):
發(fā)現(xiàn)是不能開機(jī)自啟動(dòng)的:
如果是在以前的centos版本中裂问,這樣就可以了。但是centos7 的/etc/rc.local不會(huì)開機(jī)執(zhí)行
可以了牛柒。
原因:
所以解決辦法:
1 確認(rèn)了/etc/rc.local的權(quán)限
到此:oracel11g安裝以及配置就全部完成了堪簿!
接下就可以用oracle客戶端連接數(shù)據(jù)庫了
歷史遺留問題:
本次安裝采用的是靜默安裝
1 開始是采用圖形界面安裝:但是執(zhí)行xhost+一直報(bào)錯(cuò):
xhost:? unable to open display ""
給的解決辦法都是export DISPLAY=localhost:1,但是設(shè)置了還是不行
這個(gè)問題皮壁,現(xiàn)在暫時(shí)無解決辦法
2 啟動(dòng)控制臺(tái)em一直報(bào)錯(cuò):這個(gè)問題現(xiàn)在也無解決辦法