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

相关推荐
风哥2号9 小时前
数据库教程FGMT51‑PostgreSQL实例管理与参数文件
数据库·postgresql
lusklusklusk11 小时前
Oracle索引组织表,SQLServer聚集索引,Mysql Innodb表的数据行不是在磁盘上像排队一样严格连续地存放
mysql·postgresql·oracle·sqlserver
redfred16 小时前
Outline 部署教程:4 万 Star 自托管知识库,免费替代 Notion(Windows 源码部署完整指南)
postgresql·开源软件·notion
jnrjian18 小时前
公司有CA服务器生成cert key csr
postgresql·redhat
jnrjian18 小时前
EDB CA cert key
postgresql
IvorySQL2 天前
PostgreSQL 日报|在线校验和特性被回退(9 月 17 日)
数据库·人工智能·postgresql
geovindu2 天前
sql:Data Modeling Patterns using PostgreSQL 18
postgresql·数据库开发·数据库架构
l1t2 天前
DeepSeek总结的PostgreSQL 19 发生了什么
数据库·postgresql
TechWJ2 天前
没有公网 IP 也想远程连 PostgreSQL?从本地数据库到固定 TCP 地址完整配置
大数据·数据库·网络安全·postgresql·内网穿透
あ-2 天前
postgres创建只读用户
postgresql