主服务器中的设置:
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”一书的说明进行操作。我们遵循本书中的这些步骤。
执行以下步骤:
确定您的主节点和备用节点,并确保它们已根据最佳实践方案进行配置。
配置复制安全。在 Master 节点上创建或确认复制用户的存在
CREATE USER repuser SUPERUSER LOGIN CONNECTION LIMIT 1 ENCRYPTED PASSWORD 'changeme';
允许复制用户进行身份验证。以下示例允许使用加密密码验证从任何 ip 地址访问;您可能希望考虑更多限制性选项。添加以下行:
host replication repuser 127.0.0.1/0 md5
在 master 和 Standby 上的 postgresql.conf 中设置日志记录选项,以便您获得有关复制连接尝试和相关故障的更多信息。
log_connections = on
在 Master in 上设置 max_wal_senders
postgresql.conf
,如果值已经非零,则增加。max_wal_senders = 1 wal_mode = 'archive' archive_mode = on archive_command = 'cd .'
在 postgresql.conf 中调整 Master 上的 wal_keep_segments。将此值设置为不高于挂载 pg_xlog 目录的驱动器上的可用空间量除以 16MB 的值。如果 pg_xlog 没有安装在单独的驱动器上,那么不要假设所有当前可用空间都可用于事务日志文件。
wal_keep_segments = 10000 # e.g. 160 GB
如果需要,调整热备参数(见后面的配方)
进行基本备份,与备份章节中描述的进行物理备份的过程非常相似。
一个。开始备份
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"
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'
启动备用服务器
仔细监控复制延迟,直到追赶期结束。在最初的追赶期间,复制延迟将比我们通常预期的要高得多。建议您仅在初始期间设置 hot_Standby = off。