暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL的SQL转储

原创 梧桐 2023-08-17
191

概述

SQL转储是创建一个由SQL命令组成的文件,重建与转储时状态一样的数据库,恢复时执行这些命令,从而恢复数据。

PostgreSQL提供了工具pg_dump,基本用法是:

pg_dump dbname > dumpfile

备份:

1 先建个目录,用于存储备份文件

mkdir /home/postgres/bak

2 在/usr/pgsql-14/bin下执行

pg_dump postgres > /home/postgres/bak/postgres

3 查看下转储结果

ll /home/postgres/bak
total 140648
-rw-rw-r--. 1 postgres postgres 144021225 Mar 19 10:58 postgres

成功

恢复

基本用法:psql dbname < dumpfile

1 登录数据库,删除原postgres库

$./psql
#\c abc  *先连接其它库
/*删库动作是危险,确认再确认后操作*/ #drop database postgres; #create database postgres; #\q

2 恢复

$psql postgres < /home/postgres/bak/postgres CREATE TABLE CREATE VIEW ALTER TABLE COPY 911201 ......

成功

转储全库数据

pg_dump每次只转储一个数据库,而且不会转储角色或表空间。为了支持便捷地转储一个数据库的全部内容。pg_dumpall备份给定集群中的每个表空间定义。保留了集群内的所有数据。基本用法是:

pg_dumpall > dumpfile

如:

./pg_dumpall > /home/postgres/bak/postgres0304 *postgres0304为自定义的备份文件名

查看一下

postgres=>ll /home/postgres/bak -rw-rw-r--. 1 postgres postgres 144029433 Mar 19 11:33 postgres

注意:需要执行 1 登录数据库,删除postgres库,参考上面的操作

全库数据恢复

可以使用psql恢复,用法

psql -f dumpfile dbname

示例:

./psql -f /home/postgres/bak/data0304 postgres

成功!

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论