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 数据库的管理效率。

相关推荐
秉承初心4 天前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle
IvorySQL4 天前
PostgreSQL 技术日报 (6月15日)|PG19 性能优化推进,POSETTE 大会倒计时 2 天
数据库·人工智能·postgresql·开源
IvorySQL4 天前
PostgreSQL 技术日报 (6月16日)|Neon 自动化再进一步,逻辑复制冲突日志迎来 v50 更新
数据库·postgresql·自动化
倒流时光三十年4 天前
PostgreSQL 聊一下索引和排序规则
postgresql
睡不醒男孩0308235 天前
PostgreSQL 数据库运维转型:从传统模式到 CLup 平台的 25 个核心 FAQ
运维·数据库·postgresql
JOJO数据科学5 天前
pgAdmin4 Electron 鸿蒙 PC 适配全记录:从白屏到连接 PostgreSQL
postgresql·electron·harmonyos
日取其半万世不竭5 天前
PostgreSQL 跑在 Docker 里怎么备份?恢复成功才算备份成功
数据库·docker·postgresql
倒流时光三十年5 天前
PostgreSQL LEAST 表达式函数详解
数据库·postgresql
Rain5095 天前
2.4. PostgreSQL 数据库连接与实战指南
前端·数据库·人工智能·后端·postgresql·数据分析
倒流时光三十年6 天前
PostgreSQL CASE 条件表达式详解
数据库·postgresql