您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

查询、实用程序和过程

查询、实用程序和过程会返回数据库中关于 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 实用程序读取第一个备份档案,返回备份统计数据和定义。

语法:

db_backupheader [ path ] backup_file

db_backupheader 是一个命令行实用程序。

输出包括备份统计数据、数据库定义、dbspace 和 dbfile 具体信息。

sp_iqdbspace 过程

返回与每个 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 过程 ”以查看列定义。

sp_iqfile 过程

返回与 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,需要了解备份时该数据库中的每个 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'

注意由于数据库在您需要恢复时可能不存在,因此您可能需要在备份数据库之后运行此脚本。