GreenPlum 数据备份与恢复
GreenPlum数据备份与恢复
gp_dump是GP并行备份的备份工具,在运行gp_dump的时候master与所有的segment节点都开始备份(standby节点和segment节点中的mirror实例不参加备份),数据文件都是放在各个的节点服务器上,消耗的时间和数据量最大的、消耗时间最长的节点有关。
常用的gp_dump参数有:
-h GPmaster主机名
-p GPmaster端口
-U 用户名
-t/--table 后接表名,只备份匹配的表
-n/--schema 备份的schema名字
--gp-d 备份的数据目录
--gp-r 备份report目录
--gp-k 备份文件使用的时间戳
12345678
更多可通过命令gp_dump --help显示。
与gp_dump对应的数据恢复操作,使用的命令是gp_restore.
常用的gp_restore参数有:
-h GPmaster主机名
-p GPmaster端口
-U 用户名
-d/--dbname 数据库名
--gp-d 要恢复的数据所在目录
--gp-r report文件所在目录
--gp-k 恢复文件使用的时间戳
--status 状态文件所在位置
12345678
更多可通过命令gp_restore --help显示。
常用的备份与恢复方式有表,数据库,schema的备份与恢复。
表备份与恢复
表备份
1.创建备份路径
mkdir -p /opt/gpbackup/
chown gpadmin:gpadmin /opt/gpbackup/
12
2.在gpadmin用户下执行
gp_dump test_db --table=test_table --gp-d=/opt/gpbackup/ --gp-r=/opt/gpbackup/
1
需要阅读backup report,并记录备份的时间戳(timestamp key),以在数据恢复时使用。
数据库名为test_db,表名为test_table。
3.手动备份pg_hba.conf文件,执行如下:
cd $MASTER_DATA_DIRECTORY
cp pg_hba.conf /opt/gpbackup/
12
表恢复
注:在恢复的时候,GP的segment必须与备份的时候一致
1.表恢复之前,要确保要导入数据的集群中存在数据库test_db,且不能存在表test_table,否则会报错。
2.表恢复,执行命令:
gp_restore -d test_db --gp-d=/opt/gpbackup/ --gp-r=/opt/gpbackup/ --gp-k=时间戳
1
3.手动恢复备份的pg_hba.conf文件
数据库备份与恢复
与表备份与恢复相似,只不过备份时少了参数–table。
数据库恢复前要确保新建一个名为test_db(与备份的数据库名相同)的数据库。
schema备份与恢复
步骤与表备份与恢复相同,以下只列出备份与恢复命令
备份:
gp_dump test_db -n test_schema --gp-d=/opt/gpbackup/ --gp-r=/opt/gpbackup/
1
test_schema为test_db中的一个模式
恢复:
恢复前要确保倒数数据的集群没有名为test_schema的schema,若有的话先删除。
恢复命令:
gp_restore -d test_db --gp-d=/opt/gpbackup/ --status=/opt/gpbackup/ --gp-r=/opt/gpbackup/ --gp-k=时间戳
1
注意要加上status参数。
参考:http://blog.itpub.net/29989552/viewspace-2127566/
------------------------------------------------------------------------------------------------------------------------------------------------
以下内容转载自:http://mamicode.com/info-detail-2306588.html
备份
并行备份(gp_dump)
GP 同时备份 Master 和所有活动的 Segment 实例,备份消耗的时间与系统中实例的数量没有关系。在 Master 主机上备份所有 DDL 文件和 GP 相关的数据字典表,每个 Segment 备份各自的数据。所有备份文件组成一个完整的备份集合,通过唯一 14 位数字的时间戳来识别。
gp_dump 的使用可参考上文。
gp_dump 命令将在数据目录生成如下的备份文件:
在 Master 主机上
gp_catalog_1_<dbid>_<timestamp> -- 数据字典表
gp_cdatabase_1_<dbid>_<timestamp> -- 创建数据库 SQL 语句
gp_dump_1_<dbid>_<timestamp> -- 创建 schema SQL 语句
gp_dump_1_<dbid>_<timestamp>_post_data -- 创建 Table SQL 语句
1234
在 Segment 主机上
gp_dump_0_ <dbid>_<timestamp> -- 用户数据文件
gp_dump_status_0_ <dbid>_<timestamp> -- 日志文件
12
并行备份(gpcrondump)
gpcrondump命令是对gp_dump命令的封装。
在 Master 和 Segment 的数据目录创建备份文件:
Segment 数据的备份使用 gzip 压缩格式,默认将数据备份自 <data_directory>/db_dumps/下。
<data_directory>/db_dumps/YYYYMMDD
1
使用 CRON 调度备份操作,定义一个调用 gpcrondump 的 crontab 条目。
例如,在午夜1点备份 testdw 数据库
0 1 0 * * * gpadmin source $GPHOME/greenplum_path.sh;
gpcrondump –x testdw –c –g –G –a –q >> gp_testdwdump.log;
12
备份数据库mydatabase
gpcrondump -x mydatabase -c -g -G
1
非并行备份(pg_dump)
GP 依然支持常规的 PostgreSQL 备份命令 pg_dump 和 pg_dumpall,备份将在 Master 主机上创建一个包含所有 Segment 数据的大的备份文件。因此,不适合于全部数据备份,适用于小部分数据的迁移或备份。
pg_dump testdw > testdw.sql; -- 导出 SQL 脚本文件
pg_dump –Ft –gp-syntax testdw > testdw.tar; -- 导出包含分布键信息的 tar 文件
pg_dump –Fc testdw > testdw.dump; -- 导出到定制格式的归档文件
pg_dump –t tb_cp_02 testdw > tb_cp_02_testdw.sql; -- 导出单个表
pg_dump –t ‘"MixedTableName"‘ testdw > tab_testdw.sql; -- 导出混合大小写名称的表
pg_dumpall > all.dump; -- 集群备份
123456
恢复
并行恢复(gp_restore)
参考上文。
并行恢复(gpdbrestore)
gpdbrestore 命令是对 gp_restore 命令的包装,提供更灵活的选项,使用 gpcrondump 备份生成的备份文件来进行恢复。
在 Master 主机上执行 gpdbrestore 命令(-R 指定备份文件所在的主机名和路径)
gpdbrestore –R archive_host:/gpdb/backups/archive/20131231;
1
非并行恢复(pg_restore)
使用由 pg_dump 或 pg_dumpall 创建的备份文件来恢复,使用非并行恢复可以实现异构系统恢复。
使用 pg_restore 或 psql 进行恢复
pg_restore –d testdw testdw.dump;
psql -d testdw –f tb_cp_02_testdw.sql;
12
在决定使用恢复程序时,需确定以下几个问题:
1.备份文件在哪里?
如果备份文件位于 gp_dump 生成的原始位置,可以简单的通过 gp_restore 命令恢复;如果备份文件已经移除 GP 集群,使用 gpdbrestore 来恢复。
2.是否需要恢复整个系统,还是只恢复数据?
如果 GP 仍在运行并仅需要恢复数据,使用 gp_restore 或 gpdbrestore 命令来恢复;如果丢失了整个集群或者需要从备份来重建整个集群,使用 gpinitsystem 命令。
3.是否恢复的系统与备份时的系统具有相同数量的 Instance?
如果相同,使用 gp_restore 或 gpdbrestore 命令来恢复; 如果是在不同集群间迁移,必须使用非并行恢复。
非并行恢复异构系统
通过master节点进行备份,确保segment的备份文件被拷贝到master节点目录下。
确保具备了全部的备份文件,包括 Master 和每一个 Segment 的文件,所有的文件具有相同的时间戳标识符。
1. 创建需要恢复的数据库
createdb testdw;
2. 装载 Master 备份文件以恢复数据库对象
psql -d testdw -f /data/backups/gp_dump_1_1_20131231001327;
3. 装载每个 Segment 的备份文件以恢复数据
psql –d testdw -f /data/backups/gp_dump_0_2_20131231001327;
psql –d testdw -f /data/backups/gp_dump_0_3_20131231001327;
4. 恢复 Table 相关的对象,比如索引、触发器、主键约束等
psql –d testdw -f /data/backups/ gp_dump_1_1_20131231001327_post_data;
原文:https://blog.csdn.net/hmxz2nn/article/details/83032164
GreenPlum 数据备份与恢复的更多相关文章
- InfluxDB数据备份与恢复
数据备份与恢复 Example:(192.167.8.13 InfluxDB:DeviceHistory备份到192.167.8.52,然后恢复到该服务器上) steps: login 192 ...
- redis基础操作~~数据备份与恢复、数据安全、性能测试、客户端连接、分区
数据备份与恢复 数据备份redis save 命令用于创建当前数据库的备份. redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文 ...
- GreenPlum数据加载
1. copy命令 对于数据加载,GreenPlum数据库提供copy工具,copy工具源于PostgreSQL数据库,copy命令支持文件与表之间的数据加载和表对文件的数据卸载.使用copy命令进行 ...
- Mysql 数据备份与恢复,用户创建,授权
Mysql 数据备份与恢复,用户创建,授权 1. Mysqldump >outfile.sql 2. Mysql –uxxx –pxxx < backfile.sql 3. Create ...
- Redis之数据备份与恢复
Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 re ...
- Redis 数据备份与恢复,安全,性能测试,客户端连接,管道技术,分区(四)
Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 re ...
- redis开启持久化、redis 数据备份与恢复
redis持久化介绍 https://segmentfault.com/a/1190000015897415 1. 开启aof持久化.以守护进程启动.远程访问先把配置文件拷贝一份到/etc/redi ...
- Database基础(四):密码恢复及设置、 用户授权及撤销、数据备份与恢复、MySQL管理工具
一.密码恢复及设置 目标: 本案例要求熟悉MySQL管理密码的控制,完成以下任务操作: 练习重置MySQL管理密码的操作 通过正常途径设置MySQL数据库的管理密码 步骤: 步骤一:重置MySQL管理 ...
- 数据备份与恢复 半持久化 全持久化 fork aof rdb Backing up Disaster recovery 备份 容灾
Redis数据备份与恢复 - 流年晕开时光 - 博客园 https://www.cnblogs.com/deny/p/11531355.html Redis数据备份与恢复 Redis所有数据都是保存在 ...
随机推荐
- NOP法破解
目录 步骤 步骤 OD载入目标软件,汇编窗口右键搜索字符串,发现错误类提示字符串,双击该字符串来到该段代码位置. 向上寻找到跳转到本段错误提示代码的跳转指令,用NOP指令填充跳转指令. 保存修改后的代 ...
- 用Onenote写博客日志
进入OneNote,选中要发布博客的分区,然后点击菜单栏中的[文件]->[发送]->[发送至博客] 这时候会启动word程序弹出下面的对话框(如果你从未设置过),点击[立即 ...
- Matlab匿名函数,子函数,私有函数,重载函数,eval和feval函数
匿名函数,子函数,私有函数等函数类型 匿名函数: 匿名函数没有函数名,也不是.m文件,只包含一个表达式和输入输出参数. Fxy=@(x,y)x.^y+3*x*y x,y为输入输入参数,Fxy为函数名 ...
- C#避免WinForm窗体假死
WinForm窗体在使用过程中如果因为程序等待时间太久而导致窗体本身假死无法控制,会严重影响用户的体验,这种情况大多是UI线程被耗时长的代码操作占用所致,可以新开一个线程用来完成耗时长的操作,然后再将 ...
- Python中函数的知识点
1.函数的定义与调用 2.函数的参数 3.函数的返回值 1. 1.1.函数的定义: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 1.2.定义一个函数: 规则: 函数代码块以 ...
- extjs layout 最灵活的页面布局样式
当你在页面布局的时候,遇到页面元素较多,不知如何完美布局... 可以试试下面这个类型,万能布局类型. var panel = new Ext.Panel({ renderTo:Ext.getBody( ...
- Pandas-数据处理-基础部分
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/11014882.html jupyter 代码 ...
- 使用SAP Leonardo上的机器学习服务提取图片的特征向量
要想提取图片的特征向量,首先得知道特征向量是什么. 我们假设这样一个服务场景,技师上门维修某设备,发现上面某零件损坏了,假设这位技师由于种种原因,没能根据自己的经验识别出这个零件的型号.此时技师掏出自 ...
- python3之面向对象编程理解
面向对象主要有三个特征:封装,继承,多态度. 一.封装 定义类语 class Animal(): class为定义类的关键字,后面跟名字(): python命名规范建议:类一般首字母单词大写,属性变量 ...
- Vue父组件向子组件传递方法(自定义方法)并且子组件向父组件传递数据
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...