TimesTen ODBC 应用开发ppt课件.ppt_第1页
TimesTen ODBC 应用开发ppt课件.ppt_第2页
TimesTen ODBC 应用开发ppt课件.ppt_第3页
TimesTen ODBC 应用开发ppt课件.ppt_第4页
TimesTen ODBC 应用开发ppt课件.ppt_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

TimesTenODBC zhaojunfeng2008 03 14 2007 ProprietaryandConfidentialInformationofAmdocs SecurityLevelClassification Sensitive Agenda ODBC程序结构如何使用ODBC句柄实现SQLStatements异常捕捉性能方面考虑其他建议 2 ODBC程序流程 CLOSEoption DROPoption ODBC应用的句柄 Environment句柄初始化ODBC调用接口ODBC方法 SQLAllocEnv 和SQLFreeEnv Connection句柄存储数据源连接信息ODBC方法 SQLAllocConnect 和SQLFreeConnect 隐式分配一个特定的Environment句柄Statement句柄存储SQLstatement信息ODBC方法 SQLAllocStmt 和SQLFreeStmt 隐式分配一个特定的Connection句柄 使用ODBC应用句柄 statement句柄只能在初始阶段分配一次 并在结束阶段释放 在使用多线程编程中 statement和connection句柄应该属于线程结构体内 句柄不能用于多线程并发运行 如果想实现在多个线程在不同的时间访问同一个句柄 那么应用必须通过一些信号量等方式的机制来实现 SQLStatement执行流程 SQLPrepareSQLBindParameterSQLExecute Yes Initialize Terminate Ifmoreprocessing SQLFreeStmt Ifrepeat No SQLTransact RepeatableExecution SQLBindParameterSQLExecDirect 绑定参数缓存 只需要Prepare或者编译SQLstatements及内建procedures一次 然后执行或者调用多次 尽量使用参数化statements 在运行期使用变量方式来应用SQLstatements和内建procedure 一旦statement被prepared 尽快绑定参数和列变量 在程序开始的时候申明 分配一次需要用到的变量 变量属于全局范围的 如果使用到多线程 变量申明在线程内部 绑定参数缓存示例 defineCHARLEN20SQLINTEGERintBuf nullData SQL NULL DATA SQLCHARcharBuf CHARLEN SQLFLOATfloatBuf rc SQLPrepare hStmt SQLCHAR insertintostudent tabvalues SQL NTS rc SQLBindParameter hStmt 1 SQL PARAM INPUT SQL C SLONG SQL INTEGER 0 0 C和SQL数据类型的绑定映射 SQL CHAR SQL INTEGER unsigned SQL C CHAR SQL C TIME SQL C DATE SQL C BINARY SQL C BINARY SQL C BINARY SQL C DOUBLE SQL C DOUBLE SQL C FLOAT SQL C CHAR SQL C ULONG SQL VARCHAR SQL LONGVARCHAR SQL DECIMAL SQL NUMERIC SQL BIT SQL TINYINT signed SQL TINYINT unsigned SQL SMALLINT signed SQL SMALLINT unsigned SQL INTEGER signed SQL BIGINT SQL REAL SQL FLOAT SQL DOUBLE SQL BINARY SQL VARBINARY SQL LONGVARBINARY SQL DATE SQL TIME SQL TIMESTAMP SQL C CHAR SQL C CHAR SQL C CHAR SQL C CHAR SQL C BIT SQL C STINYINT SQL C UTINYINT SQL C SSHORT SQL C USHORT SQL C SLONG SQL C TIMESTAMP ODBC异常捕捉 所有ODBC方法都会有一个返回代码确保程序中已经捕捉 如果返回代码是SQL ERROR或者SQL SUCCESS WITH INFO 那么调用ODBC方法SQLError 获取详细信息获取 TimesTen 本地错误代码和错误信息获取SQLSTATE ODBC错误代码 defineERRMSGLEN255SQLUCHARsqlstate 6 SQLINTEGERnative error 0 SQLUCHARErrorMsg ERRMSGLEN SQLSMALLINTcbErrorMsg rc SQLError hEnv hDbc hStmt sqlstate 应用性能方面考虑 1 3 使用TimesTenODBC直连方式会获得最佳性能尽量多次执行Preparestatements可以避免没有必要的参数重复绑定可使用SQLBindCol 来代替SQLGetData 这样可以减少运行期系统表锁的占用时间尽量避免数据转换尽量使用定长数据类型 应用性能方面考虑 2 3 尽量避免ALTERTABLE操作更新优化统计表尽量利用你创建的索引尽量使用短交易来减少锁冲突有规则的进行checkpoint操作有规则的进行backups操作 如果使用增量备份 那么这个操作尤为重要 其他建议 检查连接属性配置文件 sys odbc ini odbc ini文件 检查表的所属者owners 方法调用顺序或者游标状态不正确往往是应用程序不正确的信号 游标都和特定的statement句柄关联 隐式和connection句柄关联 Transactions和特定的connection句柄关联如果statements或者connections是跨线程共享的 那么需要应用来避免方法调用顺序和游标状态错误 检查点和日志文件 OracleTimesTen定期将数据存储区和事务日志的更改写入磁盘如果需要恢复数据存储区 OracleTimesTen将把磁盘上的数据存储区检查点与仍位于日志文件中的已完成事务合并在一起检查点和日志文件使用普通的磁盘文件系统 Replication TimesTentoTimesTen Replication TimesTentoTimesTen是OracleTimesTenIn MemoryDatabase的一个选项 它支持服务器间的实时数据复制 以获得高可用性和负载共享 数据复制可以是双机热备份 active standby 或负载均衡 active active 数据复制可以使用异步或同步传输 数据复制可以包含冲突检测和冲突解决以及在故障服务器恢复后自动重新同步 复制代理 Replication 配置复制后 将为每个数据存储区启动复制代理进程 如果为复制而配置了同一服务器上的多个数据存储区 则每个数据存储区将有一个单独的复制代理每个复制代理能够向一个或多个用户服务器发送更新 并从一个或多个主服务器那里接收更新复制代理通过TCP IP流套接字进行通信 CacheConnecttoOracle CacheConnecttoOracle是OracleTimesTenIn MemoryDatabase的一个选项 它为位于应用程序层中的Oracle磁盘数据创建实时 可更新的高速缓存CacheConnecttoOracle能够将Oracle磁盘数据的子集加载到TimesTen中 能够双向传播更新CacheConnecttoOracle能够使对非高速缓存数据的SQL请求的透传自动化CacheConnecttoOracle能够在故障之后自动重新同步数据 CacheConnecttoOracle 高速缓存组是由一个或多个通过主键 外键关系以逻辑层次结构排列的表的集合 高速缓存组中的每个表都与Oracle数据库表相关一个高速缓存组表可以包含相关Oracle表中的所有行和列或行和列的一个子集可以通过SQL语句创建和修改高速缓存组 CacheConnecttoOracle 高速缓存组支持以下特性 应用程序可以对高速缓存组执行读取和写入操作可以自动或手动刷新高速缓存组 将Oracle数据库数据置于高速缓存组中 可以自动或手动清理高速缓存组 将高速缓存更新传播到Oracle表 可以自动跟踪对Oracle表或高速缓存组的更改 多种灵活的cachegroup A 只读的cachegroup 定时把Oracle数据刷新到TimesTen里面 TimesTen里面的数据是只读的 可以通过改变PassThrough的属性 把对TimesTen的数据变更到Oracle里面 然后再通过Oracle刷新到TimesTen里面B 同步的cahegroup 写TimesTen的数据会先同步更新完Oracle数据库然后再更新到TimesTenC 异步的cachegroup 直接更新到TimesTen里面 TimesTen定时通过replicationagent把数据批量更新到Oracle里面 如果Oracle当了 等Oracle起来后 TimesTen会自动同步到Oracle上面 D 用户管理的cahegroup 用户自定义刷新 加载 卸载等 TimesTen对行业标准的支持 支持多种操作系统 比如Linux AIX Solaris Windows HP Unix等32位或者64位操作系统支持用户的权限和认证管理 支持createuser grant revoke操作没有tablespace的概念 使用的DSN的概念 没有存储过程 函数 嵌入式c支持多种常用的字符集 如ZHS16GBK UTF8 US7ASCII等 TimesTen对行业标准的支持 支持常用的数据对象 比如table index view materializedview sequence支持常用的数据类型 比如number char varchar2 date等支持sql92标准来进行DDL操作 比如createtable droptable 或者是改变对象属性比如altertable等支持标准DML语法 如select insert update delete truncate Timesten安装 hp平台 1 内核参数调整semmns是系统内系统用户可用的IPC信号总数 设置为大于或者等于4096 或8192等 推荐公式SEMMNS SEMMNU SEMMNI SEMMSL shmmax最大的共享内存段 以字节为单位 一般设置为内存的实际大小64位机上检测目录是否支持大文件系统 如果要设置DataStore大于2G 就必须设置大文件系统 fsadm Fvxfs dir name设置大文件系统 usr sbin fsadm Fxvfs olargefiles dir name Timesten安装 2 目录 用户及组增加组TimesTen 也可通过sam groupadd g600TimesTen增加用户timesten并加入到sys TimesTen组中 useradd u600 gTimesTen Gsys d ttinstall TimesTentimesten如果有Oracle安装组的话 也可以现在把timesten用户加入到Oracle安装组dba中 因为CacheGroup需要对Oracle目录有访问的权限 Timesten安装 相关目录 mkdir etc TimesTen chmod775 etc TimesTen chgrp RTimesTen etc TimesTen chown Rtimesten TimesTen etc TimesTen etc TimesTen目录用于TimesTen实例的注册 Timesten安装 3 FTP到需要安装TimesTen的主机上的一个目录 要求可用空间在500M以上 然后解包 tarxvftimesten604 hp64ipf tar4 解包后会在当前目录下生成hp64ipf 目录 执行该目录下面的setup sh命令5 输入Instancename6 选择产品类型OracleTimesTenIn MemoryDatabase 完全的内存数据库 和oracle数据库没有关系CacheConnecttoOracle 从oracle数据库cache数据到TimesTen内存数据库 也支持直接在内存数据库中建立实体表 Timesten安装 7 选择组件 1 Client ServerandDataManager 2 DataManagerOnly 3 ClientOnlyClient Server模式下的三个选择 客户端 服务器端 客户端 服务器端8 选择安装路径9 选择TimesTenDaemon监听端口 默认为17000 Timesten安装 10 设置AccessControlAccessControl提供了一个对TimesTen的初级的权限保护功能 它只是对谁能通过正常的途径 比如ttisql JDBC及ODBC 访问到相应的DataStore做了初级的限制 并不是说 它对在操作系统级别上对DataStore的文件以及Log文件的访问做除了安全保障 比如root用户 即使它不是TimesTen的用户 root用户可以做他想做的任何事情 比如删除DataStore文件等 所以安装的时候一定要注意 一般建议设置为yes Yes时才允许TimesTen创建新的用户 Timesten安装 11 设置CacheConnecttoOracle12 后面按照提示默认安装 TimesTen系统变量 下列为TimesTen安装之后 可能需要设置的系统变量 1 LIB LIBPATH LD LIBRARY PATH SHLIB PATH 指向TimesTen所用到的共享库 即 INSTALL DIR LIB目录 如用到CacheGroup 还需包含 ORACLE HOME LIB 不同的平台该变量的名字各有差异 SOLARIS LD LIBRARY PATHAIX LIBPATHHP UX32Bit SHLIB PATHHP UX64Bit LD LIBRARY PAT INSTALL DIR LIB SHLIB PATH ORACLE HOME LIB Tru64UNIX LD LIBRARY PATH TimesTen系统变量 2 CLASSPATH 如用到JDK 则需要设置该变量指向相应的Jar文件目前支持的JDK有JDK1 4 JDK5 0 BEAWeblogicJrockit5 03 ODBCINI 指向 odbc ini配置文件 当用户连接TimesTen的时候 TimesTen会按照下面的顺序查找相关的配置文件 1 环境变量ODBCINI所指向的 odbc ini文件2 运行TimesTen的用户主目录下的 odbc ini文件3 环境变量SYSODBCINI所指向的sys odbc ini文件4 var TimesTen sys odbc ini5 install dir info sys odbc ini 非root用户才会执行该步 TimesTen系统变量 ORACLE HOME指向Oracle数据库的安装目录 如果要用到CacheGroup 该变量必须设置PATH指向TimesTen的bin目录 即 INSTALL DIR bin 如果用到CacheGroup的话 还要包含Oracle的bin目录SYSODBCINI指向SYS ODBC INI配置文件 具体说明见ODBCINI TimesTen系统变量 SYSTTCONNECTINI 当用Client Server模式访问TimesTen的时候 该变量指向客户端的sys ttconnect ini配置文件 客户端查找配置文件的顺序是 1 环境变量SYSTTCONNECTINI所指向的sys ttconnect ini配置文件 2 var TimesTen sys ttconnect ini3 INSTALL DIR info sys ttconnect ini 非root用户安装 TMP TMPDIR 指向TimesTen的临时目录 TimesTen的某些操作 比如ttRepAdmin duplicate 大的删除等会用到临时目录 该参数缺省设置为 HP UX和AIX是 var tmp 而Solaris Linux Tru64UNIX则是 tmp TimesTen使用 1 启动和关闭 TimesTen安装完之后 缺省是已经起来了的启动TimesTen ttdaemonadmin start关闭TimesTen ttdaemonadmin stop关闭TimesTen前 建议先断开所有连接TimesTen的应用 如果启动了CacheAgent和ReplicationAgent 建议也都先停掉 TimesTen使用 1 启动和关闭 ps ef greptimesten tstenv timeten TimesTen tt70 bin timestend tstenv timeten TimesTen tt70 bin timestenws tstenv timeten TimesTen tt70 bin timestensubd tstenv timeten TimesTen tt70 bin timestensubd tstenv timeten TimesTen tt70 bin timestensubd tstenv timeten TimesTen tt70 bin timestensubd TimesTen使用 1 启动和关闭 ttstatusTimesTenstatusreportasofWedDec511 12 542007Daemonpid24468port18001instancett70TimesTenserverpid24474startedonport18003TimesTenwebserverpid24473startedonport18005 Datastore tstenv timeten TimesTen tt70 info IOMSTherearenoconnectionstothedatastoreReplicationpolicy ManualCacheagentpolicy Manual Accesscontrolenabled Endofreport TimesTen使用 1 启动和关闭 缺省的有 TimesTen的后台守护进程 timestensubd TimesTen的主守护进程 Daemon Client Server中的Server守护进程TimesTen的一个WebServer进程 TimesTen使用 2 增加数据库用户 安装好系统后 系统有个自带的DSN 和accesscontrol结合起来用 一般创建用户 变更密码 授予权限等相关权限 用户控制在这个DSN来做对于需要权限控制 创建用户等 安装的时候要把accesscontrol安装上 如果安装的时候没有安装上 那么可以等安装后执行 ttmodinstall enableAccessControlttmodinstall也可以重新指定监控的port端口 重新设置环境变量ORACLE HOME可以使用ttmodinstall h来查看该功能的使用 TimesTen使用 2 增加数据库用户 TimesTen支持的创建后用户的权限有下面几种1 Admin2 Connect3 createdatastore4 ddl5 write6 select TimesTen使用 2 增加数据库用户 ttisqlTT tt70 trainCommand createusertt trainidentifiedby tt train Command grantddl admintott train Command grantwritetott train Command grantSELECTtott train Command quit TimesTen使用 3 DataStore介绍 DataStore是指TimesTen中的表 索引等放在内存段中的一个集合 类似与Oracle中库的概念一个TimesTenDataManager可以管理多个DataStoreDataStore由放在相应ODBC配置文件中的一个DSN DataSourceName 所定义 该DSN由一个名字和相关的属性组成 如下 名为TT tt70 train的DataStore的定义 DataStore介绍 ODBCDataSources TT tt70 train TimesTen7 0Driver TT tt70 train Driver tstenv timeten zjf TimesTen tt70 train lib libtten soDataStore tstenv timeten zjf TimesTen tt70 train info TT tt70 trainDatabaseCharacterSet US7ASCIIPermSize 50TempSize 10 DataStore介绍 ODBC配置文件分为两种 系统级ODBC文件 可通过环境变量SYSODBCINI另行设置 和用户级ODBC配置文件 可通过环境变量ODBCINI另行设置 系统级的ODBC可以被任何用户所引用 而用户级的只能被该用户所引用 系统级的ODBC文件在Windows平台下可以通过控制面板 ODBC数据源管理 系统DSN定义 而UNIX平台下 则一般是通过定义文件 INSTALL DIR sys odbc ini完成 DataStore介绍 当用户连接一个DataStore的时候 TimesTen会按照下面的顺序查找配置文件 1 环境变量ODBCINI所指的 odbc ini文件2 运行TimesTen的用户主目录下的 odbc ini文件3 环境变量SYSODBCINI所指的sys odbc ini文件4 var TimesTen sys odbc ini5 INSTALL DIR info sys odbc ini 非root用户才会执行该步 INSTALL DIR为TimesTen的安装目录 DataStore介绍 在上面的TT tt70 train定义里面 有两个重要的属性 Driver tstenv timeten zjf TimesTen tt70 train lib libtten so指操作该数据源所需要的驱动DataStore tstenv timeten zjf TimesTen tt70 train info TT tt70 train指的是放置Checkpoint文件的磁盘地址TimesTen虽然运行的时候将所有的数据都预先装载在内存中 但它也有自己的数据文件 日志文件等 DataStore介绍 数据文件叫checkpoint文件 是TimesTen内存中数据在磁盘上的一个镜像 相当于Oracle数据库中的数据文件DBFTimesTen会在一定条件下自动做Checkpoint 它会将内存中的脏数据和磁盘上的数据文件做增量同步 当首次登陆到该DSN 或者TimesTen异常中止 失败时 TimesTen需要这些读取这些文件做恢复 DataStore介绍 下面是DataStoreTT tt70 train在磁盘上的相应文件 pwd tstenv timeten zjf TimesTen tt70 train info ls al grepTT tt70 train rw rw rw 1timetenusers14785240Dec518 46TT tt70 train ds0 rw rw rw 1timetenusers14785240Dec518 38TT tt70 train ds1 rw rw rw 1timetenusers753664Dec518 46TT tt70 train log0 rw rw rw 1timetenusers67108864Dec518 28TT tt70 train res0 rw rw rw 1timetenusers67108864Dec518 28TT tt70 train res1 rw rw rw 1timetenusers67108864Dec518 28TT tt70 train res2 DataStore介绍 针对TT tt70 train这个DataStore 磁盘上对应由两个checkpoint文件 TT tt70 train ds0 TT tt70 train ds1一个日志文件 TT tt70 train log0三个保留文件 reservation TT tt70 train res0 TT tt70 train res1 TT tt70 train res2 Checkpoint文件 针对Checkpoint文件 TimesTen会以DataStore属性的最后一节为文件名 创建相应的Checkpoint文件TimesTen每次做Checkpoint的时候 会轮换着写这两个文件 每次都写较旧的那个 所以在某些时间段内 这两个文件不是完全一致的 每次做Checkpoint的时候 TimesTen先在这两个文件之间做一个同步 然后把最新的更新 写到旧的Checkpoint文件中 为什么不同时写入两个文件呢 如果同时往两个文件写入 而写入过程发生异常 会导致两个文件同时被损坏 带来灾难性的后果 TimesTen如何创建日志文件和保留文件呢 在ODBC配置文件里面 通过属性LogDir来定义日志文件 没有显式设置LogDir时 日志文件将和Checkpoint文件位于同一目录下 且以DataStore属性中定义的目录的最后一节为文件名 后缀中按数字序列递增命名 例如TT tt70 train log0 TT tt70 train log1 等 具体定义了LogDir后 日志文件将位于该目录下 且以该属性值所指向的目录的最后一节为文件名 例如 Checkpoint文件 LogDir tstenv timeten zjf TimesTen tt70 train log此时 TimesTen将在目录 tstenv timeten zjf TimesTen tt70 train log下创建名为TT tt70 traincache的日志和保留文件日志文件会和保留文件始终位于同一个目录下强烈建议将日志文件和Checkpoint文件分开放在不同磁盘上 且处于不同的磁盘控制器下 以尽量减少磁盘IO的影响 保留文件 保留文件始终和日志文件位于同一目录下 它的大小由属性Log定义 缺省的Log是64M当由于某些原因导致文件系统没有空余的磁盘空间时 如果没有保留文件 TimesTen将无法运行下去 因为事务的提交不可避免地导致日志文件的增长 但此时已没有任何可用于增长的磁盘空间 从而导致TimesTen处于静止状态 在此状态下 只允许读操作而不允许写操作 保留文件 保留文件是作为溢出缓冲空间使用的 它们被预先创建 当磁盘空间都被用光时 TimesTen会利用这些保留文件作为一个缓冲 从而完成最终的一些事务 避免TimesTen进入静止状态创建三个保留文件的原因是因为在绝大多数情况下 三个保留文件被证明是最优的选择 TimesTen使用 4 DataStore配置 非root用户安装时 TimesTen的配置文件为 TimesTen Home info sys odbc ini文件中 下面是安装后的这个文件缺省内容 这一段是TimesTen的所有属性值 是我们配置的一个很好参考 Authenticate 1 client serveronly 只用于Client Server模式 当Server端该值设置为1时 只有提供了UID和Password的客户端连接才能访问该DSN 如果Access如果AccessControl已经设置 则Authenticate必须设置为1 本地访问 即直连方式则忽略该参数 AutoCreate 1当连接一个不存在的DataStore时 是否自动创建它 CkptFrequency ifLogging 1then600else0 CkptLogVolume 0CkptFrequency CkptLogVolume为Checkpoint的触发条件 当任何一个被触发时 TimesTen将做Checkpoint操作 TimesTen使用 4 DataStore配置 CkptRate 0 0 ratenotlimited ConnectionCharacterSet ifDatabaseCharacterSet TIMESTEN8thenTIMESTEN8elseUS7ASCII ConnectionName processargv 0 Connections 64 DatabaseCharacterSet nodefault TimesTen使用 4 DataStore配置 Diagnostics 1定义诊断信息的记录粒度0为关闭诊断信息 1为基本诊断信息 DurableCommits 0日志是否被实时同步到磁盘上 0为异步方式 1为实时同步 ForceConnect 0 GroupRestrict nonebydefault Isolation 1 1 read committed 0 serializabl LockLevel 0 0 row levellocking LockWait 10 seconds Logging 1 1 writelogtodisk LogAutoTruncate 1 TimesTen使用 4 DataStore配置 LogBuffSize 65536 measuredinKB LogDir sameascheckpointdirectorybydefault Log 64 measuredinMB LogFlushMethod 0控制TimesTen同步或者写日志到日志文件的方式 0为使用前一次的设置值 1为批同步的方式 缺省 2为实时同步的方式 LogPurge 1是否自动清除不用的日志文件 MatchLogOpts 0是否使用第一次连接DataStore时logging logpurge的值 0为使用 1为忽略第一次连接时的值 而是使用当前连接的特有的值 MemoryLock 0 HP UX Linux andSolarisplatformsonly NLS LENGTH SEMANTICS BYTE NLS NCHAR CONV EXCP 0 NLS SORT BINARY OverWrite 0 TimesTen使用 4 DataStore配置 PermSize 2 measuredinMB defaultis2on32 bit 4on64 bit 永久内存区域的大小 即DataStore的大小 PermWarnThreshold 90 Preallocate 0 PrivateCommands 0 PWD nodefault PWDCrypt nodefault RecoveryThreads 1 SQLQueryTimeout 0 seconds TimesTen使用 4 DataStore配置 Temporary 0 datastoreispermanentbydefault TempSize measuredinMB defaultisderivedfromPermSize butisalwaysatleast6MB 分配的临时内存区域大小 与PermSize对应 类似与Oracle的临时表空间 TempWarnThreshold 90 TypeMode 0 0 Oracletypes UID operatingsystemuserID WaitForConnect 1 TimesTen使用 4 DataStore配置 OracleLoadingAttributes OracleID nodefault CacheGroup的时候 所连接到的Oracle数据库的用户ID OraclePWD nodefault PassThrough 00 所有的SQL只是在TimesTen执行1 SQL 除了Insert Delete Update及DDL之外 将被PassThrough到Oracle中执行 如果该SQL执行时产生语法错误 如果Insert Delete及Update操作的目标表在TimesTen不存在 则将被将被PassThrough到Oracle中执行 注意 此时不包括DDL 2 同1 加上如果Insert Update及Delete针对的是ReadOnlyCacheGroup 且符合1的描述 也将被PassThrough到Oracle中执行3 所有的SQL 除了Commit Rollback Savepoint及TimesTen独有的设置其优化器参数的内置存储过程 都被PassThrough到Oracle RACCallback 1 TransparentLoad 0 0 donotloaddata TimesTen使用 4 DataStore配置 ClientConnectionAttributes ConnectionCharacterSet ifDatabaseCharacterSet TIMESTEN8thenTIMESTEN8elseUS7ASCII ConnectionName processargv 0 PWD nodefault PWDCrypt nodefault TTC Server nodefault C S模式时 Client定义的逻辑Server名 TTC Server DSN nodefault C S模式时 Client指定所要连接的ServerDSN名 TTC Timeout 60 UID operatingsystemuserID TimesTen使用 4 DataStore配置 这个往下是具体的DataStore的配置 已经配好的是TimesTen的Demo程序要用到的DataStore TT tt70 Driver home tt1 TimesTen tt70 lib libtten soDataStore home tt1 TimesTen tt70 info TT tt70DatabaseCharacterSet US7ASCII TimesTen使用 4 DataStore配置 每个ODBC数据源的驱动器的类型说明 是直连 Direct 还是C S模式TT tt70 TimesTen7 0DriverTpcbData tt70 TimesTen7 0DriverTptbmDataRepSrc tt70 TimesTen7 0DriverTptbmDataRepDst tt70 TimesTen7 0DriverTptbmData tt70 TimesTen7 0DriverBulkInsData tt70 TimesTen7 0DriverWiscData tt70 TimesTen7 0DriverRunData tt70 TimesTen7 0DriverCacheData tt70 TimesTen7 0DriverTpcbDataCS tt70 TimesTen7 0ClientDriverTptbmDataCS tt70 TimesTen7 0ClientDriverBulkInsDataCS tt70 TimesTen7 0ClientDriverWiscDataCS tt70 TimesTen7 0ClientDriverRunDataCS tt70 TimesTen7 0ClientDriver TimesTen使用 4 增加用户DSN 在 ODBCDataSources 下面增加 imdb TimesTen7 0Driver在最后面增加 imdb Driver tstenv timeten zjf TimesTen tt70 train lib libtten soDataStore tstenv timeten zjf TimesTen tt70 train info imdbDatabaseCharacterSet ZHS16GBKAuthenticate 0UID testPWD testPermSize 2048Connections 20TempSize 512CkptFrequency 600CkptLogVolume 64LogBuffSize 512000Log 1024 TimesTen使用 4 增加用户DSN 创建用户tsetttisqlTT tt70 traincreateusertestidentifiedby test grantddl admintotest grantwritetotest grantSELECTtotest quit 用C S方式来连接DSN 首先在sys ttconnect ini添加记录如下 imdb server Description TimesTenServerNetwork Address ttLocalHost或172 18 1 34TCP PORT 19003然后在sys odbc ini里面配置Client的DSN IMDBCS TTC SERVER imdb serverTTC SERVER DSN imdb 用C S方式来连接DSN ttisqlcsimdbcsttisql在自身服务器上使用 ttisqlcs在客户机上使用Warning6226 Ignoringvaluerequestedforfirstconnectionattribute PermSize valuecurrentlyinuse 2048 requestedvalue 512 怎么改变呢 TimesTen使用 5 备份与恢复 命令ttbackup备份数据库 dir指向放置备份文件的路径 fname指定所要生成的备份文件的命名 dsn指向要备份的datastorettbackup dir tstenv timeten zjf TimesTen tt70 train backup fnameimdb 1206dsn imdb通过ttdestroy命令删除掉现在的datastore首先退出已有的ttisql连接ttdestroyimdb TimesTen使用 5 备份与恢复 命令ttrestore恢复数据库dir指向备份文件放置的目录 noconn为恢复好后 不要自动登录该datastore ttrestore dir tstenv timeten zjf TimesTen tt70 train backup noconn fnameimdb 1206dsn imdb TimesTen客户端工具ttIsql 可以直接用ttIsql DSN来登陆 或者加上连接串来登陆 如ttIsqlttInstttIsql connStr DSN ttInst UID ttuser PWD ttuser OraclePWD ttuser 登陆后即可进行类似createtable delete select等操作运行脚本文件 可以ttIsql fRun sqlttInst或者在ttIsql的状态下面执行run run sql ttIsql 历史命令 ttIsql的一个session里可存储100个历史命令 使用h列出刚输入的命令Command h 1connect DSN IOMS 2select fromsys tablewhererownum 3重复上一个命令 输入Command 保存历史命令 输入Command savehistoryhistory txt 清理历史记录Command clearhistory ttIsql 查看信息 主要有4个命令 在ttIsql模式下输入 describe oracle里desc 查看相关表之类的信息cachegroups 查看datastore相关的cachegroups的信息 dssize 查看datastore的内存使用情况Monitor 显示datastore的一个基本的情况 ttIsql 查询和改变优化计划 TimesTen里集成了命令showplan来显示执行计划 Command autocommit0 Command showplan Command SELECT FROMT1 T2 T3WHEREA BANDB CANDA B 可以查看相关的语句执行的信息 是否使用索引等等 ttIsql 计算语句使用耗时 timing命令查看语句消耗的时间Command timing1 Command select fromreadtab 1rowfound Executiontime SQLExecute FetchLoop 0 000136seconds ttIsql 其他工具命令 tables命令 列出TimesTen的所有系统表还有很多ttisql的工具命令 具体请参考 在ttisql模式下 输入commond 会打印出所有命令的概要参考信息 TimesTen数据库对象管理 1 遵循sql92标准 支持常见数据库对象ddl和dml支持常用数据库对象 table views index sequence等以一个表对象的操作为例Command createtableftable idintnotnullprimarykey namechar 10 Command descftable TableTT1 FTABLE Columns IDNUMBER 38 NOTNULLNAMECHAR 10 1tablefound primarykeycolumnsareindicatedwith TimesTen数据库对象管理 2 Command insertintoftablevalues 1 hello Command insertintoftablevalues 2 world Command commit Command select fromftable Command droptableftable 标准的create delete insert update等都和oracle里面一样的 具体内容可以参考相关文档 TimesTen数据库CacheConnect管理 1 要创建Oracle和TimesTen的数据缓冲连接 首先要保证TimesTen的DSN的用户和密码和Oracle的用户和密码要一样 并且TimesTen的机器上需要安装Oracle客户端 还要保证Oracle和TimesTen在各自的数据库里面有足够的权限以创建一个readonly的cachegroup为例 在Oracle数据库上创建表如下 并且进行相关操作CRE

温馨提示

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

评论

0/150

提交评论