WEB开发网
开发学院数据库MySQL 用MySQL内建复制功能来优化可用性 阅读

用MySQL内建复制功能来优化可用性

 2006-04-07 10:45:20 来源:WEB开发网   
核心提示: master-host=10.1.1.2 master-user=replicate master-password=password 在重启A机的服务程序之后,现在我们一拥有了在A机与B机之间的相互主-从关系,用MySQL内建复制功能来优化可用性(4),不管在哪个服务器上 更新一条记录或

master-host=10.1.1.2

master-user=replicate master-password=password

在重启A机的服务程序之后,现在我们一拥有了在A机与B机之间的相互主-从关系。不管在哪个服务器上 更新一条记录或插入一条记录,都将被复制到另一台服务器上。要注意的是:我不敢确定一个备机合并二进 制日志变化的速度有多快,所以用这种方法来进行插入或更新语句的负载平衡可能不是一个好办法。

第四步:修改你的数据库连接程序

既然你已经在A机和B机之间建立了一个相互的关系,你需要修改数据库连接程序,以便从这种方式中得 到好处。下面的函数首先试图与A机连接,如果不能建立连接则与B机连接。


/ 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; }

?>

我在两种情况下对使用了上面技术的数据库连接建立过程进行了测试,一种是主MySQL服务程序关闭了, 但是服务器还在运行,另一种情况是主服务器关闭了。如果只是mysqld关闭了,连接会马上转向备机;但是 如果整个服务器关闭了,就出现了无限地等待(两分钟后我放弃了跟踪 -- 很短的注意跨度),因为PHP在查 找一个不存在的服务器。不幸地是,不象fsockopen函数,mysql_connect函数没有一个超时参数,然而我们 可以使用fsockopen来模拟一个超时处理。

上一页  1 2 3 4 5  下一页

Tags:MySQL 复制 功能

编辑录入:coldstar [复制链接] [打 印]
赞助商链接