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

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

目录
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
完美,阿里DBA骨干团队编写的792页MySQL调优笔记真香
这个世界是由问题组成的,理想的状态和实际状态之间的差异造成了问题。国家领导解决人民生活幸福的大问题,公司的总经理解决盈利的问题,而本书只想解决MySQL数据库性能这么一一个“小问题”。
|
4月前
|
SQL Oracle 关系型数据库
数据库原理—常用的DBS产品简介(六)
数据库原理—常用的DBS产品简介(六)
数据库原理—常用的DBS产品简介(六)
|
4月前
|
运维 关系型数据库 MySQL
阿里大牛的595页MySQL笔记,透彻即系数据库、架构与运维
数据库运维的变革,经历从手工造到脚本化、系统化、平台化、智能化的转变,逐步实现DBA对数据库的规范化、自动化、自助化、可视化、智能化、服务化管理,从而保障数据库的安全、稳定、高效运行。
|
4月前
|
数据库
好书推荐《阿里云瑶池数据库精要2022版》
好书推荐《阿里云瑶池数据库精要2022版》
47 0
|
4月前
|
运维 关系型数据库 MySQL
MySQL DBA的必备参考,两位数据库资深专家呕心沥血之作
互联网发展至今,开源软件已经深入人心,并且受到广泛的支持和响应,很多公司在使用开源软件的同时也输出了一些好的开源产品。MySQL 作为当今世界.上最受欢迎的开源数据库产品之一,在很多互联网企业里起到了不可或缺的作用。由于MySQL的诸多特性,比如开源免费、灵活、轻量简单且越来越多的企业开始使用MySQL,在业界诞生了一大批相关从业者,他们研究MySQL的原理,探讨MySQL的架构,完善MySQL的运维,丰富MySQL的工具,促进MySQL的发展,我们称这些人为MySQL DBA,而本人也是其中之一,深感荣幸。
|
9月前
|
SQL 运维 NoSQL
阿里大牛撰写"星耀级"MySQL DBA工作笔记!颠覆我对数据库的认知
MySQL是开源数据库方向的典型代表,它拥有成熟的生态体系,同时在可靠性、性能、易用性方面表现出色,它的发展历程见证了互联网的兴衰与成长。 在 DeveloperWeek 上曾发起一个调查,超过 3/5 的受访者使用 SQL,其中MySQL 以 38.9% 的使用率高居榜首,其后依次是 MongoDB(24.6%)、PostgreSQL(17.4%)、Redis(8.4%)和 Cassandra(3.0%)。毫无疑问,以MySQL为主的开源技术生态正变得越来越流行。同样的,对我们掌握MySQL也迫在眉睫。那么,接下来,就让小轩带领大家来深入了解MySQL吧!
|
11月前
|
运维 关系型数据库 MySQL
【荐书&赠书】MySQL技术大全开发、优化与运维实战
【荐书&赠书】MySQL技术大全开发、优化与运维实战
191 0
|
存储 关系型数据库 数据库
从小白到专家 PostgreSQL技术大讲堂 - Part 5:PG数据库结构
从小白到专家 PostgreSQL技术大讲堂 - Part 5:PG数据库结构
243 0
从小白到专家 PostgreSQL技术大讲堂 - Part 5:PG数据库结构
|
存储 Cloud Native 安全
“数据库内核从入门到精通 ”系列课开讲!
基于 2022 年教育部-阿里云产学合作协同育人教学内容和课程改革项目合作,云原生分布式开源数据库 PolarDB 系列示范课程建设项目陆续和高校展开。阿里云开发者社区、阿里云PolarDB开源社区、武汉大学联合出品「数据库内核从入门到精通」系列课程正式上线,阿里云数据库专家携手高校教师系统化解读数据库理论,开展数据库实践,带学员全面掌握数据库内核开发技能。
“数据库内核从入门到精通 ”系列课开讲!
|
SQL 弹性计算 运维
冬季实战营第三期:MySQL数据库进阶实战之数据库上云实战
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。