自動延伸和尺寸的詳細信息可以在DBA_DATA_FILES
表中找到。如果表空間不是BIGFILE
表,則表空間可以具有多個具有不同大小和屬性的文件。
的一個簡單的創建腳本(在11g中)不採取最特殊的功能考慮在內(所以請檢查你的表空間的詳細信息,如壓縮和加密,並將它們添加相應的腳本。看到完整的CREATE TABLESPACE
參考here)的一個例子 - 並且一如既往地徹底地測試。不包括UNDO
和TEMP
表空間:
SELECT 'CREATE '
|| DECODE (ts.bigfile, 'YES', 'BIGFILE ') --assuming smallfile is the default table space
|| 'TABLESPACE "'
|| ts.tablespace_name
|| '" DATAFILE' --assuming OMF (Oracle-Managed File names) is used
|| CHR (13)
|| CHR (10)
|| LISTAGG (
' SIZE '
|| df.bytes
|| DECODE (
df.autoextensible,
'YES', CHR (13)
|| CHR (10)
|| ' AUTOEXTEND ON NEXT '
|| df.increment_by * ts.block_size
|| ' MAXSIZE '
|| CASE
WHEN maxbytes < POWER (1024, 3) * 2
THEN
TO_CHAR (maxbytes)
ELSE
TO_CHAR (
FLOOR (maxbytes/POWER (1024, 2)))
|| 'M'
END),
',' || CHR (13) || CHR (10))
WITHIN GROUP (ORDER BY df.file_id)
|| CHR (13)
|| CHR (10)
|| ' '
|| ts.logging
|| ' '
|| ts.status
|| ' BLOCKSIZE '
|| ts.block_size
ddl
FROM dba_tablespaces ts
INNER JOIN
dba_data_files df
ON ts.tablespace_name = df.tablespace_name
WHERE ts.contents = 'PERMANENT' --excludes UNDO and TEMP
GROUP BY ts.tablespace_name,
ts.bigfile,
ts.logging,
ts.status,
ts.block_size
ORDER BY ts.tablespace_name;
如果你在一個表空間中多個數據文件中考慮將其更改爲一個BIGFILE
表空間。