psql参数

发布于:2025-05-21 ⋅ 阅读:(16) ⋅ 点赞:(0)

以下是 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. 基本操作
# 登录数据库
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. 变量传递
# 设置变量并在脚本中使用
psql -v table_name=users -c "SELECT * FROM :table_name;"
3. 并行执行
# 并行执行 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 数据库的管理效率。


网站公告

今日签到

点亮在社区的每一天
去签到