Windows下批处理静默安装PostgreSQL、创建数据库、恢复数据

在Windows操作系统中进行PostgreSQL数据库的静默安装、创建数据库以及恢复数据库的过程,可以通过命令行工具来实现。下面是一个详细的步骤说明,包括如何进行静默安装、创建新数据库以及如何使用备份文件来恢复数据库。

1. 静默安装PostgreSQL

静默安装PostgreSQL通常涉及到使用命令行参数来避免交互式安装界面。你可以使用以下命令来进行静默安装:

setup.exe --mode unattended -i WITH_OUT_SAMPLE_DATA --datadir "C:\path\to\your\data\directory" --httpd /NORESTART --override "CheckForNewerVersion=0" --override "EnablePgAgent=0" --superpassword "YourSuperUserPassword"

在这个命令中:

  • setup.exe 是PostgreSQL安装程序的名称。
  • --mode unattended 表示进行无人值守安装。
  • -i WITH_OUT_SAMPLE_DATA 表示不安装示例数据。
  • --datadir "C:\path\to\your\data\directory" 指定数据存储的目录。
  • --httpd /NORESTART 表示不重启HTTP服务。
  • --override "CheckForNewerVersion=0" 表示不检查新版本。
  • --override "EnablePgAgent=0" 表示不安装PgAgent。
  • --superpassword "YourSuperUserPassword" 设置超级用户(postgres)的密码。

请根据实际情况替换路径和密码。

2. 创建数据库

创建数据库可以通过psql命令行工具来完成。首先,确保psql工具已经安装在你的系统上。然后,使用以下命令来创建一个新的数据库:

psql -U postgres -c "CREATE DATABASE mydatabase;"

在这个命令中:

  • -U postgres 指定使用postgres用户进行操作。
  • -d mydatabase 指定要恢复到的数据库名。
  • < backup.sql 表示从名为backup.sql的备份文件中读取数据并恢复到数据库。

请确保你的备份文件路径是正确的,并且该文件包含了有效的SQL命令来创建表和插入数据。

3. 示例
 

*此句为调用管理员运行,如不使用此句批处理需要右键以管理员身份运行

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
chcp 65001
@Title  【PostgreSQL Install】
@echo off & setlocal enableextensions
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit

echo "*********************ToolsDIR安装包目录*************************"
set ToolsDIR=E:\Tools
cd /d %ToolsDIR%
echo "*********************开始安装包*************************"
echo "*********************prefix:安装目录*************************"
echo "*********************datadir:数据目录*************************"
postgresql-12.6-1-windows-x64.exe --mode unattended --superpassword "1234" --serverport 5432 --prefix "D:\PostgreSQL\12" --datadir "D:\PostgreSQL\12\data"

SET PGPATH=D:\PostgreSQL\12\bin
SET PGUSER=postgres
SET PGPASSWORD=1234
SET PGHOST=localhost
SET PGPORT=5432
SET DBNAME1=""SurveyMon""

echo "*********************创建数据库*************************"
%PGPATH%\psql.exe -U %PGUSER% -h %PGHOST% -p %PGPORT% -c "CREATE DATABASE %DBNAME1%;" 

echo "*********************恢复数据*************************"
echo "*********************DBBACKUPDIR:数据库备份文件所在目录*************************"
SET DBBACKUPDIR=%ToolsDIR%\script\databasebackup
%PGPATH%\pg_restore.exe --dbname=%DBNAME1% --verbose %DBBACKUPDIR%\SurveyMon.backup

echo success
pause

注意:pg_restore.exe:是用来恢复pg_dump创建备份的表结构和数据

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值