• ADADADADAD

    cobar mysql 高可用[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:11:28

    作者:文/会员上传

    简介:

    ---------------------------------------------server2IP:172.25.38.2server5IP:172.25.38.5---------------------------------------------1)安装mysql[server2]、[server

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    ---------------------------------------------

    server2IP:172.25.38.2

    server5IP:172.25.38.5

    ---------------------------------------------

    1)安装mysql[server2]、[server5]

    yuminstall-ymysql-server

    rpm-qa|grepmysql##安装好,可见已安装的包

    mysql-libs-5.1.71-1.el6.x86_64

    mysql-5.1.71-1.el6.x86_64

    mysql-server-5.1.71-1.el6.x86_64

    [server2] ##编辑mysql配置文件

    vim /etc/my.cnf

    [mysqld]

    datadir=/var/lib/mysql

    socket=/var/lib/mysql/mysql.sock

    user=mysql

    #Disablingsymbolic-linksisrecommendedtopreventassortedsecurityrisks

    symbolic-links=0

    server-id=2

    binlog-do-db=dbtest

    binlog-ignore-db=mysql

    log-bin=mysql-bin

    master-host=172.25.38.5

    master-user=ly

    master-password=westos

    master-port=3306

    replicate-ignore-db=mysql

    replicate-do-db=dbtest

    [mysqld_safe]

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

    当配置server2为主时,server5为从时,把以#开头的,把#去掉

    [server5]

    vim /etc/my.cnf

    [mysqld]

    datadir=/var/lib/mysql

    socket=/var/lib/mysql/mysql.sock

    user=mysql

    symbolic-links=0

    server-id=5

    log-bin=mysql-bin

    binlog-do-db=dbtest

    binlog-ignore-db=mysql

    #master-host=172.25.38.2

    #master-user=ly

    #master-password=westos

    #master-port=3306

    #replicate-ignore-db=mysql

    #replicate-do-db=dbtest

    [mysqld_safe]

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

    log-error=/var/log/mysqld.log


    /etc/init.d/mysqld start##开启数据库

    mysqladmin-urootpasswordwestos##设置密码

    [root@server5~]#mysql-p##进入数据库设置

    Enterpassword:

    mysql>createuserly@'172.25.38.5'identifiedby'westos';##创建用户并设置密码

    mysql>grantallon*.*toly@'172.25.38.5';##授予权限

    mysql>flushprivleges;##刷新

    mysql>showmasterstatus;##主节点状态

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

    |File|Position|Binlog_Do_DB|Binlog_Ignore_DB|

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

    |mysql-bin.000004|254 |dbtest| mysql|

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

    1rowinset(0.00sec)

    [root@server2 ~]# mysql -p

    Enterpassword:

    mysql>changemastertomaster_host='172.25.38.2',master_user='ly',master_password='westos';

    mysql>startslave;##开启从节点

    mysql>showslavestatus\G;##查看从的状态

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

    Slave_IO_State:Waitingformastertosendevent

    Master_Host:172.25.38.5

    Master_User:ly

    Master_Port:3306

    Connect_Retry:60

    Master_Log_File:mysql-bin.000004

    Read_Master_Log_Pos:254

    Relay_Log_File:mysqld-relay-bin.000005

    Relay_Log_Pos:399

    Relay_Master_Log_File:mysql-bin.000004

    Slave_IO_Running:Yes

    Slave_SQL_Running:Yes

    Replicate_Do_DB:dbtest

    Replicate_Ignore_DB:mysql

    ##做同样类似操作,最后做出双向主从同步

    [root@server2 ~]# mysql -p

    Enterpassword:

    mysql>createuserly@'172.25.38.2'identifiedby'westos';

    mysql>grantallon*.*toly@'172.25.38.2';

    mysql>flushprivileges;

    mysql>showmasterstatus;

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

    |File|Position|Binlog_Do_DB|Binlog_Ignore_DB|

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

    |mysql-bin.000012|106 |dbtest|mysql|

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

    1rowinset(0.00sec)

    [root@server5 ~]# mysql -p

    Enterpassword:

    mysql>changemastertomaster_host='172.25.38.2',master_user='ly',master_password='westos';

    mysql>start slave;

    mysql>showslavestatus\G;

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

    Slave_IO_State:Waitingformastertosendevent

    Master_Host:172.25.38.5

    Master_User:ly

    Master_Port:3306

    Connect_Retry:60

    Master_Log_File:mysql-bin.0000012

    Read_Master_Log_Pos:254

    Relay_Log_File:mysqld-relay-bin.0000013

    Relay_Log_Pos: 106

    Relay_Master_Log_File:mysql-bin.0000012

    Slave_IO_Running:Yes

    Slave_SQL_Running:Yes

    Replicate_Do_DB:dbtest

    Replicate_Ignore_DB:mysql

    ---------------------------------------------

    2)安装heartbeat[server2]、[server5]

    得到如下安装包

    heartbeat-3.0.4-2.el6.x86_64.rpm

    heartbeat-devel-3.0.4-2.el6.x86_64.rpm

    heartbeat-libs-3.0.4-2.el6.x86_64.rpm

    ldirectord-3.9.5-3.1.x86_64.rpm

    yuminstallopensslperl-Net-SSLeayperl-TimeDateperl-libwww-perlperl-Compress-Zlibperl-HTML-Parserperl-HTML-Tagsetipvsadm-y##解决依赖性

    rpm-ivhheartbeat-libs-3.0.4-2.el6.x86_64.rpmldirectord-3.9.5-3.1.x86_64.rpmheartbeat-3.0.4-2.el6.x86_64.rpmheartbeat-devel-3.0.4-2.el6.x86_64.rpm

    vim/etc/ha.d/ha.cf##编辑配置

    34logfacilitylocal0

    48keepalive2

    56deadtime30

    61warntime10

    71initdead60

    76udpport694##端口

    91bcasteth0#Linux

    157auto_failbackon

    211nodeserver5.example.com

    212nodeserver2.example.com

    222ping172.25.38.250##一个同一网段可ping的IP,最好是网关

    255respawnhacluster/usr/lib64/heartbeat/ipfail

    261apiauthipfailgid=haclientuid=hacluster

    vim/etc/ha.d/haresources##资源配置

    server5.example.comIPaddr::172.25.38.100/24/eth0drbddisk::exampleFilesystem::/dev/drbd1::/var/lib/mysql::ext4mysqld

    vim/etc/ha.d/authkeys

    auth1

    1crc

    #2sha1HI!

    #3md5Hello!

    两台配置一样,直接scp过去就好。

    ---------------------------------------------

    3)配置drbd

    在两台主机上添加硬盘,最好一样大小,方便操作

    ////////////////////

    得到如下包

    drbd-8.4.2.tar.gz

    或者8个如下安装包

    drbd-8.4.2-2.el6.x86_64.rpm

    drbd-xen-8.4.2-2.el6.x86_64.rpm

    drbd-udev-8.4.2-2.el6.x86_64.rpm

    drbd-utils-8.4.2-2.el6.x86_64.rpm

    drbd-pacemaker-8.4.2-2.el6.x86_64.rpm

    drbd-heartbeat-8.4.2-2.el6.x86_64.rpm

    drbd-bash-completion-8.4.2-2.el6.x86_64.rpm

    drbd-km-2.6.32_431.el6.x86_64-8.4.2-2.el6.x86_64.rpm

    以tar包方式进行安装如下:

    rpm-ivhdrbd-*

    yuminstallgccflexrpm-buildkernel-devel-y

    cp/root/drbd-8.4.0.tar.gz/root/rpmbuild/SOURCES/

    tarzxfdrbd-8.4.0.tar.gz

    cddrbd-8.4.0

    ./configure--enable-spec

    ./configure--enable-spec--with-km

    在当前目录下得到两个文件

    drbd.specdrbd-km.spec

    rpmbuild-bbdrbd.spec

    rpmbuild-bbdrbd-km.spec

    cd/root/rpmbuild/RPMS/x86_64

    rpm-ivh*

    scp/root/rpmbuild/RPMS/x86_64/*172.25.38.5:/root

    并且执行rpm-ivhdrbd-*

    vim/etc/drbd.d/example.res

    1resourceexample{

    2meta-diskinternal;

    3device/dev/drbd1;

    4syncer{

    5verify-algsha1;

    6}

    7onserver5.example.com{

    8disk/dev/vdb;

    9address172.25.38.5:7789;

    10}

    11onserver2.example.com{

    12disk/dev/vdb;

    13address172.25.38.2:7789;

    14}

    15}

    drbdadmcreate-mdexample

    /etc/init.d/drbdstart

    drbdadmprimaryexample

    cat/proc/drbd#在两台主机上查看同步状态

    mkfs.ext4/dev/drbd1#数据同步结束后创建文件系统

    mount/dev/drbd1/var/www/html#挂载文件系统

    ---------------------------------------------

    4)安装jdk

    得到

    jdk-6u32-linux-x64.bin

    shjdk-6u32-linux-x64.bin

    mvjdk-6u32-linux-x64java

    mvjava/usr/local

    vim/etc/profile

    exportJAVA_HOME=/usr/local/java

    exportCLASSPATH=.:$JAVA_HOME/bin:$JAVA_HOME/jre/lib

    exportPATH=$PATH:$JAVA_HOME/bin

    source/etc/profile

    cd/home/

    测试:

    vimtest.java

    classtest{

    publicstaticvoidmain(String[]args)

    {

    System.out.println("Helloworld!");

    }

    }

    javatest

    ---------------------------------------------

    5)安装cobar

    cobar-server-1.2.6.zip

    unzipcobar-server-1.2.6.zip

    cd/root/cobar-server-1.2.6/conf

    vimschema.xml

    <!--schema定义-->

    <schemaname="dbtest">

    <tablename="usertb"dataNode="server5,server2"/>

    </schema>

    <dataSourcename="dbtest"type="mysql">

    <propertyname="location">

    <location>172.25.38.5:3306/dbtest</location>

    <location>172.25.38.5:3306/dbtest</location>

    </property>

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

    <propertyname="password">westos</property>

    <propertyname="sqlMode">STRICT_TRANS_TABLES</property>

    </dataSource>

    vimserver.xml

    <username="root">

    <propertyname="password">westos</property>

    <propertyname="schemas">dbtest</property>

    </user>

    <!--

    <username="root">

    <propertyname="password"></property>

    </user>

    <cluster>

    <nodename="cobar1">

    <propertyname="host">172.25.38.5</property>

    <propertyname="weight">1</property>

    </node>

    </cluster>

    <cluster>

    <nodename="cobar2">

    <propertyname="host">172.25.38.2</property>

    <propertyname="weight">2</property>

    </node>

    </cluster>

    vimrule.xml

    <!DOCTYPEcobar:ruleSYSTEM"rule.dtd">

    <cobar:rulexmlns:cobar="http://cobar.alibaba.com/">

    <!--路由规则定义,定义什么表,什么字段,采用什么路由算法-->

    <tableRulename="rule1">

    <rule>

    <columns>id</columns>

    <algorithm><![CDATA[func1(${id})]]></algorithm>

    </rule>

    </tableRule>

    <!--路由函数定义-->

    <functionname="func1"class="com.alibaba.cobar.route.function.PartitionByLong">

    <propertyname="partitionCount">2</property>

    <propertyname="partitionLength">512</property>

    </function>

    cd/root/cobar-server-1.2.6/bin

    [root@server2bin]#./startup.sh

    "/usr/local/java/bin/java"-Dcobar.home="/root/cobar-server-1.2.6"-classpath"/root/cobar-server-1.2.6/conf:/root/cobar-server-1.2.6/lib/classes:/root/cobar-server-1.2.6/lib/cobar-common-1.2.6.jar:/root/cobar-server-1.2.6/lib/cobar-config-1.2.6.jar:/root/cobar-server-1.2.6/lib/cobar-net-1.2.6.jar:/root/cobar-server-1.2.6/lib/cobar-parser-1.2.6.jar:/root/cobar-server-1.2.6/lib/cobar-route-1.2.6.jar:/root/cobar-server-1.2.6/lib/cobar-server-1.2.6.jar:/root/cobar-server-1.2.6/lib/log4j-1.2.16.jar:/root/cobar-server-1.2.6/lib/slf4j-api-1.6.4.jar:/root/cobar-server-1.2.6/lib/slf4j-log4j12-1.6.4.jar"-server-Xms1024m-Xmx1024m-Xmn256m-Xss128k-XX:+AggressiveOpts-XX:+UseBiasedLocking-XX:+UseFastAccessorMethods-XX:+DisableExplicitGC-XX:+UseParNewGC-XX:+UseConcMarkSweepGC-XX:+CMSParallelRemarkEnabled-XX:+UseCMSCompactAtFullCollection-XX:+UseCMSInitiatingOccupancyOnly-XX:CMSInitiatingOccupancyFraction=75com.alibaba.cobar.CobarStartup>>"/root/cobar-server-1.2.6/logs/console.log"2>&1&

    [root@server2bin]#/etc/init.d/drbdstart

    StartingDRBDresources:[

    ]

    .

    [root@server2bin]#ipaddrshow

    1:lo:<LOOPBACK,UP,LOWER_UP>mtu16436qdiscnoqueuestateUNKNOWN

    link/loopback00:00:00:00:00:00brd00:00:00:00:00:00

    inet127.0.0.1/8scopehostlo

    inet6::1/128scopehost

    valid_lftforeverpreferred_lftforever

    2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000

    link/ether52:54:00:f6:11:cdbrdff:ff:ff:ff:ff:ff

    inet172.25.38.2/24brd172.25.38.255scopeglobaleth0

    inet172.25.38.100/24brd172.25.38.255scopeglobalsecondaryeth0

    inet6fe80::5054:ff:fef6:11cd/64scopelink

    valid_lftforeverpreferred_lftforever

    [root@server2bin]#df

    Filesystem1K-blocksUsedAvailableUse%Mountedon

    /dev/mapper/VolGroup-lv_root15006084 17235281252029213%/

    tmpfs20300802030080%/dev/shm

    /dev/vda1495844334524367928%/boot

    /dev/drbd1412828495208 38233723%/var/lib/mysql

    [root@server2 bin]#./shutdown.sh

    [root@server5conf]#df

    Filesystem1K-blocksUsedAvailable Use%Mountedon

    /dev/mapper/VolGroup-lv_root17069948 1602508 1460032010%/

    tmpfs 25113602511360%/dev/shm

    /dev/vda1495844 334674367778%/boot

    /dev/drbd14128284 95232 38233483%/var/lib/mysql

    [root@server5conf]#ipaddrshow

    1:lo:<LOOPBACK,UP,LOWER_UP>mtu16436qdiscnoqueuestateUNKNOWN

    link/loopback00:00:00:00:00:00brd00:00:00:00:00:00

    inet127.0.0.1/8scopehostlo

    inet6::1/128scopehost

    valid_lftforeverpreferred_lftforever

    2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000

    link/ether52:54:00:6e:00:88brdff:ff:ff:ff:ff:ff

    inet172.25.38.5/24brd172.25.38.255scopeglobaleth0

    inet172.25.38.100/24brd172.25.38.255scopeglobalsecondaryeth0

    inet6fe80::5054:ff:fe6e:88/64scopelink

    valid_lftforeverpreferred_lftforever

    -------------------------------------





    cobar mysql 高可用.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载