标签: replication

有内存NoSQL数据库吗?

鉴于 NoSQL 数据库旨在通过投入更多服务器来支持水平可扩展性,是否有任何数据库旨在完全无需持久磁盘存储?

我正在寻找一个需要水平可扩展性但也需要加密任何静态数据的应用程序。这最终可能意味着将大量数据从 NoSQL 数据库提取到内存缓存(如 memcached)中。这让我想知道:是否有任何单一产品具有 NoSQL 数据库的规模和容错特性,但仅在内存中运行?

nosql replication scalability

5
推荐指数
1
解决办法
3248
查看次数

SQL Server - 快照代理无法启动

我已成功设置复制。问题是快照代理无法启动。当我尝试手动启动它时,我总是以“代理从未运行过”结束。

发布在发布、msdb、分发数据库的源数据库中的服务帐户 - db_owner 下运行,并且具有对快照文件夹的读/写权限。

我正在寻求如何处理这种情况的建议。谢谢。

replication sql-server

5
推荐指数
1
解决办法
2万
查看次数

pt-table-checksum 和基于行的复制

我使用的设置是主从复制配置中的 MySQL 5.5,但我们必须使用“混合”复制(基于语句和行),因为我们使用需要它的应用程序,并且它恰好在我们的同一台上服务器。

我们最近停止了复制,我想确保我们已正确恢复。

我下载并安装了 Percona Toolkit,但在这种情况下我似乎无法使用 pt-table-checksum,特别是因为基于行的复制:

2.27.5 限制使用基于行的复制 pt-table-checksum 的副本需要基于语句的复制,并且它在主服务器上设置 binlog_format=STATEMENT,但由于 MySQL 限制,副本不支持此更改。因此,校验和不会使用基于行的复制来复制任何副本,这些副本是进一步副本的主副本。该工具会自动检查所有服务器上的 binlog_format。请参阅 --[no]check-binlog-format 。(错误 899415)

是否有其他选项可以对基于行的复制表进行校验和?

我在 Percona 论坛上发现了这个,它说它可以工作,但我不能让它改变我的 cnf 文件,因为它声称它可以。当我尝试运行它时,它还会发出以下警告:

副本 mysql-b.example.com 具有 binlog_format MIXED,这可能会导致 pt-table-checksum 中断复制。请阅读该工具文档的限制部分中的“使用基于行的复制的副本”。如果您了解风险,请指定 --no-check-binlog-format 以禁用此检查。

mysql replication binlog percona-toolkit pt-table-checksum

5
推荐指数
1
解决办法
3666
查看次数

MySQL 复制延迟检查

我们即将将数据库服务器复制到不同物理位置的多个从属服务器中。

为我们进行复制的公司要求在我们的一个表上为他们提供一条 sql select 语句,以检查延迟和延迟,例如

SELECT id FROM table1 ORDER BY id DESC LIMIT 1

检查多个实例之间的滞后是一种常见的做法吗?

先感谢您。

mysql replication

5
推荐指数
1
解决办法
7792
查看次数

Postgres 流复制:如何在故障转移后重新同步主服务器(与备用服务器)中的数据

我对 postgres 9.1 复制机制完全陌生。

我已经设法在主 postgres 和备用 postgres 之间设置流复制(两者都有 x 条记录)。当主服务器发生故障时,备用服务器会使用触发文件机制接管,并积累额外的数据(假设现在有 x+y 条记录)。

现在,当原始主服务器出现时,它仍然有 x 条记录(现在是新的主服务器)。有没有办法只获取增量,即从备用数据库中新添加的“y”条记录并作为主数据库重新启动。

或者我必须始终进行整个基地备份?

postgresql replication failover postgresql-9.1

5
推荐指数
1
解决办法
5546
查看次数

添加节点时,Galera 如何(如果有的话)通过 rsync 强制执行 SST 身份验证?

我必须在这里遗漏一些东西。

当我向集群添加一个新节点以便准备删除另一个节点时,我突然想到:“集群如何知道可以向新节点发送 SST?”

我非常确定新节点拥有的有关集群的唯一信息是 gcomm:// 地址。当然,这不被视为通过身份验证的“安全”信息。据我所知,新节点上没有任何 shell 帐户具有与现有集群节点上相同的密码。

那么,什么可以阻止任何人启动一个新节点并将其 gcomm:// 地址指向我的一个或多个节点以获取 SST 并能够查看我的所有数据呢?

当然,证书也会到位。但我谈论的是默认设置以及“开箱即用”的工作原理。我在那里找不到太多谈论此事的内容。

我要疯了吗?

replication mariadb clustering galera

5
推荐指数
1
解决办法
654
查看次数

Postgresql 流复制错误:WAL 段已删除

我想设置 PostgreSQL 流复制,但出现以下错误:

FATAL:  could not receive data from WAL stream: 
ERROR:  requested WAL segment 00000001000000000000006A has already been removed.
Run Code Online (Sandbox Code Playgroud)

主控IP:192.168.0.30

从机IP:192.168.0.36

关于大师:

我创建了一个rep仅用于复制的用户。

Postgres config 目录( )内的相关文件/opt/Postgres/9.3/data

pg_hba.conf:

host    replication     rep     192.168.0.36/32   trust
Run Code Online (Sandbox Code Playgroud)

postgresql.conf:

listen_addresses = 'localhost,192.168.0.30'
wal_level = 'hot_standby'
archive_mode = on
archive_command = 'cd .'
max_wal_senders = 1
hot_standby = on
Run Code Online (Sandbox Code Playgroud)

我已经重新启动了该postgres服务。

在从机上:

我已停止该postgres服务,然后将更改应用于两个文件:

pg_hba.conf:

host    replication     rep     192.168.0.30/32  trust
Run Code Online (Sandbox Code Playgroud)

postgresql.conf:

listen_addresses = 'localhost,192.168.0.36'
wal_level …
Run Code Online (Sandbox Code Playgroud)

postgresql replication postgresql-9.3

5
推荐指数
1
解决办法
1万
查看次数

设置允许在 PostgreSQL 副本中创建新表

我的目标是创建现有数据库的副本,以便我创建新表并填充它们。我不关心对复制表的写入 - 这些可能而且可能应该抛出错误。

理想情况下,我想通过标准 postgresql 流复制来完成此任务,但由于这是不可能的(或者有办法做到这一点吗?)我可以使用经过实战测试和维护的扩展。最不理想的解决方案是自定义 ETL 流程。

复制的数据库将用于分析而不是实时操作,因此同步延迟是可以接受的。

这似乎是一个相当明显的用例,但我一直无法找到解决此问题的方法。

postgresql replication master-master-replication

5
推荐指数
0
解决办法
1311
查看次数

通过 ssh 隧道设置 MongoDB 副本

我正在尝试归档这样的东西 在此输入图像描述

dc1.com 上的 MongoDB 实例目前是独立的,On-Site 定期通过 ssh 隧道通过 mongodump 提取备份。

我现在想创建两个实例,一个在现场,一个在第二个数据中心,并使这三个实例成为副本集,以便备份几乎是即时的。这样,我就可以拥有一个现场备份,并在第二个数据中心中拥有一个备份,该备份始终是最新的。

如果 dc1.com 中的主 MongoDB 实例发生故障,那么就这样,无法提供任何数据,然后需要手动修复此问题,因为现场实例和辅助数据中心中的实例不应接管。这两个也不应该被质疑。他们只是作为备份。

我的问题是,当我将 --replSet 添加到主数据库,然后添加 rs.initialize() 时,该实例在某种程度上不会被识别为绑定到 localhost,而是绑定到 172.17.0.1,这是 docker 接口,我需要绑定以便容器可以连接到 MongoDB。如果我随后尝试通过rs.add("localhost:2001")dc2.com 上的实例添加成员,则会收到有关无法混合本地主机和非本地主机数据库的错误。主实例被识别为 172.17.0.1,而不是 localhost。

“副本集配置中的所有主机名都必须是本地主机引用,或者都必须是本地主机引用;找到二分之一”

然后,我使用/sf/ask/2019044751/来发出 ars.initiate({_id:"rs0", members: [{"_id":1, "host":"127.0.0.1:1000"}]})强制将 dc1.com 上的副本集初始化绑定到本地主机。但是当我尝试通过添加成员时,rs.add("localhost:2001")我仍然无法做到这一点。这不再是主机名错误,而是另一个错误,我不太记得了,因为我厌倦了尝试,不得不回滚所有内容。就像连接被拒绝一样。当我执行 a 时,mongo --port 2001我会在收到有关“isMaster”相关内容的警告后断开连接。

是否可以创建这种设置?我想做的就是避免在 MongoDB 上使用 TLS 并将备份绑定到全局可访问的接口(现场实例将位于防火墙后面,因此 0.0.0.0:1002 将无法公开访问)

replication mongodb ssh

5
推荐指数
1
解决办法
4742
查看次数

postgresql:在某些备用服务器上重放流式 WAL 文件很慢

环境:Postgresql 9.6.21。由patoni管理的多台备用服务器

+ Cluster: db11     (12345678901234567) ------+---------+-----+-----------+
| Member        | Host         | Role         | State   |  TL | Lag in MB |
+---------------+--------------+--------------+---------+-----+-----------+
| db11-01       | db11-01      | Leader       | running | 113 |           |
| db11-02       | db11-02      | Sync Standby | running | 113 |         0 |
| db11-03       | db11-03      | Sync Standby | running | 113 |         0 |
| db11-04       | db11-04      | Sync Standby | running | 113 |         8 |
+---------------+--------------+--------------+---------+-----+-----------+
Run Code Online (Sandbox Code Playgroud)

一些 pg_settings …

postgresql replication

5
推荐指数
1
解决办法
72
查看次数