第1章 管理VoltDB数据库

VoltDB是一个分布式内存数据库,设计的目的是最大程度提高商用服务器的吞吐性能。VoltDB架构比传统的数据库产品提供了许多优点,同时避免的NoSQL解决方案的缺陷:

• 通过对数据和存储过程的分区,VoltDB可以并行处理多个查询而不牺牲数据库的ACID特性的一致性或持久性。

• 通过单独线程管理内存中每个分区的数据,VoltDB避免了传统磁盘库的 行锁、latching、资源竞争等问题。

• VoltDB数据库方便的扩展节点,以满足新的容量和性能要求。

• 基于schema自动分区。因此,不像目前许多的NoSQL解决方案,扩展时需要手动分片或重新分区的数据。

• 最后,VoltDB企业版提供的,通过command logging确保持久性和高可用性,在本地复制分区(K-安全),广域数据库复制等功能。

这些功能的在Using VoltDB手册有详细地描述。这本书从数据库管理员的角度来看解释了如何使用这些和其它功能,以管理和维护 VoltDB数据库集群。

1.1 Getting Started

在设置VoltDB环境前,你需要做出四项决定:

• 需要什么数据库功能 - 哪些功能要在配置文件中定义,并用voltdb init命令设置。

• 集群的物理结构 -你使用 voltdb start 命令时指定的集群中指定的节点数量和地址,。

• 数据库的逻辑结构 - 所述数据库表和视图的逻辑结构,也被称为模式,在标准的SQL语句被定义,并且可以使用SQLCMD命令行实用程序被应用到数据库。

• 存储过程- SCHEMA声明的存储过程。存储过程是java编写,自己执行事务对数据进行操作。通过sqlcmd命令行加载JAR文件形式的存储过程。

要初始化一个VoltDB数据库集群,你需要一个配置文件。通过配置文件,您可以启用和配置各种数据库选项包括可用性,持久性和安全性。该配置文件也定义了当前服务器上的数据库的部分属性,特别是命令日志和快照磁盘的文件的路径。用voltdb init命令初始化时,需要确保集群中的所有节点数据库都指定相同的配置文件。

使用数据库集群时,使用voltdb start命令,可以指定集群中节点数量,还可以指定一个或多个节点作为潜在主机。VoltDB在潜在主机中选择一个节点作为Leader协调启动过程。

当使用VoltDB企业版,你还需要一个许可文件,通常命名为 license.xml。VoltDB自动在用户的当前工作目录、主目录或voltdb安装目录的子文件夹 查找。如果许可文件在不同的目录或以不同的名称存储,你可以在voltdb start 命令中用 --license参数指定许可文件。

最后,应用程序使用数据库需要设置schema,包括DDL声明数据库的逻辑架构、包含存储过程的JAR文件等。一般情况下,数据库开发过程中包含,数据库shema和存储过程,详情请看Using VoltDB 手册。

本书中假定shema和存储过程已经创建。在另一方面,配置文件中定义了集群的运行时配置。设置正确的配置文件和管理物理管理的数据库集群是数据库管理员的职责。这本书是为制定标准流程相关人和数据库管理员编写。

1.2 了解 VoltDB Utility

VoltDB提供了几个命令行程序。熟练使用这些工具可以更轻松地管理VoltDB。3个最主要的创建,管理和测试VoltDB数据库的命令行工具如下:

voltdb 启动VoltDB数据库进程。该voltdb命令也可以收集日志文件,分析可能的系统错误(详情见 第7.3节“收集日志文件” 对于)。该voltdb命令在本地运行,不需要运行数据库。

voltdb 启动VoltDB数据库进程。该voltdb命令也可以收集日志文件,分析可能的系统错误(详情见 第7.3节“收集日志文件” 对于)。该voltdb命令在本地运行,不需要运行数据库。
voltadmin 命令管理VoltDB数据库的问题。您可以使用voltadmin 保存和恢复快照,暂停和恢复admin模式,可以关闭数据库,以及其他任务。该voltadmin命令可以远程运行,可执行集群范围的操作,只能连接运行中的数据库。
sqlcmd 让你发出SQL查询和调用存储过程。sqlcmd命令可以非常方便的测试数据库访问,而无需编写客户端应用。该SQLCMD命令可以远程运行,只能连接运行中的数据库。

除了前面的通用工具,VoltDB提供了具体任务的几个工具:

csvloader,jdbcloader, and kafkaloader 这些程序从外部源加载数据到现有VoltDB数据库。他们让你从CSV或基于文本的数据文件,JDBC数据源,或者Apache的kafka流加载数据。这些命令可以远程运行,只能连接运行中的数据库。
snapshotconvert 本地快照文件转换成CSV或tabbed文本文件。该snapshotconvert命令在本机快照导出格式化的文本文件,导入到其他数据库时非常有用。(此程序是为了支持老版本而保留的。现在推荐可以直接写快照CSV格式,不需要后处理的方法。)该snapshotconvert命令在本地运行,不需要运行数据库。
snapshotverify 验证一组的本地快照文件是否完整、有效。该snapshotverify命令在本地运行,不需要运行数据库。

最后,VoltDB包含一个基于浏览器的管理控制台 - VoltDB管理中心 - 用于实时监控数据库。详情看第5.1.1节“VoltDB管理中心” 。

1.3 管理任务

数据库管理职责分为五大类,如表1.1“数据库 管理任务”。下面的章节是按类别解释VoltDB数据库如何执行每项任务。

表1.1。数据库管理任务

准备服务器 启动数据库之前,您必须确保服务器硬件和软件配置正确。本章介绍启动VoltDB之前执行的清单。
基础数据库操作 初始化,启动和停止数据库的基本操作。这个本章介绍来处理这些基本任务所需的程序。
维护和升级 随着时间的推移,会出现计划的或突发的需要维护的集群和数据库。本章介绍了硬件和软件维护的标准维护流程。例如,作为备份数据库、升级硬件,软件或数据库schema。
性能监控 许多数据库管理员的另一个重要作用是监控数据库的性能。监控重要的原因如下: - 性能分析 - 负载均衡 - 故障检测 本章介绍了可用于监控VoltDB数据库的工具。
问题报告和分析 如果错误导致部分或全部的数据库集群故障,不仅数据库重启和运行重要,诊断原因并采取纠正措施也很重要。VoltDB产生许多日志文件有助于解决问题。

本章介绍不同的实用日志,以及如何使用它们来诊断数据库问题。

VoltDB Admin Guide相关推荐

  1. ATS 4.2.3自定义日志文件格式的方法

    我只是总结归纳了别人的方法,并做了实际验证,在这里记录一下,以备大家参考,向参考文献中的各位前辈致敬. ATS默认的日志格式是squid.log,我们可以在/var/log/trafficserver ...

  2. 如何让你的Nginx 提升10倍性能?

    来源:www.zcfy.cc/article/10-tips-for-10x-application-performance-nginx-22.html 原文:https://www.nginx.co ...

  3. 提升系统 10 倍性能的 10 个建议!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 译者:为之漫笔 来源:http://www.zcfy.c ...

  4. 面试官:我想用Nginx提升系统10倍性能,你有哪些建议?

    提升Web应用的性能从未像今天这样刻不容缓. 在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线进行了(相关数据请参考本文后面的资源).在这个超级链接.随时在线的现代世界, ...

  5. 如何将 Nginx 性能提升10倍?这10个“套路”请收好!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达今日推荐:2020年7月程序员工资统计,平均14357元,又跌了,扎心个人原创100W+访问量博客:点击前往,查看更多 提升 ...

  6. 转载---sharepoint相关资源

    免费的SharePoint Web Parts (第3方) ActiveX Scripting Web Part (Simon Mourier) AD Management Web Part (Fab ...

  7. linux 卸载 openldap,Linux下安装openldap

    Ubuntu apt-get install安装参考:http://dongwang.wordpress.com/category/uncategorized/ 普通linux安装,以XXX用户身份安 ...

  8. 容器编排技术 -- Kubernetes 联邦 Deployment

    容器编排技术 -- Kubernetes 联邦 Deployment 1 Before you begin 2 创建联邦 Deployment 2.1 在底层集群中分布副本 3 更新联邦 Deploy ...

  9. 在单位用oracle备份到磁带的脚本(看不明白的地方交流)

    这是单位用的,可能含有用户名,大家可以假装没看见啊! #!/bin/sh # $Header: hot_database_backup.sh,v 1.2 2002/08/06 23:51:42 $ # ...

最新文章

  1. 怎么快速学好php,学习编程的快速高效方法
  2. 对怀孕的人有害的食物。。。朋友们记住咯!(欢迎转载)
  3. nmap常用参数详解
  4. Python 大数据分析 淘宝商品销量的关系
  5. Flutter文本组件Text
  6. 微软进一步融合 Linux,VS Code 官方支持树莓派
  7. 大学生学java要去培训机构吗?
  8. matlab安装详解
  9. java rcp教程_Eclipse RCP教程 - 13 - 练习:创建Eclipse RCP程序 | JavaFX中文资料
  10. i219v微星 驱动_Intel英特尔网卡驱动下载-Intel英特尔I217/I218/I219系列网卡驱动官方版下载[电脑版]-华军软件园...
  11. 根据指定的经纬度查询半径为5km的地点
  12. 解读Verizon 2018数据泄漏调查报告:窃取身份仍是黑客最有效的攻击手段
  13. 【Books系列】2021年:《断舍离》读书笔记
  14. PreScan快速入门到精通第三十二讲基于PreScan进行毫米波雷达传感器仿真
  15. 用python做头像_如何利用python制作微信好友头像照片墙?
  16. Mac电脑没有声音,苹果电脑没有声音怎么办
  17. YOLOX源码解读系列
  18. 《科学之路》| 图灵奖得主杨立昆人工智能十问:AI会统治人类吗?
  19. c语言pl是什么意思,相机中PL,ND各代表什么?
  20. Codeforces Round #439 C.The Intriguing Obsession(组合数学)

热门文章

  1. 知乎大神关于高级ios进阶
  2. MATLAB | 应用程序无法连接到Mathworks - 终极解决方案 | 正版软件安装
  3. Copy、CopyFile、FileCopy的用法
  4. 编码surface android,【代码】通过 getHolder()方法可以得到这个 SurfaceHolder对象
  5. java runtimeexception check_CheckException和RuntimeException
  6. mac 修改dhcp服务器,Mac电脑如何设置DHCP
  7. Jvm从入门到精通(全)
  8. 为什么大猩猩你专家高明阅读_所以你说你是专家?
  9. Django的简介和MVC及MTV的初步认识
  10. Debian/Ubuntu下的网卡绑定-四网卡双bond