10_备份与恢复_概述_备份_恢复
一、备份概念
1、备份恢复操作概述-关于并行备份(gp_dump)
GP同时备份Master和所有活动的Segment实例;
备份消耗的时间与系统中实例的数量没有关系;
在Master主机上备份所有DDL文件和GP相关的数据字典表;
每个Segment备份各自的数据;
所有备份文件组成一个完整的备份集合,通过唯一14位数字的时间戳来识别;
2、关于非并行备份(pg_dump)
GP依然支持常规的PG备份命令pg_dump和pg_dumpall;
备份将在Master主机上创建一个包含所有Segment数据的大的备份文件;
不适合于全部数据备份,适用于小部分数据的迁移或备份;
注:这个备份是从Segment中导出数据来备份,备份在master;
二、恢复概念
1、并行恢复(gp_restore)
通过gp_dump产生的时间戳来辨识备份集合,恢复数据库对象和数据到分布式数据库中;
每个Segment并行恢复各自的数据;
被恢复的GP系统必须与备份的系统同构;
2、非并行恢复(pg_restore)
使用由pg_dump和pg_dumpall创建的备份文件来恢复;
使用非并行恢复可以实现异构系统恢复;
三、备份数据库
1、备份数据库的四种选择
注:比较常用的还是文件系统备份;
2、使用gp_dump
(1)备份GP数据库
命令:gp_dump testdw;
注:有可能会备份失败,因为linux的安全级别,我们可以临时调整linux的安全级别:/usr/sbin/setenforce 0
或者永久调整:vi /etc/selinux/config ---->SELINUX=disabled, 然后重启;
(2)gp_dump命令将在数据目录生成如下的备份文件
注:dbid是备份数据库的id,timestamp为时间戳;
3、使用gpcrondump
4、非并行备份
注:pg_dumpall用的比较少,pg_dump在数据迁移的时候会用到;
四、恢复数据库
1、非并行恢复
注:使用pg_restore恢复数据库,需要先创建数据库在进行恢复;
在实际的生产环境中,如果数据库的数据量大,我们最好用并行或者用第三方备份;
2、并行备份文件恢复
在决定使用恢复程序时,需确定以下几个问题:
(1)使用gp_restore恢复
如果在备份时使用了参数:-s(仅模式)、-a(仅数据)、--gp-c(压缩)、--gp-d(修改备份文件目录),那么在恢复是也要指定这些参数。
gp_restore命令将执行如下操作:
1)在master主机上:
2)Segment主机上
3)恢复数据库
代码:
cd $MASTER_DATE_DIRECTORY (进入master的主目录)
ls(可查看备份的数据库,然后进行相关命令恢复)
(2)使用gpdbrestore恢复
gpdbrestore命令是对gp_restore命令的包装,提高更灵活的选项;
使用gpcrondump备份生成的备份文件来进行恢复;
恢复testdw数据:
注:-b后面的时间日期文件是在db_dumps/目录下;
五、恢复到配置不同的GP系统
使用并行备份文件通过GP Master做非并行装载;
Segment备份文件内容包含了COPY命令,数据是分割平面格式;
恢复步骤:
注:需要先将数据集中在一台服务器上;
所有的数据恢复后在恢复索引;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构