所謂多數據的從主關系及讀寫分離,由于某種原因時,當主數據庫不能訪問或連接時,系統會認定為“故障轉移”, 這些“故障轉移”可以通過設置“故障轉移”指定的數據庫,從而使網站不會隨數據庫而掛掉。
打開/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