`

Deepgreen & Greenplum DBA小白普及课之三(备份问题解答)

阅读更多
原文链接:http://click.aliyun.com/m/24829/
摘要: 不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力。本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案,本篇主要讲备份方面的问题。

不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力。本文参考Pivotal官方FAQ,对在管理Deepgreen & Greenplum时经常会遇到的问题提出解决思路/答案,本篇主要讲备份方面的问题。希望对大家有所帮助,如果有朋友有更多的问题分享,请留言,我将一并整理。

1.简单描述一下Deepgreen & Greenplum的备份架构?
当我们执行全库备份操作时,后台进行了如下操作:
检查备份命令语法
检查备份目录是否存在,如果不存在便创建目录
检查备份文件存放目录大小是否能够放下备份文件
如果上面三条都满足,紧接着开始备份数据库
在pg_class上唤起排它锁,阻止DDL操作和另外的备份动作
一旦DDL语句备份完成,在所有用户表上唤起共享锁
pg_class上的排它锁释放
备份请求被下发到集群中的所有Segment节点
备份请求开始并行备份各个Segment的数据
备份完成后,请求和用户表上的锁都被释放
备份完成
2.简单描述一下Deepgreen & Greenplum增量备份的架构?
当我们执行增量备份操作时,后台进行了如下操作:
每次执行数据库备份时,gpcrondump工具为AO/CO表创建状态文件
这些状态文件用来记录数据库中AO/CO表的元组/行的数量
这些状态文件也记录了这些表的操作元数据(truncate,alter,etc)
状态文件不存储heap表的相关信息,因为每次增量备份都备份所有heap表数据
当我们执行增量备份时,gpcrondump以上次生成的状态文件为准,去对比每一个表的变化
如果某张表自上次备份后状态有变化,就去备份这部分变化数据
以上步骤只对AO和CO表备份试用
AO-Append-optimized,CO-Column-oriented
3.数据库提供哪些备份和恢复工具?
主要分为以下四种,具体试用方法请参考官方文档:
gpcrondump/gpdbrestore
gp_dump/gp_restore
pg_dump/pg_restore
copy..to../copy..from..
4.上面提到的这几种工具在什么情境下使用?
gpcrondump/gpdbrestore - 用于并行备份或恢复,可与Linux定时任务配合使用
gp_dump/gp_restore - 用于并行备份或恢复
pg_dump/pg_restore - 用于非并行备份或恢复,少量数据备份
copy..to../copy..from.. - 用于非并行备份或恢复,多用于导出/导入平面数据文件,例如csv
5.如何备份获得一个表的DDL语句?
可以使用pg_dump导出,例如:
pg_dump  -t njonna.accounts -s -f ddl_accounts.sql

Where:

-f  ddl_accounts.sql is output file.
-t  njonna.accounts is table name with schema njonna.
-s  dump only schema no data

6.gpcrondump和gp_dump有什么不同?
gpcrondump在gp_dump基础上包装而成,可以直接调用,也可以在crontab定时任务中调用。
7. 如何备份所有数据库的schema?
使用pg_dumpall工具可以把所有数据库的信息导出来,其中也包含资源队列和角色,导出所有数据库的schema可以用下面例句:
pg_dumpall --gp-syntax --schema-only > db_dump.sql

8.如何复制一个数据库?
下面命令可以创建一个数据库的全复制:
CREATE DATABASE new_dbname TEMPLATE old_dbname;

9.如何在Linux定时任务中配置一个定期备份?
gpcrondump工具是gp_dump的封装,可以与crontab定时任务配合使用。下面语句展示了一项每天凌晨0点1分执行一次备份的例子,执行前注意初始化数据库的环境变量:
source /home/gpadmin/.bashrc
01 0 * * * gpadmin gpcrondump -x test -c -g -G -a -q >> gp_test.log

10.gp_dump和pg_dump的不同是什么?
pg_dump/pg_dumpall可以从Deepgreen或者Greenplum数据库迁移数据到其他类型的数据库,如postgresql。他们在Master上非并行的执行并生成一个导出文件,不会涉及到Segment备份动作。他们生成的数据文件不能被gp_restore使用。
gp_dump和gpcrondump不备份全局对象(资源队列、角色等)。这些对象必须使用pg_dumpall来备份。
原文链接:http://click.aliyun.com/m/24829/
分享到:
评论

相关推荐

    dggo:在一个工作空间下组织的Deepgreen开源Go代码-one source code

    VitesseData Inc.版权所有(c)2017 执照 该代码已获得Apache License 2.0的许可。 dggo 我决定将所有go代码移至该存储库下,以便用户只需要维护一...Ingres / Pig之类的dataframe SQL查询生成器。 dgza Zabbix代理。

    Postgresql中国用户大会 2016(PG大象会)所有PPT汇总.zip

    CK Tan-VITESSE DATA-DeepGreen DB- 性能优化、开发方向.pdf 楼方鑫-平民软件-Spark_over_OneProxy_Postgresql.pdf Mason Sharp-华为-Scaling with PostgreSQL 9.6 and Postgres-XL.pdf 陆公瑜-Pivotal- ...

    数据恢复软件

    DG(可能是DeepGreen Data Recovery的缩写)是一款适用于Win8、Win7、XP及PE平台的数据恢复工具。在使用DG软件进行数据恢复时,遵循以下步骤: 1. 安装软件:首先下载并安装DG软件到未丢失数据的电脑上。 2. 启动...

    c#邮件收发系统适合用windows xp 系统

    7. **GlassGreen.ssk** 和 **DeepGreen.ssk**:这些可能是指定皮肤的主题文件,用于改变邮件系统的视觉样式。 在构建一个邮件收发系统时,开发人员需要考虑的安全性、性能优化、错误处理以及用户体验等多个方面。...

    IrisSkin4(73套皮肤)

    Calmness.ssk CalmnessColor1.ssk CalmnessColor2.ssk DeepCyan.ssk DeepGreen.ssk DeepOrange.ssk DiamondBlue.ssk DiamondGreen.ssk DiamondOlive.ssk DiamondPurple.ssk DiamondRed.ssk Eighteen.ssk ...

    VB界面代码

    - `DeepBlue`、`DeepRed`、`DeepGreen`、`DeepYellow`:表示深色系的不同颜色方案。 该枚举用于指定控件的颜色方案。 4. **State** - `eNormal`:表示正常状态。 - `ePressed`:表示被按下的状态。 - `eFocus`...

    指挥信息系统的智能化挑战——“深绿”计划及AlphaGo带来的启示与思考

    文章关键词中还提到了“智能决策”、“深度学习”、“情境理解”、“DeepGreen计划”和“AlphaGo”,这些都是CIS智能化建设中的关键要素。智能决策强调在信息充分的情况下,系统能够辅助或代替指挥官作出快速准确的...

    j记事本.zip

    this.skinEngine1.SkinFile = "DeepGreen.ssk"; } private void 原皮肤ToolStripMenuItem_Click(object sender, EventArgs e) { this.skinEngine1.SkinFile = "Silver.ssk"; } private void 更换背景...

Global site tag (gtag.js) - Google Analytics