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
    • 最新
    • 标签
主页 / user-45212

Robert's questions

Martin Hope
Robert
Asked: 2015-09-29 10:00:57 +0800 CST

如何配置 AWS Aurora 以分离写入/读取操作

  • 6

我想将我的数据库实例从 AWS RDS MySQL 迁移到 Aurora,但我对复制以及 Aurora 如何管理写入/读取操作有疑问。

我有我的应用程序,我想将写入操作与读取分开。我想创建一个仅用于写入操作的Master实例,而其他实例(Read Replica)仅用于读取操作。

问题就在这里,我在 AWS 文档上阅读到我需要对我的应用程序进行这种分离,我认为或者我希望找到一种方法来做到这一点并对我的应用程序透明。我绘制了一个简单的模式来使用 Aurora(来自 AWS):

AWS 说我必须做什么:

      -----------------
      |  Application  |
      -----------------
       |             |
       | writes      |reads      
       |             |
------------      ------------------
|  Master  |      |  Read Replica  |
------------      ------------------
       ^            ^
       |replication |
       |____________|

我需要什么:

我需要 Master 始终保持写入操作,并将读取重定向到只读副本实例。

      -----------------
      |  Application  |
      -----------------
       |
       |write/read
       |           
------------   Reads    ------------------
|  Master  | <------->  |  Read Replica  |
------------            ------------------
       ^                     ^
       |      replication    |
       |_____________________|

复制始终在运行。但我想将写入和读取过程分开。所以我的总结:

主实例检测写入/读取操作之间的差异,所有读取操作将由只读副本管理。我需要这个解决方案,因为 aurora 提供了一个很好的特性来改进我的 RDS,但唯一的问题是我需要在写入和读取操作之间建立平衡:写入操作在 master 中处理,并将读取操作发送到 Read复制品。我不想像亚马逊建议的那样在我的应用程序代码中定义这个过程并在它们之间进行选择。

replication amazon-rds
  • 2 个回答
  • 21007 Views
Martin Hope
Robert
Asked: 2015-05-03 08:48:14 +0800 CST

如何获得服务器的正常运行时间?

  • 8

我正在使用 postgresql-9.4 并且为了支持和监控任务,我需要知道我的服务器已经运行了多长时间?有什么功能或方法可以知道这一点吗?有没有一种 sql 方法可以知道我的服务器何时启动?

我真的需要知道它开始以来经过的时间吗?

postgresql postgresql-9.4
  • 2 个回答
  • 6852 Views
Martin Hope
Robert
Asked: 2014-09-30 05:13:17 +0800 CST

在不同的主机中使用 pgpool 和 PostgreSQL。

  • 0

我想使用 pgpool 但我做了一些研究,我有疑问,是否需要在同一台机器上安装 PostgreSQL 和 pgpool?当我在同一台主机上进行第一次配置和安装时。但这给我带来了一些问题,有时 Postgresql 服务无法启动,我想将它们分开?有可能的?

postgresql-9.3 pgpool
  • 1 个回答
  • 363 Views
Martin Hope
Robert
Asked: 2014-09-26 07:16:38 +0800 CST

xlogs 文件如何从 Master 传输到 Slave

  • 2

我对使用归档日志的 PostgreSQL 复制中的工作流程如何处理有一些疑问。

如果我在 Master postgresql.conf 中有这个配置:

archive_command = 'test ! -f /path/to/archive/%f && cp %p /path/to/archive/%f'

替换 %p 和 %f 参数后,实际执行的命令可能如下所示:

test ! -f /path/to/archive/00000001000000A900000065 && cp pg_xlog/00000001000000A900000065 /path/to/archive/00000001000000A900000065

好的,如果文件没有归档,那么它将被复制。

如果我在 Slave recovery.conf 中有这个配置:

restore_command = 'cp /path/to/archive/%f %p'

然后,如果我不配置这样的东西:

scp /master/path/to/archive/* /slave/path/to/archive/

/path/to/archive/ 中的 xlogs 文件怎么可能从 Master 传输到 Slave,然后 Slave 将它们复制到它的 pg_xlog/ 目录?

postgresql replication
  • 1 个回答
  • 1041 Views
Martin Hope
Robert
Asked: 2014-09-26 06:54:44 +0800 CST

对于 archive_command 使用脚本而不是命令

  • 2

我想创建一个配置来获得 PostgreSQL HA。在我的主人中,我想用这个配置一个 postgresql.conf 文件:

archive_command = 'local_backup_script.sh "%p" "%f"'

代替:

archive_command = 'cp "%p" /path/to/archive/"%f"'

然后我有一个疑问:我必须把脚本放在哪里?

postgresql replication
  • 2 个回答
  • 1843 Views
Martin Hope
Robert
Asked: 2014-09-26 05:38:41 +0800 CST

我什么时候必须使用archive_command,什么时候不需要

  • 3

我对 PostgreSQL 复制命令有一些疑问。我正在做一些研究,我发现了几个配置。

第一个是:

archive_mode = on
archive_command = 'cd .'

第二个是:

cp -i %p /var/lib/postgresql/9.1/archive/%f'

然后我的问题是:

  1. 有什么不同?
  2. 第一个选项( command )对我来说真的很奇怪。它有什么作用?
replication postgresql-9.1
  • 2 个回答
  • 5973 Views
Martin Hope
Robert
Asked: 2014-08-20 04:28:20 +0800 CST

主节点的时间线 2 与恢复目标时间线 1 不匹配

  • 4

我想用 postgresql 和 pgpool 创建一个配置来获得高度可用性(HA)。我想做这个:

  .-----.                  .--------.
  |     |           W      |   DB   |
  | APP |-----+----------->| MASTER |----.
  |     |     |            |        |    |
  `-----`     |            `--------`    | STREAMING REPLICATION
              |            .--------.    |
              |     R      |   DB   |    |
              +----------->| SLAVE1 |<---+      
              |            |        |    |
              |            `--------`    |
              |            .--------.    |
              |     R      |   DB   |    |
              `----------->| SLAVE2 |<---`
                           |        |
                           `--------`
after failover:

  .-----.                  .--------.
  |     |                  |   DB   |
  | APP |-----+----        | MASTER |
  |     |     |            |  FAIL  |
  `-----`     |            `--------`
              |            .--------.
              |    W/R     |   DB   |
              +----------->| SLAVE1 |---.          
              |            |        |   |
              |            `--------`   |
              |            .--------.   | STREAMING REPLICATION
              |     R      |   DB   |   |
              `----------->| SLAVE2 |<--`
                           |        |
                           `--------`

通过 Streaming Replication + pgpool-II关注 HA PostgreSQL 集群的帖子我用 vagrant 创建了 4 个虚拟机 (vm)。一个 Master(M),两个 Slave(S1 和 S2),另一个用于 pgpool(APP)。当我在 APP 中进行一些查询时,一切正常。当我停止主人时,S1 被提升为 M,而 S2 现在有了一个新主人。但这给我带来了问题。我不知道这个错误是什么意思,我不知道如何解决它:

2014-08-18 17:04:56 UTC FATAL:  timeline 2 of the primary does not match recovery target timeline 1

我在用:

  • postgres 9.1
  • pgpool 3.1.1-1

更新

当 S1 提升为 Master 时,S2 会发出此错误。

更新 2

节点 IP 地址:

M  - 192.168.1.10
S1 - 192.168.1.11
S2 - 192.168.1.12
APP- 192.168.1.13

这是我的 S1 和 S2 的 recovery.conf 文件配置。

standby_mode = 'on'
primary_conninfo = 'host=192.168.1.10 port=5432 user=replicator password=replicator'
trigger_file = '/tmp/postgresql.trigger.5432'

更新 3

这是我在 /etc/pgpool2/pgpool.conf 文件中的后端:

...
backend_hostname0 = '192.168.1.10'
backend_port0 = 5432
backend_weight0 = 0
backend_data_directory0 = '/var/lib/postgresql/9.1/main'
backend_flag0 = 'ALLOW_TO_FAILOVER'

backend_hostname1 = '192.168.1.11'
backend_port1 = 5432
backend_weight1 = 0
backend_data_directory1 = '/var/lib/postgresql/9.1/main'
backend_flag1 = 'ALLOW_TO_FAILOVER'

backend_hostname2 = '192.168.1.12'
backend_port2 = 5432
backend_weight2 = 0
backend_data_directory2 = '/var/lib/postgresql/9.1/main'
backend_flag2 = 'ALLOW_TO_FAILOVER'


#------------------------------------------------------------------------------
# FAILOVER AND FAILBACK
#------------------------------------------------------------------------------

failover_command = '/var/lib/postgresql/bin/failover.sh %d %M %m'

它是 failover.sh 文件:

#!/bin/sh
FALLING_NODE=$1
OLD_MASTER=$2
NEW_MASTER=$3
SLAVE1='slave1'
SLAVE2='slave2'
if test $FALLING_NODE -eq 0
then
ssh -T $SLAVE1 touch /tmp/postgresql.trigger.5432
ssh -T $SLAVE1 "while test ! -f /var/lib/postgresql/9.1/main/recovery.done; $
ssh -T $SLAVE2 "sed -i 's/192.168.1.10/192.168.1.11/' /var/lib/postgresql/9.$
ssh -T $SLAVE2 /etc/init.d/postgresql restart
/usr/sbin/pcp_attach_node 10 localhost 9898 pgpool pgpool 2
fi
postgresql replication
  • 1 个回答
  • 3228 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve