Informix "no such DBspace" 插入记录时出错
Informix "no such DBspace" error when inserting a record
尝试使用 .NET Entity Framework 6.1.3
运行 对 Informix 数据库 ("DB2 v10.5.700.375 Fix Pack 7") 进行插入时出现错误
ERROR [IX000] [IBM][IDS/NT64] Invalid default sbspace name (sbspace). (-130 ISAM error: no such DBspace)
本页http://www-01.ibm.com/support/docview.wss?uid=swg21424434建议检查 onstat 命令。
"onstat -d"命令的输出是:
C:\Program Files\Informix>onstat -d
IBM Informix Dynamic Server Version 12.10.FC9DE -- On-Line -- Up 1 days 22:26:52 -- 185088 Kbytes
Dbspaces
address number flags fchunk nchunks pgsize flags owner name
0000000080CD5030 1 0x30001 1 1 4096 N BA informix rootdbs
1 active, 2047 maximum
Chunks
address chunk/dbs offset size free bpages flags pathname
0000000080CD5280 1 1 0 216064 91351 PO-B-D C:\PROGRA~1\Informix\storage\rootdbs.000
1 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
onstat -d
的输出显示您有一个名为 rootdbs
的常规 dbspace;它根本不显示任何 sbspace,更不用说一个名为 sbspace
的了。 sbspace(智能 blob space)用于存储智能 blob。您的系统配置为 expect/use 一个名为 sbspace
的 sbspace。无论您要插入什么,都需要存储在 sbspace 中。它可能是一个 BLOB 或 CLOB 值,或者它可能是另一种使用智能 blob 作为存储机制的类型。
您需要创建一个文件(或选择一个磁盘设备)用于 sbspace,然后添加它。
您似乎在 Windows。可能还有其他方法可以执行我将要执行的 Unix-like 方法。作为用户 informix
,执行:
cd C:\PROGRA~1\Informix\storage
cp nul: sbspace.000
onspaces -c -S sbspace -p C:\PROGRA~1\Informix\storage\sbspace.000 -o 0 -s 10240
-c
表示'create'; -S sbspace
的意思是“创建一个名为 sbspace
的 sbspace; -p
指定文件的完整路径; -o 0
指定偏移量应为 0; -s 10240
将大小设置为 10 MiB。
一定要把尺码调大一点;大多少取决于您要在智能 blob space 中存储多少数据,而这又取决于您插入的内容以及要插入的数据量以及每个数据量的大小。
0 的偏移量是 'bad old days' 的后遗症,当时磁盘驱动器还没有 2 GiB 那么大(它们在过去 30 年里一直在增长!)。假设偏移量将始终为零(但系统要求您指定零,而不是将其默认为零)除非您使用的是原始磁盘(您没有使用显示的命令)。 -p
、-o
、-s
的参数序列也很重要。
你应该在添加sbspace后对系统进行归档。
如果您以后需要更多 space,您可以向现有 sbspace 添加更多区块。
您可以通过 运行 onspaces
找到更多选项,因为 informix
没有其他选项;它显示了您还可以指定的内容。
您可以在 IBM 知识中心找到 onspaces
的手册页:
尝试使用 .NET Entity Framework 6.1.3
运行 对 Informix 数据库 ("DB2 v10.5.700.375 Fix Pack 7") 进行插入时出现错误ERROR [IX000] [IBM][IDS/NT64] Invalid default sbspace name (sbspace). (-130 ISAM error: no such DBspace)
本页http://www-01.ibm.com/support/docview.wss?uid=swg21424434建议检查 onstat 命令。
"onstat -d"命令的输出是:
C:\Program Files\Informix>onstat -d IBM Informix Dynamic Server Version 12.10.FC9DE -- On-Line -- Up 1 days 22:26:52 -- 185088 Kbytes Dbspaces address number flags fchunk nchunks pgsize flags owner name 0000000080CD5030 1 0x30001 1 1 4096 N BA informix rootdbs 1 active, 2047 maximum Chunks address chunk/dbs offset size free bpages flags pathname 0000000080CD5280 1 1 0 216064 91351 PO-B-D C:\PROGRA~1\Informix\storage\rootdbs.000 1 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
onstat -d
的输出显示您有一个名为 rootdbs
的常规 dbspace;它根本不显示任何 sbspace,更不用说一个名为 sbspace
的了。 sbspace(智能 blob space)用于存储智能 blob。您的系统配置为 expect/use 一个名为 sbspace
的 sbspace。无论您要插入什么,都需要存储在 sbspace 中。它可能是一个 BLOB 或 CLOB 值,或者它可能是另一种使用智能 blob 作为存储机制的类型。
您需要创建一个文件(或选择一个磁盘设备)用于 sbspace,然后添加它。
您似乎在 Windows。可能还有其他方法可以执行我将要执行的 Unix-like 方法。作为用户 informix
,执行:
cd C:\PROGRA~1\Informix\storage
cp nul: sbspace.000
onspaces -c -S sbspace -p C:\PROGRA~1\Informix\storage\sbspace.000 -o 0 -s 10240
-c
表示'create'; -S sbspace
的意思是“创建一个名为 sbspace
的 sbspace; -p
指定文件的完整路径; -o 0
指定偏移量应为 0; -s 10240
将大小设置为 10 MiB。
一定要把尺码调大一点;大多少取决于您要在智能 blob space 中存储多少数据,而这又取决于您插入的内容以及要插入的数据量以及每个数据量的大小。
0 的偏移量是 'bad old days' 的后遗症,当时磁盘驱动器还没有 2 GiB 那么大(它们在过去 30 年里一直在增长!)。假设偏移量将始终为零(但系统要求您指定零,而不是将其默认为零)除非您使用的是原始磁盘(您没有使用显示的命令)。 -p
、-o
、-s
的参数序列也很重要。
你应该在添加sbspace后对系统进行归档。
如果您以后需要更多 space,您可以向现有 sbspace 添加更多区块。
您可以通过 运行 onspaces
找到更多选项,因为 informix
没有其他选项;它显示了您还可以指定的内容。
您可以在 IBM 知识中心找到 onspaces
的手册页: