数据库原理实验(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)数据库的备份与恢复的主要内容,如果未能解决你的问题,请参考以下文章