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-43766

user3837299's questions

Martin Hope
user3837299
Asked: 2014-07-15 22:02:31 +0800 CST

使用两个不同的服务器流式复制 Postgresql 9.3

  • 7

主服务器中的设置:

max_wal_senders = 1
wal_level = '存档'
存档模式 = 开启
archive_command = 'cd .'
wal_keep_segments = 10000

从服务器中的设置:在 recovery.conf 文件中:

待机模式 = '开'
primary_conninfo = '主机=主用户的IP地址=repuser'
trigger_file = '/tmp/postgresql.trigger.5432'

log_connections=on在主服务器和从服务器上都设置了

在主服务器的 pg_hba.conf 文件中为复制用户创建条目

主机复制 repuser ipaddress/32 trust

尝试复制时出现以下错误

2014-07-14 19:28:22 IST LOG:数据库系统在 2014-07-14 19:28:21 IST 在恢复中关闭
2014-07-14 19:28:22 IST LOG:进入待机模式
2014-07-14 19:28:22 IST 警告:WAL 是使用 wal_level=minimal 生成的,数据可能丢失
2014-07-14 19:28:22 IST 提示:如果您临时设置 wal_level=min imal 而不进行新的基本备份,则会发生这种情况。
2014-07-14 19:28:22 IST LOG:在 0/19FFE28 达到一致的恢复状态
2014-07-14 19:28:22 IST LOG:0/19FFE28 长度为零的记录
2014-07-14 19:28:22 IST FATAL:数据库系统标识符在主数据库和备用数据库之间不同
2014-07-14 19:28:22 IST 详细信息:主节点的标识符是 6022019027749040119 ,备用节点的标识符是 6033562405193904122。
2014-07-14 19:28:23 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:23 IST FATAL:数据库系统正在启动
2014-07-14 19:28:24 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:24 IST FATAL:数据库系统正在启动
2014-07-14 19:28:25 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:25 IST FATAL:数据库系统正在启动
2014-07-14 19:28:26 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:26 IST FATAL:数据库系统正在启动
2014-07-14 19:28:27 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:27 IST FATAL:数据库系统正在启动
“postgresql-2014-07-14_192822.log”6630L、756429C
2014-07-14 19:28:22 IST LOG:数据库系统在 2014-07-14 19:28:21 IST 恢复时关闭
2014-07-14 19:28:22 IST LOG:进入待机模式
2014-07-14 19:28:22 IST 警告:WAL 是使用 wal_level=minimal 生成的,数据可能丢失
2014-07-14 19:28:22 IST 提示:如果您临时设置 wal_level=minimal 而不进行新的基本备份,则会发生这种情况。
2014-07-14 19:28:22 IST LOG:在 0/19FFE28 达到一致的恢复状态
2014-07-14 19:28:22 IST LOG:0/19FFE28 长度为零的记录
2014-07-14 19:28:22 IST FATAL:主数据库和备用数据库系统标识符不同
2014-07-14 19:28:22 IST 详细信息:主节点的标识符是 6022019027749040119,备用节点的标识符是 6033562405193904122。
2014-07-14 19:28:23 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:23 IST FATAL:数据库系统正在启动
2014-07-14 19:28:24 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:24 IST FATAL:数据库系统正在启动
2014-07-14 19:28:25 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:25 IST FATAL:数据库系统正在启动
2014-07-14 19:28:26 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:26 IST FATAL:数据库系统正在启动
2014-07-14 19:28:27 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:27 IST FATAL:数据库系统正在启动
2014-07-14 19:28:28 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:28 IST FATAL:数据库系统正在启动
2014-07-14 19:28:29 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:29 IST FATAL:数据库系统正在启动
2014-07-14 19:28:30 IST 日志:收到连接:主机=[本地]
2014-07-14 19:28:30 IST FATAL:数据库系统正在启动
2014-07-14 19:28:31 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:31 IST FATAL:数据库系统正在启动
2014-07-14 19:28:32 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:32 IST FATAL:数据库系统正在启动
2014-07-14 19:28:33 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:33 IST FATAL:数据库系统正在启动
2014-07-14 19:28:34 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:34 IST FATAL:数据库系统正在启动
2014-07-14 19:28:35 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:35 IST FATAL:数据库系统正在启动
2014-07-14 19:28:36 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:36 IST FATAL:数据库系统正在启动
2014-07-14 19:28:37 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:37 IST FATAL:数据库系统正在启动
2014-07-14 19:28:37 IST FATAL:数据库系统标识符在主数据库和备用数据库之间不同
2014-07-14 19:28:37 IST 详细信息:主节点的标识符是 6022019027749040119,备用节点的标识符是 6033562405193904122。
2014-07-14 19:28:38 IST LOG:收到连接:主机=[本地]
2014-07-14 19:28:38 IST FATAL:数据库系统正在启动
2014-07-14 19:28:39 IST 日志:收到连接:主机=[本地]

IST FATAL:数据库系统标识符在主数据库和备用数据库之间不同
2014-07-14 19:28:37 IST 详细信息:主节点的标识符是 6022019027749040119,备用节点的标识符是 6033562405193904122。

这些线是什么意思?

当我运行这个命令

service postgresql-9.3 start

我在 startup.log 文件中收到以下错误

2014-07-15 11:25:59 IST FATAL:锁定文件“postmaster.pid”已经存在
2014-07-15 11:25:59 IST 提示:另一个 postmaster (PID 25961) 是否在数据目录“/opt/postgres/PostgreSQL/9.3/data”中运行?

扩展问题

我们是 Postgresql 开源的新手。我们无法理解这个问题的答案。如果可能,请简要说明。我们已按照“Postgresql 9 Administration Cook book”一书的说明进行操作。我们遵循本书中的这些步骤。

执行以下步骤:

  1. 确定您的主节点和备用节点,并确保它们已根据最佳实践方案进行配置。

  2. 配置复制安全。在 Master 节点上创建或确认复制用户的存在

    CREATE USER repuser 
    SUPERUSER 
    LOGIN 
    CONNECTION LIMIT 1 
    ENCRYPTED PASSWORD 'changeme'; 
    
  3. 允许复制用户进行身份验证。以下示例允许使用加密密码验证从任何 ip 地址访问;您可能希望考虑更多限制性选项。添加以下行:

    host replication repuser 127.0.0.1/0 md5 
    
  4. 在 master 和 Standby 上的 postgresql.conf 中设置日志记录选项,以便您获得有关复制连接尝试和相关故障的更多信息。

    log_connections = on
    
  5. 在 Master in 上设置 max_wal_senders postgresql.conf,如果值已经非零,则增加。

    max_wal_senders = 1 
    wal_mode = 'archive' 
    archive_mode = on 
    archive_command = 'cd .' 
    
  6. 在 postgresql.conf 中调整 Master 上的 wal_keep_segments。将此值设置为不高于挂载 pg_xlog 目录的驱动器上的可用空间量除以 16MB 的值。如果 pg_xlog 没有安装在单独的驱动器上,那么不要假设所有当前可用空间都可用于事务日志文件。

    wal_keep_segments = 10000 # e.g. 160 GB 
    
  7. 如果需要,调整热备参数(见后面的配方)

  8. 进行基本备份,与备份章节中描述的进行物理备份的过程非常相似。

    一个。开始备份

        psql -c "select pg_start_backup('base backup for streaming rep')" 
    

    湾。复制数据文件(不包括 pg_xlog 目录)

        rsync -cva --inplace --exclude=*pg_xlog* \ 
        ${PGDATA}/ $STANDBYNODE:$PGDATA 
    

    C。停止备份

       psql -c "select pg_stop_backup(), current_timestamp" 
    
  9. recovery.conf在 Standby 上设置参数。请注意,primary_conninfo 不能指定数据库名称,但可以包含任何其他 PostgreSQL 连接选项。另请注意,recovery.conf 中的所有选项都用引号括起来,而 postgresql.conf 参数则不需要。

    Standby_mode = 'on' 
    primary_conninfo = 'host=192.168.0.1 user=repuser' 
    trigger_file = '/tmp/postgresql.trigger.5432' 
    
  10. 启动备用服务器

  11. 仔细监控复制延迟,直到追赶期结束。在最初的追赶期间,复制延迟将比我们通常预期的要高得多。建议您仅在初始期间设置 hot_Standby = off。

postgresql postgresql-9.3
  • 1 个回答
  • 19716 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