此示例显示可如何最低程度地配置和测试自动添加更多空间。可通过创建数据库空间、填充空间、向 GBase 8s 存储池添加条目和将表装入空间来执行此操作。空间填满之后,GBase 8s 将自动扩展该空间。
要最低程度地配置和测试自动添加更多空间,请执行以下操作:
例如,创建名为 expandable_dbs 的数据库空间,并将名为 /my_directory/my_chunk 的熟文件的前 10000 KB 分配给初始块,如下所示:
onspaces -c -d expandable_dbs -p /my_directory/my_chunk -o 0 -s 10000
例如,在不装入数据行的情况下填充数据库空间。实际操作是创建表,然后为第一个扩展数据块分配一大组邻接的可用页,如下所示:
CREATE TABLE large_tab (col1 int) IN expandable_dbs EXTENT SIZE 10000000;
可通过使用 onstat -d 命令或 OpenAdmin Tool (OAT) 来监视块中的可用页。如果数据库空间已满,那么在尝试创建数据并将其装入到另一个新表时,将收到空间不足的错误。
例如,将 $GBASEDBTDIR/tmp 目录添加到存储池,如下所示:
DATABASE sysadmin; EXECUTE FUNCTION task("storagepool add", "$GBASEDBTDIR/tmp", "0", "0", "10000", "2");
现在,如果存储空间变满,不会再收到空间不足的错误,而是由 GBase 8s 自动在 $GBASEDBTDIR/tmp 文件中创建熟文件,并使用这个新的熟文件向 expandable_dbs 数据库添加块。继续填充此块时,服务器将自动对其进行扩展。向数据库空间添加新块之前,如果可能,服务器将始终扩展块。
在数据库空间、临时数据库空间、智能大对象空间、临时智能大对象空间或 Blob 空间中分配足够的页面,以减少可用空间,使其低于 SP_THRESHOLD 指示的阈值。但是,请勿填满该空间。
下次运行 mon_low_storage 任务时,您会发现该空间将自动扩展。
在数据库空间、临时数据库空间、智能大对象空间、临时智能大对象空间或 Blob 空间中分配所有页。然后尝试分配更多页。必须确保此分配成功,并且确保不会收到空间不足的错误。
GBase 8s 每次扩展或添加块以及将新块标记为可扩展时,都会向日志中写入消息。
运行 onstat -d 命令可显示实例中的所有块。查找可扩展块,这种块带有 E 标志。该命令输出会显示服务器自动扩充了空间,方法是添加了新块或扩展了现有块的大小。