恢复PostgreSQL数据库备份至GuassDB 200

gs_restore是GaussDB 200提供的与gs_dump配套的导入工具。通过该工具,可将gs_dump导出的文件导入至数据库。这里通过postgreSQL的pg_dump命令备份数据库,然后通过gs_restore将其恢复到GuassDB 200中。

1、备份PostgreSQL

[[email protected] ~]$ pg_dump -Fc -C rhnschema >/var/satellite/bak/pg_rhnschema.dump 

2、GuassDB创建对应数据库以及用户

[[email protected] ~]$ gsql -d rhnschema -p 25308
gsql ((GaussDB Kernel V300R002C00 build 8a9c1eb6) compiled at 2019-08-01 18:47:38 commit 6093 last mr 10175 )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

rhnschema=# CREATE DATABASE rhnschema WITH TEMPLATE = template0 ENCODING = ‘UTF8‘ LC_COLLATE = ‘en_US.UTF-8‘ LC_CTYPE = ‘en_US.UTF-8‘;
rhnschema=# create role spwuser with sysadmin createdb password ‘abcABC12‘;
rhnschema=# alter database rhnschema owner to spwuser;

3、执行gs_restore进行恢复

[[email protected] ~]$ gs_restore -j 4 -p 25308 -d rhnschema /tmp/pg_rhnschema.dmp

-j--代表同时运行多个进程,这个里为4个;
-p--代表GuassDB端口号,默认为25308;
-d--连接数据库的dbname,并直接将数据导入到该数据库中。

4、查看数据倾斜状态

GaussDB 200是采用Shared-nothing架构的MPP(Massive Parallel Processor,大规模并发处理)系统,采用水平分布的方式,将业务数据表的元组按合适的分布策略分散存储在所有的DN。

当前产品支持复制(Replication)和散列(Hash)两种用户表分布策略。

  • Replication方式:在每一个DN上存储一份全量表数据。对于数据量比较小的表建议采取Replication分布策略。
  • Hash方式:采用这种分布方式,需要为用户表指定一个分布列(distribute key)。当插入一条记录时,系统会根据分布列的值进行hash运算后,将数据存储在对应的DN中。对于数据量比较大的表建议采取Hash分布策略。

对于Hash分布策略,如果分布列选择不当,可能导致数据倾斜。因此在采用Hash分布策略之后会对用户表的数据进行数据倾斜性检查,以确保数据在各个DN上是均匀分布的。一般情况下分布列都是选择键值重复度小,数据分布比较均匀的列。

  • 确认集群环境中的DN数

    rhnschema=# SELECT count(*) FROM pgxc_node where node_type=‘D‘;

  • 查看表的数据倾斜性
    以下查询两张较大表的数据倾斜性。
    rhnschema=# SELECT a.count,b.node_name FROM (SELECT count(*) AS count,xc_node_id FROM rhnchecksum GROUP BY xc_node_id) a, pgxc_node b WHERE a.xc_node_id=b.node_id ORDER BY a.count desc;



    根据查询结果得知,各DN上数据分布差小于10%,数据分布均衡。若各DN上数据分布差大于等于10%,表明数据分布倾斜,需要删除目标表,然后重新导入。

原文地址:https://blog.51cto.com/candon123/2445520

时间: 2024-08-30 00:43:25

恢复PostgreSQL数据库备份至GuassDB 200的相关文章

某电商项目PostgreSQL数据库备份恢复方案

某电商项目PostgreSQL数据库备份恢复方案: 下载地址:某电商项目PostgreSQL数据库备份恢复方案

PostgreSQL 数据库备份

PostgreSQL 数据库备份 pg_dump 一.备份还原 注意:命令在pg_dump目录下进行 1.备份test数据库 pg_dump -h 127.0.0.1 -p 5432 -U username -c -f db_back.sql test 2.还原数据到test2数据库 psql -U postgres -f /db_back.sql test2 二.命令详解 基本命令 pg_dump [OPTION]... [DBNAME] 注:数据库名放最后,不指定默认是系统变量PGDATAB

PostgreSQL数据库备份和恢复(脚本方式)

数据库备份: D:\Program Files\PostgreSQL\9.2\bin> pg_dump -h localhost -U postgres -C --column-inserts -f E:/dbname.sql dbname 数据库恢复: D:\Program Files\PostgreSQL\9.2\bin> psql -h localhost -U postgres -f E:/dbname.sql   注:D:\Program Files\PostgreSQL\9.2\b

pg_restore - 从一个由 pg_dump 创建的备份文件中恢复 PostgreSQL 数据库。

SYNOPSIS pg_restore [ option...] [ filename] DESCRIPTION 描述 pg_restore 是一种用于恢复由 pg_dump(1) 创建的任何非纯文本输出格式中的 PostgreSQL 数据库的应用. 它将发出必要的命令来重新构造数据库,以便于把它恢复成保存它的时候的样子. 归档(备份)文件还允许pg_restore 有选择地进行恢复, 甚至在恢复前重新排列条目的顺序.归档的文件设计成可以在不同的硬件体系之间移植. pg_restore 可以以两

postgresql数据库备份和恢复(超快)

PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰常有限.所以一直寻找完美的备份恢复方案. 梦里寻他千百度,伊人却在灯火阑珊处...其实PostgreSQL内置不少的工具,寻找的备份恢复方案就在其中:pg_dump,psql.这两个指令 在数据库的安装目录下,比如我自己本地安装的,路径形如:C:\Program Files\PostgreSQL\9

12 postgresql数据库备份和恢复

数据表结构备份与恢复 备份 1.找到postgres 安装目录,在找到bin文件夹,会看到一堆exe后缀的文件,用win+r 打开cmd,将pg_dump.exe 拖进cmd黑窗口中 2.基本语法:-h  代表地址 (远程连接用,本地导出无需此项) -U 代表用户  -d 代表数据库  -s 代表存储位置 注:1.-s > 后,不写完整路径的话,存入文件到C盘-用户-Administrator 下 2.不加-s,是整库备份,包括数据,加-s,只导出表结构 恢复 1.找到postgres 安装目录

[完整版]Postgresql 数据库 备份以及恢复的过程

0. 准备工作 linux机器上面 必须安装上pg数据库 然后 需要将 pg的主程序目录 放到环境变量里面去 便于执行命令. 1. 先备份 1. 备份目标数据库: pg_dump -h 10.24.193.25 -U postgres -p 5432 -F c -f /TestPG/TestDS0816.dmp TestDS0816 # -h 小写 指向目标服务器 # -U 大写 使用的用户 # -p 小写 pg 数据库使用的端口. # -F 指代导出格式. c 只的就是 自定义的pg_dump

postgresql数据库备份

一.工具备份数据 打开windows下的命令窗口:开始->cmd->安装数据库的目录->进入bin目录: 导出命令:pg_dump –h localhost –U postgres –p 5432 –d postgres  –f “D:/test.dmp” -h:服务器地址: -p:端口号: -U:这里的“U”要大写,用户身分 -d:数据库名称: -f:文件输出的目录和名称: 恢复数据: psql -h localhost -U postgres -d new_db  -f "

如何用sql server数据库恢复.bak数据库备份

@hcy(黄灿奕) 之前有两次都恢复不了,折腾了很长时间,这一次碰到这样的问题,居然又忘了,又捣鼓了很长时间,现在记下来 1.右击SQL Server 2008实例下的“数据库”文件夹.就是与安全性.服务器对象同级的目录.选择新建数据库. 2.添加数据库名称,名称与备份的数据库名称一致,点击确定. 3.在“数据库”点击右键,选择还原数据库,在目标数据库选择刚才新建的数据库,选择源设备,选择浏览,备份位置选择添加.知道指定的bak文件,点击确定.把导入的bak文件勾选上,点击确定.数据就导入成功.