在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创建备份的表结构和数据