• ADADADADAD

    mariadb 主从服务器实验热备1[ mysql数据库 ]

    mysql数据库 时间:2024-12-25 09:57:30

    作者:文/会员上传

    简介:

    mariadb  主从复制mariadb主从复制概述:复制解决的基本问题是让一台服务器的数据和另外的服务器保持同步。一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作主

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

    mariadb  主从复制

    mariadb主从复制概述:

    复制解决的基本问题是让一台服务器的数据和另外的服务器保持同步。

    一台主服务器可以连接多台从服务器,并且从服务器也可以反过来作主服务器。

    主服务器和从服务器可以位于不同的网络拓扑中,还能对整台服务器、特定的数据库,甚至特定的表进行复制。

    1.2 . 主从复制解决的问题

             Mariadb复制技术有以下一些特点:

             (1)    数据分布 (Data distribution )

             (2)    负载平衡(load balancing)

             (3)    备份(Backups)

             (4)    高可用性和故障转移 High availability and failover

    1.3 主从复制如何工作

    整体上来说,复制有3个步骤: 

           (1)    master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);

           (2)    slave将master的binary log events拷贝到它的中继日志(relay log);

           (3)    slave重做中继日志中的事件,修改salve上的数据。

    mariadb主从复制中:

    第一步:master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。Mariadb将事务写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。

    第二步:slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经执行完master产生的所有文件,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。

    第三步:SQL slave thread(SQL线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重新执行其中的事件而更新slave的数据,使其与master中的数据一致。

    yum install mariadb-server -y

    systemctl  start  mariadb

    mysql -h 127.0.0.1 -u root -p

    MariaDB [(none)]> create database pcdog

    MariaDB [(none)]> use pcdog;

    MariaDB [pcdog]> create table test1(id int);

    MariaDB [pcdog]> show tables;

    systemctl  stop  mariadb

    配置mariadb主要同步的数据库名字并开启对应的二进制日志

    vim /etc/my.cnf # my.cnf 是mariadb 主配置文件

    [mysqld]

    datadir=/var/lib/mysql

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

    # Disabling symbolic-links is recommended to prevent assorted security risks

    symbolic-links=0 #在原配置文件中,添加以下内容:

    log-bin=mariadblog

    server-id=1

    binlog-do-db=pcdog

    注释:

    log-bin=mariadblog #启用二进制日志,默认存在/var/lib/mariadb 下面

    server-id=1 #本机数据库ID 唯一标示。

    binlog-do-db=pcdog #可以被从服务器复制的库。二进制需要同步的数据库名

    systemctl start mariadb

    mysql

    grant replication slave on *.* to slave@192.168.10.130 identified by "123456";

    slave上验证登录

    mysql -h 192.168.10.129 -u slave -p123456

    从主机dump出所有db

    mysqldump -u root -p -A > all1.sql

    scp过去

    scp all1.sql root@192.168.10.130:/root

    从机导入

    mysql -u root -p < all1.sql

    vi /etc/my.cnf

    加一行

    server-id=2

    到主机上查看

    mysql

    show master status;

    从机上设置主人

    mysql

    change master to master_host='192.168.10.129', master_user='slave', master_password='123456', master_port=3306, master_log_file='mariadblog.000001', master_log_pos=397, master_connect_retry=10;

    MariaDB [(none)]> start slave; #启动从服务

    MariaDB [(none)]> show slave status \G #查看从服务器状态

    Slave_IO_Running: Yes #可以看到这两个Yes,说明从服务器安装成功。

    Slave_SQL_Running: Yes

    Slave_IO_Running :一个负责与主机的io通信

    Slave_SQL_Running:负责自己的slave mariadb进程

    主机上插入数据

    insert into test1 values(1);

    从机上查看下

    查看日志

    show binlog events;

    总结:

    1、 主从同步的原理

    2、 主从同步的配置

    3、 测试主从同步是否成功

    实战2:mariadb 主主 双向主从复制

    实战3:mariadb 主从读写分离

    mariadb 主从服务器实验热备1.docx

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

    推荐度:

    下载
    热门标签: 数据库mysqld