问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库的级联问题

发布网友 发布时间:2022-05-02 22:45

我来回答

2个回答

懂视网 时间:2022-05-03 03:07

技术图片

环境:

  • 192.168.205.17: as master server
  • 192.168.205.27: as middle server
  • 192.168.205.37: as slave server
  • 版本:

  • OS: centos 7 1810 with mini install
  • mariadb-5.5.60
  • 目地:

    如果在生产环境中可能有一个主服务器,也是读定服务器,并可能会有多个从服务器,但这个主服务器会随之从服务器的增加而变的性能下降,所以最好主服务器只有一个从,其它的从服务器再从这人从服务器进行复制,减少主服务器的压力,这样中间服务器专做复制从而最小化影响主服务器的性能

    步骤:

    1. 配置主服务器
    2. 备份中间服务器
    3. 配置从服务器
    4. 测试

    配置主服务器

    1. 安装三台服务器
      [root@centos7 ~]#yum install mariadb-server
      [root@centos7 ~]#mkdir /data/{mysql,logs}
      [root@centos7 ~]#chown mysql:mysql /data/{mysql,logs} 
    2. 修改主服务器的配置文件
      [root@master ~]#vi /etc/my.cnf
      [mysqld]
      log-bin=/data/logs/bin
      datadir=/data/mysql
      server-id=17 
    3. 重新启动服务
      [root@master ~]#systemctl start mariadb
    4. 加载一个测试数据库
      [root@master ~]#mysql < hellodb_innodb.sql 
    5. 创建复帽帐号
      MariaDB [(none)]> grant replication slave on *.* to repluser@‘192.168.205.%‘ identified by ‘centos‘;
    6. 备份数据库并拷贝到中间节点中
      [root@master ~]#mysqldump -A --single-transaction --master-data=1 > /data/all.sql
      [root@master ~]#scp /data/all.sql 192.168.205.27:/data 

      配置中间级联服务器

    7. 设置中间服务器
      [root@middle ~]#vi /etc/my.cnf  
      [mysqld]
      datadir=/data/mysql
      log-bin=/data/logs/bin
      server-id=27
      read-only
      log_slave_updates
    8. 修改备份的数据
      [root@middle ~]#vi /data/all.sql 
      CHANGE MASTER TO
      MASTER_HOST=‘192.168.205.17‘,
      MASTER_USER=‘repluser‘,
      MASTER_PASSWORD=‘centos‘,   
      MASTER_PORT=3306,
    9. 导入数据
      MariaDB [(none)]> source /data/all.sql
    10. 启动线程
      MariaDB [(none)]> start slave;
      MariaDB [(none)]> show slave statusG
      *************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 192.168.205.17
         Master_User: repluser
         Master_Port: 3306
        Connect_Retry: 60
        Master_Log_File: bin.000003
        Read_Master_Log_Pos: 7973
        Relay_Log_File: mariadb-relay-bin.000004
        Relay_Log_Pos: 604
       Relay_Master_Log_File: bin.000003
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes
    11. 备份中间服务器的数据,并拷到从服务器上
      [root@middle ~]#mysqldump -A --single-transaction --master-data=1 > /data/middle.sql
      [root@middle ~]#scp /data/middle.sql 192.168.205.37:/data

      修改从服务器

    12. 修改从服务器配置文件
      [root@slave ~]#vi /etc/my.cnf
      [mysqld]
      datadir=/data/mysql
      server-id=37
      read_only
    13. 修改备份的文件middle.sql
      [root@slave ~]#vi /data/middle.sql 
      CHANGE MASTER TO 
      MASTER_HOST=‘192.168.205.27‘, 
      MASTER_USER=‘repluser‘, 
      MASTER_PASSWORD=‘centos‘, 
      MASTER_PORT=3306,
    14. 导入数据并启动服务
      [root@slave ~]#mysql < /data/middle.sql 
      [root@slave ~]#systemctl start mariadb
    15. 启动线程
      MariaDB [(none)]> start salve; 
      MariaDB [(none)]> show slave statusG
      *************************** 1. row ***************************
        Slave_IO_State: Waiting for master to send event
         Master_Host: 192.168.205.27
         Master_User: repluser
         Master_Port: 3306
        Connect_Retry: 60
        Master_Log_File: bin.000005
        Read_Master_Log_Pos: 326
        Relay_Log_File: mariadb-relay-bin.000003
        Relay_Log_Pos: 604
       Relay_Master_Log_File: bin.000005
        Slave_IO_Running: Yes
        Slave_SQL_Running: Yes

    测试

    1. 测试在主服务器上建库
     MariaDB [(none)]> create database zhaoli;
     Query OK, 1 row affected (0.00 sec)
    1. 在中间和从节点分别查看数据库,同步成功
      MariaDB [(none)]> show databases;
      +--------------------+
      | Database  |
      +--------------------+
      | information_schema |
      | db1  |
      | db2  |
      | hellodb  |
      | mysql  |
      | performance_schema |
      | test  |
      | zhaoli  |
      +--------------------+
      8 rows in set (0.00 sec)

    数据库的级联复制

    标签:ima   serve   pass   tran   slave   ase   test   running   host   

    热心网友 时间:2022-05-03 00:15

    父表-子表 的 关联

    父表 A 插入的时候, 不会影响 子表 B, C 的插入.
    至于子表 B, C 在 A 表插入的时候, 去更新 A_no 字段的话,也要有 对应的 A_no, 才能更新。
    否则 级联关系不允许。

    楼主那里是不是有很 大量的 父表 A 在插入, 耗时比较长。 在这个时间段内, 不希望 子表 B, C 的 A_no 被错误的更新?

    尝试 A表插入的时候, 作事务处理看看。
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    绿茶要猛冲吗,绿茶鲜嫩不需要(绿茶冲泡的正确方式) 绿茶为什么越好越不耐泡 绿茶要泡几泡?哪种绿茶最耐泡? 哪种绿茶最耐泡 职场故事:美女职员遇到暴躁老板 老板脾气坏得要命,我该怎么办 老板老爱发脾气,我们应该怎么做呀? 害怕老总发脾气怎么办 网络上用名字测和另一个人的关系准确吗 一个男生把自己的名字和另一个人的名字放在一起,中间放个"&amp;"符号... 炉石传说青玉魔像德卡组怎么搭配 青玉德卡组打法 “天空中挂着圆月”应该怎么扩句? 炉石传说青玉之灵怎么获得 青玉之灵是什么 扩句:什么的天空挂着一轮什么的圆月 炉石传说青玉魔像属性 青玉魔像怎么获得 价 “天空中挂着圆月”该如何扩句? 炉石传说青玉魔像什么意思 炉石传说青玉魔像是什么意思 .午餐肉和竹笋怎么做菜. 午餐肉辣吗? 梅林午餐肉有红烧肉吗?超市有卖的吗? 菠萝蜜籽能吃吗 菠萝蜜里面的籽子可以怎么吃 菠萝蜜籽怎么吃怎么做好吃 电脑如何锁定时间 爆破鬼才吉格斯的e技能有几个炸弹 爆破鬼才是什么动物 爆破鬼才的技巧 lol爆破鬼才 lol爆破鬼才怎么玩? 夜空挂着圆月。(扩句) 炉石传说为什么青玉魔像每次出来都加1-1 天空中挂着圆月,扩句 为什么青玉魔像是萨满,德鲁伊,盗贼三种职业的职业卡 扩写句子 天空挂着圆月. 德鲁伊卡组青玉魔像需要多少奥术之尘 炉石传说手机为什么没有青玉护符 用天空中挂着明月扩句 炉石传说怎么加入污手党 炉石传说污手党怎么打 天空中挂着月亮(扩句) 炉石传说双人现开赛“冰封王座篇”9月12日比赛战报 天空中挂着圆月亮(扩句)至少扩两处,不能在末尾扩句? 青玉德太强了,大家觉得怎么削弱 炉石传说我玩青玉德抽不到青玉护符怎么回事 梦见女儿睡在棺床里什么意思 win8.1系统无法安装网卡驱动怎么办 表扬稿的格式是什么? 炉石传说双人现开赛冰封王座八强是谁 梦到女儿睡在棺材里是什么意思 扩句 天空中挂着圆月