零、前言
本文是基于阿里云ECS服务器进行的实践操作,操作系统版本:Red Hat Enterprise Linux 7PG数据库版本:PostgresSql 15
PG安装方式:yum
由于本人新接触pg数据,本次也是出于好奇,就对pg数据库的pg_dump备份操作进行了一次试验,操作过程可能有些不当,敬请谅解。
本文只供留做笔记或新手作为参考,不作为技术指导类文章。操作需具备pg基础及linux基本操作知识。
一、备份
--- 1.1、首先新建备份sql输出的目录并授权
# root用户操作
[root@wstech ~]# mkdir -p /usr/pgsql-15/backup
--- 1.2、备份操作
-- 切换postgres用户
su - postgres
cd /usr/pgsql-15/bin
--- 1.3、执行备份:注意文件目录——可执行命令的目录以及输出备份文件的目录,不然恢复的时候找不到。另外需要注意输出目录的磁盘余量。
-bash-4.2$ ./bin/pg_dump mydb > ./backup/mydb.sql
--- 1.4、查看文件
-bash-4.2$ cd pgsql-15/backup/
-bash-4.2$ ll
total 4
-rw-r--r-- 1 postgres postgres 1073 Aug 26 23:42 mydb.sql
--- 1.5、查看备份文件sql文本内容
-bash-4.2$ cat mydb.sql
--
-- PostgreSQL database dump
--
-- Dumped from database version 15.4
-- Dumped by pg_dump version 15.4
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;
SET default_tablespace = '';
SET default_table_access_method = heap;
--
-- Name: weather_info; Type: TABLE; Schema: public; Owner: postgres
--
CREATE TABLE public.weather_info (
city character varying(80),
temp_lo integer,
temp_hi integer,
prcp real,
date date
);
ALTER TABLE public.weather_info OWNER TO postgres;
--
-- Data for Name: weather_info; Type: TABLE DATA; Schema: public; Owner: postgres
--
COPY public.weather_info (city, temp_lo, temp_hi, prcp, date) FROM stdin;
US 46 50 0.25 1994-11-27
UK 43 57 0 1994-11-29
Hayward 37 54 \N 1994-11-29
\.
--
-- PostgreSQL database dump complete
--
--- 1.6、删除数据库mydb
-bash-4.2$ dropdb mydb;
-bash-4.2$ psql
psql (15.4)
Type "help" for help.
--- 1.7、查看是否删除成功(已经没有了,说明删除成功了)
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale Provider | Access privileges
-----------+----------+----------+-------------+-------------+------------+-----------------+-----------------------
dbname | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
dengyu | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | | libc | =c/postgres +
| | | | | | | postgres=CTc/postgres
(5 rows)
复制
二、恢复
--- 2.1、新建目标库newdb数据库
-bash-4.2$ createdb newdb;
--- 2.2、进入psql可执行文件目录(bin目录)
-bash-4.2$ cd /usr/pgsql-15/
-bash-4.2$ ls
backup bin lib share
--- 2.3、恢复
-- 执行恢复(注意可执行文件路径及备份文件路径)
-bash-4.2$ ./bin/psql newdb < ./backup/mydb.sql
SET
SET
SET
SET
SET
set_config
------------
(1 row)
SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
COPY 3
-bash-4.2$
--- 2.4、恢复完成后链接数据库
-bash-4.2$ psql
psql (15.4)
Type "help" for help.
--- 2.5、切换到newdb数据库
postgres=# \c newdb
You are now connected to database "newdb" as user "postgres".
--- 2.6、看数据库中表信息
newdb=# \d
List of relations
Schema | Name | Type | Owner
--------+--------------+-------+----------
public | weather_info | table | postgres
(1 row)
--- 2.7、查询newdb中恢复的表weather_info的数据
newdb=# select * from weather_info;
city | temp_lo | temp_hi | prcp | date
---------+---------+---------+------+------------
US | 46 | 50 | 0.25 | 1994-11-27
UK | 43 | 57 | 0 | 1994-11-29
Hayward | 37 | 54 | | 1994-11-29
(3 rows)
newdb=#
复制
备注:本文已发布至CSDN,文章链接:https://blog.csdn.net/dengyu810/article/details/132517644
转载请注明出处。(虽然很基础,但是技术的东西,只有会与不会,再简单,也要动手去实践、验证、记录)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
文章被以下合辑收录
评论
相关阅读
墨天轮个人数说知识点合集
JiekeXu
292次阅读
2025-04-01 15:56:03
Oracle RHEL 5.8 安装
Albert Tan DBA 之路
51次阅读
2025-03-11 11:32:33
Linux操作系统如何判断root用户密码的有效期
watson
39次阅读
2025-03-17 09:24:04
Linux中lsof命令详解使用
watson
36次阅读
2025-03-15 09:15:25
Linux操作系统安全加固---设置密码有效时间
watson
34次阅读
2025-03-21 17:19:05
在openHalo里体验PG 14内核新特性
彭冲
33次阅读
2025-04-06 11:41:52
Linux系统加固umask值
watson
31次阅读
2025-03-22 09:20:21
Linux中nmap用法和介绍
watson
29次阅读
2025-03-23 19:10:41
Linux中xfs文件系统的磁盘(quota)配额(上篇)
watson
27次阅读
2025-03-24 19:14:41
Linux日志管理-Rsyslog简介
IT那活儿
22次阅读
2025-03-31 10:00:43