云服务器内容精选

  • 约束限制 账户余额大于等于0元,才可恢复到新实例。新实例将作为用户新创建的实例进行收费。 请勿在 GaussDB (for MySQL)标准版实例的生命周期内执行“reset master”命令,以免造成恢复到指定时间点功能异常。 恢复到新实例时,原实例备份存在大事务有可能会导致恢复失败,如果恢复失败请联系客服处理。 恢复到当前实例的限制:恢复到当前实例会导致实例数据被覆盖,且恢复过程中实例将不可用。 恢复到已有实例的限制: 恢复到已有实例会导致实例数据被覆盖,且恢复过程中实例将不可用。 只可选择与原实例相同引擎,相同版本或高版本的实例。 请确保目标实例的存储空间大于或等于当前实例的存储空间,否则会导致任务下发失败。
  • 约束限制 本章节仅使用从华为云RDS for MySQL 5.6、5.7、8.0版本实例下载的全量备份文件在本地恢复到对应版本自建数据库,不包括增量备份的恢复操作。 自建MySQL数据库内核小版本需与华为云RDS for MySQL版本号一致。 通过mysql -V或mysqld --version命令,可以查看MySQL内核版本。 仅支持恢复到本地为Linux操作系统的数据库。 由于开源备份工具目前仅支持x86包,不支持ARM,因此,不支持ARM的E CS 自建库使用本章操作进行备份文件恢复。您可以使用DRS迁移或数据导出导入的方式,具体请参见数据迁移。 全量备份文件恢复到自建数据库将使用以下三个软件: MySQL数据库 qpress工具 Percona XtraBackup工具 请使用对应版本工具,否则将无法恢复成功。 表1 版本对应关系 数据库 qpress Percona XtraBackup MySQL 8.0 qpress 7 XtraBackup 8.0.0及以上版本 MySQL 5.7、MySQL 5.6 qpress 7 XtraBackup 2.4.9及以上版本 在进行恢复阶段请勿在本地自建数据库运行其他业务。
  • 约束限制 恢复到新实例的限制: 账户余额大于等于0元,才可恢复到新实例。新实例将作为用户新创建的实例进行收费。 请确保原实例及目标实例的时区配置完全一致,否则会有数据不一致风险。 恢复到当前实例的限制: 如需恢复到当前实例,请提交工单联系客服人员开通权限。 如果备份所在的数据库实例已被删除,则不可恢复到当前实例。 若目标数据库已存在,恢复到当前实例会导致目标数据库的全部数据被覆盖,并且正在恢复过程中的数据库不可用。 恢复到已有实例(非原实例)的限制: 恢复到已有实例会导致实例数据被覆盖,且恢复过程中实例将不可用。 只可选择与原实例相同VPC,相同引擎,相同版本或高版本的实例。 请确保目标实例的存储空间大于或等于当前实例的存储空间,否则会导致任务下发失败。 请确保原实例及目标实例的时区配置完全一致,否则会有数据不一致风险。 如果原实例开启TDE,不允许恢复到已有实例。
  • 操作步骤 将全备文件恢复到本地自建库。 具体可参考通过全量备份文件恢复到自建PostgreSQL数据库。 在做全备加增备恢复本地数据库时,将全备文件恢复到本地对应目录后,按照2将增备文件也恢复后,再进行数据库重启。 将增备文件恢复到本地自建库。 增备文件恢复可以看成是基于时间点恢复,需将下载的增量备份文件保存至与全量备份相同的目录下。 以如下恢复目录为例: $PGDATA/base:存放全量文件。 $PGDATA/pg_wal:增量文件目录。如果PostgreSQL版本为9.x,则为pg_xlog目录。 (可选)$PGDATA/tablespace_map:表空间目录。如果原备份存在表空间文件,则会产生N个以数字命名的表空间目录。 下载增量备份文件,并解压至临时目录。 使用提供的脚本,解压后执行如下命令,将增量备份文件(假设下载的增备文件存放在/download/backup)解压到一个临时目录(例如/tmp/wal)下。 python restore_wal.py /download/backup /tmp/wal /download/backup:PostgreSQL增量备份文件的目录。 /tmp/wal:临时存放pg_wal日志的目录。 修改“postgresql.conf”配置文件的相关参数。 依次执行如下操作,将“postgresql.conf”(PostgreSQL 11及以下版本为“recovery.done”或“recovery.conf”)修改为需要恢复到的时间点。 将其中的#recovery_target_time=''更改为recovery_target_time ='20YY-MM-DD HH:MM:SS'。 例如:recovery_target_time = '2020-12-22 20:00:00'。(如果要恢复到最新备份,只需将时间设置为现在时间即可) 将其中的restore_command行修改为restore_command = 'cp /tmp/wal/%f %p',其中/tmp/wal为临时存放pg_wal日志的目录。 添加或修改其中的recovery_target_action行为recovery_target_action = 'promote'。 将其中的hot_standby行修改为hot_standby = off。 配置standby模式。 touch standby.signal 对于PostgreSQL 11及以下版本,修改“postgresql.conf”中的standby_mode为standby_mode = on。 对于PostgreSQL 12及以上版本,在本地数据库data目录创建一个名称为standby.signal的空文件。 重新启动数据库,等待数据库恢复完成。 重启完成后,如果可以成功连接数据库,则说明恢复完成。 恢复完成后需将recovery_target_time和recovery_target_action注释掉,即在参数前加#即可。
  • 常见问题 恢复数据 Q:如果没有备份该如何恢复数据? A:通过DRS迁移数据,详见将PostgreSQL同步到PostgreSQL。 备份恢复操作 Q1:使用云数据库备份文件恢复自建数据库,数据库启动失败,报错信息“replication slot file xxx has corrupted length xxx”,如何处理? A:手动删除“pg_replslot”目录下的所有文件和文件夹,删除完成后启动数据库。 Q2:常见报错“could not locate a valid checkpoint record”的原因,以及如何处理? A:该错误通常表示数据库中的检查点记录已损坏或丢失,导致无法恢复数据库。一般情况下是wal日志没有被正常加载,建议参考6.b中的处理重新执行该命令。 RDS for PostgreSQL11版本恢复数据 Q1:RDS for PostgreSQL 11恢复到本地PostgreSQL 11时int4到text的类型转换时出现报错信息 “ERROR: internal function "int4_text" is not in internal lookup table”时,如何处理? A:使用postgres用户连接本地PostgreSQL 11数据库执行如下命令删除该类型转换规则,需要super user执行。 delete from pg_cast where castsource = 'int4'::regtype and casttarget = 'text':: regtype; Q2:RDS for PostgreSQL 11恢复到本地PostgreSQL 11时多个类型转换函数报错,如何排查和处理? A:分别在本地PostgreSQL 11和RDS for PostgreSQL 11执行如下SQL,并对比结果。 select oid, * from pg_cast order by 1; 对于RDS for PostgreSQL 11新增的类型转换规则,在本地PostgreSQL 11执行如下SQL全部删除。 delete from pg_cast where castsource = xxx and casttarget = xxx;
  • 约束限制 本章节仅使用从华为云RDS for PostgreSQL所有版本实例下载的全量备份文件在本地恢复到对应版本自建数据库,不包括增量备份的恢复操作。 自建PostgreSQL数据库内核小版本需与华为云RDS for PostgreSQL版本号一致。 通过psql -V或psql --version命令,可以查看PostgreSQL内核版本。 仅支持恢复到本地为Linux操作系统的数据库,系统上需要安装tar解压工具。 通过sudo yum install tar命令安装tar解压工具。 在进行恢复阶段请勿在本地自建数据库运行其他业务或保留业务数据。 RDS for PostgreSQL有部分增强特性(如Failover Slot等),使用云上的物理备份恢复到开源自建数据库时执行部分SQL报错,需要将用到的增强特性删除,详见常见问题。 本地自建数据库的操作系统与云数据库的操作系统可能不一致,而PostgreSQL数据库部分索引的排序规则依赖操作系统,恢复到自建数据库后需要重建索引,需要重建的索引排查方法见官方文档。
  • 功能概述 PITR(Point-in-Time Recovery),是指数据库的“时间点恢复”功能。它是一种数据库恢复技术,通常用于恢复误删除的数据或者误操作导致损坏的数据,将其恢复到一个指定时间点的数据状态。 以游戏场景为例,在游戏运行期间,有玩家利用游戏漏洞复制装备、货币,使游戏公平性遭到破坏。传统数据库备份频率一般是一天全备一次,备份间隔即一整天,不仅恢复时间长、时间粒度大,甚至无法恢复到想要时间点等。而GeminiDB Redis接口具备的PITR特性能够让游戏数据快速回档,可根据客户自定的备份粒度,最低支持5分钟粒度,自行选择需要恢复的时间点,实现数据的快速恢复。
  • 恢复方案 DDS支持多种数据恢复方案,您可以根据业务需要选择合适的恢复方法。 支持版本号没有说明的,默认支持全部版本:3.2、3.4、4.0、4.2和4.4版本。 表1 恢复方案 恢复类型 支持的实例类型和版本 使用场景 恢复备份到新实例 集群 副本集 单节点 使用已有的自动备份文件或手动备份文件恢复实例数据到新建实例。 恢复备份到当前实例 集群 副本集 单节点 使用已有的自动备份文件或手动备份文件恢复实例数据到当前实例。 恢复实例备份到指定时间点 集群(4.0、4.2版本支持) 副本集(4.0、4.2版本支持) 适用于实例级数据恢复场景,将数据还原至某个指定的时间点。 恢复库表到指定时间点 副本集(4.0版本支持) 适用于库表级数据恢复场景,将数据还原至某个指定的时间点。 恢复备份数据到本地自建数据库 集群(3.4、4.0版本支持) 副本集(3.4、4.0版本支持) 单节点(3.4、4.0版本支持) 您可以将DDS的备份文件下载到本地,将数据恢复至本地自建数据库。 通过mongorestore工具恢复数据 集群 副本集 单节点 您可以通过MongoDB客户端自带的备份恢复工具恢复数据。 通过mongoimport工具恢复数据 集群 副本集 单节点 您可以通过MongoDB客户端自带的备份恢复工具恢复数据。 父主题: 数据恢复
  • 使用须知 恢复时,新实例节点数应大于等于原实例的节点数。 恢复时,新实例的空间大小必须大于或等于原实例的空间大小。 当前不支持增量备份,PITR功能。 当前不支持恢复到当前实例。 恢复时,可以进行规格缩容,但是缩容的内存规格大小应大于等于备份时实际内存使用大小。 备份恢复到新实例使用原实例的参数组恢复,保证恢复出来的参数跟原来实例的一致。 在实例恢复时,会将备份文件从OBS桶下载到恢复实例的数据目录中,OBS的下载带宽在40MB/s。
  • 约束限制 表级时间点恢复不支持恢复带触发器的表。 为避免恢复失败和对原数据产生影响,表级恢复会去除外键约束。 如果恢复的时间点不存在选中恢复的表,则恢复任务失败。 库表级时间点恢复期间不允许对实例做规格变更,重启,删除等操作。 实例的表数量小于等于20000张,才能执行恢复库表操作。当需要恢复的表数量超过2000张时,建议您使用恢复到指定时间点功能进行恢复,具体请参考将数据库实例恢复到指定时间点。
  • 使用须知 恢复时,新实例节点数应大于等于原实例的节点数。 恢复时,新实例的空间大小必须大于或等于原实例的空间大小。 当前不支持增量备份,PITR功能。 当前不支持恢复到当前实例。 恢复时,可以进行规格缩容,但是缩容的内存规格大小应大于等于备份时实际内存使用大小。 备份恢复到新实例使用原实例的参数组恢复,保证恢复出来的参数跟原来实例的一致。 在实例恢复时,会将备份文件从OBS桶下载到恢复实例的数据目录中,OBS的下载带宽在40MB/s。