SinoDB 之 How-to(4)- 查看SinoDB实例的基本信息
0、本文示例使用的环境
- 操作系统:CentOS 7.9(虚拟机)
- 主机名:C79
- 主机IP:192.168.59.128
- SinoDB:V16.8
- SinoDB安装目录:/opt/sinodbms
- SinoDB实例名:ol_sinodb1210
- SinoDB实例端口号:19000
- SQLHOSTS 文件(sqlhosts.ol_sinodb1210)
ol_sinodb1210 onsoctcp 192.168.59.128 19000
#dr_sinodb1210 drsoctcp c79 dr_sinodb1210
#lo_sinodb1210 onsoctcp 127.0.0.1 lo_sinodb1210
1、查看当前实例的基本运行信息
使用 onstat - 来查看当前实例的基本运行信息:
onstat -
输出如下图:
其中:
1所在的部分指的是当前实例的版本号;
2所在的部分指的是运行状态,图中的 On-Line 指的联机状态;
3所在的部分指的是当前实例已经启动了多长时间;
4所在的部分指的是操作系统为当前实例分配的共享内存的大小。
2、查看当前实例的实例名和端口号
可以在同一台机器上部署 SinoDB 的多个实例,这种情况通常称为“单机多实例”部署,这种情况下,在查看实例信息或对实例进行维护或操作前,需要确定当前操作的是哪个实例,可以使用 onstat 命令或 env 命令来查看当前实例的实例名:
onstat -c | grep SERVERNAME
onstat -g cfg | grep SERVERNAME
env | grep SINODBMSSERVER
本文示例的输出如下图:
从上图可以看到,当前实例名为 ol_sinodb1210。
上面三个命令中,onstat -g cfg 需要在 SinoDB 实例已经启动的情况下才可以正确运行,其它两个命令则不依赖于 SinoDB 实例是否已经启动。
查看当前实例端口号的方法可以参考 SinoDB 之 How-to(1)- 查看典型安装实例的端口号 ,推荐的方法是使用 onstat -g ntt 命令。
3、查看当前实例所包含的DbSpace和数据文件(Chunk)
在实例启动的状态下,可以使用 onstat -d 查看当前实例所包含的DbSpace和数据文件(Chunk):
onstat -d
本文示例的输出如下:
其中,红框部分是当前实例的所有DbSpace信息,蓝框部分是当前实例中的所有数据文件(Chunk)。
DbSpace信息中各部分的含义如下:
- address:DbSpace在共享内存中的地址。
- number:DbSpace的唯一ID,通常是使用 onspaces 命令创建 DbSpace 时生成的。
- flags(前一个):DbSpace的状态标识(暂时可不关注,后续详细解释)。
- fchunk:First Chunk,当前DbSpace的第一个Chunk的ID。
- nchunks:Number of Chunks,当前DbSpace所包含的Chunk的数量,一个DbSpace中可以包含1个或多个Chunk,本文示例的ID为 3 的 DbSpace 就包含了 2 个 Chunk。
- pgsize:Page Size,当前DbSpace的页大小,单位为字节,DbSpace 中包含的所有Chunk使用相同的页大小。SinoDB中的
- flags(后一个):DbSpace属性和状态属性(暂时可不关注,后续详细解释)。
- owner:DbSpace的所有者。
- name:DbSpace的名称。
数据文件(Chunk)信息中各部分的含义如下:
- address:Chunk在共享内存中的地址。
- chunk/dbs:Chunk的唯一ID和该Chunk所从属的DbSpace的ID。多个不同的Chunk可以从属于同一个DbSpace,比如本文示例的ID为 3 和 13 的两个Chunk都从属于ID为 3 的DbSpace。
- offset:Chunk的偏移量。
- size:Chunk的大小,其数值为该Chunk中包含的页的个数。
- free:Chunk中未被分配使用的页的个数。
- flags:Chunk的属性(暂时可不关注,后续详细解释)。
- pathname:Chunk对应的文件的物理路径。
对于SinoDB,不同的 Chunk 可以物理地存放在不同的存储介质中,以合理地使用存储。比如:物理日志和逻辑日志的 DbSpace 包含的 Chunk 可以存放在 FlashSSD 卡上,而普通数据的 DbSpace 的 Chunk 可以存放在普通 SSD 或机械硬盘上。
BTW:准确地说,SinoDB中的Chunk并不等同于数据文件,通常所说的数据文件对应的是由操作系统文件子系统管理的存储数据的文件,Linux下称为“熟文件”(Cookied File),而SinoDB中的Chunk除包含熟文件外,还可以是“裸设备”(Raw Device)。
4、查看物理日志和逻辑日志信息
物理日志(Physical Log)和逻辑日志(Logical Log)是 SinoDB 的两类核心文件,SinoDB 使用这两类日志来提高事务操作的性能和保证数据的一致性。
在实例启动的状态下,可以使用 onstat -l 查看当前实例的物理日志和逻辑日志的信息:
onstat -l
本文示例的输出如下:
其中,大红框部分是当前实例的物理日志信息,大蓝框部分是当前实例中的逻辑日志信息。
- 小红框中的 2:53 表示物理日志位于 ID 为 2 的 Chunk 中,从该 Chunk 的第 53 页开始记录物理日志。
- 小蓝框中表示的是逻辑日志文件的物理分布,也是以 X:Y 形式表示,其中 X 部分代表的是 Chunk 的 ID,Y 部分代表的是逻辑日志文件从 Chunk 中的第几页开始。可以看到,逻辑日志可以存放在不同的Chunk中,本文示例的就是存放在ID分别为3和13的两个Chunk中,而这两个Chunk都从属于ID为3的DbSpace(名称为 llog)。
根据 onstat -l 的输出,结合 onstat -d 的输出,可以判断出当前实例中物理日志和逻辑日志对应的DbSpace分别是哪个。