psql参数

以下是 PostgreSQL 中 psql 命令的 全部参数使用示例 及其与 pg_restore核心区别 总结:


一、psql 命令参数详解

psql 是 PostgreSQL 的交互式命令行工具,支持丰富的参数以管理数据库和执行脚本。以下是其核心参数分类及说明:

1. 通用选项
参数 说明 示例
-c, --command=COMMAND 执行单条 SQL 命令后退出 psql -c "SELECT version();"
-d, --dbname=DBNAME 指定连接的数据库 psql -d mydb
-f, --file=FILENAME 执行指定 SQL 文件 psql -f backup.sql
-l, --list 列出所有数据库 psql -l
-v, --set=NAME=VALUE 设置变量供脚本使用 psql -v table_name=mytable
-V, --version 显示版本信息 psql -V
-X, --no-psqlrc 不加载启动配置文件 psql -X
-1, --single-transaction 在单事务中执行脚本 psql -1 -f script.sql
2. 输入输出控制
参数 说明 示例
-a, --echo-all 显示所有输入内容 psql -a -f script.sql
-e, --echo-queries 打印执行的 SQL 语句 psql -e -c "SELECT 1;"
-o, --output=FILENAME 将结果输出到文件 psql -o result.txt -c "SELECT * FROM table;"
-q, --quiet 静默模式(仅输出结果) psql -q
-A, --no-align 禁用对齐输出 psql -A
-H, --html 以 HTML 格式输出 psql -H -c "SELECT * FROM table;"
3. 连接选项
参数 说明 示例
-h, --host=HOSTNAME 数据库服务器地址 psql -h 192.168.1.100
-p, --port=PORT 数据库端口 psql -p 5433
-U, --username=USERNAME 连接用户 psql -U admin
-W, --password 强制提示输入密码 psql -W
4. 高级功能
参数 说明 示例
-j, --jobs=NUM 并行执行(需结合 -f psql -j 4 -f script.sql
-L, --log-file=FILENAME 记录会话日志 psql -L session.log
-x, --expanded 扩展表格模式 psql -x -c "SELECT * FROM table;"

二、psql 使用示例

1. 基本操作
bash 复制代码
# 登录数据库
psql -U postgres -d mydb

# 执行 SQL 文件并输出到日志
psql -U postgres -f restore.sql -L restore.log

# 导出查询结果到 CSV
psql -U postgres -c "COPY table TO STDOUT CSV HEADER;" -o data.csv
2. 变量传递
bash 复制代码
# 设置变量并在脚本中使用
psql -v table_name=users -c "SELECT * FROM :table_name;"
3. 并行执行
bash 复制代码
# 并行执行 SQL 脚本(需分块处理)
psql -j 4 -f large_script.sql

三、psqlpg_restore 的核心区别

特性 psql pg_restore 说明
适用格式 仅支持 SQL 格式 支持自定义(-Fc)、目录(-Fd)、tar 格式 pg_restore 无法处理纯 SQL 文件
恢复功能 完整执行 SQL 脚本 支持选择性恢复(表、模式)、并行恢复、跳过触发器 pg_restore 可控制恢复粒度
性能 单线程执行 支持并行恢复(-j pg_restore 处理大数据更快
灵活性 直接执行 SQL 命令 可调整恢复顺序、排除对象 pg_restore 提供更细粒度的恢复选项
典型场景 简单脚本执行、交互式查询 大规模数据恢复、复杂备份管理 psql 适合日常管理,pg_restore 适合专业备份恢复

四、如何选择工具?

  1. 使用 psql 的场景

    • 执行 SQL 脚本或交互式查询。
    • 处理纯文本格式的备份(如 pg_dump -Fp 生成的文件)。
    • 需要快速执行简单恢复任务。
  2. 使用 pg_restore 的场景

    • 恢复自定义或目录格式的备份(如 pg_dump -Fc)。
    • 需要并行恢复、选择性恢复表或数据。
    • 调整恢复顺序或禁用触发器。

五、注意事项

  • 版本兼容性 :确保 pg_dumppg_restore 的版本与目标数据库一致。
  • 权限管理:恢复时需确保用户有足够的权限创建对象。
  • 性能优化 :使用 pg_restore -j 加速大规模数据恢复。

通过合理选择工具和参数,可显著提升 PostgreSQL 数据库的管理效率。

相关推荐
男孩李15 小时前
浅谈PostgreSQL 模式(SCHEMA)
数据库·postgresql
问道飞鱼2 天前
【数据库知识】PGSQL数据类型详细说明
数据库·sql·postgresql
java_logo2 天前
Supabase Postgres Docker 容器化部署指南
运维·docker·postgresql·容器·postgres部署教程·postgres部署文档·docker postgres
杨了个杨89822 天前
PostgreSQL 完全备份与还原
数据库·postgresql
大道之简2 天前
PostgreSQL pgvector向量数据库
数据库·postgresql
yfhmmm2 天前
PostgreSQL如何进行时间点恢复(PITR)
数据库·postgresql
程序员老赵2 天前
Supabase Postgres Docker 容器化部署指南
docker·postgresql
困死了11112 天前
PostgreSQL笔记
数据库·笔记·postgresql
前端之虎陈随易3 天前
PostgreSQL v18发布,新增AIO uuidv7 OAuth等功能
数据库·postgresql
小草儿7993 天前
postgresql相关
postgresql