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

三、psql 与 pg_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_dump 和 pg_restore 的版本与目标数据库一致。
  • 权限管理:恢复时需确保用户有足够的权限创建对象。
  • 性能优化 :使用 pg_restore -j 加速大规模数据恢复。

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

相关推荐
snhna9 小时前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
周小董11 小时前
[1369]Windows上安装PostgreSQL
数据库·windows·postgresql
ss27320 小时前
03 -AI时代首先数据库-PostgreSQL发展历史:从伯克利到AI数据库
postgresql
东风微鸣1 天前
精简 Ubuntu Linux 固件包:每个 N100 节点省下约 450 MB
linux·ubuntu·postgresql
yumgpkpm1 天前
CDP 7.3.1(Cloudera Runtime 7.3.1)VS Acceldata ODP 3.3.6.4 核心引擎详细版本对比
大数据·hive·hadoop·postgresql·zookeeper·spark·hbase
明日清晨1 天前
mobaxterm root身份登录Ubuntu
linux·ubuntu·postgresql
有想法的py工程师2 天前
PostgreSQL【内核】 CBO 优化器的“早停下注”与数学模型失效分析
数据库·postgresql
有想法的py工程师2 天前
PostgreSQL 字符集双重转义击穿 磁盘 I/O
数据库·postgresql
l1t2 天前
DeepSeek总结的PostgreSQL因选择而宽松,因偶然而永久
数据库·postgresql
IvorySQL2 天前
PostgreSQL 日报| PostgreSQL JDBC 安全更新(10 月 10 日)
数据库·postgresql·区块链