标签: replication

MySQL复制-如何从从服务器读取数据?手动?

MySQL 手册 - 复制:

“横向扩展解决方案 - 在多个从服务器之间分散负载以提高性能。在这种环境中,所有写入和更新都必须在主服务器上进行。但是,读取可能会在一个或多个从服务器上进行。”

我看到了如何设置看起来相对简单的复制,但我还没有看到应用程序应如何与从站通信。

我假设应用程序必须确定从哪个从设备读取?应用程序还必须知道哪个服务器正在执行写入操作?或者是否可以让应用程序将所有查询发送到主站并将读取代理到从站?

mysql replication

3
推荐指数
2
解决办法
2871
查看次数

为 PITR 备份大型 postgres 数据库

我有一个 postgres 9.1 主服务器和 2 个从服务器,设置了带有 WAL 存档的流式复制。

现在,我正在尝试为 PITR 设置至少 1 周的窗口期。这是为了弥补任何管理错误(例如错误地删除重要的表)。这是我对 PITR 的理解

  • 我们需要在已知时间点对数据库进行基本备份。
  • 我们需要一个从基础备份到出错点的 WAL 存档。

使用上面的 2 个方法,我们可以将数据库重建到中间的任何点。

涉及的数据库很大,大约1TB,每周增长30GB

我想了解在运行实例上实现快速基础备份创建和低性能开销的最佳方法是什么。我可以想到以下替代方案,但不确定

  • 如果每个都有优点和缺点
  • 如果有其他更好的选择

    1. 是每周进行一次基本备份并累积 WAL 直到下一次基本备份还是只进行一次基本备份(比如现在)并每周只备份 WAL 更好。

    2. 如果我们每周都进行基础备份,那么使用 pg_basebackup 或 pg_start_backup + rsync + pg_stop_backup 更好。如果我由于 rsync 而每周使用相同的目标磁盘/卷/文件夹,第二个选项会明显更快吗?

    3. 是否最好对主服务器运行基本备份,或者是否可以在暂时停止其中一个从服务器并在快照后恢复复制后拍摄 postgres 集群的磁盘快照。如果我想要执行 PITR,此快照是否可用于在恢复模式下设置实例,或者是否会出现任何数据一致性或时间线问题?

感谢您的任何见解。

postgresql replication

3
推荐指数
1
解决办法
4438
查看次数

如果在主 postgres 数据库中创建用户,该用户是否会被复制到关注者?

假设在 postgres 9.6 中创建了一个具有某些特定权限集的用户:

CREATE USER foo_user WITH ENCRYPTED PASSWORD 'foo_password';
GRANT CONNECT ON DATABASE bar_db TO foo_user;
GRANT USAGE ON SCHEMA public TO foo_user;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO foo_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public to foo_user;
Run Code Online (Sandbox Code Playgroud)

(从这里复制并修改。)

如果该用户是在主数据库上创建的,并且有一个与WAL 流复制同步的关注者,那么该用户是否会自动在关注者上创建一个具有相同权限集的用户?

看起来答案是肯定的,因为用户和权限是用表表示,并且这些特殊表可能与任何其他预写日志记录表一样对待。但我无法在任何这些文档页面 确认这一点。可以证实或揭穿我的想法吗?最好向我指出一些我似乎找不到的相关文档?

postgresql replication users

3
推荐指数
1
解决办法
1186
查看次数

MongoDB 中重新配置 replSet 问题

我曾经在同一个数据库文件夹中尝试过副本集演示。副本集名称为“test”。然后我尝试使用不同的名称“repl”重新构建 repl 集。重新配置后,我收到以下错误消息:

{
        "ok" : 0,
        "errmsg" : "replSetReconfig should only be run on PRIMARY, but my state is REMOVED; use the \"force\" argument to override",
        "code" : 10107,
        "codeName" : "NotMaster"
}
Run Code Online (Sandbox Code Playgroud)

所以我按照 errmsg 操作,并尝试运行以下命令:

rs.reconfig(config,{"force":true})
Run Code Online (Sandbox Code Playgroud)

现在我收到以下错误消息:

{
        "ok" : 0,
        "errmsg" : "New and old configurations differ in replica set name; old was test, and new is repl",
        "code" : 103,
        "codeName" : "NewReplicaSetConfigurationIncompatible"
}
Run Code Online (Sandbox Code Playgroud)

太糟糕了!所以我使用以前的名称“test”。但我再次收到错误。

{                                                                                                                       
        "ok" : 0,                                                                                                       
        "errmsg" : "New and old configurations differ …
Run Code Online (Sandbox Code Playgroud)

replication mongodb

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

alter table 期间的复制和表锁

最近,我们注意到许多 Rails 迁移最终在生产中导致死锁/冻结我们的应用程序+数据库。初步调查显示,这可能是由于应用程序并发访问以及对读取量非常高的表进行迁移造成的。

探索复制的 PG 设置(也许是主从)是否有意义,其中所有写入和迁移都针对主服务器执行,所有大容量读取都针对从服务器执行?

当 ALTER TABLE 语句复制到从站时,PG 的行为如何?从机是否也获取相同的表锁?复制能解决我们目前面临的问题吗?

postgresql replication ddl

3
推荐指数
1
解决办法
1754
查看次数

逻辑复制到不同的模式名称

我们有 PostgreSQL 11 数据库,结构一数据库一模式(公共)。

dbname : production_one
schema : public

dbname : production_two
schema : public
Run Code Online (Sandbox Code Playgroud)

我想设置一个逻辑复制,以便它具有结构 一个数据库,多个架构如下:

dbname : prod_slave
schema : prod_one, prod_two
Run Code Online (Sandbox Code Playgroud)

是否可以进行上述逻辑复制?

我使用流式复制成功复制,但情况需要我们使用上述逻辑复制。

postgresql replication

3
推荐指数
1
解决办法
1409
查看次数

在 PostgreSQL 表中设置 REPLICA IDENTITY FULL 有什么缺点

我想使用 wal2json 扩展来捕获 PostgreSQL 数据库中的更改。我需要找到新旧行之间的差异。在互联网上搜索答案后,我意识到这可以通过在感兴趣的表上设置 REPLICA IDENTITY FULL 选项来实现。

我认为这正是我所需要的,但我想知道这种设置有什么明显的缺点吗?

postgresql replication change-data-capture

3
推荐指数
1
解决办法
1805
查看次数

报告表需要在不杀死用户读取连接的情况下刷新,有什么想法吗?

我正在研究一种解决方案,该解决方案将允许刷新报告表,从而可能让用户在需要刷新时读取它。有没有人实现了这样一种方法,而无需在刷新时终止用户与该表的连接?

replication database-design sql-server sql-server-2016

3
推荐指数
1
解决办法
52
查看次数

在 sql server 2019 中复制?

我正在阅读 Carter 的“Pro SQL Server 2019 Administration”一书,在详细介绍 HA 和 DR 选项时,没有提到“复制”:

在此处输入图片说明

为什么省略?复制会很快被弃用吗?

replication sql-server sql-server-2019

3
推荐指数
1
解决办法
553
查看次数

更改mysql复制中master的主机IP

我有一主一奴。假设master的IP改变了,但物理服务器是相同的。现在我想在从服务器上更新(主服务器的)新IP。在从服务器上master_info_repository设置为TABLE。我想从由于 IP 更改而暂停的位置恢复复制过程。这个怎么做?从服务器的 mysql 版本是:14.14 Distrib 5.7.30操作系统是ubuntu 18.04.

mysql replication master-slave-replication

3
推荐指数
1
解决办法
9619
查看次数