日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區(qū)平臺 聯系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 互聯網 > MySQL主從復制技術與讀寫分離技術amoeba應用

MySQL主從復制技術與讀寫分離技術amoeba應用

來源:程序員人生   發(fā)布時間:2014-09-06 07:42:40 閱讀次數:2161次

MySQL主從復制技術與讀寫分離技術amoeba應用

 

前言:目前在搭建一個人才網站,預計流量會很大,需要用到分布式數據庫技術,MySQL的主從復制+讀寫分離技術。讀寫分離技術有官方的MySQL-proxy,阿里巴巴的Amoeba。Amoeba能在阿里巴巴這么大流量的平臺投入使用而且運行穩(wěn)定,Amoeba的性能是很優(yōu)越的,相信眼前事實,所以選擇了Amoeba。

 

一、名詞解析

1. 主從復制。

將主服務器上的數據復制到從服務器上,保護數據免受意外的損失。

 


2.Amoeba 

Amoeba(變形蟲)項目,專注分布式數據庫 proxy 開發(fā)。座落與Client、DB Server(s)之間。對客戶端透明。具有負載均衡、高可用性、sql過濾、讀寫分離、可路由相關的query到目標數據庫、可并發(fā)請求多臺數據庫合并結果。

 

二、環(huán)境資料

假設amoeba的前提條件:

 1. 實驗環(huán)境:

       System: CentOS release 6.5

JDK: jdk-6u35-linux-x64.bin

Mysql版本:   5.5.38

Amoeba版本: amoeba-mysql-3.0.5-RC-distribution

 

 

2. 架構圖:



    主服務器,用于寫數據庫, Master server   192.168.1.106

  從服務器,用于讀數據庫,Slave server    192.168.1.100

  讀寫分離的代理服務器,  Amoeba server: 192.168.1.105

 

三、架設MySQL的主從復制服務器

1. 主服務器Master server數據庫配置:

我的mysql 安裝在/usr/local/mysql

#vi /etc/my.cnf

設置 server-id = 1 ,此值不能和從數據庫的一樣

     在my.cnf末尾添加如下語句,表示哪些庫不同步:

     binlog-ignore-db=mysql #每個不同步的庫寫一行

 #service mysqld restart

 

接著分配一個數據庫賬號給Slave Server 和 Amoeba Server:

#mysql -uroot -p123456 

mysql> grant replication slave on *.* to idc719comslave@192.168.1.100 identified by 123456

mysql> grant all on *.* to proxyuser@192.168.1.105 identified by 123456

mysql> flush privileges;

mysql> show master status;

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000028 |      107 |              | mysql            |

+------------------+----------+--------------+------------------+

1 row in set (0.01 sec)

記錄File的mysql-bin.000028 與 Position的107 ,等會要用到。

 

2. 從服務器Slave server數據庫配置:

#vi /etc/my.cnf

replicate-do-db=test

replicate-ignore-db=mysql

replicate-ignore-db=persondb

 

#service mysqld restart

#mysql -uroot -p123456

mysql> grant all on *.* to proxyuser@192.168.1.105 identified by 123456;

mysql> CHANGE MASTER TO 

-> Master_Host=192.168.1.106,

    -> Master_User=idc719comslave,

-> Master_Password=123456,

    -> Master_Port=3306,

    -> Master_Log_File=mysql-bin.000028,

-> Master_Log_File=107;

mysql> start slave;

mysql> show slave statusG;

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 192.168.1.106

                  Master_User: idc719comslave

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000028

          Read_Master_Log_Pos: 107

               Relay_Log_File: slaveserver1-relay-bin.000016

                Relay_Log_Pos: 253

        Relay_Master_Log_File: mysql-bin.000028

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB: test

          Replicate_Ignore_DB: mysql

           Replicate_Do_Table: 

       Replicate_Ignore_Table: 

      Replicate_Wild_Do_Table: 

  Replicate_Wild_Ignore_Table: 

                   Last_Errno: 0

                   Last_Error: 

                 Skip_Counter: 0

          Exec_Master_Log_Pos: 107

              Relay_Log_Space: 416

              Until_Condition: None

               Until_Log_File: 

                Until_Log_Pos: 0

           Master_SSL_Allowed: No

           Master_SSL_CA_File: 

           Master_SSL_CA_Path: 

              Master_SSL_Cert: 

            Master_SSL_Cipher: 

               Master_SSL_Key: 

        Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

                Last_IO_Errno: 0

                Last_IO_Error: 

               Last_SQL_Errno: 0

               Last_SQL_Error: 

  Replicate_Ignore_Server_Ids: 

             Master_Server_Id: 1

1 row in set (0.00 sec)

 

看到Slave_IO_State: Waiting for master to send event 表示成功了!

如果不成功, 比如   

 Last_IO_Errno: 2003

、Last_IO_Error: error connecting to master 'idc719comslave@192.168.1.106:3306' - retry-time: 60  retries: 86400

是主服務器開了防火墻,或者用戶密碼錯誤!

 

 

三、架設 Amoeba 服務器

1. 安裝JDK

Amoeba是java編寫的,運行需要JDK環(huán)境,可以通過#echo $JAVA_HOME看是否安裝配置了JDK,如果沒有,參考如下方法:

下載軟件包

uname -r 檢查系統(tǒng)內核信息

mkdir -p /tmp/src && cd /tmp/src

x86_64 請下載

wget http://docs.minunix.com/web/jdk-6u35-linux-x64.bin

i386系列 請下載

wget http://docs.minunix.com/web/jdk-6u35-linux-i586.bin

 

注:作者系統(tǒng)為X86_64 ,所以以x86_64 演示,步驟都一樣的!

安裝必備組件信息:

yum -y install glibc*

下載完成之后,修改文件屬性,賦予可執(zhí)行權限,然后執(zhí)行程序予以安裝:

chmod +x  jdk-6u35-linux-x64.bin

./jdk-6u35-linux-x64.bin

 

 注:此處可能會出現以下問題:

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

此問題是因為您沒有安裝glibc-* ,只需要安裝glibc 即可解決,

yum -y install glibc*  

安裝完成之后,執(zhí)行下列命令:

#cp -rf jdk1.6.0_35 /usr/local/jdk

#vim /etc/profile.d/java.sh 輸入下列內容

JAVA_HOME="/usr/local/jdk"

CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"

PATH=".:$PATH:$JAVA_HOME/bin"

export JAVA_HOME

 

###保存退出,并執(zhí)行下面的命令使配置生效

#source /etc/profile.d/java.sh

#java -version 檢查java版本

 

2.安裝Amoeba

下載頁面:http://sourceforge.net/projects/amoeba/?source=directory

下載后,解壓 #unzip amoeba-mysql-3.0.5-RC-distribution.zip -d /usr/local/

#cd /usr/local

#mv amoeba-mysql-3.0.5-RC-distribution amoeba

#cd amoeba

#ls

benchmark  bin  conf  jvm.properties  lib  logs

#cd conf

#vim amoeba.xml

查找如下字段并修改紅色的部分,分別是端口、amoeba主機的ip,用戶密碼,和讀寫服務器的別名,其余字段默認就可以

<property name="port">8066</property>

<property name="ipAddress">192.168.1.105</property>

<property name="user">root</property>

<property name="password">123456</property>                         

<property name="writePool">server1</property>

<property name="readPool">server2</property>

 

#vim dbServers.xml

紅色部分為修改的地方

    <?xml version="1.0" encoding="gbk"?>

     

    <!DOCTYPE amoeba:dbServers SYSTEM "dbserver.dtd">

    <amoeba:dbServers xmlns:amoeba="http://amoeba.meidusa.com/">

     

                    <!-- 

                            Each dbServer needs to be configured into a Pool,

                            If you need to configure multiple dbServer with load balancing that can be simplified by the following configuration:

                             add attribute with name virtual = "true" in dbServer, but the configuration does not allow the element with name factoryConfig

                             such as 'multiPool' dbServer   

                    -->

     

            <dbServer name="abstractServer" abstractive="true">

                    <factoryConfig class="com.meidusa.amoeba.mysql.net.MysqlServerConnectionFactory">

                            <property name="connectionManager">${defaultManager}</property>

                            <property name="sendBufferSize">64</property>

                            <property name="receiveBufferSize">128</property>

     

                            <!-- mysql port -->

                            <property name="port">3306</property>

     

                            <!-- mysql schema -->

                            <property name="schema">test</property>

     

                            <!-- mysql user -->

                            <property name="user">proxyuser</property>

     

                            <property name="password">123456</property>

                    </factoryConfig>

     

                    <poolConfig class="com.meidusa.toolkit.common.poolable.PoolableObjectPool">

                            <property name="maxActive">500</property>

                            <property name="maxIdle">500</property>

                            <property name="minIdle">10</property>

                            <property name="minEvictableIdleTimeMillis">600000</property>

                            <property name="timeBetweenEvictionRunsMillis">600000</property>

                            <property name="testOnBorrow">true</property>

                            <property name="testOnReturn">true</property>

                            <property name="testWhil

    生活不易,碼農辛苦
    如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
    程序員人生
    ------分隔線----------------------------
    分享到:
    ------分隔線----------------------------
    關閉
    程序員人生
    主站蜘蛛池模板: 爱情岛论坛首页网址 | av免费网 | 深夜成人av | free性中国hd国语page1 | 波多野结衣中文字幕久久 | 国产高清一区 | 国产精品免费网站 | 亚洲精品在线免费看 | 国产中文字幕一区 | 亚洲精品日韩综合观看成人91 | 国产不卡视频在线 | 成人免费视频观看视频 | 激情在线视频 | 日韩精品一二三区 | 国产精品xxx在线观看www | 亚洲毛茸茸少妇高潮呻吟 | 五月婷网 | 99一区二区 | 久久精品亚洲精品国产欧美 | av簧片 | 精品一区二区三区久久 | 不卡久久| 一级毛片观看 | 一区在线视频 | 亚洲不卡在线 | 国产精品99精品久久免费 | 男女午夜视频 | 欧美午夜在线观看 | 亚洲女人天堂成人av在线 | 黄免费看 | 久久久久久亚洲蜜桃 | 久久久福利| 久久精品一级 | 国产福利不卡 | 亚洲女人天堂成人av在线 | 黑人巨大精品欧美一区免费视频 | 日韩av网站免费 | 国产原创精品视频 | 另类 欧美 日韩 国产 在线 | 亚洲欧美成人网 | 久久99精品久久久久久久久久久久 |