不积跬步无以至千里,要想成为一名合格的数据库管理员,首先应该具备扎实的基础知识及问题处理能力。本文参考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.sqlWhere:-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来备份。
同系列相关文章:

Deepgreen & Greenplum DBA小白普及课之一(一般问题解答)

Deepgreen & Greenplum DBA小白普及课之二(管理问题解答)

Deepgreen & Greenplum DBA小白普及课之四(性能问题解答)

Deepgreen Greenplum DBA小白普及课之三(备份问题解答)相关推荐

  1. Node.js 小白入门课3-设置基本数据库

    Node.js 小白入门课3-设置基本数据库 Sequelize(框架,数据库包文件,简化数据库编写)是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL ...

  2. Deepgreen Greenplum 高可用(一) - Segment节点故障转移

    尚书中云:惟事事,乃其有备,有备无患.这教导我们做事一定要有准备,做事尚且如此,在企事业单位发展中处于基础地位的数据仓库软件在运行过程中,何尝不需要有备无患呢? 今天别的不表,主要来谈谈企业级数据仓库 ...

  3. 爬虫小白第一课、从安装python到写出第一个爬虫程序、Pycharm安装详解

    本文原文链接 ↑↑↑ 目录 1什么是python 2怎么安装python 3安装python编辑器 4"写"你的第一个爬虫 5小结 python爬虫现在挺火,一方面全民学pytho ...

  4. EXCEL VBA小白第一课:入门

    本文首发我的知乎,转载请注明出处. 其实网上关于VBA的教程并不少,但是对于小白来说,最难的还是入门. 大神们一行行代码讲得天花乱坠,然而小白却不知道从哪里进入代码界面,代码的语法是怎样的,怎么运行代 ...

  5. python基础语法8.9体验课-Python小课体验课之三:灭霸的选择

    第2关灭霸的选择 欢迎回来!o(* ̄▽ ̄*)ブ-请和我一起全屏吧-windows:请按F11(或Fn+F11):mac:请同时按control+command+F. 在上一关,老师带领你攻克了如何与P ...

  6. DBA必知的mysql备份与还原的几大方法

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!一.mysqldump备份结合binlog ...

  7. 网络安全培训小白入门课,从buu到红帽的图片隐写

    图片隐写是MISC中的一部分,雨笋教育小编给小白从BUU中找到入门MISC之图片隐写,分享给大家 恢复黑白图片 buuoj 静静听这么好听的歌 由于网上wp只给了代码而且函数非常吓人,因此写了一个新手 ...

  8. 小白普及:云主机与传统服务器的区别

    云计算这股风自横扫IT界,势头越来越猛烈,在各细分领域的应用也备受关注,云主机是云计算技术为支撑落地比较成熟的产品,当前云主机市场可谓群雄角逐厮杀激烈,大家比较熟知的品牌就有微软云,华为云.亚马逊云. ...

  9. 安全杂记——病毒篇(自我笔记与小白普及)

    想写点什么,但是感觉无从下笔,感觉自己脑子里面没有一个很好的架构,学的一些东西也比较杂,就写一写随笔吧,大家随意看看,希望能够对大家有一些帮助(持续手打更新). 1.病毒 比较火的病毒类型:鬼影病毒. ...

最新文章

  1. 微软某员工后悔跳槽阿里:工资才多20万不到,天天加班快崩溃!
  2. pandas读取大文件(chunksize)并通过sqlalchemy写入MySQL数据库
  3. vue基础9(babel)
  4. Windows下安装scikit-learn
  5. Semaphore及其用法
  6. 【英语学习】【WOTD】coin of the realm 释义/词源/示例
  7. 插入排序(边输边排)
  8. mysql报错注入实战_手工注入——MySQL手工注入实战和分析
  9. PPT演讲放映技巧__备注的妙用
  10. 中心/设置地图缩放以覆盖所有可见的标记?
  11. MFC 教程【8_MFC的进程和线程 】
  12. linux定义数据结构压缩,Linux下数据结构学习笔记
  13. JAVA→JDBCJava DataBase Connectivity、存储过程Stored Procedure、事务Transaction、连接池DBCP C3P0、JDBC升级替代框架
  14. Project Euler 3 Largest prime factor
  15. 【pycharm】复制粘贴快捷键失效
  16. js和python前景比较好_Python,Java和JavaScript这3个编程语言未来哪个更有前景?
  17. unity3d 模型从上到下出现(shader)
  18. 分布式 | 如何通过 dble 的 split 功能,快速地将数据导入到 dble 中
  19. 不曾想过 未来的_未来想要什么
  20. Star Trek强势来袭 开启元宇宙虚拟与现实的梦幻联动

热门文章

  1. 慕课乐学python单元测试答案_乐学Python_章节测验,期末考试,慕课答案查询公众号...
  2. 【网络基础】URI 和 URL 的纠缠
  3. iOS 减少编译时间
  4. python pywinauto 单击鼠标_基于Python的学生信息管理系统
  5. InetAddress类和InetSocketAddress的使用
  6. flask 快速入门链接
  7. python使用gevent实现协程
  8. linux设备驱动归纳总结
  9. img边框的border属性
  10. c# typeof() 和 GetType()的区别