深入内存数据库课件_第1页
深入内存数据库课件_第2页
深入内存数据库课件_第3页
深入内存数据库课件_第4页
深入内存数据库课件_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深入内存数据库TimesTenAlexWang深入内存数据库TimesTenAlexWang2023/1/421、概述与传统数据库的比较

TimesTen为什么快性能指标应用场景2022/12/2921、概述与传统数据库的比较2023/1/43什么是内存数据库?内存数据库将数据和元数据存放在内存中,可以获得极高的响应速度并实现实时数据缓存数据库与应用程序共享一个地址空间完善的事务管理,针对物理内存的优化调度算法和并发事务处理关系型数据库,支持SQL92数据可靠性、完善的数据恢复机制2022/12/293什么是内存数据库?内存数据库将数据和元2023/1/44与传统数据库比较(1)传统数据库的目的是处理永久、稳定的数据。强调维护数据的完整性、一致性,但很难顾及数据及其处理的定时限制,不能满足实时应用的需要传统数据库由于磁盘IO、缓存管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大;内存数据库由于没有磁盘IO和缓存管理,能搞准确估算事务响应时间内存数据库处理的数据通常是“短暂”的,即有一定的时效。所以,实际应用中内存数据库主要处理实时性强的业务逻辑处理数据。而传统数据库旨在处理永久、稳定的数据,其性能目标是高的系统吞吐量和低的代价传统数据库是IO密集型应用,内存数据库为CPU密集型应用2022/12/294与传统数据库比较(1)传统数据库的目的2023/1/45与传统数据库比较(2)CharacteristicOracleDatabase10gOracleTimesTenDatamodelRelational:SQLRelational:SQLTargetapplicationsMission-criticalMission-criticalOptimizationDisk-centric(IO)Memory-centric(CPU)TypicaldeploymentDatabasetierApplicationtierArchitectureClient/serverDirectdataaccessResponsetimesMillisecondsMicrosecondsDatacapacityTensofterabytesTensofgigabytesScalabilityUnlimitedSMP/clusterGoodSMP2022/12/295与传统数据库比较(2)Characte2023/1/46TimesTen为什么快?(1)2022/12/296TimesTen为什么快?(1)2023/1/47TimesTen为什么快?(2)2022/12/297TimesTen为什么快?(2)2023/1/48TimesTen为什么快?(3)最小化磁盘IO没有缓存管理的消耗针对物理内存的优化调度算法直接访问,没有IPC消耗风险:共享地址空间2022/12/298TimesTen为什么快?(3)最小化2023/1/49TimesTen性能指标2022/12/299TimesTen性能指标2023/1/410使用场景(1):常用数据缓存缓存经常被访问的数据,提高应用的处理能力及反应速度,减少网络和后台数据库的负载2022/12/2910使用场景(1):常用数据缓存缓存经常2023/1/411使用场景(2):热点数据缓存缓存当前正使用的“热点数据”或重要客户的数据,已提高反应速度优化服务,提高用户的忠诚度.针对Table,换出的数据不能再换入!2022/12/2911使用场景(2):热点数据缓存缓存当前2023/1/412使用场景(3):实时交易内存数据库是可对消息队列和事务进行处理的实时数据库,并可把处理结果“push”到后台数据库巨大的性能差异!2022/12/2912使用场景(3):实时交易内存数据库是2023/1/4132、TimesTen的组成

TimesTen的组成日志和检查点锁事务访问方式

XLA2022/12/29132、TimesTen的组成Time2023/1/414TimesTen的组成2022/12/2914TimesTen的组成2023/1/415日志和检查点日志分为缓存和文件两部分双重检查点文件Blocking/Non-Blocking增量生成Checkpoint文件自动删除日志数据从检查点和日志中恢复LogBuffer的事务可能丢失!!!2022/12/2915日志和检查点日志分为缓存和文件两部分2023/1/416锁处理并发性访问的机制,序列化多个应用对资源的同时访问。TimesTen有三种锁机制:DataStore级锁其它进程不能同时访问该DataStore,即DataStore级的锁都是排他的。只有在当前DataStore上没有活动的事务时,才能获取DataStore级的锁。一旦获得DataStore级锁,其它事务将被阻塞直到该锁定被释放。初始化、数据批量导入产生DataStore级锁。表级锁当事务要对一个表的大部分记录进行查询、修改或者删除时,就会获得表级锁。也可通过命令ttOptSetFlag()来手工动态设置。行级锁行级锁的并发性是最好的。它只锁定要操作的行,所以不同的应用可以同时操作同一个表中不同的行。2022/12/2916锁处理并发性访问的机制,序列化多个应2023/1/417事务(1)Datastore可被多进程/多线程所共享:ACID

完整的事务支持。不支持嵌套事务/XA交易独立性

默认ReadCommitted事务级别 不支持MVCC 降低为串行事务级别隔离级别与并发性是互为矛盾的

隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好提高效率,违反D!2022/12/2917事务(1)Datastore可被2023/1/418事务(2)TimesTen支持两级事务隔离:ReadcommittedisolationSerializableisolationIsolationLevel

DirtyRead

NonRepeatableRead

ReaduncommittedPossiblePossibleReadcommittedNotpossiblePossibleRepeatablereadNotpossibleNotpossibleSerializableNotpossibleNotpossible2022/12/2918事务(2)TimesTen支持两级事2023/1/419查询优化(1)基于Cost的优化器,优化器根据下面的因素计算Cost:TableandcolumnstatisticsMetadatainformationIndexchoicesScanmethodsJoinalgorithmchoice一定要用绑定变量!2022/12/2919查询优化(1)基于Cost的优化器,2023/1/420查询优化(2)Hash索引只能出现在主键上,只能用于等值匹配查询,但占用空间较大;建Hash索引时必须定义Pages值(Rows/256),以避免Hash碰撞。TimesTen的两种索引:T-tree索引适宜做范围、排序等查询(orderby、groupby、distinct),当然它也可做等值查询,占用空间较小;全表扫描时候,如果被扫描的表具有T-tree索引(不管这个索引的列是否被用到),则性能会有较大的提升。2022/12/2920查询优化(2)Hash索引Time2023/1/421查询优化(3)

统计内置命令ttOptEstimateStats和ttOptUpdateStats用于对数据库进行统计,以准确的计算执行路径的Cost,选择最优的执行计划。

临时索引系统有时会创建临时索引加快查询速度,但如果临时索引创建地过于频繁,就要考虑手工建相应的索引,这可以通过系统表MONITOR的列CMD_TEMP_INDEXES来监测。2022/12/2921查询优化(3)统计临时索引2023/1/422查询优化(4)最常用的扫描方式:基于T-Tree索引的扫描方式基于Hash索引的扫描方式,Hash索引只能够建立在主键上,因此,查询必然是主键查询基于Rowid的查找,这是最快的查询方式全表扫描,如果表上有一个T-Tree索引,扫描速度会明显加快2022/12/2922查询优化(4)最常用的扫描方式:2023/1/423访问方式Datastore可被多进程/多线程所共享:直接连接应用以共享模式访问DataStore,DataStore被预先装载到共享内存段,应用则映射该共享内存段到自己的运行地址空间上C/S连接应用必须和TimesTen部署在不同的机子上,或者32位的应用程序必须连接64位的DataStore,且32位的应用不能在64位的机子上重新编译,此时就只能选择C/S连接方式。

ODBC驱动管理器驱动管理器是独立于具体的数据源的,即在应用和数据源之间增加了一个抽象层。2022/12/2923访问方式Datastore可被多2023/1/424MicroLoggingDatastore可被多进程/多线程所共享:共享进程空间会使嵌入式应用受进程故障的影响MicroLogging确保内存数据库不受应用进程故障的影响异常退出进程的未决事务被回滚 如有必要,数据库进行Revorvery安全且高性能2022/12/2924MicroLoggingDatas2023/1/425XLA跟踪实时数据变化监视交易变化发送数据变化到外部应用实现实时事件通知与处理TransactionLogAPI(XLA):2022/12/2925XLA跟踪实时数据变化Transac2023/1/4263、高可用性

Replication

CacheConnect2022/12/29263、高可用性Replication2023/1/427Replication(1)多路,点对点Active/standby或active/active表级或data-store级复制同步与异步数据传送故障自动恢复冲突检测与解除2022/12/2927Replication(1)多路,2023/1/428Replication(2)2022/12/2928Replication(2)2023/1/429Replication(3)同步或异步数据复制:

异步复制

异步传送交易数据非常快的应用响应时间适合于需要高性能、低延迟的应用场景

同步复制

同步传送交易数据在返回控制权给应用之前,提交的交易能确保被传送到远端节点同步复制可以由应用系统在交易层面来进行控制“开启”或“关闭”2022/12/2929Replication(3)同步或2023/1/430Replication(4)同步复制

网络IO快于磁盘IO2022/12/2930Replication(4)同步复2023/1/431Replication(5)异步复制

2022/12/2931Replication(5)异步复2023/1/432Replication(6)Return-receipt异步复制

2022/12/2932Replication(6)Ret2023/1/433Replication(7)2022/12/2933Replication(7)2023/1/434Replication(8)createreplicationocs_a_a_replication

elementadatastore

mastermydataon"cx_pdscp1" subscribermydataon"cx_pdscp2"

returntwosafe

storemydataon"cx_pdscp1" returnservicesoff whenreplicationstopped durablecommiton elementbdatastore mastermydataon"cx_pdscp2" subscribermydataon"cx_pdscp1" returntwosafe storemydataon"cx_pdscp2" returnservicesoff whenreplicationstopped durablecommiton;

Replication名称组成数据库实例复制方式策略:当Agent停止,复制关闭;固化事务提交。2022/12/2934Replication(8)cre2023/1/435CacheConnect(1)缓存Oracle数据库的数据只读或可更新的缓存双向更新异步写在一个Oracle数据库上可以建立多个缓存实例DateAging和PassThrough2022/12/2935CacheConnect(1)缓2023/1/436CacheConnect(2)CacheGroup有如下几种类型:SystemManaged类型:

ReadOnly:TimesTen中的数据只读,数据只在Oracle中更新,然后通过Autorefresh机制刷新到TimesTen中SWT:即当应用提交事务时,首先在Oracle提交,然后在TimesTen中提交,在此期间,应用一直被阻塞AWT:即事务先在TimesTen中提交,然后以异步的模式在Oracle中提交。应用不需要等待在Oracle数据库那边的提交。UserManaged类型:提供了一个完全开放的参数选择模式,让用户自己去细粒度定义参数。2022/12/2936CacheConnect(2)C2023/1/437CacheConnect(3)DataAging的概念:

Aging就是当TimesTen中的数据符合某些条件的时候,会被自动清除出TimesTen,当系统的内存不是很充足的时候,Aging可以保证有充足的空余空间去放入新的数据,目前Aging的算法有两种:一种是基于时间的,一种是基于LRU(最近最少使用)

特别说明:Aging可以针对表,也可以针对CacheGroup。针对表的时候,交换出去的数据将不能再被交换进来(TimesTen7.0.3版本)DataAging:2022/12/2937CacheConnect(3)2023/1/438CacheConnect(4)PassTrough:Level0:所有的SQL只是在TimesTen执行Level1:SQL(除了Insert、Delete、Update及DDL之外)将被PassThrough到Oracle中执行,如果该SQL在TimesTen执行时产生语法错误。如果Insert、Delete及Update操作的目标表在TimesTen不存在,则将被将被PassThrough到Oracle中执行。Level2:同1,加上如果Insert、Update及Delete针对的是ReadOnlyCacheGroup,且符合1的描述,也将被PassThrough到Oracle中执行。Level3:所有的SQL(除了Commit、Rollback、Savepoint及TimesTen独有的设置其优化器参数的内置存储过程)都被PassThrough到Oracle2022/12/2938CacheConnect(4)P2023/1/439CacheConnect(5)PassTrough:2022/12/2939CacheConnect(5)P2023/1/440CacheConnect(6)使用CREATEREADONLYCACHEGROUP

语句建立在Oracle端修改的数据自动同步到TimesTen中可以选择全量和递增两种方式同步数据ReadonlyCacheGroup:2022/12/2940CacheConnect(6)使2023/1/441CacheConnect(7)如果应用试图修改一个ReadonlyCacheGroup的内容,将会得到TimesTen错误码8225,“Tableisreadonly”如果PassTrough设置为2或者3,DML语句将透传到Oracle执行,并把执行的结果自动刷新回TimesTenReadonlyCacheGroup的限制:2022/12/2941CacheConnect(7)如2023/1/442CacheConnect(8)使用CREATESYNCHRONOUSWRITETHROUGHCACHEGROUP语句建立初始数据在CacheGroup建立后手动加载事务先在Oracle提交,如果提交失败,TT必须回滚SWTCacheGroup:2022/12/2942CacheConnect(8)使2023/1/443CacheConnect(9)SWT的内容可以通过命令手动加载、卸载和刷新建立SWT时不能指定WHERE条件TRUNCATETABLE不能反映在TimesTen中SWTCacheGroup的限制:2022/12/2943CacheConnect(9)S2023/1/444CacheConnect(10)使用CREATEASYNCHRONOUSWRITETHROUGHCACHEGROUP语句建立数据更新异步传递到Oracle应用可以在Oracle数据库宕机时继续进行AWTCacheGroup:2022/12/2944CacheConnect(10)2023/1/445CacheConnect(11)TimesTen和Oracle即使连接失败,事务信息也不会丢失事务在TimesTen和Oracle中提交的顺序是一致的如果事务在TimesTen中成功,但在Oracle中提交失败,将会在*.awterr文件中报告不能够手动刷新数据建立CacheGroup不能指定WHERE条件在建立或删除CacheGroup时,必须停止ReplicationAgent在Oracle中直接作的更新,有可能被TimesTen的修改覆盖AWTCacheGroup的限制:2022/12/2945CacheConnect(11)2023/1/4464、常见问题日志不能自动删除数据恢复时间漫长关键的连接属性其它……2022/12/29464、常见问题日志不能自动删除数据2023/1/447日志不能自动删除现象:TimesTen的日志无法自动删除,导致在磁盘上有大量的日志累积!!!日志删除的条件,要求日志中的事务已经:1、作了Checkpoint2、通过Replication复制到备机3、在AWT方式下,通过ReplicationAgent复制到Oracle4、已作备份Command>callttlogholds;

<41,231442592,Replication

,AHOCSRB1:_ORACLE>

<41,231442592,Replication

,AHOCSRB2:DATA>

<41,231442592,Long-RunningTransaction

,138.1089>

<121,30922688,Checkpoint

,DATA.ds0>

<121,84106376,Checkpoint

,DATA.ds1>

5rowsfound.2022/12/2947日志不能自动删除现象:TimesTe2023/1/448数据恢复时间漫长现象:一个实例在启动时花费了大量的时间加载Checkpoint文件,加载时间取决于磁盘IO重演Log文件中的事务,时间取决于文件的个数重建索引,时间取决于数据量、索引个数关闭实例前作2次Checkpoint2022/12/2948数据恢复时间漫长现象:一个实例在启动2023/1/449关键的连接属性现象:sys.odbc.ini中的关键参数PermSize/TempSizeCkptFrequency/CkptLogVolumeDurableCommitsConnectionsOracleID/UID/OraclePwdSMPOptLevel2022/12/2949关键的连接属性现象:sys.odbc2023/1/450其它……现象:…….WangZheng@解决方案:…….2022/12/2950其它……现象:…….WangZhen2023/1/4512022/12/2951深入内存数据库TimesTenAlexWang深入内存数据库TimesTenAlexWang2023/1/4531、概述与传统数据库的比较

TimesTen为什么快性能指标应用场景2022/12/2921、概述与传统数据库的比较2023/1/454什么是内存数据库?内存数据库将数据和元数据存放在内存中,可以获得极高的响应速度并实现实时数据缓存数据库与应用程序共享一个地址空间完善的事务管理,针对物理内存的优化调度算法和并发事务处理关系型数据库,支持SQL92数据可靠性、完善的数据恢复机制2022/12/293什么是内存数据库?内存数据库将数据和元2023/1/455与传统数据库比较(1)传统数据库的目的是处理永久、稳定的数据。强调维护数据的完整性、一致性,但很难顾及数据及其处理的定时限制,不能满足实时应用的需要传统数据库由于磁盘IO、缓存管理、排队等待及锁的延迟等使得事务实际平均执行时间与估算的最坏情况执行时间相差很大;内存数据库由于没有磁盘IO和缓存管理,能搞准确估算事务响应时间内存数据库处理的数据通常是“短暂”的,即有一定的时效。所以,实际应用中内存数据库主要处理实时性强的业务逻辑处理数据。而传统数据库旨在处理永久、稳定的数据,其性能目标是高的系统吞吐量和低的代价传统数据库是IO密集型应用,内存数据库为CPU密集型应用2022/12/294与传统数据库比较(1)传统数据库的目的2023/1/456与传统数据库比较(2)CharacteristicOracleDatabase10gOracleTimesTenDatamodelRelational:SQLRelational:SQLTargetapplicationsMission-criticalMission-criticalOptimizationDisk-centric(IO)Memory-centric(CPU)TypicaldeploymentDatabasetierApplicationtierArchitectureClient/serverDirectdataaccessResponsetimesMillisecondsMicrosecondsDatacapacityTensofterabytesTensofgigabytesScalabilityUnlimitedSMP/clusterGoodSMP2022/12/295与传统数据库比较(2)Characte2023/1/457TimesTen为什么快?(1)2022/12/296TimesTen为什么快?(1)2023/1/458TimesTen为什么快?(2)2022/12/297TimesTen为什么快?(2)2023/1/459TimesTen为什么快?(3)最小化磁盘IO没有缓存管理的消耗针对物理内存的优化调度算法直接访问,没有IPC消耗风险:共享地址空间2022/12/298TimesTen为什么快?(3)最小化2023/1/460TimesTen性能指标2022/12/299TimesTen性能指标2023/1/461使用场景(1):常用数据缓存缓存经常被访问的数据,提高应用的处理能力及反应速度,减少网络和后台数据库的负载2022/12/2910使用场景(1):常用数据缓存缓存经常2023/1/462使用场景(2):热点数据缓存缓存当前正使用的“热点数据”或重要客户的数据,已提高反应速度优化服务,提高用户的忠诚度.针对Table,换出的数据不能再换入!2022/12/2911使用场景(2):热点数据缓存缓存当前2023/1/463使用场景(3):实时交易内存数据库是可对消息队列和事务进行处理的实时数据库,并可把处理结果“push”到后台数据库巨大的性能差异!2022/12/2912使用场景(3):实时交易内存数据库是2023/1/4642、TimesTen的组成

TimesTen的组成日志和检查点锁事务访问方式

XLA2022/12/29132、TimesTen的组成Time2023/1/465TimesTen的组成2022/12/2914TimesTen的组成2023/1/466日志和检查点日志分为缓存和文件两部分双重检查点文件Blocking/Non-Blocking增量生成Checkpoint文件自动删除日志数据从检查点和日志中恢复LogBuffer的事务可能丢失!!!2022/12/2915日志和检查点日志分为缓存和文件两部分2023/1/467锁处理并发性访问的机制,序列化多个应用对资源的同时访问。TimesTen有三种锁机制:DataStore级锁其它进程不能同时访问该DataStore,即DataStore级的锁都是排他的。只有在当前DataStore上没有活动的事务时,才能获取DataStore级的锁。一旦获得DataStore级锁,其它事务将被阻塞直到该锁定被释放。初始化、数据批量导入产生DataStore级锁。表级锁当事务要对一个表的大部分记录进行查询、修改或者删除时,就会获得表级锁。也可通过命令ttOptSetFlag()来手工动态设置。行级锁行级锁的并发性是最好的。它只锁定要操作的行,所以不同的应用可以同时操作同一个表中不同的行。2022/12/2916锁处理并发性访问的机制,序列化多个应2023/1/468事务(1)Datastore可被多进程/多线程所共享:ACID

完整的事务支持。不支持嵌套事务/XA交易独立性

默认ReadCommitted事务级别 不支持MVCC 降低为串行事务级别隔离级别与并发性是互为矛盾的

隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好提高效率,违反D!2022/12/2917事务(1)Datastore可被2023/1/469事务(2)TimesTen支持两级事务隔离:ReadcommittedisolationSerializableisolationIsolationLevel

DirtyRead

NonRepeatableRead

ReaduncommittedPossiblePossibleReadcommittedNotpossiblePossibleRepeatablereadNotpossibleNotpossibleSerializableNotpossibleNotpossible2022/12/2918事务(2)TimesTen支持两级事2023/1/470查询优化(1)基于Cost的优化器,优化器根据下面的因素计算Cost:TableandcolumnstatisticsMetadatainformationIndexchoicesScanmethodsJoinalgorithmchoice一定要用绑定变量!2022/12/2919查询优化(1)基于Cost的优化器,2023/1/471查询优化(2)Hash索引只能出现在主键上,只能用于等值匹配查询,但占用空间较大;建Hash索引时必须定义Pages值(Rows/256),以避免Hash碰撞。TimesTen的两种索引:T-tree索引适宜做范围、排序等查询(orderby、groupby、distinct),当然它也可做等值查询,占用空间较小;全表扫描时候,如果被扫描的表具有T-tree索引(不管这个索引的列是否被用到),则性能会有较大的提升。2022/12/2920查询优化(2)Hash索引Time2023/1/472查询优化(3)

统计内置命令ttOptEstimateStats和ttOptUpdateStats用于对数据库进行统计,以准确的计算执行路径的Cost,选择最优的执行计划。

临时索引系统有时会创建临时索引加快查询速度,但如果临时索引创建地过于频繁,就要考虑手工建相应的索引,这可以通过系统表MONITOR的列CMD_TEMP_INDEXES来监测。2022/12/2921查询优化(3)统计临时索引2023/1/473查询优化(4)最常用的扫描方式:基于T-Tree索引的扫描方式基于Hash索引的扫描方式,Hash索引只能够建立在主键上,因此,查询必然是主键查询基于Rowid的查找,这是最快的查询方式全表扫描,如果表上有一个T-Tree索引,扫描速度会明显加快2022/12/2922查询优化(4)最常用的扫描方式:2023/1/474访问方式Datastore可被多进程/多线程所共享:直接连接应用以共享模式访问DataStore,DataStore被预先装载到共享内存段,应用则映射该共享内存段到自己的运行地址空间上C/S连接应用必须和TimesTen部署在不同的机子上,或者32位的应用程序必须连接64位的DataStore,且32位的应用不能在64位的机子上重新编译,此时就只能选择C/S连接方式。

ODBC驱动管理器驱动管理器是独立于具体的数据源的,即在应用和数据源之间增加了一个抽象层。2022/12/2923访问方式Datastore可被多2023/1/475MicroLoggingDatastore可被多进程/多线程所共享:共享进程空间会使嵌入式应用受进程故障的影响MicroLogging确保内存数据库不受应用进程故障的影响异常退出进程的未决事务被回滚 如有必要,数据库进行Revorvery安全且高性能2022/12/2924MicroLoggingDatas2023/1/476XLA跟踪实时数据变化监视交易变化发送数据变化到外部应用实现实时事件通知与处理TransactionLogAPI(XLA):2022/12/2925XLA跟踪实时数据变化Transac2023/1/4773、高可用性

Replication

CacheConnect2022/12/29263、高可用性Replication2023/1/478Replication(1)多路,点对点Active/standby或active/active表级或data-store级复制同步与异步数据传送故障自动恢复冲突检测与解除2022/12/2927Replication(1)多路,2023/1/479Replication(2)2022/12/2928Replication(2)2023/1/480Replication(3)同步或异步数据复制:

异步复制

异步传送交易数据非常快的应用响应时间适合于需要高性能、低延迟的应用场景

同步复制

同步传送交易数据在返回控制权给应用之前,提交的交易能确保被传送到远端节点同步复制可以由应用系统在交易层面来进行控制“开启”或“关闭”2022/12/2929Replication(3)同步或2023/1/481Replication(4)同步复制

网络IO快于磁盘IO2022/12/2930Replication(4)同步复2023/1/482Replication(5)异步复制

2022/12/2931Replication(5)异步复2023/1/483Replication(6)Return-receipt异步复制

2022/12/2932Replication(6)Ret2023/1/484Replication(7)2022/12/2933Replication(7)2023/1/485Replication(8)createreplicationocs_a_a_replication

elementadatastore

mastermydataon"cx_pdscp1" subscribermydataon"cx_pdscp2"

returntwosafe

storemydataon"cx_pdscp1" returnservicesoff whenreplicationstopped durablecommiton elementbdatastore mastermydataon"cx_pdscp2" subscribermydataon"cx_pdscp1" returntwosafe storemydataon"cx_pdscp2" returnservicesoff whenreplicationstopped durablecommiton;

Replication名称组成数据库实例复制方式策略:当Agent停止,复制关闭;固化事务提交。2022/12/2934Replication(8)cre2023/1/486CacheConnect(1)缓存Oracle数据库的数据只读或可更新的缓存双向更新异步写在一个Oracle数据库上可以建立多个缓存实例DateAging和PassThrough2022/12/2935CacheConnect(1)缓2023/1/487CacheConnect(2)CacheGroup有如下几种类型:SystemManaged类型:

ReadOnly:TimesTen中的数据只读,数据只在Oracle中更新,然后通过Autorefresh机制刷新到TimesTen中SWT:即当应用提交事务时,首先在Oracle提交,然后在TimesTen中提交,在此期间,应用一直被阻塞AWT:即事务先在TimesTen中提交,然后以异步的模式在Oracle中提交。应用不需要等待在Oracle数据库那边的提交。UserManaged类型:提供了一个完全开放的参数选择模式,让用户自己去细粒度定义参数。2022/12/2936CacheConnect(2)C2023/1/488CacheConnect(3)DataAging的概念:

Aging就是当TimesTen中的数据符合某些条件的时候,会被自动清除出TimesTen,当系统的内存不是很充足的时候,Aging可以保证有充足的空余空间去放入新的数据,目前Aging的算法有两种:一种是基于时间的,一种是基于LRU(最近最少使用)

特别说明:Aging可以针对表,也可以针对CacheGroup。针对表的时候,交换出去的数据将不能再被交换进来(TimesTen7.0.3版本)DataAging:2022/12/2937CacheConnect(3)2023/1/489CacheConnect(4)PassTrough:Level0:所有的SQL只是在TimesTen执行Level1:SQL(除了Insert、Delete、Update及DDL之外)将被PassThrough到Oracle中执行,如果该SQL在TimesTen执行时产生语法错误。如果Insert、Delete及Update操作的目标表在TimesTen不存在,则将被将被PassThrough到Oracle中执行。Level2:同1,加上如果Insert、Update及Delete针对的是ReadOnlyCacheGroup,且符合1的描述,也将被PassThrough到Oracle中执行。Level3:所有的SQL(除了Commit、Rollback、Savepoint及TimesTen独有的设置其优化器参数的内置存储过程)都被PassThrough到Oracle2022/12/2938CacheConnect(4)P2023/1/490CacheConnect(5)PassTrough:2022/12/2939CacheConnect(5)P2023/1/491CacheConnect(6)使用CREATEREADONLYCACHEGROUP

语句建立在Oracle端修改的数据自动同步到TimesTen中可以选择全量和递增两种方式同步数据ReadonlyCacheGroup:2022/12/2940CacheConnect(6)使2023/1/492CacheConnect(7)如果应用试图修改一个ReadonlyCacheGroup的内容,将会得到TimesTen错误码8225,“Tableisreadonly”如果PassTrough设置为2或者3,DML语句将透传到Oracle执行,并把执行的结果自动刷新回TimesTenReadonlyCacheGroup的限制:2022/12/2941CacheConnect(7)如2023/1/493CacheConnect(8)使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论