广告
返回顶部
首页 > 资讯 > 数据库 >PostgreSQL数据库备份和还原(七)
  • 504
分享到

PostgreSQL数据库备份和还原(七)

2024-04-02 19:04:59 504人浏览 薄情痞子
摘要

备份数据库三种方法:sql转储文件系统级备份。持续存档。 SQL转储使用SQL命令生成一个文件。备份用法: pg_dump dbname>dumpfile pg_dump是一个常规的

备份数据库三种方法:
sql转储
文件系统级备份。
持续存档。

    1. SQL转储
      使用SQL命令生成一个文件。
      备份用法: pg_dump dbname>dumpfile

    pg_dump是一个常规的 postgresql客户端应用程序.
    pg_dump不能以特殊权限运行,必须具有对要备份的所有表的读访问权限.
    pg_dump连接受普通客户端身份验证机制的约束。
    pg_dump 不转储有关角色或表空间的信息。

    恢复用法: psql dbname < dumpfile
    在执行psql恢复之前,需要先创建数据库
    在还原SQL转储之前,所有拥有对象或被授予对转储数据库中对象的权限的用户必须已存在。

    恢复时遇到SQL错误后, 退出恢复:
    psql --set ON_ERROR_STOP=on dbname<dumpfile

    恢复备份后,在每个数据库上运行ANALYZE,以便查询优化器具有有用的统计信息。

  • 1.1 ANALYZE 分析
    ANALYZE收集有关数据库中表的内容的统计信息,
    select * from pg_statistic;
    ANALYZE [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ]
    参数:
    VERBOSE: 启用进度消息的显示。
    table_name : 要分析的特定表的名称。
    column_name : 要分析的特定列的名称。

  • 1.2 使用pg_dumpall
    pg_dumpall备份给定集群中的每个数据库,还保留集群范围的数据,如角色和表空间定义。
    用法: pg_dumpall> dumpfile
    恢复: psql -f dumpfilepostgres
    在恢复pg_dumpall转储时始终需要具有数据库超级用户访问权限,因为这需要恢复角色和表空间信息。
    使用pg_dumpall --globals-only选项单独转储群集范围的数据.

  • 1.3 处理大型数据库:
    使用压缩转储: pg_dump dbname| gzip> filename.gz
    恢复: gunzip -c filename.gz | PSQLdbname
    或者: cat filename.gz | gunzip | PSQLdbname

    使用split: 制作1兆字节的块: pg_dump dbname| split -b 1m - filename
    使用pg_dump的自定义转储格式: pg_dump -Fc dbname>filename
    自定义转储格式会在将数据写入输出文件时压缩数据.
    自定义格式转储,必须使用pg_restore进行恢复: pg_restore -d dbname filename

    使用pg_dump的并行转储功能:
    使用-j参数控制并行度。并行转储仅支持“目录”归档格式。
    pg_dump -j num-F d -fout.dir dbname
    使用pg_restore -j并行还原转储。这适用于“自定义”或“目录”归档模式的任何归档,无论是否已创建pg_dump -j.

    1. 文件系统级备份:
      直接复制PostgreSQL用于在数据库中存储数据的文件
      tar -cf backup.tar /services/install/postgresql10/data/

    必须关闭数据库服务器才能获得可用的备份,在恢复数据之前关闭服务器。
    文件系统备份仅适用于整个数据库集群的完整备份和还原。

    使用rsync 执行文件系统备份.需要关闭数据库服务。
    文件系统备份通常比SQL转储大,进行文件系统备份可能会更快。

    1. 连续存档和时间点恢复(PITR):
      postgresql在数据目录中维护一个预写日志pg_wal。
      日志记录对数据库的数据文件所做的每个更改。此日志主要用于崩溃安全目的:如果系统崩溃,可以通过“ 重放 ”将数据库恢复到一致性 自上一个检查点以来所做的日志条目。

    将文件系统级备份与WAL文件的备份相结合。
    恢复时,先恢复文件系统备份,然后从备份的WAL文件重放以使系统进入当前状态。
    优点:
    不需要完全一致的文件系统备份。备份中的不一致都将通过日志重放进行更正。
    只需继续存档WAL文件可实现连续备份。
    可在任何时候停止重放,并拥有当时数据库的一致快照,支持时间点恢复.

    注意:
    只支持恢复整个数据库集群。需要大量的归档存储,基本备份很大, 高可靠性的首选备份技术。
    连续归档(在线备份) 需要连续的归档WAL文件。

  • 3.1 设置WAL归档:
    系统将此序列物理划分为WAL 段文件,通常为16MB.
    段文件的数字名称反映了它们在抽象WAL序列中的位置.

    启用WAL归档:
    将wal_level配置参数设置为replica
    arcHive_mode设置为 on
    并指定要在archive_command 配置参数中使用的shell命令
    这些设置在postgresql.conf文件中。

    archive命令仅在已完成的WAL段上调用。
    限制未归档数据的使用时间: 设置archive_timeout 以强制服务器至少经常切换到新的WAL段文件。archive_timeout一分钟左右的设置通常是合理的。

    注意:
    WAL归档会恢复对PostgreSQL数据库中的数据所做的任何修改,但不会恢复对配置文件所做的更改。
    wal_level只能在服务器启动时更改。archive_command可以使用配置文件重新加载来更改。

  • 3.2 进行基本备份:
    使用pg_basebackup工具. 备份可以是文件或者tar归档。
    full_page_writes禁用时,备份运行时性能下降。full_page_writes在备份模式期间有效地强制执行备份。

    使用备份:
    需要保留在文件系统备份期间和之后生成的所有WAL段文件
    基本备份过程会创建一个备份历史记录文件,该文件立即存储在WAL归档区域中。此文件以文件系统备份所需的第一个WAL段文件命名。

  • 3.3 使用低级api进行基本备份
    低级基本备份可以以非独占或独占的方式进行。建议使用非独占方法。

    非独占低级备份是允许其他并发备份运行的备份:
    1.确保已启用WAL存档并正常工作。
    2.作为具有运行pg_start_backup的权限的用户连接到服务器:
    SELECT pg_start_backup('label',false,false);
    label 用来唯一标识此备份操作的任何字符串
    false 默认情况下,pg_start_backup时间比较长,因为执行检查点,并且检查点所需的I / O将在很长一段时间内展开,默认情况下是检查点间隔的一半.可以最大限度地减少对查询处理的影响.
    false : 告诉pg_start_backup发起非排他性基础备份。

    3. SELECT * FROM pg_stop_backup(false,true);
        终止备份模式
  • 3.4 备份数据目录:
    pg_dynshmem/,pg_notify/,pg_serial/,pg_snapshots/,pg_stat_tmp/,和pg_subtrans/会在postmaster启动时进行初始化。
    从备份中省略pg_wal/,postmaster.pid和postmaster.opts,pg_replslot,pg_dynshmem/,pg_notify/,pg_serial/,pg_snapshots/,pg_stat_tmp/,和pg_subtrans等目录。
    pgsql_tmp可以从备份中省略任何以文件或目录开头的文件或目录。

    服务器停止时,无法使用pg_start_backup或pg_stop_backup。

您可能感兴趣的文档:

--结束END--

本文标题: PostgreSQL数据库备份和还原(七)

本文链接: https://www.lsjlt.com/news/41852.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PostgreSQL数据库备份和还原(七)
    备份数据库三种方法:SQL转储文件系统级备份。持续存档。 SQL转储使用SQL命令生成一个文件。备份用法: pg_dump dbname>dumpfile pg_dump是一个常规的...
    99+
    2022-10-18
  • PostgreSQL 数据库备份与还原
    PostgreSQL 数据库备份与还原 目录 备份 还原 栗子 备份 PostgreSQL提供的一个工具pg_dump,逻辑导出数据,生成sql文件或其他格式文件,pg_dump是一个客户端工具,可以远程或本地导出逻辑数据,恢复...
    99+
    2015-11-20
    PostgreSQL 数据库备份与还原
  • mysql数据库备份和还原
    备份MySQL数据库的命令 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql 备份MySQL数据库为带删...
    99+
    2022-05-27
    数据库备份 mysql
  • mysql备份和还原数据库
    备份数据库:/usr/local/kkmail/service/mysql/bin/mysqldump -u kkmail -p --databases kkmail |gzip>20180309.s...
    99+
    2022-10-18
  • Postgresql数据-导出备份-导入还原
     导出整个数据库 pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名)   >datadum.sql  导出某个表 pg_dump -h localhost -U postgres...
    99+
    2021-05-17
    Postgresql数据-导出备份-导入还原
  • 03 SQL2005数据库备份和还原
    1、数据库备份的意义硬件故障或误操作2、数据库的恢复模式(数据库属性——选项——恢复模式)完整:可恢复到数据库故障时间点或指定时间点大容量日志:数据库日志不记录对数据修改的时间,效率高,通过日志只能恢复到故障时间点简单:事务日志,将不活跃的...
    99+
    2019-04-18
    03 SQL2005数据库备份和还原 数据库入门 数据库基础教程 数据库 mysql
  • Oracle备份、还原数据库
    备份数据库 创建备份目录(用sys账号),若已创建备份目录,此步可忽略 create directory db_bak as "D: ECIMS_DB" --查看创建的目录 select * from dba_directo...
    99+
    2018-09-04
    Oracle备份 还原数据库
  • SQLServer之master数据库备份和还原
    知识部分系统数据库:SQL Server 2008 R2默认包括四个系统数据库,分别是master、model、msdb、tempdb。其中master数据库用以记录所有系统级别的信息、所有的登陆账户和系统...
    99+
    2022-10-18
  • SQL server数据库的备份和还原
    SQL server的备份有如下三种:1、完整备份:完整备份包括对整个数据库、部分事务日志、数据库结构和文件结构的备份。它代表的是备份完成时刻的数据库。是所有备份类型的基础。 2、差异备份:是指对上一次完...
    99+
    2022-10-18
  • 如何备份和还原MSSQL数据库
    这篇文章主要讲解了“如何备份和还原MSSQL数据库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何备份和还原MSSQL数据库”吧! 如何备份、还原MSS...
    99+
    2022-10-18
  • HANA数据库备份查看和还原
    1.检查trace文件cat backup.log |grep "/usr/sap/HEQ/HDB00/backup/data/"2.通过studio检查catalog3.查看视图M_BACKUP_CATA...
    99+
    2022-10-18
  • etcd数据库备份与还原
    1. 备份etcd 1.1 手动备份数据 etcdctl backup --data-dir /var/lib/etcd/default.etcd --backup-dir 备份目录 1.2 脚本备份数据 ...
    99+
    2022-10-18
  • 达梦数据库备份还原
    备份还原    1 物理备份与还原    2 1、脱机备份与还原(冷备)    2 1.1、console工具备份    2 1.2、console工具还原与恢复    3 1.3、dmrman工具备份    5 1.4、dmrman工具...
    99+
    2016-11-14
    达梦数据库备份还原 数据库入门 数据库基础教程 数据库 mysql
  • 备份和还原MySQL数据库的方法
    备份和还原MySQL数据库的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧! MySQL是一个永久存储数据的数...
    99+
    2022-10-18
  • 数据库的备份与还原系列——全备份+两增量的备份与还原
    场景:周日全备份,周一,周二增量备份,周三出现问题,数分钟后发现; 数据库的安装: yum install mariadb-server -y systemctl s...
    99+
    2022-10-18
  • Oracle数据库备份还原详解
    理论准备 oracle 数据库提供expdp和impdp命令用于备份和恢复数据库。 具体可查阅oracle官方文档 https://docs.oracle.com/en/databa...
    99+
    2022-11-12
  • SQL Server 数据库备份与还原
    1、相同SQL Server版本(2008为例)之间数据库备份与还原(1)数据库备份相同SQL Server服务器版本之间数据库的备份还原操作相对来说比较简单。首先找到需要备份的数据库实例,【右键】->...
    99+
    2022-10-18
  • 使用SQLyog备份还原数据库
    1、点击“备份/导出”2、默认选中“包括CREATE DataBase语句”,这样的话,在目标服务器直接把这个sql文件导入后就可以和源数据库名一样的数据库,但是使用SQLyog不能修改数据库名导出的insert语句,是插入多条数据使用一条...
    99+
    2021-04-11
    使用SQLyog备份还原数据库 数据库入门 数据库基础教程 数据库 mysql
  • XtraBackup 备份还原 MySQL 5.6 数据库
    下载XtraBackup:# wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.6/binary/tarbal...
    99+
    2022-10-18
  • Oracle数据库备份如何还原
    这篇文章主要介绍了Oracle数据库备份如何还原,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。oracle 数据库提供expdp和impdp命令用于备份和恢复数据库。具体可查...
    99+
    2023-06-21
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作