一、環境準備
a、
|
主服務器 |
備份服務器 |
計算機名 |
BAO-001 |
BAO-002 |
私網(心跳網絡)設置 |
IP=192.168.9.21 Mask=255.255.255.0 |
IP=192.168.9.22 Mask=255.255.255.0 |
公網(應用網絡)設置 |
IP=192.168.9.11 Mask=255.255.255.0 |
IP=192.168.9.12 Mask=255.255.255.0 |
虛擬IP地址 |
192.168.9.10 |
|
本地磁盤 |
C: |
|
共享磁盤 |
E: |
b、分別在兩張網卡上 安裝NetBEUI協議:
進入“網絡與撥號連接”,選中頂層菜單“高級”->“高級設置(S)…”
c、更改網卡名:
將“本地連接”—用作私網(心跳網絡),改名爲“heart”
將“本地連接2”—用作公網(應用網絡),改名爲“net”
d、修改hosts文件(位於<系統目錄>\system32\drivers\etc),加入主、備服務器地址及虛擬IP地址和用於訪問虛擬IP地址的計算機名,如下:
192.168.9.11 bao-001
192.168.9.12 bao-002
192.168.9.21 bao-heart01
192.168.9.22 bao-heart02
192.168.9.10 bao-vip
e、進入“磁盤管理”,驗證磁盤在主、備服務器上具有相同的盤符“E:”並且磁盤類型爲“基本磁盤”而非“動態”
二、lifekeeper安裝
按照下列步驟分別在主、備服務器上安裝LifeKeeper:
1、安裝LK (選 是)
安裝完後(先不重啓)
4:註冊(需要用到system host id)本次用測試註冊號
注意:如果用本人的測試號的,要將系統時間改爲2012-4-15 ~ 2012-5-1號之間
dk的註冊號是:steeleye-dkwstde_Chinese-42625-34170-43416-06415-15408-32768-16260-13833-03022-06262-52249-54646-47747-16234-29864-23847-23505-03852-27805-01427-226
lk的註冊號是:steeleye-lkwce_Chinese-42625-34170-02176-12313-00060-45312-21921-13273-28886-02203-01549-41533-04994-51982-24648-32679-20805-09663-05094-77155
如下:
5:重啓電腦
6:相關的服務有
7:創建通信路徑 (文件--》連接到--》登錄bao-002)
基本上都是下一步,配置完如下:
下一步(設置虛擬ip地址)
9:創建資源層次(磁盤卷)
下一步(設置卷類型)
其它的就下一步安裝
10:創建資源層次(通用應用程序)
準備工作:將restore.ksh、remove.ksh、quickchk.ksh放到c:/LK/目錄下 ,腳本內容在附件下
下一步(還原腳本)
下一步(快速檢查腳本)
下一步(設置資源名)
其它的不填———》下一步-----》建完後如下
11:創建依賴關係(sql與虛擬ip的依賴關係)
下一步---》下一步
12:創建依賴關係(sql與磁盤卷的關係)
下一步-----》下一步---》建完後如下:
13:改屬性(改成切換資源)
14:測試 (bao-001不正常關機,看看資源是否會自動切換到bao-002上)
實驗前:
實驗中:
實驗後:
15:附件
restore.ksh腳本如下(可以在window下實用):
#!/bin/bash
LKBIN=$LKROOT/bin
PATH=$PATH:$LKBIN
sc start mssqlserver
sleep 15
sc start SQLSERVERAGENT
sleep 15
exit 0
remove.ksh腳本如下:
#!/bin/bash
LKBIN=$LKROOT/bin
PATH=$PATH:$LKBIN
sc stop SQLSERVERAGENT
sleep 15
sc stop mssqlserver
sleep 15
exit 0
quickchk.ksh腳本如下:
#!/bin/bash
LKBIN=$LKROOT/bin
PATH=$PATH:$LKBIN
STATE=`sc query SQLSERVERAGENT 2>NUL: | /bin/awk.exe '{if($1 == "STATE") print $3}'`
if [ "$STATE" = 4 ]
then
echo "SQLSERVERAGENT Serivce is running OK!"
else
echo $STATE
echo "SQLSERVERAGENT Serivce is Fail!!!"
exit 1
fi
STATE=`sc query MSSQLSERVER 2>NUL: | /bin/awk '{if($1 == "STATE") print $3}'`
if [ "$STATE" = 4 ]
then
echo "MSSQLSERVER Serivce is running OK!"
else
echo $STATE
echo "MSSQLSERVER Service is Fail!!!"
exit 1
fi
exit 0