高手教你用Symantec VCS配置DB2雙機-入門
高手教你用Symantec VCS配置DB2雙機-高級
將Oracle的雙機放在DB2雙機后面講有兩個原因:一是DB2的配置相對于oracle的配置來說比較簡單,數據庫的模式也比較容易理解,而其中相似的地方可以參照DB2的配置;二是DB2雙機的配置,也只能說是oracle雙機配置的子集,在了解DB2的雙機配置之后,oracle雙機配置的很多相似的地方簡單說明一下即可。此外,讀者可以比較一下這兩種模式的異同,有利于讀者選擇更合適自己的雙機配置模式。
我們隨后還將介紹Sybase雙機的配置,將Sybase放在最后并不是因為它更復雜,而是因為在這三種數據庫之中,Sybase的用戶群相對比較少,需要的人不多。
比較DB2與Oracle數據庫
DB2和Oracle有很多的不同,要想了解清楚,那個不是一朝一夕的功夫了。幸運的是,因為我們現在只是需要做雙機配置,所以我們只是在可能會影響配置的概念上,做一個簡單的比較。
1. 配置結構的不同:
DB2數據庫的雙機熱備只支持一種模式,就是DB2的程序在兩臺機器上各有一份,只有數據文件存放在共享存儲中,如下圖所示:
圖1,DB2雙機配置結構圖
這種配置模式的優點是有利于數據庫的升級,當其中systemA需要升級的時候,就把服務切換到systemB上運行,升級A的DB2程序,之后還可以把服務切換回到A來,然后升級B的DB2程序。這個升級過程不會影響用戶的DB2使用,因為總有一臺機器可以使用DB2程序來響應用戶的服務請求。
對于oracle來說不但可以支持這種程序存放在不同機器上的做法,而且支持把oracle的程序文件也同時放在共享盤上,其結構圖如下所示:
圖2,oracle雙機結構圖-程序在各個服務器上
圖3,oracle雙機結構圖-程序和數據都在共享盤上
將數據與程序同時放在共享盤上的優點有兩個:一是節省磁盤空間,用戶只需要保留一份數據庫備份;二是有利于程序的一致性,不會因為數據庫版本的不同,產生差異,可以避免產生一些莫名的問題。
2. 數據庫的工作模式不同
DB2數據庫是以實例為基礎的:多個硬盤或者服務器組成一個實例,一個實例下面可以劃分多個數據庫,一個數據庫只能屬于一個實例。Oracle可以理解為以用戶為基礎的數據庫,不同的用戶訪問不同的實例,不同的實例其實就是不同的數據庫。
配置Oracle雙機系統
閑話少說,現在開始介紹一下利用VCS來配置oracle雙機的過程:
a) 創建數據文件使用的共享存儲(在system1上面執行下列5個命令):
i. # vxdg init oracleDG c0t0d0; 創建磁盤組oracleDG,使用c0t0d0這個硬盤;
ii. # vxassist -g oracleDG make oracleVol 5g; 在磁盤組上創建5G大小的卷oracleVol;
iii. # mkfs -F vxfs -o largefiles /dev/vx/rdsk/oracleDG/oracleVol; 創建文件系統;
iv. # mkdir /oracle ; 創建mount點,共享磁盤將mount到這里;
v. # mount -F vxfs /dev/vx/dsk/oracleDG/oracleVol /oracle; 將共享盤mount到本機;
b) 在兩臺機器上面分別執行下列命令,創建相同的用戶組和用戶:
vi. # groupadd -g 500 dba; 創建oracle管理組;
vii. # useradd -g dba -u 500 -d /home/oracle -m oracle; 創建oracle管理用戶;
注意:組ID或者用戶ID可以是任意尚未被使用的數值,但是一定要保證多臺機器必須一致。
c) 安裝oracle程序
到oracle安裝文件的目錄下,運行下列命令安裝oracle程序
#. /runInstaller
在安裝過程中,指定oracle用戶為“oracle”。
注意:如果需要在多臺機器安裝oracle,則需要在多臺機器運行該程序;如果僅僅想把程序安裝在共享盤上面,則僅僅需要在一臺機器安裝。
注意:安裝過程中有一步會問用戶是否需要配置數據庫,我們選擇“僅僅安裝軟件”,我們會在稍后配置數據庫文件到共享磁盤。
d) 配置數據庫:
oracle程序安裝完畢后,我們需要配置數據庫到共享磁盤上,這樣多臺機器才能夠共享其數據資源;
# dbca
運行數據庫配置助手來幫助用戶安裝數據庫,注意需要將路徑指明到共享磁盤中。
e) 設置環境變量
在各個機器的/home/oracle/.profile文件中,設置兩個全局變量:
$ORACLE_HOME=/oracle 該變量指明數據庫的安裝位置;
$ORACLE_SID=oracle 該變量指明訪問哪個數據庫實例;
f) 安裝VCS的oracle代理軟件:(以redhat為例)
# rpm -ivh VRTSvcsor
# rpm -ivh VRTScsocw
這樣,oracle的安裝就完成了。
測試Oracle雙機配置
在安裝結束之后,我們需要測試一下oracle能否在多臺機器上正常工作。
a) 將共享盤mount到第一臺機器(步驟可以參考DB2雙機配置)
b) 從這臺機器登陸數據庫并創建一個表
i. su – oracle 將系統用戶切換到oracle用戶;
ii. export $ORACLE_HOME=/oracle; 導出全局變量;
export $ORACLE_SID=oracle;
iii. $ORACLE_HOME/bin/sqlplus /nolog 進入數據庫模式;
iv. connect / as sysdba 以系統管理員身份登陸數據庫;
v. create user tester identified by '123456' default tablespace USERS temporary tablespace TEMP quota 100K on UERS; 創建一個新用戶tester;
vi. grant create session to tester; 賦予新用戶tester創建表的權限;
vii. create table tester.mytime ( tstamp date ); 在tester用戶空間下創建一個新表;
viii. insert into tester.mytime (tstamp) values (SYSDATE); 在新表中插入數據;
ix. disconnect; 斷開連接;
c) 測試其他集群節點可以工作:
i. connect tester/123456 以新用戶身份登陸數據庫;
ii. update tester.mytime set ( tstamp ) = SYSDATE; 更新表的內容;
iii. select TO_CHAR(tstamp, ’MON DD, YYYY HH:MI:SS AM’) from tester.mytime; 確認表的內容已經被更新;
iv. exit 推出。
在經過這個檢查之后,就說明數據庫已經正確安裝并可以被每個節點正常的訪問,測試成功。
配置VCS的oracle代理
這個過程與DB2的非常相似,唯一的不同在于DB2只有一個主進程工作,監控DB2是否正常工作只需監控這個進程即可。在oracle中有兩個進程,一個是數據庫運行的主進程,另一個是監控用戶請求的進程,兩個進程同時工作才能確保oracle的正常運行。所以在oracle代理的配置過程中,需要多添加一個lsnr的資源,用來保證oracle監控進程的正常工作。
配置好的oracle代理結構如圖所示:
圖4,oracle代理的配置結構
按照該圖所示,配置oracle代理需要下列資源:
NIC:提供oracle相應的網卡;
IP:提供oracle服務的IP地址;
DiskGroup:共享磁盤組;
Volume_data:存放oracle共享數據的卷;
Volume_binary:存放oracle程序的卷(如果程序不是放在共享磁盤,該資源可以忽略);
Mount_data:數據庫共享數據的訪問路徑;
Mount_binary:數據庫程序的訪問路徑(如果程序不是放在共享磁盤,該資源可以忽略);
Oracle:監控oracle進程是否正常工作;
Netlnsr:監控oracle監聽進程是否工作。
在這些資源都配置好之后,打開VCS的圖形界面,可以讓該服務組執行上線、下線或者切換,這樣,VCS就會自動監控oracle的工作情況,并在某臺機器發生故障的時候,自動切換到其他節點繼續提供服務。這樣,oracle的雙機配置就完成了。