数据库原理实验(openGauss)数据库的备份与恢复

Posted BkbK-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库原理实验(openGauss)数据库的备份与恢复相关的知识,希望对你有一定的参考价值。

数据库的备份与恢复

一、物理备份和恢复

实验准备:

切换到omm用户,以操作系统用户omm登录数据库主节点

su - omm

在这里插入图片描述

创建存储备份文件的文件夹

mkdir -p /home/omm/physical/backup

在这里插入图片描述

(1)物理备份

如果数据库服务没有启动,就启动数据库服务(务必以操作系统用户omm启动数据库服务,如果没有请切换用户)。

gs_om -t start 

在这里插入图片描述

将数据库进行物理备份

gs_basebackup -D /home/omm/physical/backup -p 26000

在这里插入图片描述

切换到存储备份文件夹查看备份文件

cd /home/omm/physical/backup
ls

在这里插入图片描述

(2)物理备份恢复

停止openGauss((务必以操作系统用户omm停止数据库服务,如果没有请切换用户)。

gs_om -t stop

在这里插入图片描述

清理原库中的所有或部分文件,对数据库文件进行破坏。

cd /gaussdb/data/
cd db1
rm -rf *

在这里插入图片描述

使用数据库系统用户权限从备份中还原需要的数据库文件,"/gaussdb/data/db1"中db1是数据库节点文件夹名称,不同数据库可能不同请查看确认。

cp -r /home/omm/physical/backup/.  /gaussdb/data/db1

备份时间大概需要几分钟,恢复后文件列表如下:

cd /gaussdb/data/db1
ls

在这里插入图片描述

重启数据库服务器, 并检查数据库内容,确保数据库已经恢复到所需的状态

gs_om -t start

在这里插入图片描述

二、逻辑备份和恢复

实验准备:

切换到omm用户,以操作系统用户omm登录数据库主节点。

su - omm      

在这里插入图片描述

创建存储备份文件的文件夹

mkdir -p /home/omm/logical/backup

在这里插入图片描述

(1)gs_dump备份

1.gs_dump备份示例1

执行gs_dump,导出的MPPDB_backup.sql文件格式为纯文本格式

gs_dump -U omm -W Bigdata@123 -f /home/omm/logical/backup/MPPDB_backup.sql -p 26000 postgres -F p

在这里插入图片描述

切换到backup文件夹,查看MPPDB_backup.sql文件

ll /home/omm/logical/backup/

在这里插入图片描述

cat /home/omm/logical/backup/MPPDB_backup.sql

在这里插入图片描述
显示如下内容:

--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET xmloption = content;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

--
-- Name: postgres; Type: COMMENT; Schema: -; Owner: omm
--

COMMENT ON DATABASE postgres IS 'default administrative connection database';


--
-- Name: tpcds; Type: SCHEMA; Schema: -; Owner: omm
--

CREATE SCHEMA tpcds;


ALTER SCHEMA tpcds OWNER TO omm;

SET search_path = tpcds;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: reason; Type: TABLE; Schema: tpcds; Owner: omm; Tablespace: 
--

CREATE TABLE reason (
    r_reason_sk integer NOT NULL,
    r_reason_id character(16) NOT NULL,
    r_reason_desc character varying(20)
)
WITH (orientation=row, compression=no);


ALTER TABLE tpcds.reason OWNER TO omm;

--
-- Data for Name: reason; Type: TABLE DATA; Schema: tpcds; Owner: omm
--

COPY reason (r_reason_sk, r_reason_id, r_reason_desc) FROM stdin;
\\.
;

--
-- Name: public; Type: ACL; Schema: -; Owner: omm
--

REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM omm;
GRANT CREATE,USAGE ON SCHEMA public TO omm;
GRANT USAGE ON SCHEMA public TO PUBLIC;


--
-- Name: tpcds; Type: ACL; Schema: -; Owner: omm
--

REVOKE ALL ON SCHEMA tpcds FROM PUBLIC;
REVOKE ALL ON SCHEMA tpcds FROM omm;
GRANT CREATE,USAGE ON SCHEMA tpcds TO omm;


--
-- Name: reason; Type: ACL; Schema: tpcds; Owner: omm
--

REVOKE ALL ON TABLE reason FROM PUBLIC;
REVOKE ALL ON TABLE reason FROM omm;
GRANT SELECT,INSERT,REFERENCES,DELETE,TRIGGER,TRUNCATE,UPDATE ON TABLE reason TO omm;


--
-- PostgreSQL database dump complete
--

2.gs_dump备份示例2

执行gs_dump,导出的MPPDB_backup.tar文件格式为tar格式

gs_dump -U omm -W Bigdata@123 -f  /home/omm/logical/backup/MPPDB_backup.tar -p 26000 postgres -F t	

在这里插入图片描述

查看生成的文件信息

ll /home/omm/logical/backup/

在这里插入图片描述

3.gs_dump备份示例3

执行gs_dump,导出的MPPDB_backup.dmp文件格式为自定义归档格式

gs_dump -U omm -W Bigdata@123 -f  /home/omm/logical/backup/MPPDB_backup.dmp -p 26000 postgres -F c

在这里插入图片描述

查看生成的文件信息

ll /home/omm/logical/backup/

在这里插入图片描述

4.gs_dump备份示例4

执行gs_dump,导出的MPPDB_backup文件格式为目录格式

gs_dump -U omm -W Bigdata@123 -f /home/omm/logical/backup/MPPDB_backup -p 26000  postgres -F d

在这里插入图片描述

查看生成的文件信息

ll /home/omm/logical/backup/

在这里插入图片描述

5.gs_dump备份示例5

执行gs_dump,导出postgres数据库的表(或视图、或序列、或外表)对象,例如表customer_t1

执行gs_dump,导出的表customer_t1

gs_dump -U omm -W Bigdata@123 -f /home/omm/logical/backup/bkp_shl2.sql -t public.customer_t1 -p 26000 postgres

在这里插入图片描述

查看生成的文件信息

ll /home/omm/logical/backup/

在这里插入图片描述
查看生成的sql文件

cat /home/omm/logical/backup/bkp_shl2.sql 

bkp_shl2.sql 为空文件

(2)gs_dumpall备份

使用gs_dumpall一次导出openGauss的所有数据库

gs_dumpall -f  /home/omm/logical/backup/bkp2.sql -p 26000

在这里插入图片描述
查看生成的文件信息

ll /home/omm/logical/backup/

在这里插入图片描述

(3)gs_restore导入

1.gs_restore导入示例1

执行gs_restore,将导出的MPPDB_backup.tar文件(tar格式)导入到db_tpcc01数据库

gs_restore /home/omm/logical/backup/MPPDB_backup.tar -p 26000 -d db_tpcc01

2.gs_restore导入示例2

执行gs_restore,将导出的MPPDB_backup.dmp文件(自定义归档格式)导入到db_tpcc02数据库

gs_restore /home/omm/logical/backup/MPPDB_backup.dmp -p 26000 -d db_tpcc02

3.gs_restore导入示例3

执行gs_restore,将导出的MPPDB_backup文件(目录格式)导入到db_tpcc03数据库

gs_restore /home/omm/logical/backup/MPPDB_backup -p 26000 -d db_tpcc03

4.gs_restore导入示例4

执行gs_restore,使用自定义归档格式的MPPDB_backup.dmp文件来进行如下导入操作。只导入PUBLIC模式下表customer_t1的定义。

执行gs_restore,只导入PUBLIC模式下表customer_t1的定义

gs_restore  /home/omm/logical/backup/MPPDB_backup.dmp -p 26000 -d db_tpcc04 -n public -t customer_t1

以上是关于数据库原理实验(openGauss)数据库的备份与恢复的主要内容,如果未能解决你的问题,请参考以下文章

数据库原理实验(openGauss)创建数据库表和索引

数据库原理实验(openGauss)实验报告

数据库原理实验(openGauss)金融场景化实验

数据库原理实验(openGauss)金融场景化实验

数据库原理实验(openGauss)视图

OpenGauss数据库日志管理