当前位置: 首页 > news >正文

PG备份一(逻辑备份)

逻辑备份
pg_dump:只能备份单个数据库
pg_dumpall:可以备份所有数据库(用户,表空间,权限),pg_dumpall只支持文本格式,pg_dumpall需要多次连接postgresql服务器

一、pg_dump
1.创建数据库test并插入测试数据

postgres=# create database test;
CREATE DATABASE
postgres=# \c test
You are now connected to database "test" as user "postgres".
test=# CREATE TABLE test_data (id SERIAL PRIMARY KEY,name VARCHAR(100),email VARCHAR(100),age INTEGER,salary DECIMAL(10,2),is_active BOOLEAN,created_at TIMESTAMP
);INSERT INTO test_data (name, email, age, salary, is_active, created_at)
SELECT 'User_' || floor(random() * 1000)::INT,'user_' || floor(random() * 1000)::INT || '@example.com',floor(random() * 70 + 18)::INT,round((random() * 9000 + 1000)::NUMERIC, 2),random() > 0.5,NOW() - (random() * INTERVAL '365 days')
FROM generate_series(1, 100);
--查询验证
test=# select count(*) from test_data;count 
-------100

2.使用pg_dump备份并恢复
(1)创建备份目录

mkdir  -p /dbs/pg14/pgback

(2)pg_dump备份
备份方法 一:

postgres@pghost01 pgback]$ pg_dump test --file=/dbs/pg14/pgback/testdb.sql
--导出为tar文件方式
pg_dump --username=postgres --host=192.168.75.131 --port=5666 --dbname=test --format=tar --file=/dbs/pg14/pgback/testdb.tar

备份方法二:可以使用Insert进行导出

pg_dump test --inserts > /dbs/pg14/pgback/testdb01.sql 
--tar文件

备份方法三:

--可以进行导出压缩(文件为二进制,恢复需使用pg_restore恢复)
pg_dump --dbname=test --format=custom  --file=/dbs/pg14/pgback/testdb.dmp
--恢复方式
pg_restore --username=postgres --host=192.168.75.131 --port=5666  --dbname=test02 /dbs/pg14/pgback/testdb.dmp 

(3)创建新库执行恢复(方法一恢复)

postgres=# create database test02;
CREATE DATABASE
--恢复
[postgres@pghost01 pgback]$ psql --dbname=test02 --file=testdb.sql
SET
SET
SET
SET
SETset_config 
------------(1 row)SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE SEQUENCE
ALTER TABLE
ALTER SEQUENCE
ALTER TABLE
COPY 1
COPY 100setval 
--------100
(1 row)ALTER TABLE
--验证数据
[postgres@pghost01 pgback]$ psql
psql (14.11)
Type "help" for help.postgres=# \c test02
You are now connected to database "test02" as user "postgres".
test02=# \dtList of relationsSchema |   Name    | Type  |  Owner   
--------+-----------+-------+----------public | a         | table | postgrespublic | test_data | table | postgres
(2 rows)test02=# select count(*) from test_data;count 
-------100
(1 row)

二、pg_dumpall

1.导出全库

 pg_dumpall >/dbs/pg14/pgback/pg_all.sql

2.可单独导出role,tablespace ,owner 使用如下参数
-g, --globals-only dump only global objects, no databases
-O, --no-owner skip restoration of object ownership
-r, --roles-only dump only roles, no databases or tablespaces
-s, --schema-only dump only the schema, no data
-S, --superuser=NAME superuser user name to use in the dump
-t, --tablespaces-only dump only tablespaces, no databases or roles

注:pg_dumpall 导入的时候,不存在的会导入,存在的将不会导入

http://www.lryc.cn/news/589071.html

相关文章:

  • 算法与前端的可访问性
  • Linux系统调优和工具
  • OpenCV-Python Tutorial : A Candy from Official Main Page(三)
  • 【Linux系统】命令行参数和环境变量
  • 涨停板池,跌停板池,炸板池,次新股池,强势股池数据接口
  • SSM框架学习DI入门——day2
  • Flutter瀑布流布局深度实践:打造高性能动态图片墙
  • 基于Ruoyi和PostgreSQL的统一POI分类后台管理实战
  • IPSec和HTTPS对比(一)
  • 前端学习笔记:React.js中state和props的区别和联系
  • 数字影像新风口 入驻国际数字影像产业园解锁151项全周期服务
  • 20.如何在 Python 字典中找到最小值或最大值的键?
  • 关于list
  • 使用 PowerMockito 模拟 new A() 行为
  • 文心一言开源版部署及多维度测评实例
  • linux-线程互斥
  • 硬件设计学习DAY1——电源的分类
  • HAProxy 简介及配置文件详解
  • nlp论文:分本分类:《Bag of Tricks for Efficient Text Classification》
  • 渭河SQL题库-- 来自渭河数据分析
  • 5.数据归一化
  • Python爬虫实战:研究Mistune库相关技术
  • UE5多人MOBA+GAS 23、制作一个地面轰炸的技能
  • Typecho插件开发:实现文章字数统计与阅读时长计算功能
  • Docker镜像导入、导出操作指南
  • 大型语言模型(LLM)的技术面试题
  • 如何通过 WebSocket 接口订阅实时外汇行情数据(PHP 示例)
  • 深入探讨Hadoop YARN Federation:架构设计与实践应用
  • CentOS 8-BClinux8.2更换为阿里云镜像源:保姆级教程
  • Linux、Ubuntu和CentOS的关系与区别