oracle内存数据库timesten

Oracle TimesTen内存数据库使管理软件具有瞬间快速响应能力和非常高的吞吐量,以支持实时企业和诸如电信、资本市场和国防等行业中绩效关键的职能部门。
借助Oracle TimesTen内存数据库,企业的管理软件能够以快许多倍的速度访问、捕获或更新信息——使企业能够吸引和保留更多用户,在业务关键的事件具有很大价值时及时发觉和响应它们,并提供新的服务——全部利用标准关系数据库技术和大家熟悉的编程接口。通过TimesTen,企业的管理软件能够具有即时响应性、高度可伸缩性以及持续可用性。
Oracle TimesTen是Oracle收购的一款内存数据库。Oracle的SQL无论如何进行终极优化,始终逃不开两个性能的瓶颈:
1.读取硬盘。
虽然大家一般都开了十几G内存作缓存,而且也能比较严格的控制那些表的上述缓存到数据库SGA中,但是对于某张表里面的具体数据,你就很难控制它是否缓存了,更重要是数据库的基本算法设计是按读取硬盘为前提。而内存数据库是天生就完全基于内存的。
2. C/S模式的进程间通信。
无论是管道,本地IPC还是远程Socket(TCP/IP)形式的通信,特别是在做批次处理的时候需要处理大量的数据,性能消耗都不能无视,所以我们经常要注意数据库交互的往返次数。而 TimesTen直接开在共享内存中,Client通过Driver直接读取共享内存,省去了通信开销,非常的快。

以上两点天然优势是众多内存数据库都拥有的,如做了好多电信生意的Altibase,如ExtremeDB,但Oracle TimesTen好在被Oracle收购了,与Oracle能够很好的互联。
内存数据库可以将自己持久化到硬盘文件,但在很多场景中,它只负责部分数据的读缓存,实际的整体业务数据仍在统一的大数据库里。这时候TimesTen就显示出无比的社会主义优越性:
1. 启动时快速的从Oracle载入部分表的部分数据(用SQL配置)到TimesTen,速度比自己用程序手工查询再放入内存数据库要快得多。

2. 当Oracle的数据发生变化,会自动增量同步到TimesTen,这个解放了好多生产力阿。以往处理同步只有两条路子走:
一是业务系统在更改数据的同时发送JMS消息,由负责维护内存数据库的进程侦听这条消息。
二是利用Oracle SQLJ功能,设Trigger调度由Java写的存储过程,将变动的消息发出去。 
2. C/S模式的进程间通信。
无论是管道,本地IPC还是远程Socket(TCP/IP)形式的通信,特别是在做批次处理的时候需要处理大量的数据,性能消耗都不能无视,所以我们经常要注意数据库交互的往返次数。而 TimesTen直接开在共享内存中,Client通过Driver直接读取共享内存,省去了通信开销,非常的快。
以上两点天然优势是众多内存数据库都拥有的,如做了好多电信生意的Altibase,如ExtremeDB,但Oracle TimesTen好在被Oracle收购了,与Oracle能够很好的互联。
内存数据库可以将自己持久化到硬盘文件,但在很多场景中,它只负责部分数据的读缓存,实际的整体业务数据仍在统一的大数据库里。这时候TimesTen就显示出无比的社会主义优越性:
1. 启动时快速的从Oracle载入部分表的部分数据(用SQL配置)到TimesTen,速度比自己用程序手工查询再放入内存数据库要快得多。

2. 当Oracle的数据发生变化,会自动增量同步到TimesTen,这个解放了好多生产力阿。以往处理同步只有两条路子走:
一是业务系统在更改数据的同时发送JMS消息,由负责维护内存数据库的进程侦听这条消息。
二是利用Oracle SQLJ功能,设Trigger调度由Java写的存储过程,将变动的消息发出去。 
以上两点天然优势是众多内存数据库都拥有的,如做了好多电信生意的Altibase,如ExtremeDB,但Oracle TimesTen好在被Oracle收购了,与Oracle能够很好的互联。
内存数据库可以将自己持久化到硬盘文件,但在很多场景中,它只负责部分数据的读缓存,实际的整体业务数据仍在统一的大数据库里。这时候TimesTen就显示出无比的社会主义优越性:
1. 启动时快速的从Oracle载入部分表的部分数据(用SQL配置)到TimesTen,速度比自己用程序手工查询再放入内存数据库要快得多。
2. 当Oracle的数据发生变化,会自动增量同步到TimesTen,这个解放了好多生产力阿。以往处理同步只有两条路子走:
一是业务系统在更改数据的同时发送JMS消息,由负责维护内存数据库的进程侦听这条消息。
二是利用Oracle SQLJ功能,设Trigger调度由Java写的存储过程,将变动的消息发出去。 
2. 当Oracle的数据发生变化,会自动增量同步到TimesTen,这个解放了好多生产力阿。以往处理同步只有两条路子走:
一是业务系统在更改数据的同时发送JMS消息,由负责维护内存数据库的进程侦听这条消息。
二是利用Oracle SQLJ功能,设Trigger调度由Java写的存储过程,将变动的消息发出去。 
[ODBC Data Sources]
mytimesten=TimesTen 6.0 Driver
DataStore=/home/fee/TimesTen6/DemoDataStore
DurableCommits=0
PermSize=16
[31 machine]/home/fee>ttIsql
Type ? or "help" for help, type "exit" to quit ttIsql.
All commands must end with a semicolon character.
Command> connect "DSN=DemoDataStore";
IM002: Data source name not found and no default driver specified
The command failed.
Command> connect "DSN=DemoDataStore";
Connection successful: DSN=DemoDataStore;UID=fee;DataStore=/home/fee/TimesTen6/DemoDataStore;PermSize=16;
(Default setting AutoCommit=1)
> (cust_number integer not null primary key,
> first_name char(12) not null,
> last_name char(12) not null,
> address varchar (100) not null);
  Columns:
   *CUST_NUMBER                     INTEGER NOT NULL
    FIRST_NAME                      CHAR (12) NOT NULL
    LAST_NAME                       CHAR (12) NOT NULL
    ADDRESS                         VARCHAR (100) INLINE NOT NULL
(primary key columns are indicated with *)
> (prod_number char(10) not null primary key,
> prod_name varchar(100) not null,
> price decimal(6,2) not null);
> (order_number integer not null,
> cust_number integer not null,
> prod_name char(10) not null,
> order_date date not null);
create table FEE.CUSTOMER (
        CUST_NUMBER INTEGER not null,
        FIRST_NAME  CHAR(12) not null,
        LAST_NAME   CHAR(12) not null,
        ADDRESS     VARCHAR(100) inline not null,
    primary key (CUST_NUMBER));
        ORDER_NUMBER INTEGER not null,
        CUST_NUMBER  INTEGER not null,
        PROD_NAME    CHAR(10) not null,
        ORDER_DATE   DATE not null);
        PROD_NUMBER CHAR(10) not null,
        PROD_NAME   VARCHAR(100) inline not null,
        PRICE       DECIMAL(6,2) not null,
    primary key (PROD_NUMBER));
    
Command> exit
Disconnecting...
Done.
[31 machine]/home/fee/TimesTen6/DemoDataStore>ls -al
total 32
drwxrwxrwx   2 fee      dba             256 Oct 24 17:25 ./
drwxr-xr-x   3 fee      dba            4096 Oct 24 17:25 ../
-r--r--r--   1 fee      dba            1565 Oct 24 17:24 customer.dat
-r--r--r--   1 fee      dba            1591 Oct 24 17:24 orders.dat
-r--r--r--   1 fee      dba             967 Oct 24 17:24 ref_products.dat
[31 machine]/home/fee/TimesTen6/DemoDataStore>pwd
/home/fee/TimesTen6/DemoDataStore
[31 machine]/home/fee/TimesTen6/DemoDataStore>cat customer.dat
3700,"Peter","Burchard","882 Osborne Avenue, Boston, MA 02122"
1121,"Saul","Mendoza","721 Stardust Street, Mountain View, CA 94043"
1278,"Mary","Behr","2233 Emerson Road, Vancouver, WA 98663"
1868,"Paul","Tu","308 Bowman Court, Palo Alto, CA 94309"
3645,"John","Silva","3329 Taffy Lane, Atlanta, GA 30314"
1935,"Sandra","Lao","115 Spangler Avenue, San Jose, CA 95112"
1002,"Marco","Mueller","40 East 5th Avenue, New York, NY 10009"
2364,"Karen","Johnson","3971 Hill Road, Chicago, IL 60608"
2655,"Linda","Garcia","7599 Clark Road, Denver, CO 80210"
1077,"Gautam","Mudunuri","16 Welsley Avenue, Fremont, CA 94555"
3864,"Ruth","Silver","88 West 65th Street, New York, NY 10009"
1010,"Fatima","Borba","6868 Bascom Avenue, San Jose, CA 95128"
2300,"Pavel","Popov","233 Loredo Street, Dallas, TX 75210"
1001,"Steven","McPhee","72 Vine Street, San Jose, CA 95125"
3525,"Anthony","Bianchi","122 Fuller Avenue, Patchogue, NY 11772"
2826,"Mary","Anderson","6363 Bjorn Road, Minneapolis, MN 55417"
2435,"Juanita","Dawes","733 Valdosta Avenue, Baton Rouge, LA 70816"
1224,"Abdul","Aziz","6793 Bird Avenue, San Jose, CA 95126"
3611,"Katherine","McKenzie","54 East 21st Avenue, New York, NY 10009"
1900,"Patricia","Levesque","658 Aristotle Road, Palo Alto, CA 94305"
3290,"Paula","Rossi","21 West 54th Street, New York, NY 10009"
1665,"David","Singh","4001 West Hedding, San Jose, CA 95216"
3098,"Cynthia","Stewart","333 East Palm Street, Miami, FL 33150"
1133,"Kerri","Haas","68 East San Fernando, San Jose, CA 95113"
2555,"Bo","Smith","124 North 1st Street, Dallas, TX 75210"
[31 machine]/home/fee/TimesTen6/DemoDataStore>ttBulkCp -i -d warn DSN=DemoDataStore fee.customer customer.dat
    25 rows inserted
    25 rows total
    43 rows inserted
    43 rows total
    15 rows inserted
    15 rows total
    
4 查询导入的数据    
[31 machine]/home/fee/TimesTen6/DemoDataStore>ttIsql
Type ? or "help" for help, type "exit" to quit ttIsql.
All commands must end with a semicolon character.
Command> connect "DSN=DemoDataStore";
Connection successful: DSN=DemoDataStore;UID=fee;DataStore=/home/fee/TimesTen6/DemoDataStore;PermSize=16;
(Default setting AutoCommit=1)
< 3700, Peter       , Burchard    , 882 Osborne Avenue, Boston, MA 02122 >
< 1121, Saul        , Mendoza     , 721 Stardust Street, Mountain View, CA 94043 >
< 1278, Mary        , Behr        , 2233 Emerson Road, Vancouver, WA 98663 >
< 1868, Paul        , Tu          , 308 Bowman Court, Palo Alto, CA 94309 >
< 3645, John        , Silva       , 3329 Taffy Lane, Atlanta, GA 30314 >
< 1935, Sandra      , Lao         , 115 Spangler Avenue, San Jose, CA 95112 >
< 1002, Marco       , Mueller     , 40 East 5th Avenue, New York, NY 10009 >
< 2364, Karen       , Johnson     , 3971 Hill Road, Chicago, IL 60608 >
< 2655, Linda       , Garcia      , 7599 Clark Road, Denver, CO 80210 >
< 1077, Gautam      , Mudunuri    , 16 Welsley Avenue, Fremont, CA 94555 >
< 3864, Ruth        , Silver      , 88 West 65th Street, New York, NY 10009 >
< 1010, Fatima      , Borba       , 6868 Bascom Avenue, San Jose, CA 95128 >
< 2300, Pavel       , Popov       , 233 Loredo Street, Dallas, TX 75210 >
< 1001, Steven      , McPhee      , 72 Vine Street, San Jose, CA 95125 >
< 3525, Anthony     , Bianchi     , 122 Fuller Avenue, Patchogue, NY 11772 >
< 2826, Mary        , Anderson    , 6363 Bjorn Road, Minneapolis, MN 55417 >
< 2435, Juanita     , Dawes       , 733 Valdosta Avenue, Baton Rouge, LA 70816 >
< 1224, Abdul       , Aziz        , 6793 Bird Avenue, San Jose, CA 95126 >
< 3611, Katherine   , McKenzie    , 54 East 21st Avenue, New York, NY 10009 >
< 1900, Patricia    , Levesque    , 658 Aristotle Road, Palo Alto, CA 94305 >
< 3290, Paula       , Rossi       , 21 West 54th Street, New York, NY 10009 >
< 1665, David       , Singh       , 4001 West Hedding, San Jose, CA 95216 >
< 3098, Cynthia     , Stewart     , 333 East Palm Street, Miami, FL 33150 >
< 1133, Kerri       , Haas        , 68 East San Fernando, San Jose, CA 95113 >
< 2555, Bo          , Smith       , 124 North 1st Street, Dallas, TX 75210 >
25 rows found.
Command> insert into customer
> values(1365,'Josephine','Rogers','2100 Augustine Drive, Santa Clara, CA 95054');
1 row inserted.
< 1365, Josephine   , Rogers      , 2100 Augustine Drive, Santa Clara, CA 95054 >
1 row found.  
[31 machine]/home/fee/TimesTen6>mkdir backup
DemoDataStore/       DemoDataStore.ds1    DemoDataStore.res0   DemoDataStore.res2
DemoDataStore.ds0    DemoDataStore.log0   DemoDataStore.res1   backup/
Backup started ...
Backup complete
DemoDataStore.0.bac    DemoDataStore.0.bac0   DemoDataStore.sta
total 29592
-rw-------   1 fee      dba        14549816 Oct 24 17:44 DemoDataStore.0.bac
-rw-------   1 fee      dba          589824 Oct 24 17:44 DemoDataStore.0.bac0
-rw-------   1 fee      dba             688 Oct 24 17:44 DemoDataStore.sta
[31 machine]/home/fee/TimesTen6/backup>ttstatus
TimesTen status report as of Tue Oct 24 17:47:25 2006
TimesTen server pid 774300 started on port 16003
No TimesTen webserver running
Data store /home/fee/TimesTen6/DemoDataStore
There are no connections to the data store
Replication policy  : Manual
Cache agent policy : Manual
------------------------------------------------------------------------
End of report
TimesTen status report as of Tue Oct 24 17:51:59 2006
TimesTen server pid 774300 started on port 16003
No TimesTen webserver running
End of report
Restore started ...
Restore complete
TimesTen status report as of Tue Oct 24 17:53:46 2006
TimesTen server pid 774300 started on port 16003
No TimesTen webserver running
Data store /home/fee/TimesTen6/DemoDataStore
There are no connections to the data store
Replication policy  : Manual
Cache agent policy : Manual
------------------------------------------------------------------------
End of report 
1)软件安装
安装TimesTen
安装Oracle client
2)在Oracle中创建一个让TimesTen访问的帐户
 SQL> conn /as sysdba;
 已连接。
 SQL> create user tt_demo identified by tt_demo;
 用户已创建。
 SQL> grant connect,resource,create any trigger to tt_demo;
 授权成功。
 SQL>
 我在这里创建了一个system dsn,命名为tt_study
 E:>ttisql tt_study
 Copyright (c) 1996-2006, Oracle. All rights reserved.
 Type or "help" for help, type "exit" to quit ttIsql.
 All commands must end with a semicolon character.
 Connection successful: DSN=tt_study;UID=46192;DataStore=E:tt_dbdatatt_study;
 DRIVER=C:WINDOWSsystem32ttdv60.dll;LogDir=e:tt_dbdatalog;PermSize=20;
 (Default setting AutoCommit=1)
 Command> create user tt_demo identified by 'tt_demo';
 Command> grant ddl,admin to tt_demo;
 Command> exit
 Disconnecting...
 Done.
 User ID:tt_demo
Oracle ID:ora10
Oracle Password: tt_demo
E:>ttisql tt_study
 Copyright (c) 1996-2006, Oracle. All rights reserved.
 Type ? or "help" for help, type "exit" to quit ttIsql.
 All commands must end with a semicolon character.
 Enter password for 'tt_demo':
 Connection successful: DSN=tt_study;UID=tt_demo;DataStore=E:tt_dbdatatt_study
 ;DRIVER=C:WINDOWSsystem32ttdv60.dll;OracleId=ora10;LogDir=e:tt_dbdatalog;
 PermSize=20;
 (Default setting AutoCommit=1)
 Command> 
 SQL> conn tt_demo/tt_demo@ora10
  已连接。
  SQL> create table tt_test (a int primary key);
  表已创建。
  已创建 1 行。
  已创建 1 行。
  提交完成。
  ----------
  1
  2
  SQL>
 E:>ttisql tt_study
 Copyright (c) 1996-2006, Oracle. All rights reserved.
 Type ? or "help" for help, type "exit" to quit ttIsql.
 All commands must end with a semicolon character.
 Enter password for 'tt_demo':
 Connection successful: DSN=tt_study;UID=tt_demo;DataStore=E:tt_dbdatatt_study
 ;DRIVER=C:WINDOWSsystem32ttdv60.dll;OracleId=ora10;LogDir=e:tt_dbdatalog;
 PermSize=20;
 (Default setting AutoCommit=1)
 Command> call ttcacheuidpwdset('tt_demo','tt_demo');
 Command> call ttcachestart();
 Command> create readonly cache group tt_cache autorefresh interval 2 seconds from tt_test(a int primary key);
 Command>
 3)Load Cache Group
Command> load cache group tt_cache commit every 2 rows;
2 rows affected.
Command> select *from tt_test;
< 1 >
< 2 >
2 rows found.
Command> cachegroups;
Cache Group TT_demo.TT_CACHE:
Autorefresh: Yes
Autorefresh Mode: Incremental
Autorefresh State: On
Autorefresh Interval: 2 Seconds
Autorefresh Limit: 10000
Table Type: Read Only
Command>
4)测试
 在oracle上在插入一行数据
  SQL> insert into tt_test values(3);
  已创建 1 行。
  提交完成。
  SQL>
  到TimesTen上验证一下 
  Command> select *from tt_test;
 < 1 >
 < 2 >
 < 3 >
 3 rows found.
  到TimesTen上验证一下 
  Command> select *from tt_test;
 < 1 >
 < 2 >
 < 3 >
 3 rows found.
call ttcachestop(); 

TimesTen数据库对TimesTen数据库——将数据的副本保存到网络中的两个或多个服务器上。当一个服务器发生故障时,其他服务器上的数据副本可用于继续进行业务处理——这是那些不能允许服务中断的业务部门所必需的功能。

连接到Oracle数据库的高速缓存——为驻留在应用层的Oracle数据建立了一个实时、可更新的高速缓存。卸载计算从Oracle后端系统执行,并能支持响应速度很快和可伸缩的实时管理软件。

Oracle 内存数据库 TimesTen 是一个针对内存进行了优化的关系数据库,它为应用程序提供了当今实时企业和行业(例如电信、资本市场和国防)所需的即时响应性和非常高的吞吐量。 Oracle 内存数据库 TimesTen 作为高速缓存或嵌入式数据库部署在应用程序层中,利用标准的 SQL 接口对完全位于物理内存中的数据存储进行操作,对于大规模的查询应用非常有好处。

有时间来深入研究研究。


问题1,TimesTen如何同步?

下一篇打算发一个c程序的例子和我测试的结果,后续可能还会使用TimesTen cache of oracle这个产品,陆续也会发一下这方面的笔记上来,希望对有这方面需求的朋友有所帮助。1 建立.odbc.ini文件在登陆目录下

[DemoDataStore]

2 连接数据源,并创建表

Copyright (c) 1996-2006, Oracle.  All rights reserved.


Command> create table customer

Command> describe customer;

Table FEE.CUSTOMER:

1 table found.

Command>  create table ref_products

Command>  create table orders

Command> host ttSchema DemoDataStore;

create table FEE.ORDERS (

create table FEE.REF_PRODUCTS (

3 通过文件导入数据

customer.dat:

[31 machine]/home/fee/TimesTen6/DemoDataStore>ttBulkCp -i -d warn DSN=DemoDataStore fee.orders orders.dat

orders.dat:

[31 machine]/home/fee/TimesTen6/DemoDataStore>ttBulkCp -i -d warn DSN=DemoDataStore fee.ref_products ref_products.dat

ref_products.dat:

Copyright (c) 1996-2006, Oracle.  All rights reserved.


Command> select * from customer;

5 sql操作

Command> select * from customer where cust_number=1365;

6 备份数据库

[31 machine]/home/fee/TimesTen6>ls

[31 machine]/home/fee/TimesTen6>ttBackup -dir /home/fee/TimesTen6/backup "DSN=DemoDataStore";

[31 machine]/home/fee/TimesTen6>cd backup

[31 machine]/home/fee/TimesTen6/backup>ls

[31 machine]/home/fee/TimesTen6/backup>ll

7 删除和恢复数据库

Daemon pid 782504 port 16001 instance TimesTen6

------------------------------------------------------------------------

[31 machine]/home/fee/TimesTen6/backup>ttDestroy /home/fee/TimesTen6/DemoDataStore

[31 machine]/home/fee/TimesTen6/backup>ttstatus

Daemon pid 782504 port 16001 instance TimesTen6

------------------------------------------------------------------------

[31 machine]/home/fee/TimesTen6/DemoDataStore>ttRestore -dir /home/fee/TimesTen6/backup "DSN=DemoDataStore";

[31 machine]/home/fee/TimesTen6>ttstatus

Daemon pid 782504 port 16001 instance TimesTen6

------------------------------------------------------------------------

[align=right][color=#000066][此贴子已经被admin于2009-12-4 8:00:33编辑过][/color][/align] ---------数据恢复 oracle数据库恢复专家 13352468096 QQ:9417901 网站:http://www.sosdb.com----- 

一、准备工作

3)create 一个dsn

4)create 一个帐户在dsn上

 connect "DSN=tt_study";

5)修改DSN tt_study增加

保存退出,重新用ttisql 访问tt_study,你会发现:

 connect "DSN=tt_study";

二、创建一个read only cache group

1)在Oracle上用tt_demo用户创建一个测试用的表

  SQL> insert into tt_test values(1);

  SQL> insert into tt_test values(2);

  SQL> commit;

  SQL> select * from tt_test;

  NO

2)创建一个cache group

 connect "DSN=tt_study";


Cache Group Type: Read Only

Root Table: TT_demo.TT_TEST

1 cache group found.


  SQL> commit;

5)删除Cache Group

drop cache group tt_cache;

6)stop cache group agent

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值