Timesten内存数据库新特性


OCI -- Functionality
• TimesTen support for OCI APIs
• A subset of the Oracle OCI functionality • A subset of the SQL functionality(at the same level as TimesTen
Oracle Confidential
OCI -- Motivation & Benefit
• OCI has a very large customer base
• Oracle Call Interface provides a set of C API with Oracle DB • OCI has been available since Oracle DB V6
<Insert Picture Here>
TimesTen 11gR2 New Features
Oracle Confidential
<Insert Picture Here>
Application Development TimesTen Support for OCI, Pro*C/C++, PL/SQL, ttSrcScan
C or C++ source programs • Supports embedded SQL 92 syntax • Provides same level of SQL functionality as supported in the
TimesTen ODBC interface • TimesTen 11.2.1 installer provides all required software for
ODBC) • Support OCI version 8
• TimesTen OCI application environment
• Uses the same Oracle instant Client 11.1.0.7(Shipped with TimesTen and installed with the rest of TimesTen software)
New in TimesTen 11gR2
In-progress
Oracle Confidential
OCI Applications in TimesTen
Application Process
App
OCI Client Lib TTOCI
Dirct ODBC
App
OCI Client Lib TTOCI
• Pro*C/C++ support in TimesTen database
• Uses the same Oracle Pro*C/C++ precomiler 11.1.0.7 • Enables applications to embed SQL and PL/SQL statements in the
• Uses the same configuration file forTNS name entries
• Configure TNS entry using the same Oracle syntax
• <tns_name>=(description=
•
(connect_data=
•
(service_name=<odbc_dsn>)
TT C/S ODBC
TimesTen InMemory Database
Direct Link
TT C/S Proxy
Direct ODBC
TimesTen InMemory Database Client/Server connection
over TCP/IP
Oracle Confidential
• Leverage IMDB technology for response-time critical application
• Reuse existing application code written for Oracle database • Take advantage of the direct-linked connection mode • Improve the response time for application
•
(server = timesten_direct |
•
timesten_client)))
Oracle Confidential
Pro*C/C++ -- Motivation & Benefit
• What’s Oracle Pro*C/C++?
• Oracle Pro*C/C++ pre-compiler enables programs to embed SQL & PL/SQL statements in the C or C++ source programs
programs • Support main-stream PL/SQL packages targeted for OLTP real-time
Oracle Confidential
OCI -- Implementation
Application
Pro*C JDBC ttClasses (C++) OCI
ODBC
.NET
SQL Engine
PL/SQL Engine
TimesTen Database Engine
Legend: Available in TT7.0
Proc/C++ (precomplier & runtime library )
Oracle Confidential
PL/SQL Stored Procedure
• TimesTen Stored Procedures
• Compatible Oracle PL/SQL syntax and semantics • Create and Execute procedures in the TimesTen database • Execute PL/SQL code from ODBC, JDBC, ttClasses, OCI, Pro*C, ttIsql
合集下载

深入内存数据库

深入内存数据库

✓ ACID
完整的事务支持。不支持嵌套事务/XA
✓ 交易独立性
默认Read Committed事务级别 不支持MVCC 降低为串行事务级别
提高效率, 违反D!
✓ 隔离级别与并发性是互为矛盾的
隔离程度越高,数据库的并发性越差; 隔离程度越低,数据库的并发性越好
2020/5/11
17
事务(2)
TimesTen支持两级事务隔离:
Optimization Typical deployment
Disk-centric(IO) Database tier
Memory-centric(CPU) Application tier
Architecture Response times
Data capacity Scalability
Client/server Milliseconds Tens of terabytes Unlimited SMP/cluster
➢ 完善的事务管理,针对物理内存的优化调度 算法和并发事务处理
➢ 关系型数据库,支持SQL92
➢ 数据可靠性、完善的数据恢复机制
2020/5/11
3
与传统数据库比较(1)
➢ 传统数据库的目的是处理永久、稳定的数据。强调维护数据的 完整性、一致性,但很难顾及数据及其处理的定时限制,不能 满足实时应用的需要
2020/5/11
8
TimesTen性能指标
2020/5/11
9
使用场景(1):常用数据缓存
缓存经常被访问的数据,提高应用的处理能力及反应 速度,减少网络和后台数据库的负载
2020/5/11
10
使用场景(2):热点数据缓存
缓存当前正使用的“热点数据”或重要客户的数据, 已提高反应速度优化服务,提高用户的忠诚度.

采用内存数据库提升一体化系统处理

采用内存数据库提升一体化系统处理

采用内存数据库提升一体化系统处理性能内存数据库简介TimesTen是Oracle公司的数据库产品,是一个内存优化的关系数据库(即内存数据库),将数据放在内存中直接操作。

相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。

内存数据库是一个针对内存进行了优化的关系数据库,它为应用程序提供了当今实时企业和行业(如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。

Oracle 内存数据库 TimesTen 作为独立或嵌入式数据库部署在应用层中,利用标准的 SQL 接口对完全位于物理内存中的数据库进行操作。

它也可以用作 Oracle 数据库的内存中数据库缓存,以改进用户应用程序的响应时间和吞吐量。

内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上。

可用性分析1、内存数据库的优势在于处理即时性较强数据,内存数据库能够实现与Oracle的数据自动更新与同步,可采用内存数据库处理前端日常业务,查询类业务通过Oracle进行处理;2、数据基于内存,处理速度较快,系统启动时需将数据加载到内存,受内存空间及数据量大小影响。

可考虑将日常业务处理数据加载到内存数据库处理,处理结果通过部署配置与Oracle进行数据同步。

查询分析类继续基于Oracle中进行;3、内存数据库目前不支持触发器,一体化系统业务处理采用触发器技术的地方较少,研发改动工作量不大;4、成本投入主要在于系统硬件(内存、CPU等)及相关软件费用(内存数据库需单独付费)。

改造应用1、内存数据库完全基于Oracle标准,所有在Oracle中可执行的脚本均可在内存数据库中执行;2、程序改造部分需将日常业务处理业务中所涉及的数据库信息进行归纳汇总,通过配置将汇总的Oracle数据库信息加载到内存数据库,并将把数据库访问连接更改为通过内存数据库进行读取;3、改造重点在系统部署(需要oracle支持)使系统能够实现两端数据的同步及自动化;4、触发器实现功能的替代性开发。

SQLite性能-inmemory模式。

SQLite性能-inmemory模式。

SQLite性能-inmemory模式。

SQLite创建的数据库有⼀种模式IN-MEMORY,但是它并不表⽰SQLite就成了⼀个内存数据库。

IN-MEMORY模式可以简单地理解为,(2020 表述勘误:本来创建的数据库⽂件是基于磁盘的,现在整个⽂件使⽤内存空间来代替磁盘空间,没有了⽂件作为backingstore,不必在修改数据库后将缓存页提交到⽂件系统),其它操作保持⼀致。

也就是数据库的设计没有根本改变。

inmemory与tempdb是两种节约模式,节约的对象为(rollback)⽇志⽂件以及数据库⽂件,减少IO。

inmemory将⽇志写在内存,并且去除数据库⽂件作为backingStore,缓存页不⽤提交到⽂件系统。

tempdb只会在只会在脏的缓存页超过当前总量的25%才会同步刷写到⽂件,换句话说在临时数据库模式下,事务提交时并不总同步脏页,因此减少了IO数量,事务⽇志也受这种机制影响,所以在临时数据库模式下,事务⽇志是不是MEMORY并不重要。

回过头来看,内存模式则是临时模式的⼀种极致,杜绝所有的IO。

这两种模式都只能存在⼀个sqlite3连接,关闭时销毁。

提到内存,许多⼈就会简单地理解为,内存⽐磁盘速度快很多,所以内存模式⽐磁盘模式的数据库速度也快很多,甚⾄有⼈望⽂⽣意就把它变成等同于内存数据库。

它并不是为内存数据库应⽤⽽设计的,本质还是⽂件数据库。

它的数据库存储⽂件有将近⼀半的空间是空置的,这是它的B树存储决定的,(2020 勘误:对于固定长度记录,页⾯使⽤率最⼤化,对于⾮⾃增计数键的索引,页⾯⼀般会保留20~60%的空间,⽅便插⼊)请参看。

内存模式只是将数据库存储⽂件放⼊内存空间,但并不考虑最有效管理你的内存空间,其它临时⽂件也要使⽤内存,事务回滚⽇志⼀样要⽣成,只是使⽤了内存空间。

它的作⽤应该偏向于临时性的⽤途。

(2020 补充:下⾯的测试有局限性,)我们先来看⼀下下⾯的测试结果,分别往memory和disk模式的sqlite数据库进⾏1w, 10w以及100w条数据的插⼊,采⽤⼀次性提交事务。

目前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么。。。

目前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么。。。

⽬前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么。

1 要求⽬前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么?它们的使⽤场合分别是?1.1 ⽬前市场上有些什么样的数据库管理系统(DBMS)⽬前市场上的数据库管理系统(DBMS)常见的品牌有:Oracle、Sybase、Informix、Microsoft SQL Server、Microsoft Access、Visual FoxPro、PostgreSQL、mySQL、DB2、Ingres、MongoDB、达梦(DM)数据库。

1.2 它们都有什么特点?它们之间的优缺点有什么?整体上可以把这些数据库分为商业数据库和开源数据库两类。

当前主流的商业数据库有、、 DB2和Adaptive SQL Server。

⽽在开源⽅⾯,主要有三家主流数据库:、PostgreSQL和Ingres。

这两类数据库都已经证明了⾃⼰可以胜任数据存储和管理的需要。

但相对于商业数据库,开源数据库可能是⽐较低的数据处理数量、缺少的功能、受限制的图形化管理,较低的安全性、或者是⼀些其他商业数据库有⽽开源数据库不具备的的东西。

2 商业数据库和开源数据库总览2.1 商业数据库之Oracle是商业数据库的代表,具有⾮常丰富的功能、⼴泛的平台⽀持和⼤量的附加功能。

在IDC的⼀个调查中,Oracle占据了数据库市场的44%,增长了14%。

Oracle的功能从表分区和⼤量的统计功能,到⼀些⾼可⽤功能,诸如本地复制、数据镜像和应⽤集群(Real Application Clusters,RAC)等。

Oracle另⼀个强⼤的功能是在线表和索引重建。

在很多数据库中,需要离线进⾏重建,也就是说当索引被重建的时候,不允许访问数据,因为这个操作要求独占性访问对象。

当然,这不是Oracle的全部功能,只是其所能提供的⾼级功能的⼀些⽰例。

oracle database21c原理

oracle database21c原理

oracle database21c原理Oracle Database 21c是一种关系型数据库管理系统,由Oracle Corporation开发和维护。

它是Oracle Database系列的最新版本,于2020年12月发布。

本文将介绍Oracle Database 21c的原理和特点。

一、新特性Oracle Database 21c引入了许多新特性,以提供更高的性能、更好的可扩展性和更强大的功能。

其中一项重要的特性是自动索引管理。

在以往的版本中,数据库管理员需要手动创建和维护索引来优化查询性能。

而在Oracle Database 21c中,数据库可以自动识别和创建适当的索引,从而减轻了管理员的负担。

另一个重要的特性是多租户架构的改进。

多租户架构允许在一个数据库实例中运行多个独立的租户,每个租户都有自己的数据和资源。

在Oracle Database 21c中,多租户架构得到了进一步的优化,提供了更好的隔离性和资源管理能力。

Oracle Database 21c还引入了内存数据库技术,即Oracle TimesTen。

TimesT en是一个高性能、低延迟的内存数据库,可以与Oracle Database集成使用。

它适用于需要快速读写和实时分析的场景,如金融交易处理和实时数据分析等。

二、架构和存储Oracle Database 21c采用了分层的架构,包括物理存储、逻辑存储和数据库实例。

物理存储层负责将数据写入磁盘和读取数据,逻辑存储层负责管理数据的逻辑结构和访问路径,数据库实例负责管理数据库的运行状态和处理用户请求。

在物理存储层,Oracle Database 21c使用了高效的数据存储和访问方式。

它采用了表空间和数据文件的概念,将数据按照表空间划分为多个逻辑存储单元,并将每个表空间映射到一个或多个数据文件上。

这种分层的存储结构可以提高数据的读写性能和存储效率。

在逻辑存储层,Oracle Database 21c使用了表、索引和视图等逻辑对象来组织和管理数据。

内存数据库的使用—TimesTen和Altibase

内存数据库的使用—TimesTen和Altibase

TimesTen篇—简介
结构
Log
TimesTen有自己的日志文件,以及存放日志文件 的目录(LogDir),缺省的就是和DataStore放在 同一个目录下。但一般建议分开放。日志的概念 和Oracle的一样,在回滚以及恢复的时候,都会 用到它。
TimesTen篇—简介
连接方式
Direct Driver连接 连接 Client/Server连接 连接 Driver Manager连接 连接
TimesTen篇—TT命令集
ttRepStart/ttRepStop : 功能:启动和关闭replication agent 用法: call ttrepstart(); call ttrepstop(); history Description: Lists previously executed commands. monitor Command Usage: monitor
TimesTen篇—简介
结构
DataStore
DataStore 是指TimesTen中的表、索引等放在内 存段中的一个集合,类似与Oracle中库的概念。 一个TimesTen Data Manager可以管理多个 DataStore。DataStore由放在相应ODBC配置文 件中的一个DSN(Data Source Name)所定义, 该DSN由一个名字和相关的属性组成
TimesTen篇—简介
连接方式
Direct Driver连接 连接 ቤተ መጻሕፍቲ ባይዱimesten推荐连接方式,由于没有了协议转换的开 销,这种连接方式具有最高的效率。对于JDBC应 JDBC 用程序,可以通过JDBC库访问ODBC的direct driver。这种连接方式要求应用程序和Timesten数 据库处于同一台服务器上。对于共享模式,数据库 被加载到共享内存中,多个应用程序可以共享访问 内存中的数据。可以减少TCP/IP,IPC方面的开销。

TimesTen 基础认识

1.什么是Oracle TimesTen内存数据库Oracle TimesTen内存数据库是一款内存优化的关系型数据库。

该产品可使应用大幅提高响应速度和吞吐量来满足当今有实时需求的企业,尤其适合电信,金融,互联网,旅游,在线游戏,保险等行业的企业。

部署在应用层的TimesTen数据库是一款可嵌入式或者独立的数据库。

它完全驻留在物理内存中,通过标准SQL接口进行数据库操作。

此外,该产品还包括复制技术来进行实时事务在TimesTen数据库之间的复制,进而实现高可用性和分担负载的目的。

2.什么是Oracle TimesTen应用层数据库缓存自从Oracle 12c 数据库推出了In-Memory功能,为了避免理解上的误解,将之前的Im-Memory Database Cache 改为了应用层数据库缓存。

该功能是Oracle TimesTen数据库的一个选项,来提供实时的对Oracle 数据库的读写缓存。

通过缓存性能敏感的表的子集从Oracle数据库到应用层,来提高应用事务响应时间。

缓存表在TimesTen数据库中的管理仍然是常规的关系型数据库表的管理方式。

因此,可以提供给应用一个完全通用和功能完备的关系型数据库,与Oracle数据库保持缓存透明维护的一致,并且实时高效的内存数据库。

为了实现高可用性,OraleTimesTen应用层数据库缓存可以通过使用actinve-standby配置的部署方案,且缓存表可以在Oracle TimesTen数据库之间进行实时复制。

3.TimesTen 内存数据库是否是Oracle 12c数据库的一部分Oracle TimesTen应用层数据库缓存是针对Oracle 12c 和11g数据库的一个数据库功能。

它包括了TimesTen内存数据库和缓存技术。

可以使得TimesTen作为一个内存缓存数据库自动将数据在TimesTen 和Oracle 数据库同步。

Oracle TimesTen内存数据库需要单独购买License。

内存数据库的优势与应用场景分析

内存数据库的优势与应用场景分析内存数据库是一种将数据存储在计算机内存中的数据库,相比传统的磁盘数据库,内存数据库具有许多独特的优势和适用场景。

本文将对内存数据库的优势和应用场景进行详细分析。

1. 快速响应时间:内存数据库可以直接在内存中进行数据操作,而不需要像磁盘数据库一样进行磁盘读写操作。

由于内存的读写速度远远快于磁盘,因此内存数据库可以实现非常快的响应时间。

这对于一些对实时性要求较高的应用场景非常重要,如金融交易系统、在线游戏等。

2. 高并发处理:内存数据库能够更好地处理高并发的访问请求。

由于内存数据库的读写速度快且无需加锁等复杂操作,它可以更好地应对并发读写操作。

这使得内存数据库在高负载环境下表现出色,特别适用于需要处理大量并发请求的应用场景,如电子商务平台、社交媒体网站等。

3. 实时分析:内存数据库对于实时分析和查询操作非常高效。

传统磁盘数据库通常需要进行复杂的索引和查询操作以获取所需数据,而内存数据库由于数据存储在内存中,可以直接通过内存地址快速访问数据。

这使得内存数据库在大数据分析和实时决策等场景下具有重要的优势,特别适用于数据挖掘、风控分析等领域。

4. 实时数据共享和同步:内存数据库可以实现实时的数据共享和同步。

由于数据存储在内存中,不需要像磁盘数据库那样进行繁琐的读写操作,多个应用程序可以同时访问和使用内存数据库中的数据。

这样一来,多个系统之间的数据共享和同步可以实时进行,大大提高了系统的可靠性和稳定性。

这对于分布式系统、集群环境等场景非常有益。

5. 灵活的数据模型:内存数据库通常采用键值对存储方式,不需要预先定义固定的模式。

这很适合一些数据结构频繁变化的应用场景,如实时日志分析、用户行为分析等。

内存数据库可以根据实际需求动态存储和查询数据,能够灵活应对不同的数据模型。

基于以上优势,内存数据库在许多应用场景中得到了广泛应用。

1. 金融行业:内存数据库可以提供快速响应的交易和结算系统,以及实时风险管理和决策支持系统。

Timesten

加载应用程序
加速数据库读取
oracle TimesTen In-Memory Database In-Memory Database Cache
使用TIMESTEN时要有UPS,防止服务器突然断电造成的数据丢失
主要提高查询效率
内存数据库可以将内存的数据写入到磁盘中
三种组件,可以只用第一个,后两个必须要有第一个做支撑
没有磁盘IO
在内存完成无需换页
在应用程序端,安装timesten客户端,应用程序直接通过IPC方式访问,使用sql语句时通过内存查询优化器
内存数据库可以和oracle数据库在同一台服务器上,也可以放在不同服务器上
Please enter a value for TNS_ADMIN 设置一个监听的路径
/u01/TimesTen/TTgwy
/u01/TimesTen/TTgwy/info
自动安装时要进入到TimesTen的bin目录下运行./setuproot –install命令vi /etc/rc.local
加一句:
/etc/init.d/tt_tt1 start >/dev/null 2>&1
TT用户级别
tt管理用户(每个实例都有)
程序调用的用户
创建ttm用户并给它授权
error could not destroy previous data store 执行ttdestroy tt
vi /u01/TimesTen/tt/info/sys.odbc.ini overwrite=0。

Oracle_内存数据库Times_Ten(_33_)


Oracle Corporation - Copyright 2007
数据发布 - Transaction Log API (XLA)
XLA Apps
Real-time Apps
• Transaction Log API (XLA)
• • • • 跟踪实时数据变化 监控交易变化 发送数据变化到外部应用 实现实时事件通知与处理
AutoRefresh
Reads
Oracle
应用读取数据 TimesTen 之间数据复制. 从 Oracle 到 TimesTen Node 1 = 主节点 Node 2 = 备用节点
TimesTen Node 1
TimesTen Node 2
AutoRefresh
Oracle
After Failure
Oracle Corporation - Copyright 2007
HA – 只读缓存组
Reads Reads
Reads
Replication
TimesTen Node 1 TimesTen Node 2
TimesTen Node 1
TimesTen Node 2
AutoRefresh
Oracle
TimesTen 之间的复制
• 高稳定性、高可靠性 • 灵活的配置方式
• Active-standby, Active-active, 多路
Oracle Corporation - Copyright 2007
复制 – 从TimesTen 到 TimesTen
Active - Standby
• 交易复制
TimesTen Node 1
TimesTen Node 2
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档