In-Memory Computing Technology
文章平均质量分 54
介绍内存计算技术的基本概念,架构,比较和应用,包括内存数据库,内存网格,内存缓存等。产品包括TimesTen, Redis, SAP HANA, Spark, Oracle Coherence, Oracle DB12c In-Memory, MySQL Cluster等
dingdingfish
能将忙事成闲事 不薄今人爱古人
展开
-
Oracle LiveLabs实验:Improve application performance with True Cache
参加本次动手实践研讨会,了解如何使用 True Cache 通过卸载查询和减少对主数据库的请求和连接数量来提高可扩展性。本次研讨会基于连接到配置了 True Cache 的主数据库的计算实例(在线事务处理应用程序)。演示应用程序是一个使用 23ai JDBC 驱动程序的 Java 程序。它模拟了主数据库的大量事务,以及如何将只读查询卸载到 true cache 来帮助提高应用程序性能。Oracle Database True Cache 是一种内存中、一致且自动管理的SQL和键值(对象)缓存。原创 2024-07-26 10:28:30 · 968 阅读 · 0 评论 -
Oracle内存计算应用模式
内存计算是利用内存来加速数据访问和应用的性能,并降低应用开发复杂度的技术。近十年来,随着软硬件技术的发展和用户需求的成熟,内存计算技术已经得到了广泛地应用。Oracle在内存计算领域具有非常重要的地位,这主要得益于Oracle在技术领域的长期耕耘和深厚积累。Oracle在内存计算领域的产品和解决方案包括:Oracle TimesTen,Oracle Database In-Memory和Oracle True Cache。按照时间顺序。原创 2024-02-26 12:06:32 · 1045 阅读 · 0 评论 -
Oracle中将2个timestamp列的差转换为秒
最初的SQL如下,最后1列是时间差。但是我需要转换成秒,以便后续统计。第二种方法是近似的方法,没有小数点后的秒数,不过这里也是可以接收的。最终我还是用了方法1。注意以上WITH…AS子句,也就是Oracle的CTE(Common Table Expression),非常简洁。原创 2023-05-07 18:52:44 · 1174 阅读 · 0 评论 -
Oracle ASM中的spfile恢复
做Database In-Memory的实验,经常会出现内存参数设置不正确,导致数据库无法启动的情况,例如inmemory_size设的太大,或者设置时没有带单位。此时就需要恢复spfile。本文讨论spfile位于ASM时的恢复过程。原创 2023-05-02 21:17:22 · 1000 阅读 · 0 评论 -
我的书《Oracle Database In-Memory架构与实践》出版了
我的书《Oracle Database In-Memory架构与实践》在4月份出版了。原创 2022-07-18 17:15:40 · 246 阅读 · 0 评论 -
MySQL HeatWave Quickstart (快速入门)
本实验参考文档HeatWave Quickstart。今天快速体验了一把MySQL HeatWave,整个过程比较顺畅,应该算是入了门了。建议把HeatWave User Guide快速看一遍,也就60多页。创建一个MySQL数据库系统在OCI上创建一个MDS(MySQL Data Service),其实就是一个MySQL数据库。过程可以参考LiveLabs上的实验:MySQL, Data Integration and Data Science for Marine Life Workshop。原创 2021-07-06 14:44:25 · 849 阅读 · 1 评论 -
TimesTen Aging会清理未来的数据吗
前一阵用户问一个问题,如果基于时间窗的缓存组中插入了未来的数据,此数据会被清理吗?我感觉不会,下面来验证以下。不过我不准备用缓存组来测试了,直接用缓存表吧。反正概念一样。先建一个带非空时间字段的表t1。-- Database is in Oracle type modecreate table ORATT.T1 ( C1 VARCHAR2(4000 BYTE) NOT INLINE, C2 DATE NOT NULL DEFAULT sysdate);定义基于时间原创 2021-06-18 13:50:03 · 143 阅读 · 0 评论 -
TimesTen 支持列表
截止2021年6月1日。支持的操作系统(主要的):RHEL 6/7/8; Oracle Linux 6/7/8; SLES 12/15AIX 7.1/7.2Windows 10, 2019 …支持的Oracle数据库版本:12.1.0.112.1.0.212.2.0.11819TimesTen当前版本:18.1.4.12.0如何下载:HOWTO : Find Oracle TimesTen In-Memory RDBMS Patches/Releases/Downlo原创 2021-06-04 10:59:59 · 214 阅读 · 1 评论 -
TimesTen与Oracle数据库的兼容性
这篇博文是看了这篇文章:How compatible is TimesTen In-Memory Database with the Oracle Database?后的一些感想。首先TimesTen不可能完全兼容Oracle,反过来还差不多,毕竟Oracle功能太丰富。不够毕竟是一家的产品,所以主要的功能还是兼容的,而且相对于其它的数据库,TimesTen对Oracle的兼容度应是比较高的,而且重点是在交易方面。文章的第一段就说了,一些程序可以不修改源代码直接运行,也可参见我之前的文章:一套程序,两原创 2021-05-12 14:19:21 · 229 阅读 · 0 评论 -
TimesTen Classic缓存组和NOT NULL
昨天在用户处测试,虽然最终完成,中间磕磕碰碰很多,其实主要就是列的定义需要NOT NULL。以下列举了两种情况:在为缓存组选择主键或唯一索引时,主键不必说,因为主键是不允许NULL的;如果选择唯一索引,唯一索引包含的所有键都必须NOT NULL。在Oracle端,我是通过SQL Developer在线改的表定义,时间最长的1分多钟改完。定义Aging,Aging列也要求NOT NULL。...原创 2021-05-12 13:25:00 · 168 阅读 · 0 评论 -
TimesTen缓存组与触发器
TimesTen只读缓存组是通过在基础表上添加触发器实现的,变化行的唯一标识(主键或唯一索引)会记录在Change Table中,然后TimesTen定期读取Change Table,再将变化同步到缓存表。那么问题来了,这个会增加Oracle的开销吗?开销会很大吗?首先,开销肯定是有的。这要分两种情况。1)对于查询,由于负载转移到了TimesTen,因此总的来说,查询性能提升了,Oracle的负担小了。2)对于DML,由于触发器的原因,会增加很小的开销。看一个实际的例子,Oracle Data C原创 2021-05-12 13:17:09 · 170 阅读 · 2 评论 -
TimesTen磁盘空间管理
TimesTen数据库的的磁盘空间占用主要由两部分组成:checkpoing文件数据库log 文件checkpoint文件因为有两个,因此至少需要2 * Permsize空间,建议预留3-4倍Permsize空间。数据库log文件类似于Oracle的redo log,在checkpoint(默认600秒)时会自动清理,也可以用ttckpt命令手工清理。是否能被清理取决于是否有缓存组,日志,XLA等。写这篇文章的初衷,是由于客户运维关心日志文件清理,这样看来只需要留够足够的空间就好了。比较经典原创 2021-05-09 10:22:35 · 275 阅读 · 0 评论 -
Star Schema Benchmark (SSB)数据生成及脚本
SSB 类似于TPC-H,非常适合测试分析型查询,也非常适合体现Oracle Database In-Memory的优势。生成示例数据:git clone https://github.com/electrum/ssb-dbgen.gitcd ssb-dbgensed -i 's/^MACHINE.*=.*/MACHINE=LINUX/' makefile # 将平台改为LINUXmake # 生成可执行程序dbgen# 利用dbgen生成示例数据,-T指定表,-s指原创 2021-04-23 10:48:28 · 1704 阅读 · 0 评论 -
TimesTen官方案例
目前有两个页面。第一个是:https://www.oracle.com/database/technologies/related/timesten.html第二个是:https://www.oracle.com/cn/database/technology/timesten-overview.html 的中间部分。原创 2021-03-09 16:52:08 · 269 阅读 · 0 评论 -
将TimesTen缓存组aging lifetime设置更长会自动加载历史数据吗?
已有一个缓存组,aging lifetime设为1年,数据已加载。如果将aging lifetime设为2年,1年前到2年内的数据会自动刷新到缓存组吗?通过实验,发现不行!如果将aging lifetime设为更长,希望所有数据都能进入缓存组,方法是卸载缓存组后,再加载缓存组。这是由于aging是TimesTen表的属性,缓存代理刷新数据是根据Oracle端的触发器,修改aging lifetime是不会去动Oracle端的跟踪表的。修改aging lifetime示例如下:alter table原创 2021-01-03 19:51:13 · 193 阅读 · 1 评论 -
TimesTen 18c下ttImportFromOracle运行报错问题解决
从官网下载ttImportFromOracle。在TimesTen 18c下运行报错:ttImportFromOracle: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory在安装目录下只找到了libclntsh.so.12.1:$ sudo find /u01 -name libclntsh.so.11.1$ su原创 2020-12-23 23:33:36 · 265 阅读 · 0 评论 -
缓存表的数据类型可以与Oracle不一样吗? (续)
上一篇文章缓存表的数据类型可以与Oracle不一样吗?讲到:如果基础表数据类型为数字整型,则在建立缓存组时,可以指定对应的整型如果基础表数据类型为VARCHAR(N),在建立缓存组时指定类型为VARCHAR(M),M不等于N,也会失败。但我对第2点不甘心,因为当时指定的M<N,显然也是不合理的。这一次我做了3个实验。所有的实验都是通过命令行执行的,因为SQL Developer的向导禁止你这么做。实验1:增加VARCHAR宽度 - 失败指定M>N,错误和上一次一样。看来对于VAR原创 2020-12-23 22:22:48 · 177 阅读 · 0 评论 -
TimesTen只读缓存组在初始加载时会检查Aging吗?
先说为什么要问这个问题,用户的Oracle数据库中有一个非常大的表,存1年的数据,每天1000万条记录。现在需要用TimesTen来做只读缓存,但只需缓存最近一个月的数据,因此申请的内存也只够缓存1个月的。那么如果TimesTen在初始加载时,先加载所有数据,然后再使用Aging清除数据。那么加载所有数据这一步就会失败,因为内存不过;而且这么做显得有点多余。所以按照逻辑来说,应该在初始加载时就会利用Aging排除掉不满足条件的数据。下面来验证一下。先在Oracle中创建基础表,然后插入1000条数据原创 2020-12-23 20:59:01 · 153 阅读 · 0 评论 -
TimesTen只读缓存组可以部分加载吗
先说结论吧,对于auto refresh的只读缓存组,如果类型是Dynamic类型的,就可以部分加载。下面我们通过实验来说明,Oracle中的从基础表为orders,然后插入1000条初始数据create table orders(ord_num int primary key,ship_time date not null);grant select on orders to cacheadm;DECLARE ord_num NUMBER;BEGIN FOR i IN 1..1原创 2020-12-23 20:32:58 · 192 阅读 · 0 评论 -
TimesTen在Oracle数据库中安装的对象及清理
和此文相关的文章为TimesTen 应用层数据库缓存学习:20. TimesTen异常时的缓存清理建立TimesTen只读缓存组时,会在Oracle数据库中创建用户,建立对象并赋权,本文讲述如何查看这些对象。另外,如果TimesTen并未正常的删除缓存组,或正常卸载时都需要清理这些对象。相关脚本位于$TIMESTEN_HOME/install/oraclescripts目录。$ cd $TIMESTEN_HOME/install/oraclescripts/$ lscacheCleanUp.sq原创 2020-12-21 14:18:49 · 366 阅读 · 0 评论 -
TimesTen Classic 18c 卸载 (uninstall)全过程
当前TimesTen Classic 18c已安装,已配置读写缓存组。以下为卸载全过程。查看到cache agent和rep agent均在运行:$ ttstatusTimesTen status report as of Mon Dec 21 01:43:27 2020Daemon pid 2060 port 6624 instance tt181TimesTen server pid 2067 started on port 6625----------------------------原创 2020-12-21 10:34:26 · 651 阅读 · 0 评论 -
Timesten Classic 18.1 建立缓存组
本实验假设你已经完成了TimesTen软件的安装,并建立了与Oracle数据库的联通性。如果没有,请参照TimesTen 18.1.2.1 Classic模式安装与配置过程。本例Oracle数据库版本为12.2.0.1,数据库使用pdb,名为orclpdb。设置用户Oracle的Schema用户此处使用了HR Schema,安装方法参见如何安装Oracle数据库自带的HR Sample Schema或如何使用github安装Oracle 数据库12c Sample Schema (示例Schema)原创 2020-12-18 15:30:14 · 493 阅读 · 0 评论 -
TimesTen 18c 配置 HugePage
按照文档TimesTen 18.1.2.1 Classic模式安装与配置过程,在Linux 7上安装TimesTen 18.1.3.2.0,一切顺利,创建示例数据库重成功。但是将数据库内存增大到256G时,报错:$ ttisql sampledbCopyright (c) 1996, 2020, Oracle and/or its affiliates. All rights reserved.Type ? or "help" for help, type "exit" to quit ttIsq原创 2020-06-04 14:52:14 · 535 阅读 · 0 评论 -
加速度:走进Oracle Database In-Memory
昨天在网上做了第一次直播,大概四五百人吧。然后赶着晚上把文章发表了。这是一篇全面介绍Oracle Database In-Memory的文章,也是战疫期间集中学习后的一篇小型“毕业论文”,发帖留念一下。加速度:走进Oracle Database In-Memory...原创 2020-03-14 09:59:16 · 394 阅读 · 0 评论 -
MemOptimized Row Store属于Database In-Memory吗?
这实际上是个关于许可的问题。就是使用MemOptimized Row Store需要购买Database In-Memory选件吗?各版本数据块特性的支持,可参见Database Licensing Information User Manual,19c为E94254-11详细列表在1.3节Permitted Features, Options, and Management Packs by...原创 2019-11-06 14:42:41 · 234 阅读 · 0 评论 -
Oracle Database In-Memory资源汇总页面
从OOW 2019 DBIM session片子中,推荐了一个Database In-Memory汇总页面,如下:https://blogs.oracle.com/in-memory/dbim-resources其中OOW 2019的Hands on Lab可以抽空做一下。原创 2019-10-28 15:43:02 · 254 阅读 · 0 评论 -
Oracle Database In-Memory Advisor
概述本文是此白皮书的阅读笔记。Database In-Memory 以下简称 DBIM。DBIM Advisor以下简称建议器。DBIM是12.1.0.2时发布的,也就是说在12c刚发布时并无此特性。DBIM的发布起码有一部分是针对SAP HANA的。建议器的作用:评估DBIM是否对分析带来好处对于OLTP负载,是否可以删除索引评估所需的内存量生成为对象配置DBIM的脚本安......原创 2019-08-25 20:58:12 · 809 阅读 · 1 评论 -
AWT缓存组复制失效问题的解决
昨天给某用户安装TimesTen Classic 11.2.2.8,前面一切正常,建立只读缓存组及测试正常。建立AWT缓存组正常,但数据无法复制到Oracle。检查日志,发现不断报错:[timesten@n-pc-nf8260-71 ~/TimesTen/tt1122/info]$tail -f tterrors.log2019-05-13 12:09:59.89 Err : REP: 67...原创 2019-05-14 13:35:56 · 240 阅读 · 0 评论 -
在VagrantBox中安装TmesTen Classic
概述Windows 10作为Host,其上安装VirtualBox VM作为timesten主机。然后在Host上安装SQL Developer管理timesten准备一台Linux虚机使用oracle官方的vagrantbox,操作系统为OL7,在Windows下执行以下操作:git clone https://github.com/oracle/vagrant-boxes.gitv...原创 2019-04-29 20:21:49 · 499 阅读 · 0 评论 -
TimesTen Classic 18c 安装与配置过程
概述TimesTen 18.1.2.1版是首个兼容TimesTen Classic模式的安装包。Release Notes是这么说的:This release supports Classic TimesTen In-Memory Database, in addition to TimesTen Scaleout.Oracle Blogs里是这么说的:One Download, T...原创 2019-04-22 14:08:24 · 1325 阅读 · 0 评论 -
Windows下的MD5或SHA 文件校验程序
null river的winmd5sum之前一致用这个的,目前开源了,从这里下载。会嵌入到资源管理器菜单中。只支持md5。Microsoft File Checksum Integrity Verifier命令行工具,支持MD5和SHA。从这里下载,解压放到%PATH%下就行,例如C:\windows\system32C:\Users\yyxiao\Downloads&gt;FCIV ...原创 2019-02-25 16:18:04 · 1333 阅读 · 0 评论 -
TimesTen 18.1.2.1.0发布了
参见TimesTen 产品页面中的TimesTen 18.1.2.1.0 Patchset Features,以及Release Notes,及产品下载页面。以下是来自TimesTen 中国区PM的说明:新春伊始,TimesTen开发和产品管理团队很高兴地宣布 TimesTen 18.1.2.1.0 补丁集已经正式发布了!除了针对TimesTen Scaleout的众多改进(包括一些小的新...原创 2019-02-25 13:43:55 · 409 阅读 · 0 评论 -
本人首篇超过2万阅读量的文章,Mark一下!
关注“甲骨文云技术”公众号,点击文章“Oracle官方免费学习资源汇总”即可。涉及到TimesTen资源的包括Oracle Blogs,Oracle on GitHub和中文白皮书。原创 2019-02-22 09:44:25 · 314 阅读 · 0 评论 -
在WebLogic中配置TimesTen数据源
安装WebLogicWebLogic软件可以从OTN上下载,我们使用的是Quick Installer for Mac OSX, Windows and Linux,大约209MB。安装过程完全参照附带的readme文件。首先创建用户weblogic,此用户会用于后续安装WebLogic:# useradd weblogic# passwd weblogic# su - weblo...原创 2018-07-27 17:19:24 · 2628 阅读 · 1 评论 -
一个例子说明内存数据库为什么比磁盘数据库要快
内存数据库比磁盘数据库要快,即使在传统数据库中,你将整个表缓存到内存。 这次培训,Sam老师又温习了一下,并给出一个例子: 左边是磁盘数据库,例如Oracle,右边是内存数据库,例如TimesTen。 在磁盘数据库中,内存中有页面地址表,然后如果数据在缓存中,则page中的地址指向SGA,否则指向磁盘。而在内存数据库中,page一列存放的是地址指针,可以直接访问,相对于Oracle有多次...原创 2018-06-20 13:26:50 · 5003 阅读 · 1 评论 -
TimesTen 18.1文档Accessibility Guide解读
Accessibility Guide谈两个方面,即如何访问TimesTen和文档可访问性(Documentation Accessibility),本文只谈前者 这里面有一句话,说明目前TimesTen可分为3类产品,也就是三种模式,这样看来TimesTen Classic可以认为是Standalone: Oracle TimesTen has three product offeri...原创 2018-05-19 20:49:00 · 386 阅读 · 0 评论 -
通过发行公告了解TimesTen 18.1新特性
18.1版本的发布是TimesTen产品演进过程中非常重要的一个里程碑,其中推出了新的grid模式:TimesTen Scaleout,即分布式关系型内存数据库。 通过查看发行公告(Release Notes),可以对TimesTen Scaleout有一个基础的了解。 在18.1发布之后,之前发布的版本(最新为11.2.2.8.29)被称为TimesTen Classic,18.1版本目前只...原创 2018-05-19 20:37:07 · 632 阅读 · 0 评论 -
缓存表的数据类型可以与Oracle不一样吗?
在建立缓存组时,默认时缓存表的类型与Oracle保持一致,那是否可以不一样呢? 之所以有这个问题是由于两点: 1. 之前Oracle中的表设计不合理,如果能改Oracle端的设计是最好的,这样从根源上解决了问题,但如果一时改不了,则希望在TimesTen端改 2. 由于TimesTen设计与Oracle不一样,因此为优化计,一些数据类型需要更改为TimesTen本地类型,特别是Oracle中...原创 2018-05-12 19:23:53 · 357 阅读 · 0 评论 -
TimesTen 18.1 (TimesTen Scaleout)正式发布了
2018年5月10日,Oracle TimesTen 18.1 新版本今天正式发布了!需要强调的是,此版本中包含一个全新的产品分支,TimesTen Scaleout,这是第一个商用关系型内存分布式数据库。之前的TimesTen是关系型内存数据库,加上Scaleout就支持分布式,可以横向扩展了。以下文字来自TimesTen产品经理 Jason Yang: 以下是18.1新版本中最重要的分布...转载 2018-05-12 13:17:07 · 1980 阅读 · 0 评论 -
为缓存初始化需要在Oracle数据库中执行的TimesTen脚本
标题有点长,事情是这样的。 在用户那搭一个测试环境,由于需要建缓存组,因此需要做网格初始化。那边的规定是Oracle不能给SYS口令,脚本必须由他们的DBA执行。因此将timesten主机上oraclescripts目录下的文件打包成oraclescripts.tar.gz,然后给了一个步骤: 1. 登录Oracle数据库主机 2. 上传并解压oraclescripts.tar.gz文件 ...原创 2018-05-12 13:00:38 · 305 阅读 · 0 评论