VMware_workstation_6[1].5_+_RHEL5.3_+_Oracle_10gR2_RAC+OCFS2+ASM
VMware_workstation_6[1].5_+_RHEL5.3_+_Oracle_10gR2_RAC+OCFS2+ASM
Oracle RAC是一個DBA的分水嶺,如果一個oracle DBA不會實施RAC,將會被劃入初級的DBA,如果能夠熟練地安裝、配置、維護RAC的DBA,可以有效的增加DBA的分量,可以進入中高階DBA的行列,所以,從開始接觸linux和oracle開始,我就希望能夠熟練地安裝配置oracle RAC,還有DG等一切oracle的高階技術,現在所有的考試都結束了,有時間啦,今天就慢慢的把oracle的RAC配置過程慢慢的寫下來。
開始學習時,參考了很多資料,基本上都是網上搜來的,而且好多已經轉到了我的部落格,在此一併謝過!
環境是:VMware workstation 6.5+RHEL 5.3+Oracle 10gR2+OCFS2+ASM
一、搭建環境
兩個節點的情況分別為:
Hostame: rac1.yangfei.com
eth0: 192.168.1.110 bridged
eth1: 10.0.0.138 Host-only
vip: 192.168.1.120
Hostname: rac1.yangfei.com
eth0: 192.168.162.139 bridged
eth1: 10.0.0.139 Host-only
vip: 192.168.1.121
(一)第一大階段
1.用vmware建立一個虛擬機器,安裝RHEL5
有幾點注意一下:
(1)建議虛擬機器硬碟大小 >= 10G
(2)分配的記憶體1G
(3)需要兩塊網路卡,一塊選擇bridged模式,一塊選擇Host-only模式。 (注:網上很多資料說public的那塊網路卡使用NAT模式,但我發現,只有使用bridged時,IP地址才真實環境的IP地址在同一網段。)
網上有人說安裝的時候不要選擇帶xen的核心什麼的,我想只是建議吧,至少我做的實驗安裝了xen的核心也是成功的。安裝時輸入的RHEL5的序列號:
Red Hat Enterprise Linux Virtualization Platform.
49af89414d147589
2.配置RHEL5
假設剛剛裝完了了一個RHEL5系統,現在我們來做一些oracle RAC安裝前的配置。
(1)檢查oracle安裝所依賴的包是否裝全
setarch-2*
make-3*
glibc-2*
libaio-0*
compat-libstdc++-33-3*
compat-gcc-34-3*
compat-gcc-34-c++-3*
gcc-4*
libXp-1*
openmotif22-*
compat-db-4*
為了方便包的安裝,我會把RHEL光碟上所有的rpm包複製到XP系統裡的RHEL5_RPM目錄下,然後在RHEL下建立一個指令碼,需要時我就直接把XP的RHEL5_RPM目錄mount到RHEL下,方便使用,具體指令碼內容是:
mount -o username=administrator,password=yangfei //192.168.1.100/RHEL5_RPM /mnt/win_shared
username是登陸xp系統的使用者名稱,passwork是登陸xp系統的密碼(必須要有密碼才可以),192.168.1.100是xp主機的ip地址,當然RHEL5_RPM必須要共享。
進入/mnt/win_shared,然後使用下面的命令重新安裝所有需要的包:
rpm -Uvh --replacepkgs setarch-2.0-1.1.i386.rpm
rpm -Uvh --replacepkgs make-3.81-3.el5.i386.rpm
rpm -Uvh --replacepkgs glibc-2.5-34.i686.rpm
rpm -Uvh --replacepkgs libaio-0.3.106-3.2.i386.rpm
rpm -Uvh --replacepkgs compat-libstdc++-33-3.2.3-61.i386.rpm
rpm -Uvh --replacepkgs kernel-headers-2.6.18-128.el5.i386.rpm
rpm -Uvh --replacepkgs glibc-headers-2.5-34.i386.rpm
rpm -Uvh --replacepkgs glibc-devel-2.5-34.i386.rpm
rpm -Uvh --replacepkgs compat-gcc-34-3.4.6-4.i386.rpm
rpm -Uvh --replacepkgs compat-gcc-34-c++-3.4.6-4.i386.rpm
rpm -Uvh --replacepkgs libgomp-4.3.2-7.el5.i386.rpm
rpm -Uvh --replacepkgs gcc-4.1.2-44.el5.i386.rpm
rpm -Uvh --replacepkgs libXp-1.0.0-8.1.el5.i386.rpm
rpm -Uvh --replacepkgs openmotif-2.3.1-2.el5.i386.rpm
rpm -Uvh --replacepkgs compat-db-4.2.52-5.1.i386.rpm
也可以使用下面的命令升級安裝所有需要的包,如果包已經安裝,而且版本相同就略過:
rpm -Uvh setarch-2.0-1.1.i386.rpm
rpm -Uvh make-3.81-3.el5.i386.rpm
rpm -Uvh glibc-2.5-34.i686.rpm
rpm -Uvh libaio-0.3.106-3.2.i386.rpm
rpm -Uvh compat-libstdc++-33-3.2.3-61.i386.rpm
rpm -Uvh kernel-headers-2.6.18-128.el5.i386.rpm
rpm -Uvh glibc-headers-2.5-34.i386.rpm
rpm -Uvh glibc-devel-2.5-34.i386.rpm
rpm -Uvh compat-gcc-34-3.4.6-4.i386.rpm
rpm -Uvh compat-gcc-34-c++-3.4.6-4.i386.rpm
rpm -Uvh libgomp-4.3.2-7.el5.i386.rpm
rpm -Uvh gcc-4.1.2-44.el5.i386.rpm
rpm -Uvh libXp-1.0.0-8.1.el5.i386.rpm
rpm -Uvh openmotif-2.3.1-2.el5.i386.rpm
rpm -Uvh compat-db-4.2.52-5.1.i386.rpm
(2)配置主機名及網路設定
#vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=rac1.yangfei.com
#vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0C:29:8A:CF:56
ONBOOT=yes
IPADDR=192.168.1.110
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
#vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
HWADDR=00:0C:29:8A:CF:60
ONBOOT=yes
IPADDR=10.0.0.138
NETMASK=255.0.0.0
#vim /etc/hosts # Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
#public
192.168.1.110 rac1.yangfei.com rac1
192.168.1.111 rac2.yangfei.com rac2
#private
10.0.0.138 rac1-priv.yangfei.com rac1-priv
10.0.0.139 rac2-priv.yangfei.com rac2-priv
#vitual
192.168.1.120 rac1-vip.yangfei.com rac1-vip
192.168.1.121 rac2-vip.yangfei.com rac2-vip
(3)新增oracle所需的賬戶,組
#groupadd oinstall
#groupadd dba
#groupadd oper
#useradd -g oinstall -G dba oracle
#passwd oracle
#mkdir -p /u01/oracle #用於安裝oracle用的
#chown -R oracle:oinstall /u01/oracle
#chmod -R 775 /u01/oracle
(4)修改核心引數
#vim /etc/sysctl.conf //新增如下內容或修改相關引數
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
使更改立即生效,使用如下命令:
#sysctl -p
(5)設定oracle使用者的shell limit
#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檔案,新增下面的內容,使shell limit生效:
#vim /etc/pam.d/login
session required pam_limits.so
(6)修改/etc/redhat-release檔案
因為Oracle 10g官方只支援到RHEL4為止,所以需要更改版本說明,編輯/etc/redhat-release檔案,刪除Red Hat Enterprise Linux Server release 5 (Tikanga),改為redhat-4,(其實oracle 10gR2已經可以支援RHEL5,但還是要修改成redhat-4,因為oracle的cluster只支援RHEL4.)
(7)更改oracle使用者環境變數
[oracle@rac1 ~]$vim .bash_profile //以oracle登陸,新增如下內容
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
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
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
(8)安裝OCFS2
OCFS2(Oracle Cluster File System 2)所需的核心包和工具包的下載地址為:
切忌,核心包一定要裝跟你係統相匹配的。我這裡用的是RHEL5
[root@rac1 ~]# uname -r
2.6.18-8.el5xen
[root@rac1 opt]# ls -l
total 1576
-rw-r--r-- 1 root root 278783 Sep 22 21:48 ocfs2-2.6.18-8.el5xen-1.2.9-1.el5.i686.rpm
-rw-r--r-- 1 root root 169193 Sep 22 21:48 ocfs2console-1.2.7-1.el5.i386.rpm
-rw-r--r-- 1 root root 1144294 Sep 22 21:48 ocfs2-tools-1.2.7-1.el5.i386.rpm
直接用#rpm -Uvh * 安裝就行了。
好了,到這裡第一階段的配置工作完成,關閉虛擬機器。
(二)第二大階段
安裝Oracle RAC,肯定需要共享儲存裝置了!! 而且我們現在只裝了一個RHEL5,還缺少一個RHEL5
呢,別急,下面來搞定這些。
1.建立共享儲存
到VMware server 1.0.6的安裝目錄下,你會發現一個vmware-vdiskmanager.exe檔案。
好了,我們就用它來建立一個共享磁碟。
C:\Program Files\VMware\VMware Server>vmware-vdiskmanager.exe -c -s 8Gb -a
lsilogic -t 3 "E:\hrwang-vmware-ocfs\ocfs.vmdk"
Using log file C:\DOCUME~1\hrwang\LOCALS~1\Temp\vmware-hrwang\vdiskmanager.log
Creating a split preallocated disk 'E:\hrwang-vmware-ocfs\ocfs.vmdk'
Create: 100% done.
Virtual disk creation successful.
2.更改RHEL5虛擬機器安裝目錄下以".vmx"為字尾的檔案
我的RHEL5安裝在E:\hrwang-vmware-RHEL5-oracle1\下,其下有一個名為“Other Linux 2.6.x
kernle.vmx"的檔案,就是它了,新增如下資訊:
scsi1.present="TRUE"
scsi1.virtualDev="lsilogic"
scsi1.sharedBus="virtual"
scsi1:1.present="TRUE"
scsi1:1.mode="independent-persistent"
scsi1:1.filename="E:\hrwang-vmware-ocfs\ocfs.vmdk"
scsi1:1.deviceType="disk"
disk.locking="false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
3.建立第二個RHEL5主機
因為我們用的是VMware,所以直接把hrwang-vmware-RHEL5-oracle1複製一份,命名為hrwang-vmware-RHEL5-oracle2。然後用vmware開啟,啟動。第二個RHEL5就大體搭完了,
簡單吧,:)
(1)當然,主機名和網路設定還是要更改的。
#vi /etc/sysconfig/network
HOSTNAME=oracle2.hrwang.com #更改hostname
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
HWADDR=00:0c:29:2f:bb:b3
IPADDR=192.168.162.139
NETMASK=255.255.255.0
GATEWAY=192.168.162.2
#vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
HWADDR=00:0c:29:2f:bb:bd
IPADDR=10.0.0.139
NETMASK=255.0.0.0
(2)更改oracle使用者目錄下的.bash_profile
切換到oracle使用者, $vi /home/oracle/.bash_profile
把ORACLE_SID = orcl1 改為 ORACLE_SID = orcl2
好了,重啟使設定生效吧,第二個RHEL5系統也配置完成了。
(三)第三大階段
好了,到目前為止,我們需要把配置好的兩個系統都啟動起來了。先用ping測試一下連通性。沒問題吧!
1.配置oracle使用者的同等性(需使用oracle使用者登陸)
在兩臺機器中都執行如下操作:
[oracle@oracle2 ~]$ mkdir .ssh
[oracle@oracle2 ~]$ chmod 700 .ssh
[oracle@oracle2 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
29:88:60:b7:47:8f:32:d7:b6:cf:8a:6a:7f:d6:9b:1b oracle@oracle2.hrwang.com
然後,在oracle1上,執行如下操作:
[oracle@oracle1 .ssh]$ssh oracle1 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
The authenticity of host 'oracle1 (192.168.162.138)' can't be established.
RSA key fingerprint is e6:7e:fc:49:c0:32:d5:12:a6:3c:3b:92:c5:44:be:f6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'oracle1,192.168.162.138' (RSA) to the list of known hosts.
oracle@oracle1's password:
[oracle@oracle1 .ssh]$ssh oracle2 cat /home/oracle/.ssh/id_rsa.pub >> authorized_keys
oracle@oracle2‘s password:
[oracle@oracle1 .ssh]$scp authorized_keys oracle2:/home/oracle/.ssh/
然後到oracle2上,把authorized_keys的許可權也改為600.
最後以oracle使用者在兩個節點上分別執行如下操作:
$ssh oracle1 date
$ssh oracle2 date
$ssh oracle1.hrwang.com date
$ssh oracle2.hrwang.com date
$exec /usr/bin/ssh-agent $SHELL
$/usr/bin/ssh-add
注意:目錄.ssh的許可權一定要是700,而.ssh目錄下的所有檔案許可權一定要是600,否則會出現Permission denied (publickey).的錯誤,這也是我花了一個晚上才解決的問題。
好了,先在兩臺機器之間oracle使用者的同等性建立完成。發現了嗎,ssh到對方機器時不再需要密碼。
2.透過OCFS2配置共享磁碟(root許可權執行)
下面的操作我以root許可權在oracle1上執行(你如果喜歡在另外節點上執行也沒問題,因為是共享的,在一個節點上對其操作就ok。)
(1)使用#fdisk -l 發現共享磁碟裝置名為/dev/sdb。好了,先建立分割槽吧。
[root@oracle1 ~]# fdisk /dev/sdb
The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):
Using default value 1044
Command (m for help): p
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 1044 8385898+ 83 Linux
Command (m for help): w
The partition table has been
Calling ioctl() to re-read partition table.
Syncing disks.
(2)#[root@oracle1 ~]ocfs2console
選擇"Task"選單下的format,更改volume label為ocfs,點選OK,格式化。
檢視一下/etc/ocfs2/下是否有cluster.conf檔案,把裡面的內容清空;如果沒有此檔案,touch一個。
接下來,點選"Cluster"選單下的Node Configuration,把兩個節點都新增上,名字就是Hostname,即oracle1.hrwang.com oracle2.hrwang.com。 IP部分添私網IP,即10.0.0.138 10.0.0.139。點選Apply儲存。參考下圖:
Permission
新增完節點之後,再看看cluster.conf檔案中的內容是什麼。如果如下圖就對了:
node:
ip_port = 7777
ip_address = 10.0.0.138
number = 0
name =
oracle1.hrwang.com
cluster = ocfs
node:
ip_port = 7777
ip_address = 10.0.0.139
number = 1
name = oracle2.hrwang.com
cluster = ocfs
cluster:
node_count = 2
name = ocfs
最後點選"Cluster"選單下的"Progagate Cluster Configuration",來同步oracle1上的配置到oracle2上去,如下圖:
(3)啟動和配置ocfs2服務(root許可權)
在兩個節點上分別執行如下操作:
[root@oracle2 ocfs2]# /etc/init.d/o2cb enable
Writing O2CB configuration: OK
Loading module "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading module "ocfs2_nodemanager": OK
Loading module "ocfs2_dlm": OK
Loading module "ocfs2_dlmfs": OK
Creating directory '/dlm': OK
Mounting ocfs2_dlmfs filesystem at /dlm: OK
Starting O2CB cluster ocfs2: OK
[root@oracle2 ocfs2]# /etc/init.d/o2cb configure
Configuring the O2CB driver.
This will configure the on-boot properties of the O2CB driver.
The following questions will determine whether the driver is loaded on
boot. The current values will be shown in brackets ('[]'). Hitting
will abort.
Load O2CB driver on boot (y/n) [y]:
Cluster to start on boot (Enter "none" to clear) [ocfs2]:
Specify heartbeat dead threshold (>=7) [31]:
Specify network idle timeout in ms (>=5000) [30000]:
Specify network keepalive delay in ms (>=1000) [2000]:
Specify network reconnect delay in ms (>=2000) [2000]:
Writing O2CB configuration: OK
O2CB cluster ocfs2 already online
(4)建立掛載點(root許可權)
在兩個節點上分別執行如下操作:
#mkdir /oracle_ocfs
#vi /etc/fstab '新增下面一行
/dev/sdb1 /oracle_ocfs ocfs2 _netdev,datavolume,nointr 0 0
其中datavolume選項確保Oracle程式在開啟檔案時使用o_direct標記,nointr選項確保在這個裝置上的讀寫不會被一些訊號中斷,_netdev選項對於mount ocfs2裝置是必須的,這個選項說明裝置需要在網路啟動的時候掛載,在網路關閉之後取消掛載(datavolume 和 nointr選項只在儲存資料檔案等裝置上需要)。
重啟兩臺機器,測試一下看是否都可以掛載上,沒問題的話繼續。
重啟之後共享分割槽應該都正常掛載,我們在任意一節點上建立兩個目錄,並分配許可權給oracle
[root@oracle1 ocfs2]# mkdir /oracle_ocfs/shared_config
[root@oracle1 ocfs2]# mkdir /oracle_ocfs/data
[root@oracle1 /]# chown -R oracle:oinstall /oracle_ocfs
[root@oracle1 /]# chmod -R 755 /oracle_ocfs
OK,配置部分到這裡就全部搞定了,下面我們來安裝吧~~~
在oracle1上安裝(這個沒有限制,你可以任意選擇其中的一臺)
使用oracle使用者登陸oracle1.hrwang.com,切換clutserware目錄,這是解壓好的10201_clusterware_linux32.zip。請參考下面的截圖,:)
1. [oracle@oracle1 clusterware]$ ./runInstaller
2.
3.這一步時可以透過"Product Languages”選擇簡體中文。我打算把CRS安裝在本機磁碟而不是共享磁碟上,所以安裝目錄選擇了/oracle/product/10.2.0/crs
5. 還記得我們更改過的/etc/hosts檔案吧?對了!就是把那裡面的兩個節點對應的都新增進來
6. 我們設定eth0為Public,eth1為Private
7. 記得我們在共享磁碟下建立過兩個資料夾嗎?呵呵,其中的shared_config目錄就是用來放置ocr檔案和voting_disk的
8. 開始安裝
9. 提示以root許可權執行指令碼
執行指令碼的順序如下:
[root@oracle1]/oracle/oraInventory/orainstRoot.sh
[root@oracle2]/oracle/oraInventory/orainstRoot.sh
[root@oracle1]/oracle/product/10.2.0/crs/root.sh
[root@oracle2]/oracle/product/10.2.0/crs/root.sh
一下8行為插錄:
1 , CRS 的安裝
1) 在安裝最後,兩個節點執行完相關指令碼後,先不要點 OK , 先在 第二個節點以 root 使用者 vipca ; /u01/crs1020/bin/vipca . 配置完成後,再去第一個節點,點 OK 。
2 ,刪除 CRS 安裝
1) /etc/init.d 中先刪除最後三行 ( evmd , ocssd , crsd )
2) 重啟兩主機
3) 刪除 /etc/oracle
4) 刪除安裝目錄中所有的檔案
在oracle2上執行root.sh時,會提示一個錯誤,關於vipca無法執行的。於是乎,我手動執行/oracle/produc, t/10.2.0/crs/bin/vipca,結果又告訴我找不到libpthread.so.0。暈~~
你也應該遇到吧!! 別急這是個bug,我們這樣來解決:
[root@oracle2 ~]vi /oracle/product/10.2.0/crs/bin/vipca
JREDIR=/oracle/product/10.2.0/crs/jdk/jre把最後/的去掉,改為:
JREDIR=/oracle/product/10.2.0/crs/jdk/jre
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL fi #找到這部分,改為:
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL fi
unset LD_ASSUME_KERNEL
現在再執行vipca試試,什麼?又出現個錯誤?
是不是類似下面的錯誤:
Error 0(Native: listNetInterfaces:[3])
[Error 0(Native: listNetInterfaces:[3])]
阿彌佗佛,壓住火氣,這樣來解決:
[root@oracle2 bin]# ./oifcfg iflist
eth1 10.0.0.0
eth0 192.168.162.0
[root@oracle2 bin]# ./oifcfg setif -global eth0/192.168.162.0:public
[root@oracle2 bin]# ./oifcfg setif -global eth1/10.0.0.0:cluster_interconnect
[root@oracle2 bin]# ./oifcfg getif
eth0 192.168.162.0 global public
eth1 10.0.0.0 global cluster_interconnect
你再試試vipca,怎麼樣出來了吧!參考下圖配置vipca
(1)
(2)一般填入浮動IP主機名,IP地址就會自動填入
(3)
好了,在oracle2上配置完vip了。
10. 回到oracle1的安裝介面上來,點選OK,會再一次檢查,成功了就安裝結束了
11. Ok,我們在oracle1上的crs已經安裝完成了,這時你登陸oracle2看看,是不是/oracle/product/10.2.0/crs也已經存在了呢,:)
三、安裝Oracle資料庫軟體
我們還是以oracle使用者登陸oracle1.hrwang.com, 到database目錄,這是解壓好的10201_database_linux32.zip。
可以參考http://blog.chinaunix.net/u/22677/showart_1205499.html來安裝。
這裡有兩個地方需要注意,一是在選擇安裝資料庫的節點時,把兩臺機器都選上,如下圖:
二是安裝時我們選擇只安裝資料庫軟體,稍後我們再透過dbca建立資料庫,如下圖:
oracle1上的軟體安裝完畢,你登陸到oracle2上看看安裝目錄,也有了東東,呵呵!!
到此我們的oracle資料庫軟體也安裝完畢了。
四、建立資料庫
我還是以oracle使用者在oracle1.hrwang.com上執行建立資料庫的操作,請看下面的圖,比較簡單:
[oracle@oracle1 ~]$dbca
好了,到此共享資料庫已經建立好了。不過大家選字符集的時候可別象我那麼選,會有亂碼的,呵呵!
五、管理ORACLE RAC
建立完共享資料庫,我們透過srvctl來看看狀態(在哪個節點上執行? 隨意!!)
[oracle@oracle1 admin]$ srvctl --help
/oracle/product/10.2.0/db_1/jdk/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
怎麼回事????? 別急,還是那個bug問題,我們更改兩個節點上的/oracle/product/10.2.0/db_1/bin/srvctl檔案
找到下面的部分
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
改為
LD_ASSUME_KERNEL=2.4.19
export LD_ASSUME_KERNEL
unset LD_ASSUME_KERNEL
1.檢視資料庫狀態
[oracle@oracle2 admin]$ srvctl status database -d orcl
Instance orcl1 is running on node oracle1
Instance orcl2 is running on node oracle2
2.檢視例項狀態
[oracle@oracle1 bin]$ srvctl status instance -d orcl -i orcl1,orcl2
Instance orcl1 is running on node oracle1
Instance orcl2 is running on node oracle2
3.檢視節點軟體狀態
[oracle@oracle1 bin]$ srvctl status nodeapps -n oracle1
VIP is running on node: oracle1
GSD is running on node: oracle1
Listener is running on node: oracle1
ONS daemon is running on node: oracle1
[oracle@oracle1 bin]$ srvctl status nodeapps -n oracle2
VIP is running on node: oracle2
GSD is running on node: oracle2
Listener is running on node: oracle2
ONS daemon is running on node: oracle2
4.關閉和啟動oracle RAC的步驟
[oracle@oracle2 admin]$ emctl stop dbconsole
[oracle@oracle2 admin]$ srvctl stop instance -d orcl -i orcl2
[oracle@oracle2 admin]$ srvctl stop nodeapps -n oracle2
[oracle@oracle2 admin]$ srvctl start nodeapps -n oracle2
[oracle@oracle2 admin]$ srvctl start instance -d orcl -i orcl2
[oracle@oracle2 admin]$ emctl start dbconsole
雜:細心的朋友可能會發現,有的截圖是vmware workstation,後來的就是vmware server,這是因為我一開始是使用workstation來做實驗的,後來遷移到了server上了。不打緊了,建議你直接使用vmware server。
配置開機自動啟動oracle
首先修改$ORACLE_HOME/bin/dbstart,使其符合實際生產情況,手動執行dbstart可以執行所有需要的一切:監聽、asm例項、資料庫例項,然後複製dbstart到/etc/rc.d/init.d下,再修改他的屬性:chmod u+s dbstart chmod g+s dbstart,最後建立建立啟動連結:cp -s /etc/rc.d/init.d/dbstart /etc/rc.d/rc5.d/S99dbstart即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9606200/viewspace-745653/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 1*1卷積卷積
- MySQL-where 1=1MySql
- BUU CODE REVIEW 1 1View
- HTML和CSS <h1> --1-- <h1>HTMLCSS
- CREATE INDEX index1 ON table1(col1)Index
- ·1
- 1
- 1 Day11--API1API
- 1+1+1: 專案型組織變革利器(轉)
- 吳恩達機器學習筆記(1-1到2-1)吳恩達機器學習筆記
- Pygame第1-1課:入門GAM
- 1-4序列的應用1
- 1(1)FPGA入門第一關FPGA
- 分享—1
- MySQL(1)MySql
- 介面1
- Chapter 1APT
- 機器學習-1機器學習
- java(1)Java
- JavaScript(1)JavaScript
- DHTML【1】HTML
- swift (1)Swift
- SDWebimage(1)Web
- DarkHole: 1
- UR #1
- Day 1
- ARC (1)
- (1)概述
- 12,javase程式碼實戰-迴圈控制——用while計算1+1/ 2!+1/ 3!+....+1/ 10!(三)JavaWhile
- [BT5]資訊收集1-1 DnsenumDNS
- 1day漏洞反推技巧實戰(1)
- 高仿包和1:1包區別
- 詳解 1x1 卷積核卷積
- Mybatis where 1=1 動態sql問題MyBatisSQL
- Python_1_Codecademy_1_SyntaxPython
- Oracle JOB'NEXT_TIME into 4000/1/1Oracle
- [TinyRenderer] Chapter1 p1 Output ImageAPT
- 程式設計疑問:文字與檔案、HTTP 1 0 與 HTTP 1 1程式設計HTTP