timescaledb时序库备份还原遇到的问题与解决(代码片段)

yang_z_1 yang_z_1     2022-12-09     176

关键词:

timescaledb 时序库备份还原 遇到的问题与解决

timescaledb 是 postgres数据库的插件,所以备份还原仍然用postgres数据库pg_dump,pg_restore命令。

一 测试过程

timescaledb 时序库备份还原时 , 我对时序库采用以下命令进行全库备份

/usr/pgsql-11/bin/pg_dump --file "/u01/pgsql.backup" --host "0.0.0.0" --port "5432" --username "postgres" --dbname "原数据库名" --verbose --role "postgres" --format=c --blobs --encoding "UTF8"

还原命令如下

cs=#  SELECT timescaledb_pre_restore();
pg_restore --username "postgres" --host "10.10.2.116" --port "5432"   --role "postgres" --dbname "原数据库名"    --verbose /u01/pgsql.backup 
cs=# SELECT timescaledb_post_restore();

还原结束后,原库的数据全部还原成功,如果原库是超表,新库也是超表,子分区跟原库一模一样,原库有压缩分区,新库也自动是压缩分区,新库查询时没有任何问题。
在这里插入图片描述
分区还原没有问题,压缩的块也是一样还原了。

发现的问题
当往还原的超表插入新的数据时报错,错误如下:

ERROR: invalid INSERT on the root table of hypertable “超表名”
HINT: Make sure the TimescaleDB extension has been preloaded.

无法往超表主表插入数据,但是往分区插入没有任何问题。

目前的解决办法:
timescaledb的超表重新创建,数据采用csv格式导入,但是这种方法导入速度慢。

其他测试
1.单独对超表进行备份,发现主表无数据,让对子分区进行备份。
2.单独备份子分区,还原后只会还原子分区,跟超表没有关联。

二 问题解决

经过上述的测试 ,发现出现这个问题,现在我们来处理一下。

ERROR: invalid INSERT on the root table of hypertable “超表名”
HINT: Make sure the TimescaleDB extension has been preloaded.

这个问题一般是版本不一致,或者还原没有开启备份模式,也没有进到数据库里面

timescaledb时序库 开始 还原

1.备份 源文件

/usr/pgsql-11/bin/pg_dump --file “/u01/pgsql.backup” --host “0.0.0.0” --port “5432” --username “postgres” --dbname “原数据库名” --verbose --role “postgres” --format=c --blobs --encoding “UTF8”

2.把备份文件上传到新的时序库位置

这里可以用 scp,也可以使用ftp传输,看具体情况

3.查询 timescaledb 的版本是否一致

查看pg所安装插件信息:

select name from pg_available_extensions;

在这里插入图片描述

4.开始timescaledb还原:

创建数据库

CREATE DATABASE tutorial;

进入数据库,创建模式

\\c tutorial        --(这步一定要有,没有就会报错)

CREATE EXTENSION timescaledb;

开启备份模式

SELECT timescaledb_pre_restore();

进行还原

\\! pg_restore -Fc -d tutorial tutorial.bak

还原完毕结束备份模式

SELECT timescaledb_post_restore();

这几步一定要在一个窗口内执行。

经过测试发现超表能插入数据了,这样也就成功还原了timescaledb 时序库,这个问题也解决了。
在这里插入图片描述

linux上postgresql14数据库和timescaledb时序库数据迁移测试(代码片段)

Linux上PostgreSql14数据库和timescaledb时序库数据迁移测试文章目录Linux上PostgreSql14数据库和timescaledb时序库数据迁移测试🌈前言任务:目标:环境🌈测试步骤一准备工作二创建地址及文档三把数据迁移四修改启动文件... 查看详情

时序数据库新手,从TimescaleDB for Grafana中选择数据速度慢,查询复杂

】时序数据库新手,从TimescaleDBforGrafana中选择数据速度慢,查询复杂【英文标题】:Newtotimeseriesdatabases,selectingdatafromTimescaleDBforGrafanaisslowandthequeryiscomplex【发布时间】:2021-08-1216:06:06【问题描述】:我是TimescaleDB和Grafana的新手,... 查看详情

达梦数据库管道超库还原后实例无法启动库还原后无法进行增量备份等问题的解决

达梦DB遇到的若干障碍管道连接超时“管道连接超时”问题由于提示信息非常少,令人费解。尤其按照网上方法仍无法解决后,就更令人难以捉摸了。此问题还可从下列2方面进行排查:1)如果关闭了DMAPService,请看情况1;2)如... 查看详情

postgresql数据库timescaledb函数time_bucket_gapfill()报错解决及更换license(代码片段)

postgresql数据库timescaledb函数time_bucket_gapfill()报错解决及更换license文章目录postgresql数据库timescaledb函数time_bucket_gapfill()报错解决及更换license前言一遇到问题:报错如下二解决办法:方法一:直接改... 查看详情

基于postgresql的时序数据库timescaledb(代码片段)

作者:杭州美创科技有限公司什么是时序数据库?顾名思义,用于处理按照时间变化顺序的数据的数据库即为时序数据库(time-seriesdatabase),时序数据库专门优化处理带时间标签的数据,为什么会衍生... 查看详情

快速入门:java连接使用时序数据库timescaledb(代码片段)

目标本快速入门指南旨在让Java开发人员启动并运行TimescaleDB作为他们的数据库。在本教程中,您将学习如何:将Java连接到TimescaleDB创建关系表生成超表将一批行插入TimescaleDB在TimescaleDB上执行查询先决条件要完成本教程... 查看详情

数据库差异备份及还原

因为之前遇到还原差异备份,最开始遇到SQLServer报错:”无法还原日志备份或差异备份,因为没有文件可用于前滚“。查阅很多资料后,终于得到解决。收集整理成这篇随笔。    问题原因:出现这种错... 查看详情

带有 TimescaleDB 扩展的 Debezium 连接器

】带有TimescaleDB扩展的Debezium连接器【英文标题】:DebeziumconnectorwithTimescaleDBextension【发布时间】:2021-05-0313:14:13【问题描述】:我在检测Postresql超表(TimescaleDB扩展)上的更改时遇到问题。设置:我安装了带有TimescaleDB(ver1.7.1)扩... 查看详情

svn备份遇到的问题

svn备份挺简单的,在网上看了一下,就一个svnadmindump就搞定。在需要还原的地方,使用svnadminload命令就好。然而,一切并没有想象中这么简单。备份倒是dump就好了,但是在另外一个机器上load的时候,出问题了,checksum不对。分... 查看详情

云备份项目(代码片段)

云备份项目文章目录云备份项目云备份的认识项目实现目标模块划分第三方库认识JSON认识bundle文件压缩库httplib库httplib库搭建服务器httplib库搭建客户端项目实现云备份服务端实现数据管理模块文件操作工具类Json操作工具类文件... 查看详情

[数据库]sqlserver数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”

在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个。必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一、备份与还原遇到的问题描述与解决方法:&nbs... 查看详情

xtrabackup备份工具两种命令单库增量备份还原

...递给xtrabackup子进程,从指定文件读取缺省选项--apply-log从备份恢复。--redo-only该选项强制跳过rollback阶段,只进行redo。这是有必要使用的,如果备份后,要使用增量改变的。--copy-back从备份目录拷贝数据和索引文件到datadir目录--re... 查看详情

python项目所需依赖库的备份与还原(代码片段)

在项目根目录下执行下面命令pipfreeze>requirements.txt用于生成当前项目所依赖的所有依赖库清单pipdownload-rrequirements.txt-dpackages/下载所需依赖包到当前路径下的packages/目录下pipinstall--no-index--find-links=packages/-rrequirements.txt离线还... 查看详情

数据库备份与还原

--备份BACKUPDATABASE[库名称]TODISK=‘E:qqddd.bak‘--备份并覆盖BACKUPDATABASE[库名称]TODISK=‘E:qqddd.bak‘WITHINIT--将数据库置于离线状态ALTERDATABASE[库名称]SETOFFLINEWITHROlLBACKIMMEDIATE;--恢复数据库RESTOREDATABASE[库名称]FROMDISK=‘ 查看详情

项目经验——sqlserver数据库的备份和还原____还原数据库提示“介质集有2个介质簇,但只提供了1个。必须提供所有成员”.

          在对数据库备份与还原的过程中,我遇到一个问题“介质集有2个介质簇,但只提供了1个。必须提供所有成员”,下面详细的介绍一下遇到问题的经过与问题解决的方法! 一... 查看详情

使用 postgres、timescaledb 获取时间戳至少在 5 分钟前的最新行

】使用postgres、timescaledb获取时间戳至少在5分钟前的最新行【英文标题】:Getmostrecentrowwhosetimestampisatleast5minutesagousingpostgres,timescaledb【发布时间】:2022-01-1500:34:27【问题描述】:我遇到了一些我认为timescaledb可以提供帮助的问题... 查看详情

数据库的备份与还原

   上周在维护考研的3个网站(心理、历史、教育学)时,遇到了后台网址登不进去的问题,大概是报的数据库错误。可以先到根目录下找有没有admin_loginxxx.aspx这个文件,从而判断有没有后台,有没有数据库1、首先还... 查看详情

无法定位输入点initializecriticalsectionex于动态链接库kernel32.dll上,怎么解决?

...统还原,按步骤做就是了,如果有还原软件,自带的映像备份,并且进行了备份,也可以用软件、映像备份还原系统。有问题请您追问我。参考技术A回答原因:编译的release版本,在XP下运行报错误“无法定位程序输入点InitializeC... 查看详情