所谓多数据的从主关系及读写分离,由于某种原因时,当主数据库不能访问或连接时,系统会认定为“故障转移”, 这些“故障转移”可以通过设置“故障转移”指定的数据库,从而使网站不会随数据库而挂掉。
打开/config/database.php文件:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); $active_group = 'default'; $query_builder = TRUE; $db['default'] = array( ... 以上是默认内容 ... ); ... 以上是默认内容 ... #以下是我为“default”设置故障处理库 $db['default']['failover'] = array( array( 'dsn' => '', 'hostname' => '127.0.0.1', // 备用数据1 'username' => 'root', 'password' => '', 'port' => '3306', 'database' => 'vip', 'dbdriver' => 'mysqli', 'dbprefix' => 'dr_', 'pconnect' => FALSE, 'db_debug' => TRUE, 'cache_on' => FALSE, 'cachedir' => 'cache/sql/', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'autoinit' => FALSE, 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, ), array( 'dsn' => '', 'hostname' => '127.0.0.1', // 备用数据2 'username' => 'root', 'password' => '', 'port' => '3306', 'database' => 'vip2', 'dbdriver' => 'mysqli', 'dbprefix' => 'dr_', 'pconnect' => FALSE, 'db_debug' => TRUE, 'cache_on' => FALSE, 'cachedir' => 'cache/sql/', 'char_set' => 'utf8', 'dbcollat' => 'utf8_general_ci', 'swap_pre' => '', 'autoinit' => FALSE, 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, ), );
你可以设置多个备用库来应付故障的处理,当然前提需要这些库的数据同步(一般数据库服务器有这种同步机制)。
文档最后更新时间:2015-02-26 09:07:30