用MySQL内建复制来最佳化可用性(五)
第四步:修改你的 数据库 连接程序 既然你已经在A机和B机之间建立了一个相互的关系,你需要修改数据库连接程序,以便从这种方式中得到好处。下面的函数首先试图与A机连接,如果不能建立连接则与B机连接。 $#@60;? php /************************************
第四步:修改你的数据库连接程序
既然你已经在A机和B机之间建立了一个相互的关系,你需要修改
数据库连接程序,以便从这种方式中得到好处。下面的函数首先试图与A机连接,如果不能建立连接则与B机连接。
$#@60;?
php
/********************************************************
function db_connect()
returns a link identifier on su
clearcase/" target="_blank" >ccess, 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来模拟一个超时处理。
原文转自:http://www.ltesting.net
|