Teradata 数据库无法增加永久空间中的数据库大小

noo*_*ber 0 teradata

任何有teradata数据库经验的人?我是这个数据库的新手,我的任务是增加数据库的大小。我正在使用 Teradata Administrator 来执行此操作。我正在使用Tools > Modify Database然后增加 Perm 空间的大小。

尝试修改数据库以增加大小时,我收到以下错误消息:

3541: The request to assign new PERMANENT space is invalid
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的理解是关键是在 DBC 中有足够的空间。我使用的数据库是父 (DBC) 的子数据库。

我可以从运行查询中看到,由于 DBC 足够大,我应该有足够的大小来增加我的数据库。

例子:

select sum(currentperm) c1, sum (maxperm) c2, c2-c1 from dbc.diskspace;
Run Code Online (Sandbox Code Playgroud)

结果:

currentperm         maxperm                 c2-c1
293,696,239,616.00  2,382,684,039,413.76    2,088,987,799,797.76
273.525938          2219.047434             1945.521496
Run Code Online (Sandbox Code Playgroud)

这告诉我 DBC 中有 1.9TB 可用空间。我读对了吗?我有足够的空间。那么为什么我不能增加我的数据库呢?

dno*_*eth 6

您的查询和结果不匹配,但您可能是对的。

这将返回实际可用空间(针对 TB 或 1024**3 对其进行相应修改):

SELECT DatabaseName, 
   CAST(SUM(    MaxPerm                  / 1000**3) AS DEC(9,2)) AS MaxPermGB, 
   CAST(SUM(CurrentPerm                  / 1000**3) AS DEC(9,2)) AS CurrentPermGB, 
   CAST(MAX(CurrentPerm) * (HASHAMP()+1) / 1000**3  AS DEC(9,2)) AS SkewedPermGB, -- due to skewed tables
   MaxPermGB - SkewedPermGB AS AvailablePermGB -- this space can be assigned to other databases
FROM dbc.DiskSpaceV
WHERE MaxPerm > 0
GROUP BY 1
ORDER BY AvailablePermGB DESC
Run Code Online (Sandbox Code Playgroud)

MODIFY DATABASE只有在父/直接所有者中有足够的烫发时才会起作用。如果这个数据库是不是在层次结构的第二层dbc没有直接的所有者,然后将它变得更复杂。现在您最好使用Tools -> Move Space,但如果您没有适当的访问权限,这可能会失败。