自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

In-Memory Computing Technology

内存数据库,内存网格技术,包括TimesTen, Redis, HANA, Spark, Coherence等

  • 博客(499)
  • 资源 (2)
  • 论坛 (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 9

原创 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 22

原创 数字化转型的知识和方法

找到国资委的一个链接,http://www.sasac.gov.cn/n4470048/n13461446/n15927611/index.html。底下有个知识与方法,看上去还不错。

2021-05-28 10:21:11 18

原创 TimesTen与Oracle数据库的兼容性

这篇博文是看了这篇文章:How compatible is TimesTen In-Memory Database with the Oracle Database?后的一些感想。首先TimesTen不可能完全兼容Oracle,反过来还差不多,毕竟Oracle功能太丰富。不够毕竟是一家的产品,所以主要的功能还是兼容的,而且相对于其它的数据库,TimesTen对Oracle的兼容度应是比较高的,而且重点是在交易方面。文章的第一段就说了,一些程序可以不修改源代码直接运行,也可参见我之前的文章:一套程序,两

2021-05-12 14:19:21 23

原创 TimesTen Classic缓存组和NOT NULL

昨天在用户处测试,虽然最终完成,中间磕磕碰碰很多,其实主要就是列的定义需要NOT NULL。以下列举了两种情况:在为缓存组选择主键或唯一索引时,主键不必说,因为主键是不允许NULL的;如果选择唯一索引,唯一索引包含的所有键都必须NOT NULL。在Oracle端,我是通过SQL Developer在线改的表定义,时间最长的1分多钟改完。定义Aging,Aging列也要求NOT NULL。...

2021-05-12 13:25:00 21

原创 TimesTen缓存组与触发器

TimesTen只读缓存组是通过在基础表上添加触发器实现的,变化行的唯一标识(主键或唯一索引)会记录在Change Table中,然后TimesTen定期读取Change Table,再将变化同步到缓存表。那么问题来了,这个会增加Oracle的开销吗?开销会很大吗?首先,开销肯定是有的。这要分两种情况。1)对于查询,由于负载转移到了TimesTen,因此总的来说,查询性能提升了,Oracle的负担小了。2)对于DML,由于触发器的原因,会增加很小的开销。看一个实际的例子,Oracle Data C

2021-05-12 13:17:09 17

原创 前台程序放到后台并且nohup

前天测试,有个批处理程序放到前台运行了,如何放到后台运行,以便关机走人?看了这篇How do I put an already-running process under nohup?第一种方法是Ctrl Z + bg+disown,都是任务管理的命令,例如:[vagrant@oracle-19c-vagrant ~]$ sleep 1000^Z[1]+ Stopped sleep 1000$ bg %%[1]+ sleep 1000 &$ jobs

2021-05-10 08:08:43 48

原创 TimesTen磁盘空间管理

TimesTen数据库的的磁盘空间占用主要由两部分组成:checkpoing文件数据库log 文件checkpoint文件因为有两个,因此至少需要2 * Permsize空间,建议预留3-4倍Permsize空间。数据库log文件类似于Oracle的redo log,在checkpoint(默认600秒)时会自动清理,也可以用ttckpt命令手工清理。是否能被清理取决于是否有缓存组,日志,XLA等。写这篇文章的初衷,是由于客户运维关心日志文件清理,这样看来只需要留够足够的空间就好了。比较经典

2021-05-09 10:22:35 22

原创 CAP理论简单解读

CAP理论是什么?我觉得讲的最清楚的是维基百科。CAP分别表示一致性,可用性和分区容错性。P可以直接理解为分布式系统。理解CAP理论的最简单方式是想象两个节点分处分区两侧。允许至少一个节点更新状态会导致数据不一致,即丧失了C性质。如果为了保证数据一致性,将分区一侧的节点设置为不可用,那么又丧失了A性质。除非两个节点可以互相通信,才能既保证C又保证A,这又会导致丧失P性质。这个解释真是简单明了,符合KISS原则。再补充Stack Exchange这条,就全了。ACID关注一致性C和可用性A,例

2021-04-26 20:56:19 32

原创 Start 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 75

原创 Oracle Dev Gym上的Databases for Developers新课程

目前共有3门Database for Developers课程:Databases for Developers: FoundationsDatabases for Developers: Next LevelDatabases for Developers: PerformanceDatabases for Developers: Performance是新课程。包含10节课,包括执行计划,统计信息,Join,性能调优等。主要是理论。看了一节Join的课,蛮好的,推荐!...

2021-03-18 14:59:01 33

原创 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 84

原创 Oracle数据库初始化参数:静态还是动态?

例如我想知道修改SGA_TARGET后是否立即生效,还是需要重启?这些信息在Oracle Database Reference中是查不到的。可以从v$parameter中查询,例如:col name for a20col display_value for a20set lines 120SELECT name, display_value, issys_modifiable, isbasicFROM v$parameterWHEREname IN

2021-02-24 08:36:16 60

原创 Oracle数据库升级RU和RUR实验

本文包括两个实验:从19.3.0升级到19.9.0 (RU升级)从19.9.0升级到19.9.1 (RUR升级)基础环境准备使用的是标准的Vagrant Box,参考这里。安装完成后,版本为19.3.0。下载RU和RUR利用[Oracle补丁下载助手](Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base

2021-02-21 09:46:59 144

原创 Oracle数据库升级OPatch全过程

opatch是用来升级的,但有时也需要升级它自己。例如在19.3.0升级到19.9.0过程中,报错以下:$ opatch applyOracle Interim Patch Installer version 12.2.0.1.17Copyright (c) 2021, Oracle Corporation. All rights reserved.Oracle Home : /opt/oracle/product/19c/dbhome_1Central Inventory :

2021-02-21 06:50:48 266

原创 修改VirtualBox和SQL Developer的菜单的字体

操作系统为Windows 10,VirtualBox和SQL Developer的菜单中的英文字体太难看了。按照这篇文章,修改注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize\GUIFont.Facename将默认值从Simsun改成为Microsoft YaHei UI,重启就好了。...

2021-02-15 17:05:40 61

原创 Redis RU330课程 Redis Security 第3周学习笔记

Week Overview and Introduction to TLSTLS用来保证网络通讯安全,在Redis 6中引进,实现3点:PrivacyIdentityIntegrityRedis Horror Story #3packet sniffing:拦截未加密的网络数据upshot:结果很好的对比例子。先安装tcpdump:$ sudo yum install -y tcpdumphset user:1:secret gender m birthday 20200101

2021-02-02 10:39:00 148

原创 Redis RU330课程 Redis Security 第2周学习笔记

Introduction and Principle of Least PrivilegeOverview and Principle of Least PrivilegeJerome Saltzer,美国计算机科学家。Least privilege: Every program and every user of the system should operate using the least set of privileges necessary to complete the job最小

2021-01-27 13:01:17 58

原创 Redis RU202课程 Redis Streams 第1周学习笔记

Overview of RU202https://github.com/redislabs-training/ru202https://redis.io/topics/streams-introWelcome to RU202此课程的前提是RU101。申请一个免费的云端Redis,即Redis Cloud Essentials,参见这里Redis Cloud Essentials适用于开发环境或低吞吐量应用,其特点为:30MB 存储,无需信用卡关键企业级特性新功能: RediSear

2021-01-22 18:31:31 67

原创 Oracle Linux下安装Python 3

本文参照https://yum.oracle.com/oracle-linux-python.html#InstallPythonOracle Linux 7默认包括Python 2.7:$ python --versionPython 2.7.5$ sudo yum install -y oracle-epel-release-el7 oracle-release-el7$ sudo yum install -y python3如何激活Python 3:$ python --vers

2021-01-22 14:57:26 79

原创 Linux上安装MongoDB

安装MongoDBOS为Oracle Linux 7。参照的安装手册见这里创建文件/etc/yum.repos.d/mongodb-org-4.4.repo,内容如下:[mongodb-org-4.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb

2021-01-22 14:41:08 73

原创 Windows 10安装Vagrant

登录页面,选择Windows 64bit,安装文件232MB。单击安装文件即可。确认vagrant已安装:$ which vagrant/c/HashiCorp/Vagrant/bin/vagrant大小873MB,空间占用928MB。重启计算机。

2021-01-20 11:31:38 43

原创 安装Git SCM for Windows

Windows 10操作系统。登录网页,单击64-bit Git for Windows Setup。Git for Windows Portable是可移植版,也就是解压即安装,此处不考虑。单击下载文件,约46.6M,开始安装。提示需要259.1M空间。一路点击Next,选择默认配置即可。确认git已安装:$ where gitC:\Program Files\Git\mingw64\bin\git.exe此时可运行gitbash。...

2021-01-20 11:02:41 44

原创 对于销售,Oracle的产品如何快速入门

这里的入门,是针对销售的,知道Oracle有哪些重要的产品,能用在什么场景,有什么好处。以下所有的资料都是中文的。数据库产品数据库产品包括4部分:数据库企业版及选件OEM管理包ExadataGoldenGate这一部分请先看完“甲骨文云技术”微信公众号中的文章《王宝器漫游O记数据商店》。看完后对数据库产品的框架会有一基本了解。然后对于每一产品,可以看中文官网的介绍。只看中文的,如果出现英文即可跳过。重点看下面红框中的。然后请下载Oracle数据库中文白皮书大全,不需要看具体的白皮书

2021-01-19 18:47:12 91

原创 Do better,look better, connect better

这是一篇对我有所启发的文章,怕丢了,先存在这里吧。“对话硅谷华人高管”第四期精华总结其中推荐了一本书,找机会看看。Rise: 3 Practical Steps for Advancing Your Career, Standing Out as a Leader, and Liking Your Life...

2021-01-16 09:55:10 43

原创 TimesTen缓存管理员用户到底需要什么权限?

TimesTen缓存组做初始化时需要用SYS用户执行一个脚本,即$TIMESTEN_HOME/install/oraclescripts下的grantCacheAdminPrivileges.sql。其实从此脚本输出中也可以看到一些信息:SQL> @grantCacheAdminPrivileges "cacheadm"Please enter the administrator user idThe value chosen for administrator user id is cac

2021-01-13 12:09:12 123

原创 将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 51 1

原创 Python Crash Course读书笔记 - 第17章:WORKING WITH APIs

使用Web API通过URL获取数据,称为API调用。通常返回的是JSON和CSV格式数据。这里我们使用的是Github。Github是网站,其名字来自于Git,一个分布式版本控制系统。Github中包含项目,所有项目相关的信息,如代码,协同,bug等都存放于repository中。以下是调用的Github API,查询Github中评星最高的Python项目:https://api....

2020-12-26 21:41:47 228

原创 MongoDB University课程M320 Data Modeling 学习笔记

讲数据模型,课程介绍参见这里。Chapter 1: Introduction to Data ModelingChapter 2: RelationshipsChapter 3: Patterns (Part 1)Chapter 3: Patterns (Part 2)Chapter 5: Conclusion

2020-12-26 21:39:24 139 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 54

原创 缓存表的数据类型可以与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 45

原创 TimesTen只读缓存组在初始加载时会检查Aging吗?

先说为什么要问这个问题,用户的Oracle数据库中有一个非常大的表,存1年的数据,每天1000万条记录。现在需要用TimesTen来做只读缓存,但只需缓存最近一个月的数据,因此申请的内存也只够缓存1个月的。那么如果TimesTen在初始加载时,先加载所有数据,然后再使用Aging清除数据。那么加载所有数据这一步就会失败,因为内存不过;而且这么做显得有点多余。所以按照逻辑来说,应该在初始加载时就会利用Aging排除掉不满足条件的数据。下面来验证一下。先在Oracle中创建基础表,然后插入1000条数据

2020-12-23 20:59:01 39

原创 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 54

原创 使用Compass连接MongoDB Atlas

前提是已经申请了MongoDB Atlas环境,我开通的是free tier。通过以下URL访问Atlas环境:https://account.mongodb.com/account/login拷贝连接串:从这里下载Compass:解压即安装,运行可执行程序MongoDBCompass.exe,输入连接串,即可进行管理。底部还有mongo shell,很方便。...

2020-12-21 18:08:23 188

原创 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 113

原创 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 101

原创 错误解决:由于找不到VCRUNTIME140_1.dll,无法继续执行代码

一大早运行个程序就报这个错:由于找不到VCRUNTIME140_1.dll,无法继续执行代码最后通过这个页面解决的。安装的是这个:x64: vc_redist.x64.exe

2020-12-21 09:26:45 1635 1

原创 MongoDB University课程M103 Basic Cluster Administration 学习笔记

此课程共3章,需在2个月内完成。开始于2020/12/19日12:40。命令参考:https://docs.mongodb.com/manual/reference/method/#replication关于实验环境,只能用课程自带的Atlas环境,因为它要检查这个环境,例如以下是replica set的实验检查结果。用惯了还觉得挺好用的:12 total, 12 passed, 0 skipped:[PASS] "localhost:27001 is running"[PASS] "local

2020-12-21 00:37:30 244 1

原创 MongoDB University课程M001: MongoDB Basics 学习笔记

https://github.com/mongodb/mongohttps://docs.atlas.mongodb.com/sample-data/available-sample-datasets下载:https://developer.mongodb.com/article/atlas-sample-datasetscurl https://atlas-education.s3.amazonaws.com/sampledata.archive -o sampledata.archivesh

2020-12-19 11:01:22 376

原创 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 213

Exadata数据库平台的业务价值(IDC报告)

IDC关于Exadata的业务价值报告

2020-12-20

TImesTen博客示例源代码

我的内存计算专栏示例源代码

2017-03-05

dingdingfish的留言板

发表于 2020-01-02 最后回复 2020-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除