PostgreSQL流式复制ubuntu命令到windows

PostgreSQL流式复制ubuntu命令到windows,postgresql,Postgresql,我正在试用这个为linux postgresql server制作的教程。我遵循了配置设置,但我不知道如何在windows中转换此命令。另外,在postgres的windows安装中,/etc文件夹和/var文件夹的等价物是什么 echo Stopping PostgreSQL sudo service postgresql stop echo Cleaning up old cluster directory sudo -u postgres rm -rf /var/lib/postgres

我正在试用这个为linux postgresql server制作的教程。我遵循了配置设置,但我不知道如何在windows中转换此命令。另外,在postgres的windows安装中,/etc文件夹和/var文件夹的等价物是什么

echo Stopping PostgreSQL
sudo service postgresql stop

echo Cleaning up old cluster directory
sudo -u postgres rm -rf /var/lib/postgresql/9.2/main

echo Starting base backup as replicator
sudo -u postgres pg_basebackup -h 1.2.3.4 -D /var/lib/postgresql/9.2/main -U 
replicator -v -P

echo Writing recovery.conf file
sudo -u postgres bash -c "cat > /var/lib/postgresql/9.2/main/recovery.conf 
<<- _EOF1_
standby_mode = 'on'
primary_conninfo = 'host=1.2.3.4 port=5432 user=replicator 
password=thepassword sslmode=require'
trigger_file = '/tmp/postgresql.trigger'
_EOF1_"

echo Startging PostgreSQL
sudo service postgresql start
echo停止PostgreSQL
sudo服务postgresql停止
echo清理旧的集群目录
sudo-u postgres rm-rf/var/lib/postgresql/9.2/main
作为复制器启动基本备份
sudo-u postgres pg_basebackup-h1.2.3.4-D/var/lib/postgresql/9.2/main-u
复制因子-v-P
echo Writing recovery.conf文件
sudo-u postgres bash-c“cat>/var/lib/postgresql/9.2/main/recovery.conf

我的回答假设了几件你没有告诉我们的事情:

  • Postgres的版本是9.6(9.2已经过时,将在6个月后停止使用)
  • Postgres(64位)安装到:
    c:\ProgramFiles\PostgreSQL\9.6
  • 您使用的是默认服务名称
    postgresql-x64-9.6
  • 数据目录是
    c:\ProgramData\Postgres\9.6
  • 您已经在另一个(64位)Windows系统上安装了Postgres 9.6,该系统应该是此复制实例的主系统
  • 用于运行此服务的当前Windows用户具有停止和启动服务所需的权限
因此,您问题中的脚本大致如下所示:

rem将Postgres bin目录添加到路径
rem,以避免对实用程序的引用
rem需要完全合格
路径=%PATH%;c:\Program Files\PostgreSQL\9.6\bin
rem在此调整为真实的服务名称
回音停止PostgreSQL
净停止postgresql-x64-9.6
echo清理旧的集群目录
rem根据您的环境调整数据目录
rem您可以检查当前的服务配置
rem查看数据目录的位置
set DATADIR=c:\ProgramData\Postgres\9.6
rmdir/s/q“%DATADIR%”
echo创建基本备份
rem根据主服务器调整IP地址和用户名
使用9.6 pg_basebackup的rem可以自动创建recovery.conf
pg_basebackup-h1.2.3.4-D“%DATADIR%”-U replicator-v-P--write recovery conf-X stream
echo启动PostgreSQL
净启动postgresql-x64-9.6

再一次:你必须调整路径和名称以适应你的环境!

我的postgresql版本是9.4。安装是C:\Program Files\postgresql\9.4\data。但是我在C:ProgramData中找不到postgresql数据目录。是的,我使用的是相同的服务名称,只是它是9.4。我真的不知道这件事,非常感谢你你可以提供答案,我会复制粘贴。非常感谢!!@Bigboss:如果Postgres正在运行,你可以使用
show data\u directory
查找数据目录或检查Windows服务的定义。C:\Program Files\PostgreSQL\9.4\data这是位置。这是我应该清空的位置吗?