目录
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