IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> PostgreSQL pg_dump 与 pg_restore 命令 -> 正文阅读

[大数据]PostgreSQL pg_dump 与 pg_restore 命令

pg_dump 备份数据库

命令格式
pg_dump dbname > bakfile
或者
pg_dump dbname -f bakfile

备份示例
  1. 备份为文本(即 SQL 文件)
# -v 选项显示导出过程
pg_dump -v -h 127.0.0.1 -p 5432 -U postgres testdb > db.sql

# 后面的示例中均省略 -h -p -U 等数据库连接选项

SQL 文件无法使用 pg_restore 恢复, 仅支持 psql 命令直接导入

psql -d new_db -f db.sql
或者
psql -d new_db < db.sql

  1. 压缩备份
# 9级压缩
pg_dump -Fc -Z 9 testdb > db.dmp

-F 选项指定导出文件的格式, 默认为文本格式

  • -p 文本格式(plain)
  • -c 自定义格式(custom)
  • -t tar 包格式
  • -d 目录格式(directory)

-Z 选项指定压缩级别, 取值为 0-9, 0 表示不压缩

对于自定义和目录格式不加该选项时自动决定适当的压缩级别, 另外 tar 格式不支持压缩, 文本格式默认不压缩


  1. 并行备份

仅限于目录格式

# 同时备份两张表的数据, 打开 3(2+1) 个数据库的连接
pg_dump -Fd -j 2 testdb -f dmp_dir

dmp_dir 目录中, 每一张表对应一个备份文件(xxxx.dat.gz)

目录格式的压缩级别表示每一张表对应备份文件的压缩等级

  1. 仅备份部分表
# 可以通过多个 -t 选项指定多张表
# -t 选项支持通配符
pg_dump -Fc -t table testdb > table.dmp

注意 pd_dump 仅导出指定的表, 其依赖的表不会导出


pg_restore 恢复数据库

命令格式
pg_restore -d dbname bakfile
恢复示例
  1. 直接导入

创建待导入数据库

# 以 postgres 的身份执行 psql
$ sudo -u postgres psql
psql (12.10 (Ubuntu 12.10-0ubuntu0.20.04.1))
Type "help" for help.

postgres=# create database new_db;
CREATE DATABASE

# 后面的示例中省略数据库创建的过程

或者直接在 shell 中执行

$ createdb new_db

导入数据库

# -v 选项显示导入过程
pg_restore -v -d new_db db.dmp

在导入的过程中, PostgreSQL 会尝试更新数据库对象的所有者为原始数据库中的角色


  1. 不更新数据库对象的所有者

增加 -O 或 --no-owner 选项

pg_restore -O -d new_db db.dmp

  1. 并行导入

支持自定义和目录格式

pg_restore -j 3 -O -d new_db db.dmp

pg_restore -j 3 -O -d new_db dmp_dir/

  1. 导入前自动删除已有数据
pg_restore -O -c --if-exists -d new_db db.dmp

-c 或 --clean 表示导入前删除数据库对象


  1. 仅导入数据库的定义结构

创建表, 索引以及约束等内容

pg_restore -d new_db -s db.dmp

-s 或 --schema-only: 仅导入数据库的定义, 不导入数据


  1. 仅导入数据

已有表结构, 仅导入某张表的数据

# 在示例 5 的基础上导入表的数据
pg_restore -d new_db -t table -a table.dmp

-a 或 --data-only: 仅导入数据

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:37:30  更:2022-05-15 11:39:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 6:41:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码