查询、实用程序和过程会返回数据库中关于 tablespace、dbspace 和 dbfile 的信息。
SYSDBFILE 系统视图会显示数据库中的所有 dbfile(包括目录、消息文件以及主 dbspace 和临时 dbspace 中的 dbfile)。要返回 dbfile 和 dbspace 统计信息,可查询 SYSDBFILE 系统视图:
SELECT dbf.dbfile_name, f.*
FROM SYSFILE f, SYSDBFILE dbf
WHERE f.file_id=dbf.dbfile_id
结果如下:
dbfile_name file_id file_name dbspace_name store_type lob_map dbspace_id
------------------- ------- ----------------------------------- -------------- ---------- -------- ----------
system 0 /dev/rdsk/IQ/demo/iqdemo.db system 1 (NULL) 0
temporary 15 /temp/sqla0000.tmp temporary 1 (NULL) 15
IQ_SYSTEM_LOG 32702 pitrLog/PITR IQ_SYSTEM_LOG 2 32702 0
IQ_SYSTEM_MAIN 16384 iqdemo.iq IQ_SYSTEM_MAIN 2 (NULL) 16384
IQ_SYSTEM_TEMP 16385 iqdemo.iqtmp IQ_SYSTEM_TEMP 2 (NULL) 16385
IQ_SYSTEM_MSG 16386 iqdemo.iqmsg IQ_SYSTEM_MSG 2 (NULL) 16386
iq_main 16387 iqdemo_main.iq iq_main 2 (NULL) 16387
在恢复过程中,SYSTEM dbspace 的 SYSFILE 系统表中的 file_name 列不会更新。对于 SYSTEM dbspace,创建数据库时, file_name 列始终显示其名称。SYSTEM dbspace 的文件名是数据库文件的名称。
请参见《SAP IQ SQL 参考》中的“SYSDBFILE 系统视图”。
db_backupheader 实用程序读取第一个备份档案,返回备份统计数据和定义。
语法:
db_backupheader [ path ] backup_filedb_backupheader 是一个命令行实用程序。
输出包括备份统计数据、数据库定义、dbspace 和 dbfile 具体信息。
返回与每个 dbspace 有关的详细信息。
语法:
sp_iqdbspace [ dbspace-name ]结果如下:
DBSpaceName DBSpaceType Writable Online Usage TotalSize Reserve NumFiles NumRWFiles Stripingon StripeSize BlkTypes OkToDrop IsName
---------------- ------------ -------- ------ ----- --------- ------- -------- ----------- ---------- ---------- ----------------- -------- ------
iq_main MAIN T T 26 100M 200M 1 1 T 1K 1H,3254A N (NULL)
IQ_SYSTEM_LOG PITR T T 0 0B 0B 1 1 F 0B 1H N (NULL)
IQ_SYSTEM_MAIN MAIN T T 22 100M 200M 1 1 T 1K 1H,2528F,32D,128M N (NULL)
IQ_SYSTEM_TEMP TEMPORARY T T 3 25M 200M 1 1 T 1K 1H,64F,16A N (NULL)
请参见《 SAP IQ SQL 参考 》中的“ sp_iqdbspace 过程 ”以查看列定义。
返回与 dbspace 中的 dbfile 有关的详细信息。
语法:
sp_iqfile [ dbspace-name ]结果如下:
DBSpaceName DBFileName Path SegmentType RWMode Online Usage DBFileSize Reserve StripeSize BlkTypes FirstBlk LastBlk OkToDrop servername morrorLogicalFileName
--------------- ---------------- -------------- ---------- ------ ------ ----- ---------- ------- ---------- ------------------ --------- -------- --------- ---------- ---------------------
IQ_SYSTEM_MAIN IQ_SYSTEM_MAIN iqdemo.iq MAIN RW T 22 100M 200M 1K 1H,2528F,32D,128M 1 12800 N (NULL) (NULL)
iq_main iq_main iqdemo_main.iq MAIN RW T 26 100M 200M 1K 1H,3254A 1045440 1058239 N (NULL) (NULL)
IQ_SYSTEM_LOG IQ_SYSTEM_LOG pitrLog/PITR PITR RW T 0 0B 0B 0B 1H 1 1 N (NULL) (NULL)
IQ_SYSTEM_TEMP IQ_SYSTEM_TEMP iqdemo.iqtmp TEMPORARY RW T 3 25M 200M 1K 1H,64F,16A 1 3200 N (NULL) (NULL)
请参见《 SAP IQ SQL 参考 》中的“ sp_iqfile 过程 ”。
要移动数据库或 dbspace,需要了解备份时该数据库中的每个 dbspace 的名称。此外,也可以在 Interactive SQL 中运行以下脚本。如果不实际更改任何文件的位置,此脚本将生成一个输出文件,其中包含您可用的 RENAME 子句的集合。您可以替换任何新的文件位置,并使用 RESTORE DATABASE 语句中产生的文件。
-- Get dbspace and IQ file names and add
-- rename syntax including quotation marks
select 'rename' as 'restore ... rename' ,
dbf.dbfile_name as 'IQ file' , 'to' as 'to' ,
'''' + f.file_name + '''' as 'file_path'
from SYSFILE f, SYSDBFILE dbf
where f.store_type=2 and f.file_id=dbf.dbfile_id
-- Send output to a file in proper format
-- without delimiters or extra quotation marks
output to restore.tst delimited by '' quote '';
-- This produces a restore.tst file like the following:
-- rename IQ_SYSTEM_MAIN to '/dev/rdsk/c2t0d1s7'
-- rename IQ_SYSTEM_TEMP to '/dev/rdsk/c2t1d1s7'
-- rename IQ_SYSTEM_MSG to 'all_types.iqmsg'
注意由于数据库在您需要恢复时可能不存在,因此您可能需要在备份数据库之后运行此脚本。