1. 程式人生 > >阿裏雲部署oracle 11g數據庫

阿裏雲部署oracle 11g數據庫

阿裏雲 oracle

某程序員在阿裏雲部署了一套oracle 11g,老板說他們搞了好幾天,監聽一直啟動不來,讓我給看看。登上去一瞧,原來是主機名設置的問題(把阿裏雲的彈性ip直接寫在/etc/hosts文件,而雲主機的網卡地址一般是私有地址)。這個事情,我還專門發了一篇文章,地址為http://blog.51cto.com/sery/2084706 。修復完這個問題以後,覺得直接把數據庫這樣放在公網上很不妥當,通時又發現其它一些問題,比如磁盤空間規劃不合理、混裝java等。於是建議把此機作為測試環境,另購幾臺雲主機,放入vpc網絡,重新部署應用和數據庫,把數據庫與其它應用獨立開來。


都怪我多事,只好親自操刀,重新在雲上給部署oracle了。本人從來不推薦在公有雲部署oracle,主要原因有以下幾點:

1、雲主機沒有交換分區swap,了解好幾家服務商,都是這樣呢!

2、雲服務器的操作系統可定制性不靈活。在我的經驗中,oracle 11g部署在centos5這樣的操作系統上,不會有依賴問題,而在centos6 以上版本,一些依賴包在安裝oracle過程中,校驗就會出錯。

3、雲主機性能問題。一般情況下,我們都會選很高配置的物理服務器來部署。

在公有雲部署oracle,盡管別扭,但還得幹活啊。雖然在安裝過程中,有幾個包不匹配(實際是版本高了),忽略掉這些校驗,部署上去,運行好一段時間(大概1個多月),也沒見看開發人員叫喚,時不時查告警日誌,也未見異常,說明安裝還是成功的。目前,個人手裏沒有線上的雲服務器,這裏就用虛擬環境,來還原一下整個部署過程,希望能對有需要的人有所幫助.


選購一臺centos7的雲主機,外加一個250G的雲盤。雲盤分兩個區,一個用於交換分區,剩下的用作oracle的安裝目錄及數據存儲。劃分出來的數據分區,掛接到系統上。為了符合oracle的安裝習慣,掛接點為/u01.

技術分享圖片


在正式執行oracle的安裝腳本之前,有一系列的前置操做,由於本人經常做部署,為了省事,寫了一個腳本,內容為:

[root@oradb190 ~]# more oracle_rep.bash

#!/bin/bash

#writed by sery 2012-05-16


#########################################

#install depending packages #

#########################################

yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-*


########################################

#add groups,user and create dir #

########################################

/usr/sbin/groupadd -g 501 oinstall

/usr/sbin/groupadd -g 502 dba



useradd -u 1000 -g oinstall -G dba oracle


mkdir /u01/app/

mkdir -p /u01/app/oraInventory

mkdir -p /u01/app/oracle

chown -R oracle:oinstall /u01/app

chmod -R 775 /u01/app


##############################################

#modify sysctl.conf #

##############################################

cat >> /etc/sysctl.conf <<done

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

fs.aio-max-nr = 1048576

done


sysctl -p


###############################################

#modify /etc/security/limits.conf #

###############################################

cat >> /etc/security/limits.conf << done

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

done


################################################

#modify /etc/pam.d/login #

################################################

echo "session required pam_limits.so">>/etc/pam.d/login


################################################

# setting user oracle env #

################################################

cat >> /home/oracle/.bash_profile <<done

export ORACLE_SID=zyzf1

export ORACLE_UNQNAME=zyzf1

export ORACLE_base=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0

export PATH=$ORACLE_HOME/bin:$PATH

done

授予該腳本執行權限,然後執行./oracle_rep.bash。執行完畢,挨個檢查一下,看是否生成目錄、是否創建了用戶、是否修改了相關配置文件....


接下來,配置和啟用vnc,以圖形方式來遠程安裝oracle。物理服務器時代,我們還可能去機房,做在物理服務器前邊,接上顯示器。但用了雲主機以後,這個路沒有了喲,當然也算解放了,不用去機房接受噪音和輻射嘛!


雲主機安裝的centos可能沒有默認安裝vnc服務,

阿裏雲部署oracle 11g數據庫