Greenplum使用pg_dump最备份数据库

2019-08-05 14:43:41 浏览数 (1)

1 说明

Greenplum 支持逻辑备份。我们使用Greenplum自带的pg_dump命令实现逻辑备份功能,导出备份文件,再通过 psql 导入到Greenplum中,达到备份的效果。

2 备份数据

2.1 创建需要备份的数据库

创建dump1数据库,并在数据库中创建test1的schema,创建几张表并插入数据

2.2 执行备份数据库的命令

pg_dump -U username -h hostname -p port databasename -f filename

参数说明如下:

username:本地数据库用户名 hostname:本地数据库主机名,如果是在本地数据库主机登录,可以使用 localhost port:本地数据库端口号 databasename:要备份的本地数据库名 filename:要生成的备份文件名称

实例:

$ pg_dump -h 192.168.100.55 -U gpmon -p 2345 dump1 -f dump1.sql Password:

2.3 查看备份出来的数据格式

$ head -n 40 dump1.sql -- -- Greenplum Database database dump --

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

SET default_with_oids = false;

-- -- Name: test1; Type: SCHEMA; Schema: -; Owner: gpmon --

CREATE SCHEMA test1;

ALTER SCHEMA test1 OWNER TO gpmon;

SET search_path = public, pg_catalog;

SET default_tablespace = '';

-- -- Name: test1; Type: TABLE; Schema: public; Owner: gpmon; Tablespace: --

CREATE TABLE test1 ( id integer, name character varying(255) ) DISTRIBUTED RANDOMLY;

ALTER TABLE public.test1 OWNER TO gpmon;

-- -- Data for Name: test1; Type: TABLE DATA; Schema: public; Owner: gpmon

**********************

3 恢复备份数据

3.1 创建需要恢复的数据库

CREATE DATABASE dump2;

3.2 导入备份数据

psql -U username -h hostname -d desintationdb -p port -f dumpfilename.sql

参数说明如下: username:RDS 上的 PostgreSQL 数据库用户名 hostname:RDS 上的 PostgreSQL 数据库地址 port:RDS 上的 PostgreSQL 数据库端口号 databasename:RDS 上的 PostgreSQL 数据库名 filename:本地备份数据文件名

实例:

$ psql -U gpmon -h 192.168.100.55 -d dump2 -p 2345 -f dump1.sql Password for user gpmon: SET SET SET SET SET SET CREATE SCHEMA ALTER SCHEMA SET SET CREATE TABLE ALTER TABLE CREATE TABLE ALTER TABLE SET CREATE TABLE ALTER TABLE REVOKE REVOKE GRANT GRANT

0 人点赞