2010年10月14日 星期四

Windows XP + VMWare Server 1.0.6 + CentOS 5.2 + Oracle 10g Rac (10.2.0.1) 安裝文章 1

Windows XP + VMWare Server 1.0.6 + CentOS 5.2 + Oracle 10g Rac (10.2.0.1) 安裝文章 1
一、測試環境及目的
主機:一台PC,Intel-32位的CPU(P4 2.8GHz),1.5GB內存,安裝CentOS-5.2-i386-bin-DVD.iso(3.74GB)版本的操作系統,在這個主機(XP)上面安裝了2個虛擬機,全部安裝CentOS-5.2-i386-bin-DVD.iso版本的操作系統,需要進行內核定制(升級到2.6.18-92.1.10.e15).
具體軟硬件環境:
CPU:Intel P4 32bit 2.8GHz
Memory:1.5GB
OS:Windows XP , CentOS5.2 for x86_32bit
App:VMWare Server 1.0.6 build-91891 for windows , Telnet For CentOS 5.2(in DVD), Ftp For CentOS 5.2(yum From Internet) , XManager 2.0 for Windows , jdk-1_5_0_16-linux-i586-rpm.bin
Oracle:10201_clusterware_linux32.zip , 10201_database_linux32.zip , oracleasm-support-2.0.4-1.el5.i386.rpm , oracleasmlib-2.0.3-1.el5.i386.rpm
目的:實現Windows XP + VMware Server 1.0.6 + CentOS 5.2 + Oracle 10g Rac + RAW下的Oracle 10g Rac數據庫安裝及測試.

二、下載軟件
1、下載並安裝VMWare Server 1.0.6 build-91891 for windows
2、下載
我的CentOS 5.2的初始版本號是2.6.18-92.el5,升級內核後是2.6.18-92.1.10.e15(這當然是裝好系統後,用uname -r查看的)(虛擬機要多裝,才會熟練)
內核為什麼要升級,主要是解決時間同步的問題,內核不升級,VMware-tools沒有辦法安裝好,rac之間的時間同步很成問題,這個是我安裝了多次rac過程中難以解決的問題,最後發現的解決辦法。
ASM:選擇IA32體系的(32位系統體系)

(2.6.18-92.1.10.e15)(這個版本的有用,需要下載)
oracleasm-support-2.0.4-1.el5.i386.rpm
oracleasmlib-2.0.3-1.el5.i386.rpm
oracleasm-2.6.18-92.1.10.el5-2.0.4-1.el5.i686.rpm


(2.6.18-92.el5)(這個版本的不用去管了,在這裡還保留,是因為算是個過程的記錄)
oracleasm-support-2.0.4-1.el5.i386.rpm
oracleasmlib-2.0.3-1.el5.i386.rpm
oracleasm-2.6.18-92.el5-2.0.4-1.el5.i686.rpm

(這個版本的有用,需要下載)
oracle clusterware : 10201_clusterware_linux32.zip
oracle database      : 10201_database_linux32.zip

Asm下載地址: http://www.oracle.com/technology/software/tech/linux/asmlib/rhel5.html
下載時看清是x86還是x86_64,一定看好自己的內核版本,特別是小版本號

clusterware下載地址: http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201linuxsoft.html
三、創建共享磁碟並配置虛擬機
1、在C:\Program Files\VMware\VMware Server目錄下執行以下命令:
vmware-vdiskmanager -c -s 1Gb -a lsilogic -t 2 "e:\centosshare\ocfs.vmdk" |用於Oracle集群註冊表文件和CRS表決磁盤(ocr,vote)

vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "e:\centosshare\asm1.vmdk" |用於Oracle的數據文件
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "e:\centosshare\asm2.vmdk" |用於Oracle的數據文件
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "e:\centosshare\asm3.vmdk" |用於Oracle的數據文件
vmware-vdiskmanager -c -s 2Gb -a lsilogic -t 2 "e:\centosshare\asm4.vmdk" |用於Oracle的閃回恢復區
2、在vmware server console創建vmware guest OS,選擇typical create-> Other Linux 2.6.x kernel,VirTual machine name取名centosrac1, Use Bridged networking ,虛擬硬盤20GB,不選擇Allocate all disk space now和Split disk into 2GB files,其他都是默認.
硬盤大小選擇20GB,建立方式為虛擬文件.
3、創建好後vmware guest OS之後,給guest加上一塊NIC(也就是網卡)(Edit virtual machine settings -->Add --> Next --> Ethernet Adapter --> Bridged -->完成)
修改內存選擇1024MB=1G(>800MB您就看不到warning了),
4、雙擊Hard Disk (SCSI 0:0)選擇Advanced...,Mode選擇Independent ,Persistent,點擊ok
5、關掉vmware console,在centosrac1目錄下面,打開Other Linux 2.6.x kernel.vmx,在最後空白處添加以下內容
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.filename = "e:\centosshare\ocfs.vmdk"
scsi1:1.deviceType = "disk"

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.filename = "e:\centosshare\asm1.vmdk"
scsi1:2.deviceType = "disk"

scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.filename = "e:\centosshare\asm2.vmdk"
scsi1:3.deviceType = "disk"

scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.filename = "e:\centosshare\asm3.vmdk"
scsi1:4.deviceType = "disk"

scsi1:5.present = "TRUE"
scsi1:5.mode = "independent-persistent"
scsi1:5.filename = "e:\centosshare\asm4.vmdk"
scsi1:5.deviceType = "disk"

disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"

這段是對vmware使用共享硬碟的方式進行定義,大多數人都知道配置disk.locking ="false"卻漏掉dataCache
保存退出之後,重新打開您的vmware-console,您就能夠看到vmware guest OS的配置中,都有這些硬盤出現了.
四、安裝CentOS操作系統
1、配置虛擬機CD-ROM device -->Use ISO image -->選擇你的CentOS-5.2-i386-bin-DVD.iso文件位置,然後啟動虛擬機
2、安裝步驟如下:
(如果啟動不了,在虛擬機啟動的時候,按Esc,選擇3 CD-ROM Drive來啟動)
boot:確認
跳過對CD media的檢查: Skip
Next
Chinese(繁體中文)
美國英語式
是(Y)
要選擇察看分區細節,把我們添加的盤(vote,ocr,asm)不要包含到Vl00裡面了.
把檢驗和修改分區方案選擇上
下一步(N)
是(Y)
選擇VolGroup00 -->編輯-->LogVol00-->編輯-->把容量改成18368-->把sdb1 sdc1 sdd1 sde1 sdf1的勾取消掉
達到的效果如下: /dev/sdb1 LVM PV 1019 1 130沒有掛載點(掛載點是空白的),sdc1 sdd1 sde1 sdf1效果也是一樣的.這裡只需要添加這些硬盤,這些硬盤不用掛到文件系統上.
下一步(N)
下一步(N)
下一步(N)
下一步(N)
輸入你的ROOT用戶密碼
下一步(N)

選擇現在定制(C)
下一步(N)

桌面環境選擇GNOME桌面環境
應用程序選擇編輯器,其他的是默認的,不修改
開發選擇GNOME軟件開發開發工具開發庫
服務器選擇Windows文件服務器
基本系統選擇基本,其他的是默認的,不修改
虛擬化不選擇
集群不選擇
集群存儲不選擇
下一步(N)
下一步(N)

大約花費50分鐘時間
然後,VM --> Settings --> CD-ROM
重新引導

前進(F)
防火牆禁用

前進(F)
是(Y)

SELinux設置:禁用
前進(F)
是(Y)

把系統時間改成當前時間
前進(F)

輸入一個新建的一般用戶和密碼
前進(F)

前進(F)
完成(F)
確定(O)

啟動到操作系統後,
需要解決以下問題,請按照先後順序進行解決:
CentOS 5.2在VMware下,如何联網到Internet的問題
VMware Server 1.0.6虛擬機Centos OS5.2系統時間同步的問題
CentOS 5.2_FTP設置的問題
CentOS 5.2_Telnet設置的問題
CentOS 5.2_Xmanager設置的問題
備份CentOS 5.2系統後,網卡設置的問題
開啟CentOS 5.2第二個網卡的問題
sendmail啟動時間過長的問題

a、CentOS在VMware下,如何連接到Internet的解決辦法 1、我的ADSL的IP地址是192.168.1.1
2、配置靜態IP,遮罩,閘道是
192.168.1.100
255.255.255.0
192.168.1.1

3、主DNS配置的是192.168.1.1
4、操作系統重新啟動就可上網了.
步驟:
系統-->管理-->網絡-->雙擊eth0 -->選擇靜態設置的IP地址-->
按照上面的地址信息配置-->硬件設備-->取消關聯到MAC地址的選項-->確定
--> DNS -->主DNS :192.168.1.1
這裡需要把eth1配靜態IP,子網掩碼
10.0.0.1 255.255.255.0配置,選擇當計算機啟動時激活設備(A),取消關聯到MAC地址的選項
eth0配置完新的IP地址,需要取消激活,然後再激活,就能用新的IP地址了.
eth1激活,就能用新的IP地址了.
重新啟動操作系統
# reboot
# ping
www.yam.com
b、VMware Server 1.0.6虛擬機Centos OS5.2系統時間同步的問題
1、升級並安裝gcc和kernel-devel(要保證操作系統能上網)
# yum install gcc kernel-devel
Is this ok [y/N] : y
Is this ok [y/N] : y

2、檢查內核是否一致,這裡肯定不一致
# uname -r
2.6.28-92.e15
# rpm -q kernel-devel
kernel-devel-2.6.28-92.e15
kernel-devel-2.6.28-92.1.10.e15

3、下載新的內核,並安裝
# yum -y upgrade kernel kernel-devel
# reboot 4、驗證是否安裝好了新內核 # ls -d /usr/src/kernels/$(uname -r)*/include
應該出現類似2.6.18-92.1.10.e15內核的信息

5、在CentOS重新啟動後,把虛擬機安裝虛擬工具進行安裝
  go to VM> Install VMware Tools... --> Install
(如果CentOS光盤還沒有退出,可能無法運行虛擬機工具,init 0系統,手動取消CentOS系統光盤(選擇Use physical drive:),再啟動系統,就可以安裝虛擬工具了)
# cd /media/VMware Tools 6、安裝虛擬工具 # cp VMwareTools-1.0.6-91891.tar.gz /tmp
# cd /tmp
# tar -zxf VMwareTools-1.0.6-91891.tar.gz
# rm -rf VMwareTools-1.0.6-91891.tar.gz
# cd /tmp/vmware-tools-distrib
# ./vmware-install.pl

7、一切按確認進行安裝,選擇螢幕頻率時可以是3(推薦),也可以是2

8、修改/etc/X11/xorg.conf文件
# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
# gedit /etc/X11/xorg.conf
新添加以下內容(如果已經存在則跳過此步驟):
Section "Monitor"
Identifier "vmware"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "vmmouse"
Option "Protocol" "Auto"
Option "Device" "/dev/input/mouse0"
EndSection

然後找到含有"ServerLayout"的section在Section跟EndSection之間加上以下一行:
InputDevice "Mouse0" "CorePointer"
最後重新啟動操作系統

9、使用虛擬工具
# cd /usr/bin
# vmware-toolbox
或者
(我的CPU是Intel 32位的P4 2.8GHz的處理器,所以選擇bin32,如果你的CPU是AMD 64/Intel 64位的處理器,估計要選擇bin64文件夾下的vmware-toolbox,估計,我沒有測試過)
# cd /tmp/vmware-tools-distrib/lib/bin32
# ./vmware-toolbox

選擇第一頁的
Time synchrononiztion between the virtual machine and the host operating system.
前面的按鈕按下去.

10、修改/boot/grub/grub.conf文件
# cp /boot/grub/grub.conf /boot/grub/grub.conf.bak
# gedit /boot/grub/grub.conf
將kernel /vmlinuz-2.6.18-92.1.10.el15 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
修改成kernel /vmlinuz-2.6.18-92.1.10.el15 ro root=/dev/VolGroup00/LogVol00 rhgb quiet clock=pit nosmp noapic nolapic

11、修改文件(如果已經存在則跳過此步驟):C:\Documents and Settings\All Users\Application Data\VMware\VMware Server\config.ini
添加如下三行:
host.cpukHz = "2800000"
host.noTSC = "TRUE"
ptsc.noTSC = "TRUE"
其中:host.cpukHz要根據你的cpu的實際主頻修改,例子中表示CPU主頻是2.8G。
12、測試一下:
# date 09010000
一會,你發現系統時間自動被改回來,就安裝成功了.


c、CentOS 5.2_FTP設置的問題
步驟如下:
1、運行yum install vsftpd命令(如果有the yum lock警告出現,你把那個告訴你的pid,kill掉就能用yum命令了.)
具體的細節如下:
[root@localhost ~]# yum install vsftpd
都選擇y 2、將/etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root這一行註釋掉 # root
需要執行的具體命令是:
#cp /etc/vsftpd/user_list /etc/vsftpd/user_list.bak
#cp /etc/vsftpd/ftpusers /etc/vsftpd/ftpusers.bak
#gedit /etc/vsftpd/user_list把root這一行改成#root
#gedit /etc/vsftpd/ftpusers把root這一行改成#root

3、執行以下命令
# setsebool -P ftpd_disable_trans=1
如果SELinux關閉的話,上面的命令無法執行,那麼請運行ntsysv,選擇vsftpd這個前面加個*,那麼ftp在系統啟動後,會自動啟動.
這裡把防火也也可以關閉了.把iptables前面的*,取消掉.

4、# service vsftpd restart (ftp服務器就可以使用了. )
d、CentOS 5.2_Telnet設置的問題
1、安裝軟件(前提是把光盤加載到系統上,如果加不上,關閉系統再加上光盤後,再啟動系統)[root@localhost CentOS]# cd /media/CentOS_5.2_Final/CentOS
[root@localhost CentOS]# rpm -ivh xinetd-2.3.14-10.e15.i386.rpm
[root@localhost CentOS]# service xinetd start
[root@localhost CentOS]# rpm -ivh telnet-server-0.17-39.el5.i386.rpm
[root@localhost CentOS]# chkconfig telnet on

2、啟動telnet服務
 
  1、開啟服務
方法一:使用ntsysv,在出現的窗口之中,將telnet勾選起來,然後按下OK即可!
 方法二:編輯/etc/xinetd.d/telnet
[root@localhost root]# vi /etc/xinetd.d/telnet
找到disable = yes < ==就是改這裡,將yes改成no即可!服務預設是關閉的
方法三:使用chkconfig命令直接開啟
  [root@localhost root]# chkconfig telnet on
  2、激活服務
telnet是掛在xinetd底下的,所以自然只要重新激活xinetd就能夠將xinetd裡頭的設定重新讀進來,所以剛剛設定的telnet自然也就可以被激活.
[root@localhost CentOS]# service xinetd restart
或者
[root@localhost CentOS]# /etc/rc.d/init.d/xinetd restart #這個是比較正規的方法

允許root用戶登入,可用下列方法
開啟root用戶的telnet功能
1、編輯/etc/default/login文件.(如果沒有,就創建一個login文件)
添加內容:CONSOLE=/dev/console
2、編輯/etc/securetty文件(先要備份securetty文件:cp securetty securetty.bak)
,加上下面幾行(最後面添加):
pts/0
pts/1
pts/2
pts/3

這樣一來, root將可以直接進入Linux主機.不過,建議不要這樣做.還可以在普通用戶進入後,切換到root用戶,擁有root的權限!
不用重新啟動服務xinetd,就能有效
e、CentOS 5.2_Xmanager設置的問題
1、編輯/etc/gdm/custom.conf,內容如下:(需要先備份文件)
[daemon]

[security]
AllowRemoteRoot=true

[xdmcp]
Port=177
Enable=1

[gui]
[greeter]
[chooser]
[debug]
[servers]
2、關閉防火牆,不關的話,用不起
#ntsysv選擇iptables ,ip6tables把前面的*號去掉

3、重新啟動系統就可以了.
f、備份CentOS 5.2系統後,網卡設置的問題
在桌面上選擇系統-->管理-->網絡
選擇eth0-->硬件設備-->不要關聯到MAC地址
這樣,關閉系統,就可以備份新的系統,新的系統中的網卡就不會出現4個了eth0 eth0.bak eth1 eth1.bak,這些bak文件有問題,無法關閉,如果系統在不要關聯到MAC地址這個選項沒有選的話,新的拷貝系統就不會出問題了.

g、激活CentOS 5.2第二個網卡的問題
在桌面上選擇系統-->管理-->網絡
在eth1裡面要選擇當計算機啟動時激活設備(A) ,不然的話,系統啟動後,eth1是不會自動啟動的.

解決完以上問題
現在的系統具備:以root用戶登錄ftp,telnet,XMangaer

h、sendmail啟動時間過長的問題
那就關閉它
# ntsysv
取消sendmail前面的*
(修改後儲存F12)

五、安裝Oracle Rac前的系統準備
1、修改/etc/hosts文件,如下所示
# cp /etc/hosts /etc/hosts.bak
# gedit /etc/hosts

127.0.0.1 localhost.localdomain localhost(這裡必須這樣修改,否則RAC節點名出現在回送地址中,安裝RAC期間可能會報錯)
192.168.1.100 rac1.localdomain rac1
192.168.1.101 rac2.localdomain rac2

10.0.0.1 rac1-priv.localdomain rac1-priv
10.0.0.2 rac2-priv.localdomain rac2-priv

192.168.1.200 rac1-vip.localdomain rac1-vip
192.168.1.201 rac2-vip.localdomain rac2-vip


2、編輯/etc/sysconfig/network文件
# cp /etc/sysconfig/network /etc/sysconfig/network.bak
# gedit /etc/sysconfig/network
把hostname=localhost.localdomain改成hostname=rac1.localdomain

3、在桌面上選擇系統-->管理-->網絡
把eth0的自動獲取ip地址,改成靜態地址192.168.1.100 255.255.255.0
先激活eth1,然後再把eth1的自動獲取ip地址,改成靜態地址10.0.0.1 255.255.255.0
注:在eth1裡面要選擇當計算機啟動時激活設備(A) ,不然的話,系統啟動後,eth1是不會自動啟動的.

4、設置共享內存和信號參數
執行一下命令:
#cp /etc/sysctl.conf /etc/sysctl.conf.bak
#gedit /etc/sysctl.conf

編輯/etc/sysctl.conf文件,添加如下信息,這些信息可以根據自己的機器實際情況來調整(1048576=1G存儲空間=1024*1024 262144=256M)
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

5.配置hangcheck-timer內核模塊
該模塊是用來監控集群的狀態情況,linux as4中已經安裝了此模塊,使用下面的命令確認
find /lib/modules -name "hangcheck-timer.o"看看有沒有,如果有,配置並加載該模塊
#echo "/sbin/modprobe hangcheck-timer" >> /etc/rc.local
#modprobe hangcheck-timer
#grep Hangcheck /var/log/messages | tail -2
Jul 31 15:01:49 ha2pub kernel: Hangcheck: starting hangcheck timer 0.5.0 (tick is 30 seconds, margin is 180 seconds).
如果看到上面的信息,說明模塊的設置工作正確
配置Hangcheck計時器
# cd /etc/rc.d/
# cp rc.local rc.local.bak
# gedit rc.local
在最後面添加新的一行:
modprobe hangcheck-timer hangcheck-tick=30 hangcheck_margin=180

6.在節點上創建oracle用戶和目錄
#groupadd -g 1002 oinstall
#groupadd -g 1001 dba
#useradd -u 1001 -g oinstall -G dba oracle
#passwd oracle
# id nobody查看是否存在匿名用戶,如不存在則創建.
以oracle用戶登陸,分別建立兩個目錄
# su - oracle
$mkdir /home/oracle/app用於安裝oracle數據庫
$mkdir /home/oracle/orcl用於Oracle集群文件系統(OCFS)的掛載點

修改oracle用戶的.bash_profile文件如下所示
__________________________________________________________________
# .bash_profile

export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=/home/oracle/app/crs/
export ORACLE_SID=RAC1

export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NLS10=$ORACLE_HOME/nls/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=american_america.ZHS16GBK

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
ulimit -u 16384 -n 65536

************************************************** ****
以下的不用加
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
________________________________________________________________________
注意,在第二個節點上,修改SID=RAC2

7、安裝所需的rpm包(在安裝光盤下,也可以用Yum install 安裝)
compat-db-4.2.52-5.1.i386.rpm
compat-gcc-34-3.4.6-4.i386.rpm
compat-gcc-34-c++-3.4.6-4.i386.rpm
compat-libgcc-296-2.96-138.i386.rpm
compat-libstdc++-296-2.96-138.i386.rpm
compat-libstdc++-33-3.2.3-61.i386.rpm
fontconfig-devel-2.4.1-7.el5.i386.rpm
freetype-devel-2.2.1-19.el5.i386.rpm
libaio-0.3.106-3.2.i386.rpm
libaio-devel-0.3.106-3.2.i386.rpm
libXp-1.0.0-8.1.el5.i386.rpm
openmotif22-2.2.3-18.i386.rpm
openmotif-2.3.0-0.5.el5.i386.rpm

命令如下:
#cd /media/CentOS_5.2_Final/CentOS
#rpm -ivh compat-db-4.2.52-5.1.i386.rpm
...
以下的命令類似,安裝完所有上面所列出的包

8、配置shell對oracle的限制
# cd /etc/security/
# cp limits.conf limits.conf.bak
# gedit limits.conf
在最後面添加新的一行:
#For Oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft memlock 3145728
oracle hard memlock 3145728

* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536

以上的限制需要啟用pam模塊的一個選項
# cd /etc/pam.d/
# cp login login.bak
# gedit login
在最後面添加新的一行:
#For Oracle
session required /lib/security/pam_limits.so

# cp /etc/selinux/config /etc/selinux/config.bak
# gedit /etc/selinux/config
SELINUX=disabled

9、關閉系統,將centosrac1拷貝一份(整個文件夾),把名字改成centosrac2 ,是把Other Linux 2.6.x kernel.vmx中的displayName = "centosrac1"改成displayName = "centosrac2"
10.單獨啟動centosrac2,修改ip地址和hostname
a、編輯/etc/sysconfig/network文件
把hostname=rac1.localdomain改成hostname=rac2.localdomain

b、在桌面上選擇系統-->管理-->網絡
把eth0的靜態地址192.168.1.100改成192.168.1.101
把eth1的的靜態地址10.0.0.1改成10.0.0.2
注:在eth1裡面要選擇當計算機啟動時激活設備(A) ,不然的話,系統啟動後,eth1是不會自動啟動的.

c、在第二個節點上,修改/etc/oracle/.bash_profile中ORACLE_SID=orcl2
重新啟動操作系統

11.建立節點之間的互信(建議使用方法1來完成此項設置)
方法1:
Create the /etc/hosts.equiv file as the root user.
#touch /etc/hosts.equiv
#chmod 600 /etc/hosts.equiv
#chown root:root /etc/hosts.equiv
Edit the /etc/hosts.equiv file to include all the RAC nodes:
# cp /etc/hosts.equiv /etc/hosts.equiv.bak
# gedit /etc/hosts.equiv
+rac1 oracle
+rac2 oracle
+rac1-priv oracle
+rac2-priv oracle

需在兩台計算機都要運行:
#su - oracle
$ssh-keygen -t rsa生成密鑰對,使用空密碼
生成密鑰對:
只需在一台服務器上操作:
[oracle@rac1 ~]$ ssh 192.168.1.100 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
[oracle@rac1 ~]$ ssh 192.168.1.101 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
[oracle@rac1 ~]$ scp authorized_keys 192.168.1.100:/home/oracle/.ssh/
[oracle@rac1 ~]$ scp authorized_keys 192.168.1.101:/home/oracle/.ssh/
需在兩台計算機上操作:
[oracle@rac1 ~]$ chmod 600 /home/oracle/.ssh/authorized_keys
[oracle@rac2 ~]$ chmod 600 /home/oracle/.ssh/authorized_keys

#ssh-keygen -t rsa生成密鑰對,使用空密碼
生成密鑰對:
只需在一台服務器上操作:
[root@rac1 ~]# ssh 192.168.1.100 cat /root/.ssh/id_rsa.pub >> authorized_keys
[root@rac1 ~]# ssh 192.168.1.101 cat /root/.ssh/id_rsa.pub >> authorized_keys
[root@rac1 ~]# scp authorized_keys 192.168.1.100:/root/.ssh/
[root@rac1 ~]# scp authorized_keys 192.168.1.101:/root/.ssh/
需在兩台計算機上操作:
[root@rac1 ~]# chmod 600 /root/.ssh/authorized_keys
[root@rac2 ~]# chmod 600 /root/.ssh/authorized_keys

所有的驗證:
在兩台計算機上的root權限和oracle權限下,都要運行以下命令:
ssh localhost.localdomain date
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
ssh rac1.localdomain date
ssh rac2.localdomain date
ssh rac1-priv.localdomain date
ssh rac2-priv.localdomain date
如果有問yes/no,都輸入yes,只要以上命令都能在不輸入密碼的情況下,執行完畢,說明設置是對的.


方法2:
我採用的是ssh,具體過程有很多文檔說明,這裡省略.分別要建立root用戶,oracle用戶的互信.
#cp /etc/hosts.allow /etc/hosts.allow.bak
#gedit /etc/hosts.allow
添加sshd:ALL
# /etc/rc.d/init.d/sshd restart

1.分別從rac1和rac2上登錄作為root後運行ssh-keygen,目的是簡單地在/root下創建目錄.ssh,當提示輸入
passphase時打入兩次回車.這將生成/root/.ssh/identity and /root/.ssh/identity.pub
 
2.先測試一下,從rac1登錄作為root,打入#ssh rac2,會要求提示root password.
3.現在從rac1登錄作為root,運行scp /root/.ssh/id_rsa.pub rac2:/root/.ssh/authorized_keys. ,
 文件名必須不能弄錯.

4.現在再從rac1運行#ssh rac2則不需要密碼了:)
同理rac2也是這樣的(重複第3步)

具體的指令如下:
rac1上,以root用戶登錄
#ssh-keygen輸入兩次回車
#scp /root/.ssh/id_rsa.pub rac1:/root/.ssh/authorized_keys
輸入密碼
#scp /root/.ssh/id_rsa.pub rac2:/root/.ssh/authorized_keys

rac2上,以root用戶登錄
#ssh-keygen輸入兩次回車
#scp /root/.ssh/id_rsa.pub rac2:/root/.ssh/authorized_keys1
輸入密碼
#cd /root/.ssh
#cat authorized_keys1>>authorized_keys
#scp /root/.ssh/id_rsa.pub rac1:/root/.ssh/authorized_keys1

rac1上,以root用戶登錄
#cd /root/.ssh
#cat authorized_keys1>>authorized_keys

rac1上,以oracle用戶登錄
$ssh-keygen輸入兩次回車
$scp /home/oracle/.ssh/id_rsa.pub rac1:/home/oracle/.ssh/authorized_keys
輸入密碼
$scp /home/oracle/.ssh/id_rsa.pub rac2:/home/oracle/.ssh/authorized_keys

rac2上,以oracle用戶登錄
$ssh-keygen輸入兩次回車
$scp /home/oracle/.ssh/id_rsa.pub rac2:/home/oracle/.ssh/authorized_keys1
輸入密碼
$cd /home/oracle/.ssh
$cat authorized_keys1>>authorized_keys
$scp /home/oracle/.ssh/id_rsa.pub rac1:/home/oracle/.ssh/authorized_keys1

rac1上,以oracle用戶登錄
$cd /home/oracle/.ssh
$cat authorized_keys1>>authorized_keys


然後在分別以root用戶,oracle在兩個節點上執行如下命令,
ssh localhost.localdomain date
ssh rac1 date
ssh rac2 date
ssh rac1-priv date
ssh rac2-priv date
ssh rac1.localdomain date
ssh rac2.localdomain date
ssh rac1-priv.localdomain date
ssh rac2-priv.localdomain date
如果需要輸入(yes/no)?輸入yes,測試完所有命令,如果都不要輸密碼,就配置成功了.


12、建立節點時間同步
a、兩台計算機以rac1為時間標準
在rac1上,以root用戶登錄
# cd /etc/xinetd.d
# cp time-stream time-stream.bak
# gedit time-stream
把disable = yes改成 disable = no
# service xinetd restart
# rdate -s rac1
# hwclock -w
就可以了.

在rac2上,以root用戶登錄
# rdate -s rac1
# hwclock -w
就可以了.

這時也可以把rac2的校時服務開啟
# cd /etc/xinetd.d
# cp time-stream time-stream.bak
# gedit time-stream
把disable = yes改成disable = no
# service xinetd restart
# rdate -s rac1
# hwclock -w
就可以了.
b、系統啟動後,rac1向ntp server校時(由於和本機同步,所以不用ntp校時了,b這一步可以不做)
在rac1上,以root用戶登錄
#crontab -e
//crontab -l是列出任務
//crontab -r是刪除所有任務
添加如下內容:
* * * * * /usr/sbin/ntpdate time.stdtime.gov.tw | hwclock -w
意思是,每分鐘更新時間一次.
#date 09010000
#service crond restart
就可以看效果了.
c、系統啟動後,rac2向rac1校時
在rac2上,以root用戶登錄
在/etc/rc.d/init.d/下寫一個腳本
#cd /etc/rc.d/init.d/
#gedit uptimefromrac1
內容:
#!/bin/bash
/etc/rc.d/init.d/uptimefromrac_1 &
然後:
#gedit uptimefromrac_1
內容:
#!/bin/bash
while(true;)
do
rdate -s rac1
sleep 20
done
然後:
#chmod 777 uptimefromrac1
#chmod 777 uptimefromrac_1
# ln -s /etc/rc.d/init.d/uptimefromrac1 /etc/rc.d/rc5.d/S99uptimefromrac1
這樣rac2每20秒鐘與rac1同步一次時間或者簡單點
#crontab -e
* * * * * rdate -s rac1 | hwclock -w(可以crontab被啟動的時機是root用戶登錄的時機,所以系統啟動後,crontab不會被運行,只能用腳本了)


13、把網卡綁定mac地址(rac1,rac2上,都要執行)
在桌面上選擇系統-->管理-->網路
選擇eth0-->硬件設備-->關聯到MAC地址
選擇eth1-->硬件設備-->關聯到MAC地址
然後點擊確定.

沒有留言:

張貼留言