我正在使用 Fivetran 作为 ETL 层来设置数据仓库。源数据库之一是 AWS RDS Postgres 实例。
我已将 Postgres 实例配置为使用 test_decoding 插件执行 WAL 的逻辑复制。在办公时间内一切似乎都工作正常,但是在办公时间之外,当没有执行查询时,最旧的复制槽滞后大小正在增加,尽管 Fivetran 连接器执行同步。
您可以在下图中看到这一点。在红色框中,复制槽滞后大小正在增加(上图),而同步时刻每小时都会发生(下图)。我期望出现如绿框中所示的图表,复制槽滞后大小在同步时刻周围正在减小。
我就这个问题联系了 Fivetran,但他们还无法找出问题所在,因此我向社区询问。
我使用 Postgres 版本 13.3 和以下自定义配置:
max_slot_wal_keep_size:20000rds.logical_replication:1wal_sender_timeout:0(Fivetran 要求)其余的配置都是默认的。
我还检查了其他问题,只有一个可能接近https://dba.stackexchange.com/a/103806/235086,但我不确定它是否适用于这里,因为它是关于秒数而不是大小的滞后。
我计划将我的数据库从 Postgres 10 升级到 Posgres 14。为了减少停机时间,我计划使用复制来实现同样的目的。计划(简而言之)是:
pg_dumpall对此我有几个问题:
pglogical可以用于设置的扩展。尽管如此,我还没有深入挖掘。根据您的经验,它是否具有任何额外的优势\是否会使设置更容易?如果您想避免数据库中毒(即想快速恢复到某个时间点),您更喜欢哪种方法?
让我定义数据中毒。您在数据库中插入了一些东西,这完全弄乱了内部结构和相互依赖关系。我知道这意味着可能还需要重新审视数据库设计,但损害已经造成。
我想到的方法是
如果第一个选项是可能的,并且它还存储了所有的中继日志(即在 Master 上发生的事情在同一时刻传输到 Slave,但在几个小时内自动应用),那么这将是一个完美的解决方案。也许可以在一个设置中设置多个从站以从中断和数据中毒中恢复
我正在使用事务复制来复制我们的实时数据库。这基本上是为了在服务器出现故障的情况下备份我们的数据库。
复制的数据库是只读的,因此我对其进行了备份、恢复和测试。
我立即注意到标识列不起作用。
例如,原始模式是这样的:
CREATE TABLE [dbo].[Inspection](
[InspectionID] [int] IDENTITY(1,1) NOT NULL,
[CarID] [int] NOT NULL,
Run Code Online (Sandbox Code Playgroud)
然后,在复制的副本上,它看起来像这样:
CREATE TABLE [dbo].[Inspection](
[InspectionID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[CarID] [int] NOT NULL,
Run Code Online (Sandbox Code Playgroud)
这意味着标识列已禁用,对吗?
有没有办法解决这个问题并使这个数据库本身成为一个独立的副本?
另外,我注意到没有传播外键。我知道有一些设置,但是既然标识列被禁用(哪些是主键),传播外键是否会成为问题?
我有一个使用事务复制复制的数据库。现在,我想将该数据库的一些数据备份到另一个分区,因为我的服务器磁盘空间不足。
我试图通过单击表中的设计和属性选项卡将“常规数据空间规范”更改为“次要”,使用 GUI 收费通过 SSMS 将文件移动到另一个文件组。当我尝试保存表格的设计时I get error Cannot drop the table 'dbo.MYTABLE' because it is being used for replication.
这里有几个问题:
假设 MySQL 5.5 中基于语句的复制和基于行的复制的混合复制。它在 master-master 场景中究竟是如何工作的?
收到查询的 master 是否执行,然后将语句写入 binlog,然后中继到 slave 执行?还是 master 只是简单地写下应该更新的内容,然后 slave 接收更改?
它还指出,在 MySQL 5.5 中 SBR 是默认设置,但在需要时会切换到 RBR。我怎么知道什么时候需要它?有没有办法强制它只对一个查询 UPDATE 或 INSERT 使用 SBR?
每天将大约 200 个 SQL Server 2005 源数据库(相同架构)加载到暂存区以准备数据仓库清理、重复数据删除和转换的最佳提取策略是什么?
到目前为止,我已经设想了以下可能性:
额外的想法:
我正在设计一个系统,它将拥有一个 SQL Server 2012 中央数据库。
每个客户端都将使用合并复制来获取其数据的离线副本,以便在路上进行编辑。
如果我添加一个出版物,我可以向该出版物添加过滤器。我无法解决的事情是只有一组过滤器。
对于我拥有的每个客户,他们将有一组不同的过滤器来过滤仅与他们相关的数据。从安全的角度来看,这非常重要。
仅凭一份出版物如何实现这一目标?
根据此处的文档,我想用 PostgreSQL 数据库创建一个 pgpool II。当我尝试安装时,遇到此错误:
configure: error: libpq is not installed or libpq is old
Run Code Online (Sandbox Code Playgroud)
搜索 pgpool 网站,他们提到./configure使用以下命令运行:
--with-pgsql
Run Code Online (Sandbox Code Playgroud)
或者
--with-pgsql-includedir
Run Code Online (Sandbox Code Playgroud)
或者
--with-pgsql-libdir
Run Code Online (Sandbox Code Playgroud)
但我仍然面临同样的问题。谁能指导我从这里可以做什么?
我正在运行从 CentOS 5 上的 yum 包安装的 PostgreSQL 9.2。
有没有人有使用ScaleArc 的经验?
我的 CTO 询问了我对此的看法,但我没有看到有关现实世界体验的任何信息。
replication ×10
sql-server ×4
mysql ×3
postgresql ×3
amazon-rds ×1
backup ×1
clustering ×1
etl ×1
identity ×1
linux ×1
pg-logical ×1
pgpool ×1
scalability ×1
upgrade ×1