IoTDB 入门教程 企业篇③——数据同步和增量备份

news2024/11/15 19:43:58

文章目录

  • 一、前文
  • 二、系统架构
  • 三、准备两台服务器
  • 四、新建任务
  • 五、数据同步测试
  • 六、遇到的问题

一、前文

IoTDB入门教程——导读

  • 数据库备份与迁移是数据库运维中的核心任务,其重要性不言而喻。
  • 确保备份过程既简单快捷又稳定可靠,对于保障数据安全与业务连续性至关重要。

如果是使用开源版本IoTDB,那么有如下三种数据同步和备份的方法,可供选择。

  • IoTDB 入门教程 基础篇⑨——TsFile导入导出工具
  • IoTDB 入门教程 基础篇⑩——CSV导入导出工具
  • IoTDB 入门教程 基础篇⑪——Data导入导出工具

但是,这些操作略显繁琐,不如IoTDB企业版(TimechoDB)所使用的数据同步的功能,来的方便快捷和高效。

二、系统架构

  • 业务(应用)服务器只能部署在互联网(外网)上。但是,众所周知,外网很危险
  • 就算你的技术能力再强,也没有绝对的安全。红客和黑客之间是没有绝对的赢家。
  • 而这其中,最值钱是数据(用户数据),最要命的也是数据。
  • 就比如银行的服务器被攻击了,导致银行的数据库被销毁和篡改,那是不是很致命?
  • 数据安全有两方面,数据防篡改数据防泄漏。基于此考虑,我们做简单的系统架构设计(如下图所示)。
  • 数据防篡改:互联网端的数据,定时通过网闸同步到内网中的数据库中,网闸只进不出。
  • 数据防泄漏:互联网端的数据,定期删除(如需查询历史数据,再增加额外的端口和安全机制从内网的数据库中查询)。
    在这里插入图片描述

所以,综上所述,数据同步和备份是一个安全的服务器的刚需。

而TimechoDB的数据同步功能恰恰满足了这个需求,而且用起来极其方便。

三、准备两台服务器

切记:两台服务器的IoTDB的版本必须一致。

  • IoTDB企业版(TimechoDB)——>做互联网端的数据库
[root@iZgw0bdpdtyqxyz77dha9nZ iotdb-enterprise-1.3.1.4-bin]# bash sbin/start-cli.sh 
---------------------
Starting IoTDB Cli
---------------------
 _____       _________  ______   ______    
|_   _|     |  _   _  ||_   _ `.|_   _ \   
  | |   .--.|_/ | | \_|  | | `. \ | |_) |  
  | | / .'`\ \  | |      | |  | | |  __'.  
 _| |_| \__. | _| |_    _| |_.' /_| |__) | 
|_____|'.__.' |_____|  |______.'|_______/  Enterprise version 1.3.1.4 (Build: 9658c9d)
                                           

Successfully login at 127.0.0.1:6667
IoTDB> select * from root.test.test order by time desc
+----+---------------------+
|Time|root.test.test.status|
+----+---------------------+
+----+---------------------+
Empty set.
It costs 0.024s
  • IoTDB开源版——>做内网端的数据库
[root@VM-0-3-centos apache-iotdb-1.3.1-all-bin]# bash sbin/start-cli.sh 
---------------------
Starting IoTDB Cli
---------------------
 _____       _________  ______   ______    
|_   _|     |  _   _  ||_   _ `.|_   _ \   
  | |   .--.|_/ | | \_|  | | `. \ | |_) |  
  | | / .'`\ \  | |      | |  | | |  __'.  
 _| |_| \__. | _| |_    _| |_.' /_| |__) | 
|_____|'.__.' |_____|  |______.'|_______/  version 1.3.1 (Build: 214695d)
                                           

Successfully login at 127.0.0.1:6667
IoTDB> select status from root.test.test
+----+---------------------+
|Time|root.test.test.status|
+----+---------------------+
+----+---------------------+
Empty set.
It costs 0.018s

四、新建任务

  • 新建数据同步的任务
    在这里插入图片描述在这里插入图片描述

五、数据同步测试

  • 互联网端的数据库插入一条数据
IoTDB> insert into root.test.test(status) values(0)
Msg: The statement is executed successfully.

在这里插入图片描述

  • 内网端的数据库同步到了数据
IoTDB> select status from root.test.test
+-----------------------------+---------------------+
|                         Time|root.test.test.status|
+-----------------------------+---------------------+
|2024-08-05T22:32:50.872+08:00|                  0.0|
+-----------------------------+---------------------+
Total line number = 1
It costs 0.013s

在这里插入图片描述

六、遇到的问题

  • 刚开始互联网端的数据库版本的是iotdb-enterprise-1.3.1.4-bin,内网端的数据库版本是apache-iotdb-1.3.2-all-bin
  • 结果数据同步就失败,报如下错误。
2024-08-05T16:24:56.451, Failed to transfer tsfile insertion event PipeTsFileInsertionEvent{isTsFileFormatValid=true, resource=file is /home/iotdb-enterprise-1.3.1.4-bin/data/datanode/data/sequence/root.test/1/2848/1722562250962-2-0-0.tsfile, status: NORMAL, tsFile=/home/iotdb-enterprise-1.3.1.4-bin/data/datanode/data/pipe/tsfile/sequence-root.test-1-2848-1722562250962-2-0-0.tsfile, isLoaded=false, isGeneratedByPipe=false, isClosed=true, dataContainer=null} - EnrichedEvent{referenceCount=1, pipeName='测试', pipeTaskMeta=PipeTask{progressIndex='MinimumProgressIndex{}', leaderDataNodeId=1, exceptionMessages='{}'}, committerKey='测试_1', commitId=2, pattern='root', startTime=-28800000, endTime=1722825127000, isPatternParsed=true, isTimeParsed=true, shouldReportOnCommit=false}, because Seal file /home/iotdb-enterprise-1.3.1.4-bin/data/datanode/data/pipe/tsfile/sequence-root.test-1-2848-1722562250962-2-0-0.tsfile error, result status TSStatus(code:1810, message:Auto create or verify schema error when executing statement LoadTsFileStatement{file=/home/apache-iotdb-1.3.2-all-bin/data/datanode/system/pipe/receiver/3/sequence-root.test-1-2848-1722562250962-2-0-0.tsfile, deleteAfterLoad=true, databaseLevel=1, verifySchema=true, tsFiles Size=1}.).. 

在这里插入图片描述

  • 后面将内网端的数据库版本改成apache-iotdb-1.3.1-all-bin,就正常了。
  • 所以,切记:两台服务器的IoTDB的版本必须一致。

觉得好,就一键三连呗(点赞+收藏+关注)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

会声会影下载免费吗?会声会影2023中文旗舰版下载及配置最低要求

**会声会影2024:引领视频创作新时代的创新之旅** 在数字时代的浪潮中,视频创作已成为连接世界、表达创意的重要方式。随着技术的不断进步,一款名为“会声会影2024”的视频编辑软件横空出世,它不仅继承了前代产品的优秀传统&#…

【STM32】EXTI与NVIC标准库使用框架

本篇博客重点在于标准库函数的理解与使用,搭建一个框架便于快速开发 目录 EXTI简介 EXTI配置 使能AFIO的时钟 配置GPIO端口为外部中断 外部中断初始化 NVIC介绍与配置 NVIC中断优先级分组 NVIC初始化 NVIC框架 EXTI配置图 中断函数 中断函数配置 获取中…

GPU as Code:趋动OrionX产品的创新之路

在当今快速发展的云计算和DevOps领域,IaC (Infrastructure as Code) 已经成为提升IT基础设施管理效率的关键实践。趋动科技的OrionX产品,通过软件定义GPU硬件,为开发者和运维团队提供了一种全新的AI算力资源管理方式。本文将深入探讨OrionX如…

习题2.32

这个题目 粗看起来好像是很简单,但是我在实现的时候,真的是废了好大的力气,主要原因有三点,第一,对clojure语言的属性程度不够高,第二,课本语言与clojure语言的差异点,我自以为理解的很透彻,导致了出现很奇异的现象,我找不到解释,一点思路都没有。第三,也就是最关键…

Vue 3+Vite+Eectron从入门到实战系列之(二)一Elementplus及VueRouter的配置

为了后续开发方便,在没有 UI 设计师配合的情况下,让我们的界面更加美观,我们使用 elementplus 组件库,并配置路由。 删除不需要的默认文件夹及文件,src 配置如下 实现效果 安装 elementplus,vue-router npm install element-plus --save npm install vue-router --save在…

25考研数据结构复习·8.1插入排序·8.2交换排序

目录 排序的基本概念 插入排序 直接插入排序/折半插入排序 希尔排序 交换排序 冒泡排序 算法原理 性能 👩‍💻 快速排序 排序的基本概念 排序:将各元素按关键字递增/或递减顺序重新排列评价指标 稳定性:关键字相同的元素…

【Langchain大语言模型开发教程】基于Langchain的私人助手

终于学习完了Langchain框架的核心内容,最后基于langchain技术实现一个个人知识库助手的小项目,将这些内容串联起来,在实际中进行应用。 工具清单: 1、langchain框架 2、chroma向量数据库 3、embedding模型(bge-larg…

qt下载安装

1.在目录栏输入CMD,然后按回车 2. 输入以下内容回车启动在线安装程序 镜像源: 清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/ 北京理工大学:http://mirror.bit.edu.cn/qtproject/ 中国互联网络信息中心:http…

Android之复制文本(TextView)剪贴板

效果图&#xff1a; 功能简单就是点击“复制”&#xff0c;将邀请码复制到 剪贴板中 布局 <androidx.constraintlayout.widget.ConstraintLayoutandroid:id"id/clCode"android:layout_width"dimen/dp_0"android:layout_height"dimen/dp_49"…

贝壳找房:基于OceanBase构建实时字典服务的实践 | OceanBase案例

贝壳找房作为领先的居住服务综合平台&#xff0c;一直在推进居住产业的数字化与智能化升级。该平台通过汇聚并赋能优质的服务者&#xff0c;旨在为中国广大家庭带来涵盖二手房买卖、新房交易、房屋租赁、家装、家居以及家庭服务等全方位、高质量且高效的居住服务体验。 在贝壳…

Linux学习记录(二)-------文件IO

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言文件IO1.函数open2.函数close3.函数lseek4.函数read5.函数write 前言 文件IO Linux 自带的工具&#xff1a;man手册 man 1 是普通的shell命令&#xff0c;比如…

最新CSS3横向菜单的实现

横向菜单 原始代码&#xff1a; <nav class"list1"><ul><li><a href"#">Shirts</a></li><li><a href"#">Pants</a></li><li><a href"#">Dresses</a>…

零基础STM32单片机编程入门(二十五) 内部FLASH模拟EEPROM实战含源码

文章目录 一.概要二.FLASH模拟EEPROM的优势三.FLASH模拟EEPROM的原理四.数据读写步骤五.数据转移流程图六.FLASH模拟EEPROM读写例程七.CubeMX工程源代码下载八.小结 一.概要 STM32F103C8T6是一款强大而灵活的微控制器&#xff0c;它的片内Flash存储器可以用来存储有关数据&…

sqli-labs-php7-master第5-10关

第五关&#xff1a; 根据提示输入ID,随便来个一 输入100&#xff0c;因为数据库没有&#xff0c;所以这里没输出内容 还是先找注入点&#xff1a;输入单引号试试 注入点找到了‘ 查询数据库列数&#xff1b;&#xff1f;id1 order by 4 -- 测试发现order by 3时页面正常&…

C++笔试练习笔记【5】:最小花费爬楼梯(有题目链接) 初识动态规划

文章目录 题目思路代码 动态规划简介**一、什么是动态规划****二、动态规划的应用场景****三、动态规划的基本步骤****四、动态规划的优缺点** 题目 题目链接&#xff1a;https://www.nowcoder.com/practice/9b969a3ec20149e3b870b256ad40844e?tpld230&tpld39751&ru/…

探索人工智能技术的发展导致知识崩溃危险的可能性

概述 本文分析了人工智能&#xff08;AI&#xff09;技术的发展在缩小人类知识库方面的潜力。 作者认为&#xff0c;如果大语言模型&#xff08;LLMs&#xff09;等人工智能技术迅速发展&#xff0c;人工智能生成的内容成为人类接触的大部分信息&#xff0c;那么长尾知识&…

python图表没有正确显示中文,这通常是因为matplotlib的默认设置不支持中文字符,或者相应的字体没有正确加载。

如果图表没有正确显示中文&#xff0c;这通常是因为matplotlib的默认设置不支持中文字符&#xff0c;或者相应的字体没有正确加载。你可以通过指定支持中文的字体来解决这个问题。下面是如何设置matplotlib以确保能够在图表中显示中文的步骤&#xff1a; 方法1&#xff1a;全局…

python的多线程

python的threading模块&#xff0c;它提供了丰富的接口来创建和管理线程。 定义一个函数print_numbers&#xff0c;这个函数将由线程执行。在这个函数中&#xff0c;我们使用一个循环来打印数字&#xff0c;并使用time.sleep(1)来模拟每个数字打印之间有1秒的延迟。 在 if __…

Windows应急响应-排查方式

目录 Windows应急响应排查流程一、账户排查排查方法&#xff08;1&#xff09;查看用户信息&#xff08;2&#xff09;lusrmgr.msc手动查&#xff08;比较麻烦&#xff09;&#xff08;3&#xff09;检测克隆账户 ---可使用安全工具D盾进行检测&#xff0c;同时可以直接查看端口…

群辉NAS利用AList搭建混合云盘⑥挂接腾讯微云

目录 ……接前文 5、挂接腾讯微云 未完待续…… ……接前文 5、挂接腾讯微云 登录AList后台→管理→存储→驱动供选择“腾讯微云”→填写挂接路径 打开“配置文档”(详见前文) 打开配置文档→简体中文→开始→找到腾讯微云部分,可以看到关于Cookie的设置方法。 手工用…