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 / 问题

问题[database-replication](server)

Martin Hope
clarkk
Asked: 2021-02-13 01:05:39 +0800 CST

无法从 Percona 备份(从服务器)恢复主/从复制

  • 0

从master使用 Percona xtrabackup 创建的备份恢复从属

在主 binlog 上设置为在 14 天后过期,并且此备份不到 24 小时

my.cnf(主)

expire_logs_days   = 14

恢复脚本(从属)

service mysql stop

rm -r /var/lib/mysql/*

# backup is unzipped into /var/lib/mysql
xtrabackup --prepare --target-dir=/var/lib/mysql
chown -R mysql.mysql /var/lib/mysql

service mysql start

# get gtid
line=$(head -n 1 "/var/lib/mysql/xtrabackup_binlog_info")
gtid=$(echo $line | awk -F '[ ,]' '{print $3}')

mysql -u root -pPASS -e "reset master; SET GLOBAL gtid_purged='$gtid'; CHANGE MASTER TO MASTER_HOST='$master_host', MASTER_USER='repl', MASTER_PASSWORD='$master_pass', MASTER_AUTO_POSITION=1; start slave"

mysql -u root -pPASS -e "show slave status\G;"

地位

*************************** 1. row ***************************
               Slave_IO_State:
                  Master_Host: server.com
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File:
          Read_Master_Log_Pos: 4
               Relay_Log_File: rep-relay-bin.000001
                Relay_Log_Pos: 4
        Relay_Master_Log_File:
             Slave_IO_Running: No
            Slave_SQL_Running: Yes
              Replicate_Do_DB: mydb
          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: 0
              Relay_Log_Space: 154
              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: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'The slave is connecting using CHANGE MASTER TO MASTER_AUTO_POSITION = 1, but the master has purged binary logs containing GTIDs that the slave requires. Replicate the missing transactions from elsewhere, or provision a new slave from backup. Consider increasing the master's binary log expiration period. The GTID sets and the missing purged transactions are too long to print in this message. For more information, please see the master's error log or the manual for GTID_SUBTRACT.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: fe51e8df-b7c4-11e9-be21-4061862b8d34
             Master_Info_File: /mnt/HC_Volume_8355755/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp: 210211 10:50:32
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set: 3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477,
94bb04d3-6c4e-11eb-8631-96000080ccbb:1-2
                Auto_Position: 1
         Replicate_Rewrite_DB:
                 Channel_Name:
           Master_TLS_Version:

/var/lib/mysql/xtrabackup_binlog_info

mysql-bin.000025    217141189   3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477,
fe51e8df-b7c4-11e9-be21-4061862b8d34:1-25059775

gtid从文件中提取的值:3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477

更新

还尝试/var/lib/mysql/xtrabackup_binlog_info通过执行来获取第二个 uid

gtid=$(tail -n 1 "$mysql_dir/xtrabackup_binlog_info")

没有任何效果..同样的错误

更新 2

show master status在主返回

3ccc2392-45ed-11e7-bc98-4061862b8d34:1-35942477,
fe51e8df-b7c4-11e9-be21-4061862b8d34:1-25203198
mysql debian database-replication percona
  • 1 个回答
  • 229 Views
Martin Hope
cansadadeserfeliz
Asked: 2020-07-14 10:56:50 +0800 CST

如何更改 RDS 中现有数据库副本的 hot_standby_feedback 参数

  • 0

我有一个主数据库实例及其只读副本,它们都在 Amazon RDS for PostgreSQL 上运行。canceling statement due to conflict with recovery最近副本由于其配置而开始出现很多错误:

my_db_ro=> select name, setting from pg_settings;
            name             | setting 
-----------------------------+---------
 hot_standby_feedback        | off
 max_standby_archive_delay   | 30000
 max_standby_streaming_delay | 30000

我想改成

max_standby_archive_delay = -1
max_standby_streaming_delay = -1
hot_standby_feedback = on

以便在只读副本更新时能够在 Metabase 和其他服务中使用它。

我发现更改 PostgreSQL 配置的唯一方法是使用该程序通过 PostgreSQL 命令行psql,但是当我尝试更改任何这些参数时,我总是得到相同的拒绝原因:

my_db_ro=> SET hot_standby_feedback TO on;
ERROR:  parameter "hot_standby_feedback" cannot be changed now

有没有其他方法可以更改 Amazon RDS 配置中的这些参数?

postgresql amazon-web-services amazon-rds database-replication
  • 1 个回答
  • 2844 Views
Martin Hope
ufk
Asked: 2020-04-08 03:57:31 +0800 CST

将具有 pglogical 复制的第 3 台服务器添加到具有流同步复制的 2 台服务器集群中,并使用赞助人进行故障保护

  • 2

我有 3 台带有 Ubuntu 19.10、PostgreSQL 12.2 和 Patroni 1.6.4 的服务器,我希望进行以下设置:

我想拥有两台具有同步复制的服务器,并且我想添加第三台具有 pglogical 复制的服务器,只是为了接受对特定表的插入。没有 DELETE、TRUNCATE 或其他任何东西。

我每天记录大量购买,大约 3 亿。我希望服务器已经拥有过去 30 天的购买历史记录,并且具有非常大存储空间的第三台服务器将保存所有购买历史记录。

到目前为止,我有一个带有 etcd 的赞助人集群,用于 2 台服务器,配置如下:

这是针对第一台和第二台服务器我有以下配置,当然每个配置中服务器的名称都不同:

scope: patroni_cluster_1
name: server_X

restapi:
  listen: 0.0.0.0:8008
  connect_address: X.X.X.X:8008

etcd:
  hosts: X.X.X.X:2379
  protocol: http

bootstrap:
  dcs:
    ttl: 30
    loop_wait: 10
    retry_timeout : 10
    maximum_lag_on_failover: 1048576
    postgresql:
      use_pg_rewind: true
      use_slots: true
      parameters:
        wal_keep_segments: 100

  initdb:
  - encoding: UTF8
  - data-checksums

  pg_hba:
  - host replication replicator 0.0.0.0/0 md5
  - host all all 0.0.0.0/0 md5

postgresql:
  listen: 0.0.0.0:5432
  connect_address: X.X.X.X:5432
  synchronous_mode: true
  synchronous_mode_strict: false
  data_dir: /var/lib/postgresql/patroni_cluster_1/server_X/data
  bin_dir: /usr/lib/postgresql/12/bin
  authentication:
    replication:
      username: replicator
      password: XXXX
    superuser:
      username: postgres
      password: XXXX
  parameters:
    shared_preload_libraries: pglogical

我将 pglogical 添加为共享库,因为我想知道是否可以使用 Patroni 完全设置第三台服务器。

我阅读了有关如何使用https://blog.dbi-services.com/postgresql-logical-replication-with-pglogical/设置 pglogical 的信息,我想知道我是否可以使用 pglogical 完全配置第三台服务器以仅用于插入。

我是 Patroni 的新手,我很迷茫,所以关于这个问题的任何信息都将不胜感激。

postgresql failovercluster database-replication patroni
  • 1 个回答
  • 280 Views
Martin Hope
Groo
Asked: 2016-07-31 04:38:40 +0800 CST

用于数据文件的数据库服务器与 NAS

  • 0

关于硬件故障时的成本和维护速度/简单性,将 SQL 数据文件保存在与 SQL Server 实例分开的 NAS 服务器上是否有意义?我们的应用程序存储来自许多设备的大量测量值(时间序列),因此数据量相对较大,无法保存在相对较小的 SAS 服务器磁盘(每月约 200GB)上。

尽管通过以太网访问文件的风险更大(即使只有 db 服务器和 NAS 在同一个交换机上),但将数据文件完全分开似乎可以简化由于耦合较低而导致硬件问题的事情 - 数据库服务器可以简单得多(我可以快速迁移简单的镜像,它甚至可以与应用服务器捆绑用于所有更简单的应用程序),修复 NAS 故障也应该主要涉及切换磁盘,或者在发生故障时切换到副本。

是否有一些更好(成本效益和应用速度更快)的方法来管理快速迁移,以防发生不涉及分离数据文件的故障,或者这个想法不是那么成问题吗?

database-mirroring disaster-recovery network-attached-storage database-administration database-replication
  • 1 个回答
  • 4290 Views
Martin Hope
Karl
Asked: 2016-06-01 15:26:28 +0800 CST

是否可以在 aws s3 上进行数据库复制

  • 0

我公司有 4TB 的数据库。由于许多不同的分析需要完整数据,当前数据库无法处理来自 100 多个用户的并发会话。

是否可以在 s3 上完成数据库复制,以便解决该问题。

我是说

开始

  1. 首先在 s3 上做 4TB 的完整导出
  2. 现在我想做增量更新,就像我们在从站上进行数据库复制一样。但在这里我想把它放在 S3 而不是主机上。即使我必须每天做一两次也没关系。

但我不想每天都导出完整的 TB

有没有什么办法

amazon-s3 postgresql amazon-web-services database-replication
  • 1 个回答
  • 246 Views
Martin Hope
Jayesh
Asked: 2012-07-19 21:23:06 +0800 CST

最小化网络成本的最佳 PostgreSQL 复制解决方案

  • 2

我正在研究 PostgreSQL 复制解决方案。我知道这些解决方案有两种

  1. 低级别——涉及流日志传输、PostgreSQL 9.x 中可用的热备份功能
  2. 高级 - 在 SQL 查询级别工作的 Slony、Londiste

我的数据库不是很忙也不是很大(至少现在是这样)。但我想避免因 Amazon EC2 故障(例如最近发生的故障)而导致停机。我的解决方案是在不同的可用区中维护一个从服务器,它将与我的主数据库实例保持同步。这样我就可以在 master 宕机时故障转移到它。需要考虑的一点是,这将需要从主服务器到从服务器的连续数据复制,这将是跨 EC2 可用性区域的网络流量。它不是免费的。现在每 GB 花费 1 美分,但在阅读 PostgreSQL 说明书中的一些计算后,我了解到即使数据库流量很低,成本也会增长得非常高。例如,在“PostgreSQL 9 Administration Cookbook”的“Hot physical backup and continuous archiving”一章中,我读到了:

如果 archive_timeout 设置为 30 秒,我们将每天生成最少 2*60*24 = 2880 个文件,每个文件大小为 16 MB,因此每天总体积为 46 GB(最小)

[而且我假设数据库上的流量最少]

我唯一的要求是,在主服务器上执行的每个写入 SQL 查询都应该在从服务器上重播。如果这是在事件回调上完成的,那将是完美的,因为只有当数据库被修改时,主从之间才会有数据传输,而不是每 30 秒左右,即使没有对数据库进行更改也是如此。

因此,我认为 Londiste 可能是适合我的解决方案,但我不能 100% 确定它是这样工作的。

你有什么建议?

replication postgresql database-replication
  • 2 个回答
  • 2236 Views
Martin Hope
OmerGertel
Asked: 2010-04-13 07:18:13 +0800 CST

如何通过复制从失败的 Mysql 模式更新中恢复?

  • 1

我有两台 MySQL 服务器配置了主从复制。

在我们部署新的应用程序版本之前,我们:

1) 停止奴隶

2) 获取从站的 MySQL 转储。

但是,如果在新模式版本的部署过程中出现错误(例如,表被错误地删除),那么保持从属设备完好无损也无济于事。我们的服务是写密集型的,所以在我们有一个 master 工作之前我们不能把它重新打开。

如果我们现在将 mysql 转储加载回主服务器,我们的服务将需要很长时间才能保持关闭状态。

从这种错误中恢复的最佳做法是什么?我该如何设置系统,以便我可以轻松地提升从站,打开我们的服务,然后才倾向于损坏的数据库?主要是,我担心在从属设备上完成更改后重新同步从属设备和主设备。

mysql database-replication
  • 1 个回答
  • 443 Views
Martin Hope
chris
Asked: 2010-04-01 09:06:53 +0800 CST

在 2 台服务器之间设置数据库复制

  • 2

是否可以在防火墙外使用一台服务器来设置 Oracle 数据库的复制?如果是这样,任何有关如何设置的建议都会很棒。

firewall oracle database-replication
  • 1 个回答
  • 317 Views
Martin Hope
THEn
Asked: 2010-01-12 10:16:18 +0800 CST

MSSQL 数据库复制到 MySQL

  • 0

我有 MSSQL 2005 服务器,并且我在 Intranet 中有 MySQL 数据库。我想将一些表从 MSSQL 数据库复制到 MySQL 数据库。

我已经创建了 ODBC 链接服务器并成功创建了事务发布,并且我在 MySQL 中手动创建了完全相同的表,并且复制似乎正在工作。

我在 MySQL 中手动创建表的原因是因为从 MSSQL 的复制中创建键和索引时出现问题。发生的情况是,当复制运行时,它将 varchar(200) 字段转换为 MySQL varchar,该字段成为 MySQL 表中的 mediumtext,并在尝试创建主键或索引时显示错误。我应该如何配置发布以在 MySQL 中创建具有正确长度的表字段的精确副本?

我在服务器上安装了 MySQL ODBC 5.1 驱动程序。

编辑:

当我看到 MySQL.Log 文件时,它显示查询

CREATE TABLE `Inventory`(
    `SKU`   long varchar NOT NULL,

之后成为 MySQL 数据库中的 mediumtext。显示错误之类的

BLOB/TEXT column 'SKU' used in key specification without a key length

在 MSSQL 复制作业历史记录中。当我查看 MySQL 中的表时,“SKU”的字段类型是中文本。

sql-server replication database-replication
  • 3 个回答
  • 2566 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