TimesTen的守护进程

2024-02-04 13:38
文章标签 进程 守护 timesten

本文主要是介绍TimesTen的守护进程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

TimesTen的守护进程分为主守护进程和子守护进程。

主守护进程

主守护进程即ttDaemonAdmin启动的进程,也称为Data Manager Daemon。
主守护进程的作用为:

  • Manages shared memory access
  • Coordinates process recovery
  • Keeps management statistics on what databases exist, which are in use, and which application processes are connected to which databases
  • Manages RAM policy
  • Starts replication processes, the TimesTen Server and the cache agent.

每一个TimesTen实例配有一个主守护进程,一个主守护进程下可有多个数据库。

子守护进程

每一个数据库/DataStore都配备相应的子守护进程(subdaemon), 子守护进程父进程即主守护进程。

在OS中可以查看到子守护进程,不过区别不明显,只能看到有两个实例tt1122和ttnew,其它的区别就是-id了:

$ ps -ef|grep timestensubd
oracle    2648  2644  0 Jun29 ?        00:02:35 /home/oracle/TimesTen/tt1122/bin/timestensubd -verbose -userlog tterrors.log -supportlog ttmesg.log -id 1000000 -facility user
oracle    2649  2644  0 Jun29 ?        00:05:20 /home/oracle/TimesTen/tt1122/bin/timestensubd -verbose -userlog tterrors.log -supportlog ttmesg.log -id 1000001 -facility user
oracle    2650  2644  0 Jun29 ?        00:00:35 /home/oracle/TimesTen/tt1122/bin/timestensubd -verbose -userlog tterrors.log -supportlog ttmesg.log -id 1000002 -facility user
oracle    8775  2644  0 10:33 ?        00:00:13 /home/oracle/TimesTen/tt1122/bin/timestensubd -verbose -userlog tterrors.log -supportlog ttmesg.log -id 1000011 -facility user
oracle    6633  6629  0 03:57 ?        00:00:25 /u01/TimesTen/ttnew/bin/timestensubd -verbose -userlog tterrors.log -supportlog ttmesg.log -id 1000000 -facility user
oracle    6634  6629  0 03:57 ?        00:00:25 /u01/TimesTen/ttnew/bin/timestensubd -verbose -userlog tterrors.log -supportlog ttmesg.log -id 1000001 -facility user
oracle    6635  6629  0 03:57 ?        00:00:25 /u01/TimesTen/ttnew/bin/timestensubd -verbose -userlog tterrors.log -supportlog ttmesg.log -id 1000002 -facility user
oracle    6636  6629  0 03:57 ?        00:00:25 /u01/TimesTen/ttnew/bin/timestensubd -verbose -userlog tterrors.log -supportlog ttmesg.log -id 1000003 -facility user$ ps -p 2644PID TTY          TIME CMD2644 ?        00:01:56 timestend$ ps -p 6629PID TTY          TIME CMD6629 ?        00:00:51 timestend

从输出还可看出,2644和6629是主守护进程。
每一个timestensubd负责一个数据库。

$ ttstatus
TimesTen status report as of Thu Jun 30 17:56:03 2016Daemon pid 6629 port 55555 instance ttnew
TimesTen server pid 6638 started on port 55556
------------------------------------------------------------------------
Data store /u01/TimesTen/ttnew/info/DemoDataStore/repdb2_1122
There are no connections to the data store
Replication policy  : Manual
Cache Agent policy  : Manual
PL/SQL enabled.
------------------------------------------------------------------------
Accessible by group oracle
End of report
虽然没有任何数据库,表示之前看到的是idle subdaemon
$ ttstatus
TimesTen status report as of Thu Jun 30 17:48:42 2016Daemon pid 2644 port 53392 instance tt1122
TimesTen server pid 2653 started on port 53393
------------------------------------------------------------------------
Data store /home/oracle/TimesTen/tt1122/info/DemoDataStore/cachedb2
There are 18 connections to the data store
Shared Memory KEY 0x0e0077ad ID 4718612
PL/SQL Memory KEY 0x0f0077ad ID 4751381 Address 0x7fa0000000
Type            PID     Context             Connection Name              ConnID
Process         10938   0x000000000203dad0  cachedb2                          1
Replication     10955   0x00000000038aa750  LOGFORCE:1092778304             127
Replication     10955   0x0000000003910870  XLA_PARENT:1089628480           129
Replication     10955   0x0000000003925460  REPLISTENER:1101670720          131
Replication     10955   0x00000000039d8750  TRANSMITTER(M):1108805952       126
Replication     10955   0x00007fe9c00008c0  REPHOLD:1098090816              128
Replication     10955   0x00007fe9c80008c0  FAILOVER:1081899328             130
Subdaemon       2648    0x0000000001be0360  Manager                         142
Subdaemon       2648    0x0000000001c57430  Rollback                        141
Subdaemon       2648    0x0000000001debbc0  Checkpoint                      137
Subdaemon       2648    0x0000000001e407f0  Monitor                         136
Subdaemon       2648    0x0000000001e95420  IndexGC                         135
Subdaemon       2648    0x000000000312f8f0  HistGC                          139
Subdaemon       2648    0x0000000003184520  Log Marker                      138
Subdaemon       2648    0x000000000325aa50  AsyncMV                         134
Subdaemon       2648    0x00000000032af680  Aging                           133
Subdaemon       2648    0x00000000033042b0  Deadlock Detector               132
Subdaemon       2648    0x00000000034097c0  Flusher                         140
Replication policy  : Manual
Replication agent is running.
Cache Agent policy  : Manual
PL/SQL enabled.
------------------------------------------------------------------------
Data store /home/oracle/TimesTen/tt1122/info/DemoDataStore/repdb1_1122
There are no connections to the data store
Replication policy  : Manual
Cache Agent policy  : Manual
PL/SQL enabled.
------------------------------------------------------------------------
Data store /home/oracle/TimesTen/tt1122/info/DemoDataStore/cachedb1
There are 18 connections to the data store
Shared Memory KEY 0x4400c901 ID 3997713
PL/SQL Memory KEY 0x4500c901 ID 4030482 Address 0x7fa0000000
Type            PID     Context             Connection Name              ConnID
Process         11076   0x0000000001c84ad0  cachedb1                          1
Replication     10918   0x000000000361f460  LOGFORCE:1101203776             127
Replication     10918   0x000000000368b270  REPHOLD:1108773184              130
Replication     10918   0x00000000036b2350  XLA_PARENT:1098053952           128
Replication     10918   0x00000000036c6f40  REPLISTENER:1093052736          129
Replication     10918   0x00000000038048e0  RECEIVER:1115072832             125
Replication     10918   0x00007fa0880008c0  FAILOVER:1083238720             131
Subdaemon       2649    0x0000000000e82360  Manager                         142
Subdaemon       2649    0x0000000000ef9430  Rollback                        141
Subdaemon       2649    0x0000000001008980  Monitor                         136
Subdaemon       2649    0x000000000108d5e0  IndexGC                         134
Subdaemon       2649    0x00000000010ff8f0  AsyncMV                         133
Subdaemon       2649    0x0000000001134cd0  Flusher                         132
Subdaemon       2649    0x0000000001272b40  Deadlock Detector               140
Subdaemon       2649    0x00000000012d6150  Log Marker                      138
Subdaemon       2649    0x0000000001346c10  Checkpoint                      137
Subdaemon       2649    0x000000000269bb80  HistGC                          135
Subdaemon       2649    0x00000000026b0770  Aging                           139
Replication policy  : Manual
Replication agent is running.
Cache Agent policy  : Manual
PL/SQL enabled.
------------------------------------------------------------------------
Accessible by group oracle
End of report
$ ttstatus|grep -i subdaemon
Subdaemon       2648    0x0000000001be0360  Manager                         142
Subdaemon       2648    0x0000000001c57430  Rollback                        141
Subdaemon       2648    0x0000000001debbc0  Checkpoint                      137
Subdaemon       2648    0x0000000001e407f0  Monitor                         136
Subdaemon       2648    0x0000000001e95420  IndexGC                         135
Subdaemon       2648    0x000000000312f8f0  HistGC                          139
Subdaemon       2648    0x0000000003184520  Log Marker                      138
Subdaemon       2648    0x000000000325aa50  AsyncMV                         134
Subdaemon       2648    0x00000000032af680  Aging                           133
Subdaemon       2648    0x00000000033042b0  Deadlock Detector               132
Subdaemon       2648    0x00000000034097c0  Flusher                         140Subdaemon       2649    0x0000000000e82360  Manager                         142
Subdaemon       2649    0x0000000000ef9430  Rollback                        141
Subdaemon       2649    0x0000000001008980  Monitor                         136
Subdaemon       2649    0x000000000108d5e0  IndexGC                         134
Subdaemon       2649    0x00000000010ff8f0  AsyncMV                         133
Subdaemon       2649    0x0000000001134cd0  Flusher                         132
Subdaemon       2649    0x0000000001272b40  Deadlock Detector               140
Subdaemon       2649    0x00000000012d6150  Log Marker                      138
Subdaemon       2649    0x0000000001346c10  Checkpoint                      137
Subdaemon       2649    0x000000000269bb80  HistGC                          135
Subdaemon       2649    0x00000000026b0770  Aging                           139

主守护进程可以按需动态产生subdaemon。当有数据库需要加载到内存时,就会产生新的或使用已有的idle subdaemon来负责这个数据库。

TimesTen总是预留一个idle的subdaemon:
a) 主daemon启动时, 会附带启动4 subdaemon,并且最初的状态为idle
b) 若有数据库需要加载到内存,则会指派一个subdaemon负责一个数据库,但总会预留一个idle的subdaemon。

缺省启动的subdaemon数量可以在ttendaemon.options中通过-minsubs设置。

subdaemon的作用包括:
1. 将数据库从内存中卸载
2. 将Log buffer中的日志写盘
3. 日志的归档和清理
4. 检查和消除死锁
5. 在数据库非正常关闭时,从checkpoint和log文件中恢复
6. 回退交易
7. 实现缓存Aging

常用的subdaemon包括:
Worker: Periodically checks for deadlocks and canceling SQL operations on behalf of other applications in order to break any deadlocks.
Flusher: Flushes contents of Log buffer to disk
Checkpoint: Performs checkpoint operation.
Monitor: Implements lock wait timeout. For more information, please refer connection attribute “LockWait” in “Oracle TimesTen In-Memory Database API Reference Guide”.
HistGC: Purging rows in internal tables SYS.TABLE_HISTORY and SYS.COLUMN_HISTORY periodically when they are no longer needed by XLA readers.
Aging: Implementing the aging policies of various tables.

参考

  • TimesTen subdaemon: Frequently Asked Questions (Doc ID 759437.1)
  • TimesTen recovery from abnormally terminated connections (Doc ID 759443.1)

这篇关于TimesTen的守护进程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677694

相关文章

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

C#通过进程调用外部应用的实现示例

《C#通过进程调用外部应用的实现示例》本文主要介绍了C#通过进程调用外部应用的实现示例,以WINFORM应用程序为例,在C#应用程序中调用PYTHON程序,具有一定的参考价值,感兴趣的可以了解一下... 目录窗口程序类进程信息类 系统设置类 以WINFORM应用程序为例,在C#应用程序中调用python程序

Python如何精准判断某个进程是否在运行

《Python如何精准判断某个进程是否在运行》这篇文章主要为大家详细介绍了Python如何精准判断某个进程是否在运行,本文为大家整理了3种方法并进行了对比,有需要的小伙伴可以跟随小编一起学习一下... 目录一、为什么需要判断进程是否存在二、方法1:用psutil库(推荐)三、方法2:用os.system调用

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多

Linux进程终止的N种方式详解

《Linux进程终止的N种方式详解》进程终止是操作系统中,进程的一个重要阶段,他标志着进程生命周期的结束,下面小编为大家整理了一些常见的Linux进程终止方式,大家可以根据需求选择... 目录前言一、进程终止的概念二、进程终止的场景三、进程终止的实现3.1 程序退出码3.2 运行完毕结果正常3.3 运行完毕

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

linux本机进程间通信之UDS详解

《linux本机进程间通信之UDS详解》文章介绍了Unix域套接字(UDS)的使用方法,这是一种在同一台主机上不同进程间通信的方式,UDS支持三种套接字类型:SOCK_STREAM、SOCK_DGRA... 目录基础概念本机进程间通信socket实现AF_INET数据收发示意图AF_Unix数据收发流程图A