通过本文的学习,您将能够︰
-
创建和删除 dbspaces、blobspaces 和 sbspaces
-
改变镜像 dbspace 的状态
-
监控 dbspaces、blobspaces 和 sbspaces
1. 监控磁盘空间:onstat -d
[sinodbms@feig-wzq-db ~]$ onstat -d
Sinoregal SinoDB Dynamic Server Version 16.8.FC8U0X3 -- On-Line -- Up 62 days 21:36:35 -- 1355616 Kbytes
Dbspaces
address number flags fchunk nchunks pgsize flags owner name
46269028 1 0x30001 1 1 2048 N BA sinodbms rootdbs
463a8770 2 0x30001 2 1 2048 N BA sinodbms plogdbs
463a89b0 3 0x20001 3 1 2048 N BA sinodbms llogdbs
463a8bf0 4 0x2001 4 1 16384 N TBA sinodbms tempdbs1
47369028 5 0x2001 5 1 16384 N TBA sinodbms tempdbs2
47369268 6 0x2001 6 1 16384 N TBA sinodbms tempdbs3
473694a8 7 0x2001 7 1 16384 N TBA sinodbms tempdbs4
473696e8 8 0x28001 8 1 2048 N SBA sinodbms sbdbs1
47369928 9 0x20001 9 1 4096 N BA sinodbms datadbs1
47c98528 10 0x20001 10 1 2048 N BA sinodbms datadbs2
10 active, 2047 maximum
Chunks
address chunk/dbs offset size free bpages flags pathname
46269268 1 1 0 1024000 1006385 PO-B-D /home/sinodbms/dbs/rootdbs
4736a028 2 2 0 1024000 2 PO-B-D /home/sinodbms/dbs/plogdbs
4736b028 3 3 0 1024000 47 PO-B-D /home/sinodbms/dbs/llogdbs
4736c028 4 4 0 32000 31947 PO-B-- /home/sinodbms/dbs/tempdbs1
4736d028 5 5 0 32000 31947 PO-B-- /home/sinodbms/dbs/tempdbs2
4736e028 6 6 0 32000 31947 PO-B-- /home/sinodbms/dbs/tempdbs3
4736f028 7 7 0 32000 31947 PO-B-- /home/sinodbms/dbs/tempdbs4
47370028 8 8 0 512000 477465 477465 POSB-D /home/sinodbms/dbs/sbdbs1
Metadata 34482 25659 34482
47371028 9 9 0 512000 507015 PO-B-D /home/sinodbms/dbs/datadbs1-1
47371d50 9 9 0 512000 0 MO-B-D /home/sinodbms/dbs/mdatadbs1-1
47dc9028 10 10 0 512000 510075 PO-B-D /home/sinodbms/dbs/datadbs2-1
10 active, 32766 maximum
NOTE: The values in the "size" and "free" columns for DBspace chunks are
displayed in terms of "pgsize" of the DBspace to which they belong.
Expanded chunk capacity mode: always
[sinodbms@feig-wzq-db ~]$
onstat -d 命令显示 dbspace 和块的摘要信息。
onstat -d 报告的第一部分显示 dbspace、blobspace 和 sbspace。它包括一个flags列,用于显示空间的状态、空间类型以及它是否为临时空间。
报告的第二部分显示区块的摘要。块报告显示块所属的 dbspace、dbspace 的大小和可用空间量,以及用于该块的熟文件或设备的完整路径名。flags 列指示它是主数据块还是镜像数据块,以及该数据块是脱机还是联机。关于 sbspace 块,还显示一些其他元数据。
2. 用 onspaces 创建Dbspace
- 创建一个名为dbspace1 的、大小为1百万KB的镜像dbspace,主chunk的偏移量为200,000KB,镜像chunk偏移量为450,000KB:
onspaces -c -d dbspace1 -p /dev/rdsk/device1 -o 200000 -s 1000000 -m /dev/rdsk/device2 450000
- 创建名为tempdbs1的500,000KB的临时dbspace偏移量为100,000KB:
onspaces -c -t -d tempdbs -p /dev/rdsk/device9 -o 100000 -s 500000
在服务器中使用系统命令行的onspaces 实用程序可以创建dbspace, blobspace, sbspace 或临时 dbspace。使用onspaces 实用程序创建 dbspace 或 blobspace 的命令行参数为:
参数 | 说明 |
---|---|
-c | 创建一个 blobspace 或 dbspace |
-d spacename | 要创建的 dbspace 的名字 |
-k pagesize | 新 dbspace 的非缺省页面大小(必须位于 2K 和 16K 之间,必须为缺省页面大小的倍数) |
-m pathname offset | 镜像路径名和偏移量 |
-o offset | 初始chunk的设备偏移量,以KB为单位 |
-p pathname | 初始chunk的磁盘分区或设备名 |
-s size | 初始chunk的大小,以KB为单位 |
-t | 标记创建的 dbspace 是临时 dbspace |
以上是创建镜像和临时 dbspace 的示例。
3. 用 onspaces 创建Blobspace
要创建名为blobsp1、大小为1百万KB且blobpage为100KB的镜像blobspace,其中主chunk和镜像chunk的偏移量均为200,000KB。(系统页大小为2K):
onspaces -c -b blobsp1 -g 50 -p /dev/rdsk/device8 -o 200000 -s 1000000 -m /dev/rdsk/device9 200000
使用 onspaces 实用程序创建 blobspace 的命令行参数为:
参数 | 说明 |
---|---|
-c | 创建一个 blobspace 或 dbspace |
-b spacename | 创建的 blobspace 的名字 |
-g blobpagesize | Blobpage 大小的磁盘页数目 |
-m pathname offset | 镜像路径名和偏移量 |
-o offset | 初始chunk的偏移量,以KB为单位 |
-p pathname | 初始chunk的设备或文件名 |
-s size | 初始chunk的大小,以KB为单位 |
上述示例展示了创建 blobspace 的命令。
-g 显示的 blobpage 大小决定了每次读写操作的页数。如果存储在 blobspace 中的大多数对象的大小都相同,就把该大小作为 blobspace 的大小(舍入到最接近的整页大小)。这样就减少了访问简单大对象所需的读写次数。
如果大多数简单 blob 的大小并不相同,请输入一个blobpage 大小使得 blobs 能够占用的 blobpages 数达到最小数目。blobpages 的数目越小,访问 blob 所需的锁的数目越小。
示例:
如果存储在 blobspace 的 blobs 是8KB,则将 blobpage 的大小设置为8KB。在一个 页大小为2K的系统,输入为4的值 (8K / 2K 页大小)。在一个页大小为 4K的系统,则输入为2的值 (8K /4K)。
如果blobs的80%是12-16KB,15%小于12KB,5%大于16KB,如果需要考虑磁盘空间量的话,您可以将blobpage大小设置为8KB。如果您的主要考虑是速度,空间不是首要考虑的话,请将 blobpage 的大小设置为16KB。如果存储在数据库的 blobs 大小不同,您应该创建几个 blobspaces,每一个 blobpage 的大小与不同大小的 blobs 适应。
在 blobs 写入新的 blobspace 之前,数据库服务器必须使用onmode -l 命令强制切换到下一个逻辑日志文件。
4. 用 onspaces 创建Sbspaces
要创建名为sbspace1、大小为1百万KB、主chunk和镜像chunk偏移量均为200,000KB的镜像sbspace,且元数据大小为7500KB,偏移量为10,000KB,以及平均智能blobsize为32KB:
onspaces -c -S sbspace1 -p /dev/rdsk/device5 -o 200000 -s 1000000 -m /dev/rdsk/device6 200000
-Ms 7500 -Mo 10000 -Df "AVG_LO_SIZE=32"
使用 onspaces 实用程序创建 sbspace 的命令行参数为:
参数 | 说明 |
---|---|
-c | 创建一个 sbspace |
-S spacename | 创建的 sbspace 的名字 |
-m pathname offset | 镜像路径名和偏移量 |
-o offset | 初始chunk的偏移量,以KB为单位 |
-t | 创建的 sbspace 是临时 sbspace (IDS 9.3 及更高) |
-p pathname | 初始chunk的设备或文件名 |
-s size | 初始chunk的大小,以KB为单位 |
-Ms metasize | sbspace 元数据区域的大小,以KB为单位 |
-Mo metaoffset | sbspace 元数据区域的偏移量,以KB为单位 |
-Df options | 指定存储在 sbspace 的智能大对象的多种缺省存储特性和其他属性 |
上述示例展示了创建 sbspace 的命令。
5. 用 onspaces 删除空间
-
在删除 dbspace 之前,必须先删除在 dbspace 中创建的所有数据库和表。
-
在删除 blobspace 前,必须删除含有指向 blobspace 的 TEXT 或 BYTE 列的所有表。
-
示例
— 删除 dbspace dbspace1 :
onspaces -d dbspace1
— 使用 -f 选项删除包含数据的 sbspace:
onspaces -d sbspace1 -f
可以使用onspaces 实用程序从系统命令行删除 dbspace,temporary dbspace,blobspace,或 sbspace。要删除 dbspace, blobspace, 或 sbspace,空间必须是没有被使用中的。因此必须先删除 dbspace 中的所有表或包含了存储在 blobspace 或 sbspace 中的 blobs 的数据行,否则会返回错误消息。
6.为 Dbspace 或 Blobspace 添加 chunk
为一个名为dbspace2、主chunk偏移量为100,000KB、镜像chunk偏移量为150,000KB的dbspace增加一个500,000KB的镜像chunk:
onspaces -a dbspace2 -p /dev/rdsk/device4 -o 100000 -s 500000 -m /dev/rdsk/device5 150000
使用onspaces 实用程序为 dbspace 或 blobspace 添加chunk。使用onspaces 实用程序为 dbspace 或 blobspace 添加chunk的命令行参数为:
参数 | 说明 |
---|---|
-a spacename | 为指定的 dbspace 或 blobspace 添加chunk |
-m pathname offset | 镜像路径名和偏移量 |
-o offset | chunk偏移量,以KB为单位 |
-p pathname | chunk设备或文件名 |
-s size | chunk偏移量,以KB为单位 |
以上是为 dbspace 添加chunk的命令示例。
7. 添加chunk到Sbspace
添加一个大小为 100,000KB 的镜像chunk到名为sbspace1 的 sbspace,主chunk和镜像chunk偏移量均为 20,000KB、元数据大小为750KB、偏移量为1000KB:
onspaces -a sbspace1 -p /dev/rdsk/chunk7 -o 20000 -s 100000
-m /dev/rdsk/chunk6 20000 -Ms 750 -Mo 1000
若是chunk只允许为用户数据所使用,指定 -U 选项(删除 -Ms 或 -Mo 选项)
添加chunk到带有 onspaces 实用程序的 sbspace 命令为:
参数 | 说明 |
---|---|
-a 空间名 | 添加chunk到指定 sbspace |
-m 路径名偏移 | 镜像路径名和偏移 |
-o 偏移 | 新chunk的偏移量,以KB为单位 |
-p 路径名 | 新chunk的设备或文件名 |
-s 大小 | 以 KB 为单位的新chunk大小 |
-Ms 元大小 | 新chunk中Sbspace 元数据区域的大小,以 KB 为单位 |
-Mo 元偏移 | 新chunk中元数据区偏移量,以 KB 为单位 |
-U | 表示新chunk只包含用户数据 |
8. 用 onspaces删除chunk
可以使用onspaces 删除任何 dbspace、sbspace 或 blobspace 的非初始chunk。例如,从偏移 50,000 KB 的dbspace2 删除chunk:
onspaces -d dbspace2 -p /dev/rdsk/chunk3 -o 50000
注意:不可以以这种方式删除 dbspace、 sbspace 或 blobspace的初始chunk。必须删除储存空间本身。o
onspaces 程序可以被用来删除 dbspace、 sbspace 或 blobspace 中的chunk。用onspaces 程序在储存空间中删除chunk的命令行参数为:
参数 | 说明 |
---|---|
-d 空间名 | 删除指定 dbspace、blobspace 或 sbspace中的chunk |
-o 偏移 | 以 KB 为单位的chunk偏移量 |
-p 路径名 | chunk设备或文件的路径名 |
其他 onspaces 选项
也可以使用onspaces 程序来启动镜像、停止镜像或改变chunk状态。
9. 重命名Dbspaces
-
服务器必须在静默模式
-
不能重命名关键的 dbspace
-
重命名后建议进行 0 级系统备份
-
语法:
onspaces -ren old_dbspacename -new new_dbspacename
SinoDB数据库赋予sinodbms 管理员权利来重命名非关键 dbspace 的任何 dbspace。包含以下任意一种对象的dbspace即为关键 dbspace:
- rootchunk
- 任何逻辑日志
- 物理日志
为了重命名 dbspace,数据库服务器必须在静默模式。