【问题标题】:Facing issues because of Database Backup Activity由于数据库备份活动而面临问题
【发布时间】:2019-11-29 03:23:38
【问题描述】:

我们在备份数据库时遇到了一些问题。 用于相同的用户在数据库服务器上具有最高优先级。因此,其他具有较低优先级用户的表的加载会卡在 T 状态。

有什么办法可以解决这个问题。

简单来说: 假设我们每天对数据库中可用的一些模式进行备份,并且有 2-3 个数据库用户,即 A、B、C。 用户 An 是超级用户,所以每当我们对用户 A 运行任何查询时,数据库都会优先考虑用户 A 命中的查询。用户 A 用于进行备份。 同时,我们还加载了用户 B 的日常表,即 Stg 和 Fact 表,用户 B 的优先级低于用户 A。

【问题讨论】:

  • 所以每当我们对用户 A 运行任何查询时,数据库都会优先考虑用户 A 命中的查询”这对于 Postgres 来说绝对不是真的。 Postgres 没有用户或查询的“优先级”概念

标签: data-warehouse database-backups greenplum


【解决方案1】:

你用什么来备份? gpcrondump?备份?

备份大部分应该是非阻塞的--

在备份期间:

gpcrondump 实用程序锁定 pg_class 系统表和备份的表。使用 EXCLUSIVE 锁锁定 pg_class 表可确保在 gpcrondump 锁定要使用 ACCESS SHARE 锁备份的表之前,不会添加、删除或更改任何表。

gpbackup 备份进程在每个备份的表上获取一个 ACCESS SHARE 锁。

我建议使用后者,因为它通常更快,并且使用非独占锁。但是,如果在备份作业期间有其他东西要修改 DDL 或表定义——这将是一个问题,因为这些操作的独占锁定请求将发生冲突并需要等待。但是,一旦作业完成,它们应该会恢复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多