AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[mysql-replication](server)

Martin Hope
Mario Nette
Asked: 2021-04-09 08:00:52 +0800 CST

启动 ip 之前的 keepalived 延迟

  • 0

在keepalived中启动虚拟IP之前是否可以配置延迟?

背景:我有多个主/主 MySQL 设置。一次只使用一个Master。Keepalived 用于用于 mysql 流量的 VIP。当 VIP 切换到另一个 master 时,应该有 5 秒的延迟,VIP 才会再次出现。确保对方有足够的时间完成最后的复制流量。

mysql replication mysql-replication keepalived master-master
  • 1 个回答
  • 647 Views
Martin Hope
user540468
Asked: 2020-08-08 05:44:45 +0800 CST

Ubuntu 18.04.4 LTS 上的 MySQL 5.7 无法识别任何配置变量

  • 0

我正在尝试在两个数据库之间创建主-主复制,一个是在 AWS 上使用 MySQL 5.6.44 的 RDS 实例,另一个是在运行 MySQL 5.7 的 Ubuntu-Server 上(我无法安装 5.6),方法是创建一个从属双向复制,如图所示。这是为了避免在将两个 RDS 实例用于 master-master-topology 时出现的问题。

但是,Ubuntu-Server 上的 mysql 无法识别 /etc/mysql/my.cnf 中提供的每个配置变量[ERROR] unknown variable 'server-id=8',因此我无法将此实例配置为复制主机。在变量名 = 和值之间添加空格并不能解决问题。

非常感谢任何解决此问题的帮助。

我的.cnf:

[mysql]
server-id=8
replicate-same-server-id=0
auto-increment-increment=2
auto-increment-offset=1
relay-log-index=serverB-relay-bin.index
master-info-file=mysqk-master.info
relay-log-info-file=serverB-relay-log.info
log-bin=mysql-bin
log-error=/var/log/mysql/err
ubuntu mysql mysql-replication
  • 1 个回答
  • 271 Views
Martin Hope
Jim Rubenstein
Asked: 2017-02-23 08:17:30 +0800 CST

MySQL Slave 卡在单个 bin 日志 + bin 日志位置 17 小时以上

  • 7

tl;dr:复制在特定的二进制日志和位置上停止,我不知道为什么


我有一个 MySQL 5.5 的 MySQL 复制设置。

这种复制设置没有落后的历史,并且一直很稳定。

今天早上,我注意到奴隶比主人晚了 17 个小时。

做更多的研究,它看起来是 SQL_Thread 的一个问题。

当前的主日志文件,根据从属(通过SLAVE STATUS),是mysql-bin.001306@position 20520499。这与MASTER STATUSmaster 的输出一致。

但是,SLAVE STATUS表明Relay_Master_Log_File是当前mysql-bin.001302具有Exec_Master_Log_Pos的36573336。今天早上我一直在监视它们时,Relay_Master_Log_Filenor根本没有进步。Exec_Master_Log_Pos

查看 master 上的 binlogs,这是位于以下位置的语句mysql-bin.001302@3657336:

# at 36573053
#170221 14:33:48 server id 1  end_log_pos 36573130      Query   thread_id=96205677      exec_time=0     error_code=0
SET TIMESTAMP=1487716428/*!*/;
BEGIN
/*!*/;
# at 36573130
# at 36573213
#170221 14:33:48 server id 1  end_log_pos 36573213      Table_map: `database-name`.`table-name` mapped to number 5873
#170221 14:33:48 server id 1  end_log_pos 36573309      Write_rows: table id 5873 flags: STMT_END_F
### INSERT INTO `database-name`.`table-name`
### SET
###   @1='xxxxxxxx'
###   @2=6920826
###   @3='xxxxxxxx'
###   @4='GET'
###   @5='address'
###   @6=2017-02-21 14:40:24
###   @7=2017-02-21 14:40:24
# at 36573309
#170221 14:33:48 server id 1  end_log_pos 36573336      Xid = 1668637037
COMMIT/*!*/;
# at 36573336

大约在昨天的这个时候,我确实执行了一些大型查询以将数据迁移到新表。这个过程看起来有点像这样;

mysql> insert into tmp_table ( select <rows> from origin table ); -- 44 million rows
mysql> insert into dest_table ( select * from tmp_table ); -- 44 million rows

有问题的两个表上没有主键或唯一键,我读过这可能是个问题。然而,虽然上面 binlog 条目中显示的数据库 + 表是此处的目标表——显示的插入记录不是在迁移期间生成的。

如果你已经走到这一步,你应该得到互联网积分。

在这一点上,我不确定还需要考虑什么,或者在哪里寻找日志停止的原因。任何见解都值得赞赏。

谢谢。


作为参考,这是截至本文发布时的MASTER STATUS和输出:SLAVE STATUS

主状态

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.001306 | 20520499 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

从属状态

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: master-host
                  Master_User: replication-user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.001306
          Read_Master_Log_Pos: 20520499
               Relay_Log_File: relay-bin.002601
                Relay_Log_Pos: 36573482
        Relay_Master_Log_File: mysql-bin.001302
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           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: 36573336
              Relay_Log_Space: 3565987462
              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: 63435
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)
mysql mysql-replication mysql5.5
  • 1 个回答
  • 3991 Views
Martin Hope
Dmitri DB
Asked: 2017-01-19 21:29:18 +0800 CST

mysqldump 使用我的标志重新导入丢失数据的一部分是否安全?

  • 0

假设在一个测试数据库中,一年的数据被删除了。我最早在一年内获得了数据的两个 id,最迟在另一个中获得数据,因此这里缺少一系列内容。我的问题; 从数据库的完整实例中使用以下命令是否有任何危险,以便获得可用于修复其中缺少信息块的数据库的工作转储?命令:

mysqldump -t --insert-ignore --skip-opt --single-transaction --quick --where="id<156789339" -w"id>124054297" -u root -p database table > partial.sql

这是在压缩/移动它之后导入的:

zcat partial.sql.gz | mysql -u root -p database table

可能有一个值得一提的警告 - 数据来自 mysql 5.5 (percona),同时导入到 mysql 5.1 实例中,尽​​管我认为我不知道由此产生的兼容性问题。

我的理解-t是避免创建CREATE TABLE语句(--no-create-info),--insert-ignore以防我的范围重叠,因此如果该 id 已经存在,它会忽略它,并--skip-opt确保它不会做一大堆会在导入时破坏事物的事情(--add-drop-tab, --add-locks, --create-options, --disable-keys, --extended-insert, --lock-tables, --quick, and --set-charset根据手册页对于mysqldump)。只是想确定这就是我在出口方面所需要的一切,以及在最终犯下任何可能的错误之前,我是否可能在进口方面遗漏了什么。

mysql mysql-replication mysqldump
  • 1 个回答
  • 448 Views
Martin Hope
Frank Martin
Asked: 2017-01-02 13:26:06 +0800 CST

主从半循环复制在 MySQL 中不起作用

  • 0

我不知道如何描述它,所以我称它为半圆。这就是我正在做的事情。

服务器 A
服务器 B = 这是服务器 A 的从服务器
服务器 C = 这是服务器 B 的从服务器

当我在服务器 A 上更新某些内容时,它会反映在服务器 B 上。但同样的更改不会反映在服务器 C 上。

只有当我在服务器 B 上更新某些内容时,更改才会反映在服务器 C 上。

我如何做到这一点,以便在服务器 A 上所做的任何更改都会到达服务器 B(它已经在工作),然后它会到达服务器 C?

编辑
经过调查,我发现当我在服务器 A 上进行一些更改时,它的日志文件位置会发生变化。但是当这些更改反映在服务器 B 上时,服务器 B 日志文件的位置不会改变。正是由于这个原因,服务器 C 不知道服务器 B 上是否有任何更改,除非我明确更改服务器 B 上的某些内容(插入、更新、删除)。

那么有没有办法告诉 MySQL 在 Slave 接收来自 Master 的更新时增加日志文件位置?

mysql mysql-replication master-slave
  • 1 个回答
  • 192 Views
Martin Hope
Frank Martin
Asked: 2017-01-02 02:35:24 +0800 CST

使主服务器成为另一个主服务器的从服务器

  • 0

我有 4 个 MySQL 服务器 Master1、Master2、Master3 和 Master4。

Master1 和 Master2 都是彼此的主人,而 Master3 和 Master4 是彼此的主人。

我想让 Master3 成为 Master1 的奴隶。这可能吗?

下图显示了我当前的蓝色设置。RED中的那个是我想要实现的。

我怎样才能做到这一点?

在此处输入图像描述

mysql mysql-replication master-slave master-master
  • 1 个回答
  • 142 Views
Martin Hope
Dessa Simpson
Asked: 2016-12-31 10:59:15 +0800 CST

复制时的字符集错误

  • 0

我正在尝试在两个 MariaDB 数据库之间设置复制,但在 phpMyAdmin 中出现以下错误:

Error 'Character set '#610' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file' 

我检查了一下mysqld --verbose --help,两者都将 UTF-8 作为默认字符集。

mysql-replication mariadb
  • 1 个回答
  • 60 Views
Martin Hope
avizzzy
Asked: 2016-12-03 05:35:18 +0800 CST

将大型数据库从 EC2 迁移到 RDS MySQL 的最佳方法

  • 2

我目前将我的数据库放在托管在专用 EC2 实例中的 MySQL 服务器上,并计划将数据库迁移到支持 RDS 的 MySQL 服务器。

现在我遇到的问题是将数据从 EC2 迁移到 RDS。数据库接近 185 GB,此时我不担心停机或数据与生产同步。目前我所需要的只是进行转储并将其导入 RDS。

这是我到目前为止所尝试的,

  1. 我对 EC2 上运行的数据库进行了 mysql 转储
  2. 从同一个 EC2 实例访问 RDS 实例
  3. 使用 MySQL 的 source 命令将数据转储导入 RDS

导入将近 35Gb 需要将近一天的时间,并且从未设法完全导入数据库。感谢有人可以提示我如何做到这一点。

amazon-ec2 database mysql-replication amazon-web-services rds
  • 1 个回答
  • 2139 Views
Martin Hope
Jacco
Asked: 2016-11-25 06:04:47 +0800 CST

具有 REQUIRE SSL 的用户的 AWS RDS MySQL 复制

  • 3

我正在尝试在 AWS RDS 上设置 MySQL 只读副本。

从属用户 (rdsrepladmin)REQUIRE SSL设置了标志。

这会导致只读副本服务器进入永久的“只读复制:正在连接”状态。


所以,我听说我需要(在从站上)发出命令:

STOP SLAVE;
CHANGE MASTER TO MASTER_SSL=1,
START SLAVE;

但是,CHANGE MASTER TO ...命令失败,因为我没有super特权。
没有办法解决这个问题(据我所知),因为使用 AWS RDS 上的 MySQL 实例,只有 AWS 的内部服务器管理帐户才有super权限。

然而,我不相信(还)AWS RDS 不支持REQUIRE SSL复制连接。


所以,我的问题是

如何在 AWS RDS 的 MySQL 实例上使用 SSL/TLS 连接只读副本?

mysql-replication
  • 1 个回答
  • 946 Views
Martin Hope
Manu
Asked: 2016-10-19 02:36:12 +0800 CST

drdb 驱动器上的 I/O 使用率很高

  • 0

drdb 驱动器上的 I/O 使用率很高,但底层驱动器上的使用率非常低。忽略 DRDB 驱动器上 I/O 的使用是否正确,因为底层磁盘使用情况很好。

我们有 4 个 Redhat Boxes Dell PowerEdge R630(比如 a、b、c、d)具有以下操作系统/软件包。

RedHat EL 6.5 MySql Enterprise 5.6 DRBD 8.4 Corosync 1.4.7

我们设置了 4 路堆叠的 drbd 资源,如下所示:

集群Cluster-1:服务器a和b相互连接本地局域网集群Cluster-2:服务器c和d

Cluster Cluster-1 和 Cluster-2 通过虚拟 IP 通过堆叠的 drbd 连接,并且是不同数据中心的一部分。

drbd0 磁盘已在每台服务器上本地创建 1GB,并进一步附加到 drbd10。

正常的基础磁盘使用情况:-

    Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda2              0.00  3718.00    0.00  441.00     0.00 33268.00    75.44     0.06    0.13   0.08   3.35

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.25    0.00    0.81    1.75    0.00   96.18

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda2              0.00  1242.00    0.00  133.50     0.00 11008.00    82.46     0.02    0.17   0.11   1.45

在同一时间高的虚拟驱动器 I/O 使用率:-

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
drbd10            0.00     0.00    0.00   23.50     0.00   188.00     8.00     3.41    6.11  38.17  89.70

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          24.42    0.00    0.69    0.06    0.00   74.83 

为了检查 DRBD 的 I/O 使用情况,我们应该监控哪个驱动器?

在谷歌上我发现了这个链接:- http://lists.linbit.com/pipermail/drbd-user/2012-January/017622.html

linux cluster mysql-replication drbd mysql-cluster
  • 1 个回答
  • 463 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve