程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 用MySQL內建復制來最佳化可用性(五)

用MySQL內建復制來最佳化可用性(五)

編輯:關於PHP編程

第四步:修改你的數據庫連接程序
  既然你已經在A機和B機之間建立了一個相互的關系,你需要修改數據庫連接程序,以便從這種方式中得到好處。下面的函數首先試圖與A機連接,如果不能建立連接則與B機連接。
$#@60;?php
/********************************************************
function db_connect()
returns a link identifier on success, or false on error
********************************************************/
function db_connect(){
$username = "replUser";
$password = "password";
$primary = "10.1.1.1";
$backup = "10.1.1.2";
# attempt connection to primary
if(!$link_id = @mysql_connect($primary, $username, $password))
# attempt connection to secondary
$link_id = @mysql_connect($secondary, $username, $password)
return $link_id;
}
?$#@62;
  我在兩種情況下對使用了上面技術的數據庫連接建立過程進行了測試,一種是主MySQL服務程序關閉了,但是服務器還在運行,另一種情況是主服務器關閉了。如果只是mysqld關閉了,連接會馬上轉向備機;但是如果整個服務器關閉了,就出現了無限地等待(兩分鐘後我放棄了跟蹤 -- 很短的注意跨度),因為PHP在查找一個不存在的服務器。不幸地是,不象fsockopen函數,mysql_connect函數沒有一個超時參數,然而我們可以使用fsockopen來模擬一個超時處理。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved