对自动添加更多空间的最低程度配置和测试的示例

此示例显示可如何最低程度地配置和测试自动添加更多空间。可通过创建数据库空间、填充空间、向 GBase 8s 存储池添加条目和将表装入空间来执行此操作。空间填满之后,GBase 8s 将自动扩展该空间。

要最低程度地配置和测试自动添加更多空间,请执行以下操作:

  1. 创建数据库空间。

    例如,创建名为 expandable_dbs 的数据库空间,并将名为 /my_directory/my_chunk 的熟文件的前 10000 KB 分配给初始块,如下所示:

    onspaces -c -d expandable_dbs -p /my_directory/my_chunk -o 0 -s 10000
  2. 填充数据库空间。

    例如,在不装入数据行的情况下填充数据库空间。实际操作是创建表,然后为第一个扩展数据块分配一大组邻接的可用页,如下所示:

    CREATE TABLE large_tab (col1 int) IN expandable_dbs EXTENT SIZE 10000000;

    可通过使用 onstat -d 命令或 OpenAdmin Tool (OAT) 来监视块中的可用页。如果数据库空间已满,那么在尝试创建数据并将其装入到另一个新表时,将收到空间不足的错误。

  3. GBase 8s 存储池添加条目。

    例如,将 $GBASEDBTDIR/tmp 目录添加到存储池,如下所示:

    DATABASE sysadmin;
    EXECUTE FUNCTION task("storagepool add", "$GBASEDBTDIR/tmp",
     "0", "0", "10000", "2");
  4. 在 SP_THRESHOLD 配置参数中,设置 GBase 8s 自动运行任务以扩充空间之前,存储空间中可包含的最小可用 KB 量的阈值。
  5. 创建新表并将其装入数据库。

    现在,如果存储空间变满,不会再收到空间不足的错误,而是由 GBase 8s 自动在 $GBASEDBTDIR/tmp 文件中创建熟文件,并使用这个新的熟文件向 expandable_dbs 数据库添加块。继续填充此块时,服务器将自动对其进行扩展。向数据库空间添加新块之前,如果可能,服务器将始终扩展块。

  6. 减小存储空间中的可用空间,以测试 SP_THRESHOLD 配置参数中的值。

    在数据库空间、临时数据库空间、智能大对象空间、临时智能大对象空间或 Blob 空间中分配足够的页面,以减少可用空间,使其低于 SP_THRESHOLD 指示的阈值。但是,请勿填满该空间。

    下次运行 mon_low_storage 任务时,您会发现该空间将自动扩展。

  7. 创建空间不足的条件。

    在数据库空间、临时数据库空间、智能大对象空间、临时智能大对象空间或 Blob 空间中分配所有页。然后尝试分配更多页。必须确保此分配成功,并且确保不会收到空间不足的错误。

    GBase 8s 每次扩展或添加块以及将新块标记为可扩展时,都会向日志中写入消息。

    运行 onstat -d 命令可显示实例中的所有块。查找可扩展块,这种块带有 E 标志。该命令输出会显示服务器自动扩充了空间,方法是添加了新块或扩展了现有块的大小。