日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

MySQL 數(shù)據(jù)庫中雙機(jī)熱備配置份過程...

 昵稱90415 2009-02-25

MySQL 數(shù)據(jù)庫中雙機(jī)熱備配置份過程

作者:doorsir  出處:linux.ccidnet.com  更新時(shí)間: 2007年03月06日 

1、MySQL數(shù)據(jù)庫沒有增量備份的機(jī)制,當(dāng)數(shù)據(jù)量太大的時(shí)候備份是一個(gè)很大的問題。還好MySQL數(shù)據(jù)庫提供了一種主從備份的機(jī)制,其實(shí)就是把主數(shù)據(jù)庫的所有的數(shù)據(jù)同時(shí)寫到備份數(shù)據(jù)庫中。實(shí)現(xiàn)MySQL數(shù)據(jù)庫的熱備份。

2、要想實(shí)現(xiàn)雙機(jī)的熱備首先要了解主從數(shù)據(jù)庫服務(wù)器的版本的需求。要實(shí)現(xiàn)熱備MySQL的版本都要高于3.2,還有一個(gè)基本的原則就是作為從數(shù)據(jù)庫的數(shù)據(jù)庫版本可以高于主服務(wù)器數(shù)據(jù)庫的版本,但是不可以低于主服務(wù)器的數(shù)據(jù)庫版本。

3、設(shè)置主數(shù)據(jù)庫服務(wù)器:

a.首先查看主服務(wù)器的版本是否是支持熱備的版本。然后查看my.cnf(類Unix)或者my.ini(Windows)中MySQLd配置塊的配置有沒有l(wèi)og-bin(記錄數(shù)據(jù)庫更改日志),因?yàn)镸ySQL的復(fù)制機(jī)制是基于日志的復(fù)制機(jī)制,所以主服務(wù)器一定要支持更改日志才行。然后設(shè)置要寫入日志的數(shù)據(jù)庫或者不要寫入日志的數(shù)據(jù)庫。這樣只有您感興趣的數(shù)據(jù)庫的更改才寫入到數(shù)據(jù)庫的日志中。

 

server-id=1 //數(shù)據(jù)庫的id這個(gè)應(yīng)該默認(rèn)是1就不用改動(dòng)
                                                    log-bin=log_name //日志文件的名稱,
                                                    //這里可以制定日志到別的目錄 如果沒有設(shè)置則默認(rèn)主機(jī)名的一個(gè)日志名稱
                                                    binlog-do-db=db_name //記錄日志的數(shù)據(jù)庫
                                                    binlog-ignore-db=db_name //不記錄日志的數(shù)據(jù)庫

以上的如果有多個(gè)數(shù)據(jù)庫用","分割開

然后設(shè)置同步數(shù)據(jù)庫的用戶賬號(hào)

MySQL> GRANT REPLICATION SLAVE ON *.*
                                                    -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

4.0.2以前的版本, 因?yàn)椴恢С諶EPLICATION 要使用下面的語句來實(shí)現(xiàn)這個(gè)功能

MySQL> GRANT FILE ON *.*
                                                    -> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';

設(shè)置好主服務(wù)器的配置文件后重新啟動(dòng)數(shù)據(jù)庫

b.鎖定現(xiàn)有的數(shù)據(jù)庫并備份現(xiàn)在的數(shù)據(jù)

鎖定數(shù)據(jù)庫

MySQL> FLUSH TABLES WITH READ LOCK;

備份數(shù)據(jù)庫有兩種辦法一種是直接進(jìn)入到MySQL的data目錄然后打包你需要備份數(shù)據(jù)庫的文件夾,第二種是使用MySQLdump的方式來備份數(shù)據(jù)庫但是要加上"--master-data " 這個(gè)參數(shù),建議使用第一種方法來備份數(shù)據(jù)庫

c.查看主服務(wù)器的狀態(tài)

MySQL> show master status\G;
                                                    +---------------+----------+--------------+------------------+
                                                    | File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |
                                                    +---------------+----------+--------------+------------------+
                                                    | MySQL-bin.003 |     73   |     test     |   manual,MySQL   |
                                                    +---------------+----------+--------------+------------------+

記錄File 和 Position 項(xiàng)目的值,以后要用的。

d.然后把數(shù)據(jù)庫的鎖定打開

MySQL> UNLOCK TABLES;

4、設(shè)置從服務(wù)器

a.首先設(shè)置數(shù)據(jù)庫的配置文件

server-id=n //設(shè)置數(shù)據(jù)庫id默認(rèn)主服務(wù)器是1
                                                    //可以隨便設(shè)置但是如果有多臺(tái)從服務(wù)器則不能重復(fù)。
                                                    master-host=db-master.mycompany.com //主服務(wù)器的IP地址或者域名
                                                    master-port=3306 //主數(shù)據(jù)庫的端口號(hào)
                                                    master-user=pertinax //同步數(shù)據(jù)庫的用戶
                                                    master-password=freitag //同步數(shù)據(jù)庫的密碼
                                                    master-connect-retry=60 //如果從服務(wù)器發(fā)現(xiàn)主服務(wù)器斷掉,重新連接的時(shí)間差
                                                    report-host=db-slave.mycompany.com //報(bào)告錯(cuò)誤的服務(wù)器

b.把從主數(shù)據(jù)庫服務(wù)器備份出來的數(shù)據(jù)庫導(dǎo)入到從服務(wù)器中

c.然后啟動(dòng)從數(shù)據(jù)庫服務(wù)器,如果啟動(dòng)的時(shí)候沒有加上"--skip-slave-start"這個(gè)參數(shù)則進(jìn)入到MySQL中

MySQL> slave stop; //停止slave的服務(wù)

d.設(shè)置主服務(wù)器的各種參數(shù)

MySQL> CHANGE MASTER TO
                                                    -> MASTER_HOST='master_host_name', //主服務(wù)器的IP地址
                                                    -> MASTER_USER='replication_user_name', //同步數(shù)據(jù)庫的用戶
                                                    -> MASTER_PASSWORD='replication_password', //同步數(shù)據(jù)庫的密碼
                                                    -> MASTER_LOG_FILE='recorded_log_file_name',
                                                    //主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))
                                                    -> MASTER_LOG_POS=recorded_log_position;
                                                    //日志文件的開始位置(前面要求記住的參數(shù))

e.啟動(dòng)同步數(shù)據(jù)庫的線程

MySQL> slave start;

查看數(shù)據(jù)庫的同步情況吧。如果能夠成功同步那就恭喜了!

查看主從服務(wù)器的狀態(tài)

MySQL> SHOW PROCESSLIST\G //可以查看MySQL的進(jìn)程看看是否有監(jiān)聽的進(jìn)程

如果日志太大清除日志的步驟如下:

1>.鎖定主數(shù)據(jù)庫

MySQL> FLUSH TABLES WITH READ LOCK;

2>.停掉從數(shù)據(jù)庫的slave

MySQL> slave stop;

3>.查看主數(shù)據(jù)庫的日志文件名和日志文件的position

show master status;
                                                    +---------------+----------+--------------+------------------+
                                                    |       File    | Position | Binlog_do_db | Binlog_ignore_db |
                                                    +---------------+----------+--------------+------------------+
                                                    | louis-bin.001 |     79   |              |        MySQL     |
                                                    +---------------+----------+--------------+------------------+

4>.解開主數(shù)據(jù)庫的鎖

MySQL> unlock tables;

5>.更新從數(shù)據(jù)庫中主數(shù)據(jù)庫的信息

MySQL> CHANGE MASTER TO
                                                    -> MASTER_HOST='master_host_name', //主服務(wù)器的IP地址
                                                    -> MASTER_USER='replication_user_name', //同步數(shù)據(jù)庫的用戶
                                                    -> MASTER_PASSWORD='replication_password', //同步數(shù)據(jù)庫的密碼
                                                    -> MASTER_LOG_FILE='recorded_log_file_name',
                                                    //主服務(wù)器二進(jìn)制日志的文件名(前面要求記住的參數(shù))
                                                    -> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數(shù))

6>.啟動(dòng)從數(shù)據(jù)庫的slave

MySQL> slave start;
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多