云服务器内容精选
-
限制条件 账户余额大于等于0元,才可恢复到新实例。新实例将作为用户新创建的实例进行收费。 RDS for PostgreSQL不支持将备份恢复到原实例,如有需要,请先将备份恢复到新实例,然后将该实例的IP修改为原实例的IP。 恢复到已有实例的限制: 如需恢复到已有实例,请提交工单联系客服人员开通权限。 如果目标数据库实例已被删除,则不可恢复到已有实例。 恢复到已有实例会导致实例数据被覆盖,且恢复过程中实例将不可用。 只可选择与原实例相同VPC,相同引擎,相同版本或高版本的实例。 请确保目标实例的存储空间大于或等于当前实例的存储空间,否则会导致任务下发失败。
-
恢复方案 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(Point-in-Time Recovery),是指数据库的“时间点恢复”功能。它是一种数据库恢复技术,通常用于恢复误删除的数据或者误操作导致损坏的数据,将其恢复到一个指定时间点的数据状态。 以游戏场景为例,在游戏运行期间,有玩家利用游戏漏洞复制装备、货币,使游戏公平性遭到破坏。传统数据库备份频率一般是一天全备一次,备份间隔即一整天,不仅恢复时间长、时间粒度大,甚至无法恢复到想要时间点等。而GeminiDB Redis接口具备的PITR特性能够让游戏数据快速回档,可根据客户自定的备份粒度,最低支持5分钟粒度,自行选择需要恢复的时间点,实现数据的快速恢复。
-
约束限制 恢复到新实例的限制: 账户余额大于等于0元,才可恢复到新实例。新实例将作为用户新创建的实例进行收费。 请确保原实例及目标实例的时区配置完全一致,否则会有数据不一致风险。 恢复到当前实例的限制: 如需恢复到当前实例,请提交工单联系客服人员开通权限。 如果备份所在的数据库实例已被删除,则不可恢复到当前实例。 若目标数据库已存在,恢复到当前实例会导致目标数据库的全部数据被覆盖,并且正在恢复过程中的数据库不可用。 恢复到已有实例(非原实例)的限制: 恢复到已有实例会导致实例数据被覆盖,且恢复过程中实例将不可用。 只可选择与原实例相同VPC,相同引擎,相同版本或高版本的实例。 请确保目标实例的存储空间大于或等于当前实例的存储空间,否则会导致任务下发失败。 请确保原实例及目标实例的时区配置完全一致,否则会有数据不一致风险。 如果原实例开启TDE,不允许恢复到已有实例。
-
常见问题 问:下载的bak中找不到目标库,只有rdsadmin库可以恢复吗? 答:解决方法如下: 下载的备份文件里面有两个备份,第一个备份为rdsadmin,第二个为目标库test。 查看备份文件头信息。 restore headeronly from disk='bak文件本地路径' 图11 查看备份文件信息 查看内部文件信息。 restore filelistonly from disk='bak文件本地路径' 默认只读取第一个备份库的信息。 图12 查看内部文件信息 如果需要读取第二个或者第三个库,需要加上with file,具体的值为restore headeronly得到的结果中的position的值。 restore filelistonly from disk='bak文件本地路径' with file=2 图13 查看其他库信息 恢复数据。 图14 恢复数据 USE [master] RESTORE DATABASE [@dbname] FROM DISK='@path' WITH FILE= @file MOVE '@logicalname1' TO '@filepath1' MOVE '@logicalname2' TO '@filepath2' NOUNLOAD, STATS=5 GO @dbname:库名。 @path:全备文件路径。 @file:数据库在bak文件中的位置,执行restore headeronly时获得的position的值。 @logicalname1:备份文件中的LogicalName,和新库的文件路径,LogicalName为执行restore filelistonly时获得的LogicalName的值。 @filepath1:物理文件存放在本地的路径。 @logicalname2:同@logicalname1。 @filepath2:同@filepath1。 根据2获取到的恢复头信息,拼接到上述的SQL中,然后执行上述SQL进行恢复。
-
恢复增量备份(日志备份) 恢复日志备份前提是要先恢复数据备份,并且数据库处于Restoring状态。日志备份必须连续,即必须按照同一个库的备份顺序进行恢复,缺少其中的任何备份都将导致无法恢复到最后的日志备份数据。 参考1~4配置恢复数据备份。 单击“Option”,Recovery state选择“RESTORE WITH NORECOVERY”。 图6 选择Recovery state 检查数据库恢复出来的状态为“Restoring”。 图7 检查恢复状态 右键单击要恢复的数据库,单击恢复“Transaction Log”。 图8 选择数据库 选择device以及添加要恢复的备份文件。 图9 添加备份文件 如果不是最后一个增量备份文件,还需要继续恢复其他增量备份,需要修改option的Recovery state为“RESTORE WITH NORECOVERY”,否则选择“RESTORE WITH RECOVERY”,单击“OK”进行恢复。 图10 恢复日志备份 如果还有其他增量备份需要恢复,请重复执行4-6,直到最后一个日志备份恢复完成。
-
恢复数据备份 使用微软官方工具SQL Server Management Studio (S SMS )登录自建数据库。 图1 登录自建数据库 右键单击“Databases”目录,选择“Restore Database”。 图2 选择数据库 选择“Device”,添加bak备份文件,单击“OK”。 图3 添加备份文件 选择要恢复的数据库,Source中的Database可以下拉选择要恢复的源库,Destination的Database可以修改要恢复的目标库名。 图4 选择源库和目标库 单击“OK”,恢复成功。 图5 恢复成功
-
约束限制 本章节仅使用从华为云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元,才可恢复到新实例。新实例将作为用户新创建的实例进行收费。 请勿在 GaussDB (for MySQL)标准版实例的生命周期内执行“reset master”命令,以免造成恢复到指定时间点功能异常。 恢复到新实例时,原实例备份存在大事务有可能会导致恢复失败,如果恢复失败请联系客服处理。 恢复到当前实例的限制:恢复到当前实例会导致实例数据被覆盖,且恢复过程中实例将不可用。 恢复到已有实例的限制: 恢复到已有实例会导致实例数据被覆盖,且恢复过程中实例将不可用。 只可选择与原实例相同引擎,相同版本或高版本的实例。 请确保目标实例的存储空间大于或等于当前实例的存储空间,否则会导致任务下发失败。
-
操作步骤 将全备文件恢复到本地自建库。 具体可参考通过全量备份文件恢复到自建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注释掉,即在参数前加#即可。
-
约束限制 本章节仅使用从华为云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数据库部分索引的排序规则依赖操作系统,恢复到自建数据库后需要重建索引,需要重建的索引排查方法见官方文档。
-
常见问题 恢复数据 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;
-
使用须知 恢复时,新实例节点数应大于等于原实例的节点数。 恢复时,新实例的空间大小必须大于或等于原实例的空间大小。 当前不支持增量备份,PITR功能。 当前不支持恢复到当前实例。 恢复时,可以进行规格缩容,但是缩容的内存规格大小应大于等于备份时实际内存使用大小。 备份恢复到新实例使用原实例的参数组恢复,保证恢复出来的参数跟原来实例的一致。 在实例恢复时,会将备份文件从OBS桶下载到恢复实例的数据目录中,OBS的下载带宽在40MB/s。
-
约束限制 表级时间点恢复不支持恢复带触发器的表。 为避免恢复失败和对原数据产生影响,表级恢复会去除外键约束。 如果恢复的时间点不存在选中恢复的表,则恢复任务失败。 库表级时间点恢复期间不允许对实例做规格变更,重启,删除等操作。 实例的表数量小于等于20000张,才能执行恢复库表操作。当需要恢复的表数量超过2000张时,建议您使用恢复到指定时间点功能进行恢复,具体请参考将数据库实例恢复到指定时间点。
-
使用须知 恢复时,新实例节点数应大于等于原实例的节点数。 恢复时,新实例的空间大小必须大于或等于原实例的空间大小。 当前不支持增量备份,PITR功能。 当前不支持恢复到当前实例。 恢复时,可以进行规格缩容,但是缩容的内存规格大小应大于等于备份时实际内存使用大小。 备份恢复到新实例使用原实例的参数组恢复,保证恢复出来的参数跟原来实例的一致。 在实例恢复时,会将备份文件从OBS桶下载到恢复实例的数据目录中,OBS的下载带宽在40MB/s。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格