全部博文(389)
分类: Oracle
2014-03-29 21:31:59
TimesTen进程种类详解
timesten的进程种类主要分为以下几种:daemon,subdaemon,ttcserver(listener),ttcserver(用户),
timestenrepd(replication agent,可选)和timestenorad(cache agent,可选).
timesten的daemon是tt的主要后台进程;主要负责的工作有启动subdaemon,ttcserver(listener),
内存管理的policy(inuse,manual,alawy)和共享内存的请求,进程的恢复和启动相应的agent.
一般通过ttdaemonadmin 来进行管理,
如 启动
[timesten@master1 info]$ ttdaemonadmin -start
[timesten@master1 info]$ ps -eaf | grep timestend
timesten 3084 1 0 Mar28 ? 00:00:36 /opt/timesten/TimesTen/tt1122/bin/timestend -initfd 13
subdaemon进程由daemon启动, 这个进程用来管理某个DSN,是一个多线程的进程结构,主要的功能有
checkpoint,刷新log buffer到磁盘上,执行aging策略,moinit和死锁检测等等各种数据库后台的功能.
一般subdaemon进程不需要人为去的启动,由ttdaemon自动启动.
通过ttstatus可以看到当前的subdeamon的线程
[timesten@master1 info]$ ttstatus | grep Subdaemon
Subdaemon 3091 0x0000000017774ce0 Manager 2047
Subdaemon 3091 0x00000000177ebc10 Rollback 2046
Subdaemon 3091 0x0000000018b56950 Flusher 2045
Subdaemon 3091 0x0000000018bcbc40 Monitor 2044
Subdaemon 3091 0x0000000018c20740 Deadlock Detector 2043
Subdaemon 3091 0x0000000018c75240 Checkpoint 2042
Subdaemon 3091 0x0000000018cc9d40 Aging 2041
Subdaemon 3091 0x0000000018d1e840 Log Marker 2040
Subdaemon 3091 0x0000000018d73340 AsyncMV 2039
Subdaemon 3091 0x0000000018dc7e40 HistGC 2038
Subdaemon 3091 0x0000000018e1c940 IndexGC 2037
ttcserver(listener)该进程主要要是侦听用户请求,然后通根据用户请求的DSN转发到相应的
subdaemon,这个进程为每个连接生成一个ttcserver进程来执行应用程序的各种请求.类似于oracle
数据库的listener进程.
[timesten@master1 info]$ netstat -nltp | grep ttcserver
tcp 0 0 0.0.0.0:53397 0.0.0.0:* LISTEN 3093/ttcserver
default配置,该进程在53397的端口上侦听,用户可以通过ttmodinstall来进行修改.
ttcserver(用户)这种进程是具体负责执行应用程序请求的进程,比如执行sql,读取数据等等,由ttcserver(listener)负责启
动.类似于oracle数据库的前台进程。
timestenrepd和timestenorad进程负责实服务器之前的复制和IMDB的相关功能.这两个进程也是多线程结构
[timesten@master1 info]$ ttstatus | grep Replication
Replication 4713 0x000000000f3a1120 FAILOVER:1094740288 2033
Replication 4713 0x000000000f3fdd30 REPLISTENER:1101039936 2035
Replication 4713 0x000000000f426020 REPHOLD:1091590464 2034
Replication 4713 0x000000000f503660 LOGFORCE:1106405696 2032
Replication 4713 0x000000000f558160 TRANSMITTER(M):1109555520 2030
Replication 4713 0x000000000f5acc60 TRANSMITTER(M):1112705344 2031
Replication 4713 0x000000000f650480 RECEIVER:1115855168 2029
Replication 4713 0x00002aadbc0008c0 XLA_PARENT:1097890112 2036
[timesten@master1 info]$ ttstatus | grep Cache
Cache Agent 4729 0x0000000014996340 Handler 2
Cache Agent 4729 0x0000000014afc930 Timer 3
Cache Agent 4729 0x0000000014c298b0 BMReporter(1098672448) 5
Cache Agent 4729 0x0000000014f79f90 Marker(1105254720) 4
Cache Agent 4729 0x000000001532c390 LogSpaceMon(1092266304) 8
Cache Agent 4729 0x00002aadc808f260 Refresher(S,30000) 6
Cache Agent 4729 0x00002aadc838cc60 Refresher(S,3000) 7
现在来对用户请求的流程做一个总结:1,用户或os脚本启动daedmon;2,daemon根据配置启动N个subdaemon,在11.2.1
默认为4;3,daemon启动一个ttcserver(listener),ttcserver(listener)在53397的端口上侦听接收用户请求;
4,第一次连接只能是能instance管理员身体连接,当连接请求到达listener时,listener转到请求到daemon;
5,daemon从subdaemon池中选择一个空闲的subdaemon负责管理和加载请求的DSN;6,tcserver(listener)接收
普通的用户连接请求,生成相应的ttcserver(用户)进程,负责处理用户的请求.