今天就跟大家聊聊有关DM7中怎么利用disql管理备份,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1. 概述
管理备份一个重要的目的是删除不再需要的备份,DM7没有提供自动删除过期备份的功能,删除备份需要手动执行。备份管理相关系统过程与函数总结如下:
SF_BAKSET_BACKUP_DIR_ADD:添加备份目录。
SF_BAKSET_BACKUP_DIR_REMOVE:指定删除内存中的备份目录。
SF_BAKSET_BACKUP_DIR_REMOVE_ALL:删除内存中全部的备份目录。
SF_BAKSET_CHECK:对备份集进行校验。
SF_BAKSET_REMOVE:删除指定设备类型和指定备份集目录的备份集。
SF_BAKSET_REMOVE_BATCH:批量删除满足指定条件的所有备份集。
SP_DB_BAKSET_REMOVE_BATCH:批量删除指定时间之前的数据库备份集。
SP_TS_BAKSET_REMOVE_BATCH:批量删除指定表空间对象及指定时间之前的表空间备份集。
SP_TAB_BAKSET_REMOVE_BATCH:批量删除指定表对象及指定时间之前的表备份集。
SP_ARCH_BAKSET_REMOVE_BATCH:批量删除指定条件的归档备份集。

备份管理相关动态视图总结如下:
V$BACKUPSET:显示备份集基本信息。
V$BACKUPSET_DBINFO:显示备份集的数据库相关信息。
V$BACKUPSET_DBF:显示备份集中数据文件的相关信息。
V$BACKUPSET_ARCH:显示备份集的归档信息。
V$BACKUPSET_BKP:显示备份集的备份片信息。
V$BACKUPSET_SEARCH_DIRS:显示备份集搜索目录。
V$BACKUPSET_TABLE:显示表备份集中备份表信息。
V$BACKUPSET_SUBS:显示并行备份中生成的子备份集信息。

SF_BAKSET_BACKUP_DIR_ADD添加备份目录仅对当前会话有效。调用删除备份等函数或查看动态视图时要先调用SF_BAKSET_BACKUP_DIR_ADD添加备份目录,否则仅搜索默认备份路径下的备份集。

2. 备份目录管理
这里的备份目录是指备份集搜索目录,这些目录被记录在内存中,当执行动态视图(参见3.2.4.4 备份信息查看)或批量删除备份集时,均会从这些指定目录中先搜索所有备份集信息。

本节主要内容包括:

SF_BAKSET_BACKUP_DIR_ADDSF_BAKSET_BACKUP_DIR_REMOVESF_BAKSET_BACKUP_DIR_REMOVE_ALL

SF_BAKSET_BACKUP_DIR_ADD函数
添加备份目录。若添加目录已经存在或者为库默认备份路径,则认为已经存在,不添加,但也不报错。
定义:

INTSF_BAKSET_BACKUP_DIR_ADD(device_typevarchar,backup_dirvarchar(256))

参数说明:
device_type:待添加的备份目录对应存储介质类型,DISK或者TAPE。
backup_dir:待添加的备份目录。
返回值:
1:目录添加成功;其它情况下报错。
举例说明:

SQL>selectsf_bakset_backup_dir_add('disk','arch_backup_lsn_15092082_15092086');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','arch_backup_lsn_15092082_15092086')------------------------------------------------------------------------------11usedtime:26.411(ms).Executeidis1569.

SF_BAKSET_BACKUP_DIR_REMOVE函数
删除备份目录。若删除目录为库默认备份路径,不进行删除,认为删除失败。若指定目录存在于记录的合法目录中,则删除;不存在或者为空则跳过,正常返回。
定义:

INTSF_BAKSET_BACKUP_DIR_REMOVE(device_typevarchar,backup_dirvarchar(256))

参数说明:
device_type:待删除的备份目录对应存储介质类型。待删除的备份目录对应存储介质类型,DISK或者TAPE。
backup_dir:待删除的备份目录。
返回值:
1:目录删除成功;其他情况报错。
举例说明:

SQL>select*fromv$backupset_search_dirs;LINEIDDIR---------------------------------------------1arch_backup_lsn_15092082_150920862/dm_home/dmdba/dmdbms/data/jydm/bakusedtime:36.620(ms).Executeidis1573.SQL>selectsf_bakset_backup_dir_remove('disk','arch_backup_lsn_15092082_15092086');LINEIDSF_BAKSET_BACKUP_DIR_REMOVE('disk','arch_backup_lsn_15092082_15092086')---------------------------------------------------------------------------------11usedtime:1.057(ms).Executeidis1575.SQL>select*fromv$backupset_search_dirs;LINEIDDIR---------------------------------------------1/dm_home/dmdba/dmdbms/data/jydm/bakusedtime:0.987(ms).Executeidis1577.

SF_BAKSET_BACKUP_DIR_REMOVE_ALL函数清理全部备份目录,默认备份目录除外。
定义:

INTSF_BAKSET_BACKUP_DIR_REMOVE_ALL()

返回值:
1:目录全部清理成功;其它情况下报错。
举例说明:

SQL>selectsf_bakset_backup_dir_remove_all();LINEIDSF_BAKSET_BACKUP_DIR_REMOVE_ALL()-------------------------------------------11usedtime:1.019(ms).Executeidis1580.

3. 备份集管理(备份集校验与删除)
本节介绍备份管理中最重要的功能,备份集校验和备份集删除。单个备份集删除时并行备份中地子备份集不允许单独删除;在给定备份集搜
集目录中发现存在引用删除备份集作为基备份的需要执行级联删除,默认报错。批量删除备份集时,跳过收集到的单独的子备份集。主要内
容如下:

SF_BAKSET_CHECKSF_BAKSET_REMOVESF_BAKSET_REMOVE_BATCHSP_DB_BAKSET_REMOVE_BATCHSP_TS_BAKSET_REMOVE_BATCHSP_TAB_BAKSET_REMOVE_BATCHSP_ARCH_BAKSET_REMOVE_BATCH

SF_BAKSET_CHECK函数对备份集进行校验。
定义:

INTSF_BAKSET_CHECK(device_typevarchar,bakset_pathvarchar(256))

参数说明:
device_type:设备类型,disk或tape。
bakset_path:待校验的备份集目录。
返回值:
1:备份集目录存在且合法;否则报错。
举例说明:

SQL>backupdatabasefulltodb_rac_bak_for_checkbackupset'/dm7/backup/db_rac_bak_for_check';executedsuccessfullyusedtime:00:00:01.410.Executeidis158.SQL>selectsf_bakset_check('disk','/dm7/backup/db_rac_bak_for_check');LINEIDSF_BAKSET_CHECK('disk','/dm7/backup/db_rac_bak_for_check')--------------------------------------------------------------------11usedtime:12.669(ms).Executeidis159.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak_for_check');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak_for_check')-----------------------------------------------------------------------------11usedtime:1.610(ms).Executeidis162.SQL>select*fromv$backupset_search_dirs;LINEIDDIR------------------------------------------1/dm7/backup/db_rac_bak_for_check2+DMDATA/data/rac/bakusedtime:0.770(ms).Executeidis163.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK53418202-1DB_RAC_BAK_FOR_CHECK/dm7/backup/db_rac_bak_for_check001rac-12020-05-2921:14:50.000773000033554432509085111324100493981175075960usedtime:00:00:01.023.Executeidis164.

SF_BAKSET_REMOVE函数
删除指定设备类型和指定备份集目录的备份集。一次只检查一个合法.meta文件,然后删除对应备份集;若存在非法或非正常备份的.meta文件,则报错或直接返回,不会接着检查下一个.meta文件;若同一个备份集下还存在其它备份文件或备份集,则只删除备份文件,不会删除整个备份集。
定义:

INTSF_BAKSET_REMOVE(device_typevarchar,backsetpathvarchar(256),optioninteger)

参数说明:
device_type:设备类型,disk或tape。
backsetpath:待删除的备份集目录。
Option:删除备份集选项,0默认删除,1级联删除。可选参数。并行备份集中子备份集不允许单独删除。目标备份集被其他备份集引用为基备份的,默认删除,报错;级联删除情况下,会递归将相关的增量备份也删除。

返回值:
1:备份集目录删除成功,其它情况下报错。
举例说明:

SQL>backupdatabasefulltodb_rac_bak_for_removebackupset'/dm7/backup/db_rac_bak_for_remove';executedsuccessfullyusedtime:00:00:01.320.Executeidis165.SQL>backupdatabaseincrementbaseonbackupset'/dm7/backup/db_rac_bak_for_remove'backupset'/dm7/backup/db_rac_bak_for_remove_incr';executedsuccessfullyusedtime:00:00:01.255.Executeidis170.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak_for_remove');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak_for_remove')------------------------------------------------------------------------------11usedtime:1.836(ms).Executeidis171.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak_for_remove_incr');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak_for_remove_incr')-----------------------------------------------------------------------------------11usedtime:1.444(ms).Executeidis172.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK53418202-1DB_RAC_BAK_FOR_CHECK/dm7/backup/db_rac_bak_for_check001rac-12020-05-2921:14:50.0007730000335544325090851113241004939811750759602DISK1763138770-1DB_RAC_BAK_FOR_REMOVE/dm7/backup/db_rac_bak_for_remove001rac-12020-05-2922:00:34.0005240000335544325090851119241004939811750759603DISK-1036285990-1DB_INCR_rac_20200529_220232_000624/dm7/backup/db_rac_bak_for_remove_incr101rac-1DB_RAC_BAK_FOR_REMOVE2020-05-2922:02:33.000834000033554432509085113524100493981175075960usedtime:00:00:01.038.Executeidis173.SQL>select*fromv$backupset_search_dirs;LINEIDDIR------------------------------------------------1/dm7/backup/db_rac_bak_for_check2/dm7/backup/db_rac_bak_for_remove3/dm7/backup/db_rac_bak_for_remove_incr4+DMDATA/data/rac/bakusedtime:0.781(ms).Executeidis174.SQL>selectsf_bakset_remove('disk','/dm7/backup/db_rac_bak_for_remove');selectsf_bakset_remove('disk','/dm7/backup/db_rac_bak_for_remove');[-8202]:Bethebasebackupsetof/dm7/backup/db_rac_bak_for_remove_incr,cannotberemoved.usedtime:00:00:01.023.Executeidis0.

报错了,提示说它是另一个备份集的基备份不能被删除

SQL>selectsf_bakset_remove('disk','/dm7/backup/db_rac_bak_for_remove',1);LINEIDSF_BAKSET_REMOVE('disk','/dm7/backup/db_rac_bak_for_remove',1)------------------------------------------------------------------------11usedtime:50.201(ms).Executeidis176.

检查备份集可以确认在删除基备份时确实级联删除了增量备份

SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK53418202-1DB_RAC_BAK_FOR_CHECK/dm7/backup/db_rac_bak_for_check001rac-12020-05-2921:14:50.000773000033554432509085111324100493981175075960usedtime:00:00:01.050.Executeidis177.

SF_BAKSET_REMOVE_BATCH函数
批量删除满足指定条件的所有备份集。
定义:

INTSF_BAKSET_REMOVE_BATCH(device_typevarchar,end_timedatetime,rangeint,obj_namevarchar(257))

参数说明:
device_type:设备类型,disk或tape。指定NULL,则忽略存储设备的区分。
end_time:删除备份集生成的结束时间,仅删除end_time之前的备份集,必须指定。
range:指定删除备份的级别。1代表库级,2代表表空间级,3代表表级,4代表归档备份。若指定NULL,则忽略备份集备份级别的区分。
obj_name:待删除备份集中备份对象的名称,仅表空间级和表级有效。若为表级备份删除,则需指定完整的表名(模式.表名),否则,将认为删除会话当前模式下的表备份。若指定为NULL,则忽略备份集中备份对象名称区分

返回值:
1:备份集目录删除成功,其它情况下报错。
举例说明:

SQL>backupdatabasefulltodb_rac_full_bak_for_removebackupset'/dm7/backup/db_rac_full_bak_for_remove';executedsuccessfullyusedtime:00:00:01.498.Executeidis184.SQL>backuptablespacemainfulltotab_main_full_bak_for_removebackupset'/dm7/backup/tab_main_full_bak_for_remove';executedsuccessfullyusedtime:00:00:01.121.Executeidis185.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_full_bak_for_remove');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_full_bak_for_remove')-----------------------------------------------------------------------------------11usedtime:1.574(ms).Executeidis186.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/tab_main_full_bak_for_remove');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/tab_main_full_bak_for_remove')-------------------------------------------------------------------------------------11usedtime:1.881(ms).Executeidis187.SQL>select*fromv$backupset_search_dirs;LINEIDDIR--------------------------------------------------1/dm7/backup/db_rac_full_bak_for_remove2/dm7/backup/tab_main_full_bak_for_remove3+DMDATA/data/rac/bakusedtime:0.784(ms).Executeidis188.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK760083173-1DB_RAC_FULL_BAK_FOR_REMOVE/dm7/backup/db_rac_full_bak_for_remove001rac-12020-05-3010:21:23.0006610000335544325090851141241004939811750759602DISK-1117064059-1TAB_MAIN_FULL_BAK_FOR_REMOVE/dm7/backup/tab_main_full_bak_for_remove002MAIN42020-05-3010:22:41.000744000033554432509085114711100493981175075960usedtime:00:00:01.025.Executeidis189.SQL>selectsf_bakset_remove_batch('disk',now(),null,null);LINEIDSF_BAKSET_REMOVE_BATCH('disk',NOW(),NULL,NULL)--------------------------------------------------------11usedtime:21.228(ms).Executeidis190.SQL>select*fromv$backupset;norowsusedtime:00:00:01.023.Executeidis191.

SP_DB_BAKSET_REMOVE_BATCH过程
批量删除指定时间之前的数据库备份集。使用该方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD添加将要删除的备份集目录,否则只删除默
认备份路径下的备份集。
定义:

SP_DB_BAKSET_REMOVE_BATCH(device_typevarchar,end_timedatetime)

参数说明:
device_type:设备类型,disk或tape。指定NULL,则忽略存储设备的区分。
end_time:删除备份集生成的结束时间,仅删除end_time之前的备份集,必须指定。
举例说明:

SQL>backupdatabasefulltodb_rac_full_bak_for_delbackupset'/dm7/backup/db_rac_full_bak_for_del';executedsuccessfullyusedtime:00:00:01.580.Executeidis194.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_full_bak_for_del');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_full_bak_for_del')--------------------------------------------------------------------------------11usedtime:1.725(ms).Executeidis195.SQL>select*fromv$backupset_search_dirs;LINEIDDIR---------------------------------------------1/dm7/backup/db_rac_full_bak_for_del2+DMDATA/data/rac/bakusedtime:0.483(ms).Executeidis196.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK361744824-1DB_RAC_FULL_BAK_FOR_DEL/dm7/backup/db_rac_full_bak_for_del001rac-12020-05-3010:27:00.000621000033554432509085115324100493981175075960usedtime:00:00:01.024.Executeidis197.SQL>callsp_db_bakset_remove_batch('disk',now());DMSQLexecutedsuccessfullyusedtime:36.535(ms).Executeidis198.SQL>select*fromv$backupset;norowsusedtime:00:00:01.021.Executeidis199.

SP_TS_BAKSET_REMOVE_BATCH过程
批量删除指定表空间对象及指定时间之前的表空间备份集。使用该方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD添加将要删除的备份集目录,否则只删除默认备份路径下的备份集。
定义:

SP_TS_BAKSET_REMOVE_BATCH(device_typevarchar,end_timedatetime,ts_namevarchar(128))

参数说明:
device_type:设备类型,disk或tape。指定NULL,则忽略存储设备的区分。
end_time:删除备份集生成的结束时间,仅删除end_time之前的备份集,必须指定。
ts_name:表空间名,若未指定,则认为删除所有满足条件的表空间备份集。
举例说明:

SQL>backuptablespacemainfulltotab_main_bak_full_for_delbackupset'/dm7/backup/tab_main_bak_full_for_del';executedsuccessfullyusedtime:00:00:01.123.Executeidis202.SQL>sf_bakset_backup_dir_add('disk','/dm7/backup/tab_main_bak_full_for_del');DMSQLexecutedsuccessfullyusedtime:1.256(ms).Executeidis203.SQL>select*fromv$backupset_search_dirs;LINEIDDIR-----------------------------------------------1/dm7/backup/tab_main_bak_full_for_del2+DMDATA/data/rac/bakusedtime:0.773(ms).Executeidis204.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK798489856-1TAB_MAIN_BAK_FULL_FOR_DEL/dm7/backup/tab_main_bak_full_for_del002MAIN42020-05-3010:38:29.000350000033554432509085115911100493981175075960usedtime:00:00:01.027.Executeidis205.SQL>callsp_ts_bakset_remove_batch('disk',now(),'main');DMSQLexecutedsuccessfullyusedtime:16.765(ms).Executeidis206.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK798489856-1TAB_MAIN_BAK_FULL_FOR_DEL/dm7/backup/tab_main_bak_full_for_del002MAIN42020-05-3010:38:29.000350000033554432509085115911100493981175075960usedtime:00:00:01.022.Executeidis207.

说明指定表空间名时表空间名要大写

SQL>callsp_ts_bakset_remove_batch('disk',now(),'MAIN');DMSQLexecutedsuccessfullyusedtime:13.667(ms).Executeidis208.SQL>select*fromv$backupset;norowsusedtime:00:00:01.023.Executeidis209.

删除备份目录

SQL>sf_bakset_backup_dir_remove_all();DMSQLexecutedsuccessfullyusedtime:0.787(ms).Executeidis210.SQL>select*fromv$backupset_search_dirs;LINEIDDIR------------------------------1+DMDATA/data/rac/bakusedtime:0.836(ms).Executeidis211.

SP_TAB_BAKSET_REMOVE_BATCH过程
批量删除指定表对象及指定时间之前的表备份集。使用该方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD添加将要删除的备份集目录,否则只删除默认备份路径下的备份集。
定义:

SP_TAB_BAKSET_REMOVE_BATCH(device_typevarchar,end_timedatetime,sch_namevarchar(128),tab_namevarchar(128))参数说明:device_type:设备类型,disk或tape。指定NULL,则忽略存储设备的区分。end_time:删除备份集生成的结束时间,仅删除end_time之前的备份集,必须指定。sch_name:表所属的模式名。tab_name:表名,只要模式名和表名有一个指定,就认为需要匹配目标;若均指定为NULL,则认为删除满足条件的所有表备份。举例说明:

SQL>createtabletab_for_del_batch(c1int);executedsuccessfullyusedtime:18.840(ms).Executeidis212.SQL>insertintotab_for_del_batchvalues(1);affectrows1usedtime:1.840(ms).Executeidis213.SQL>commit;executedsuccessfullyusedtime:1.557(ms).Executeidis214.SQL>backuptabletab_for_del_batchtotab_bak_for_del_batchbackupset'/dm7/backup/tab_bak_for_del_batch';executedsuccessfullyusedtime:00:00:01.142.Executeidis215.SQL>callsf_bakset_backup_dir_add('disk','/dm7/backup/tab_bak_for_del_batch');DMSQLexecutedsuccessfullyusedtime:1.436(ms).Executeidis216.SQL>select*fromv$backupset_search_dirs;LINEIDDIR-------------------------------------------1/dm7/backup/tab_bak_for_del_batch2+DMDATA/data/rac/bakusedtime:0.742(ms).Executeidis217.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK-424456112-1TAB_BAK_FOR_DEL_BATCH/dm7/backup/tab_bak_for_del_batch203SYSDBA.TAB_FOR_DEL_BATCH-12020-05-3011:07:05.000089000033554432509085120010100493981175075960usedtime:00:00:01.023.Executeidis218.SQL>sp_tab_bakset_remove_batch('disk',now(),'SYSDBA','TAB_FOR_DEL_BATCH');DMSQLexecutedsuccessfullyusedtime:14.860(ms).Executeidis219.SQL>select*fromv$backupset;norowsusedtime:00:00:01.022.Executeidis220.SQL>sf_bakset_backup_dir_remove_all();DMSQLexecutedsuccessfullyusedtime:0.955(ms).Executeidis221.SQL>select*fromv$backupset_search_dirs;LINEIDDIR------------------------------1+DMDATA/data/rac/bakusedtime:1.138(ms).Executeidis222.

SP_ARCH_BAKSET_REMOVE_BATCH过程
批量删除指定时间之前的归档备份集。使用该方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD添加将要删除的备份集目录,否则只删除默认备份路径下的备份集。
定义:

SP_ARCH_BAKSET_REMOVE_BATCH(device_typevarchar,end_timedatetime)

参数说明:
device_type:设备类型,disk或tape。指定NULL,则忽略存储设备的区分。
end_time:删除备份集生成的结束时间,仅删除end_time之前的备份集,必须指定。
举例说明:

SQL>backuparchivelogtoarch_bak_for_del_batchbackupset'/dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch';executedsuccessfullyusedtime:00:00:36.170.Executeidis2476.SQL>sf_bakset_backup_dir_add('disk','/dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch');DMSQLexecutedsuccessfullyusedtime:0.768(ms).Executeidis2478.SQL>select*fromv$backupset_search_dirs;LINEIDDIR--------------------------------------------------------------------1/dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch2/dm_home/dmdba/dmdbms/data/jydm/bakusedtime:0.568(ms).Executeidis2479.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK1259288472-1ARCH_BAK_FOR_DEL_BATCH/dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch304ARCHIVE-12020-05-3014:29:32.0008270010335544328236220152206901121001522069011750759602DISK1259288472-1ARCH_BAK_FOR_DEL_BATCH/dm_home/dmdba/dmdbms/data/jydm/bak/arch_bak_for_del_batch304ARCHIVE-12020-05-3014:29:32.000827001033554432823622015220690112100152206901175075960usedtime:00:00:01.023.Executeidis2480.SQL>sp_arch_bakset_remove_batch('disk',now());DMSQLexecutedsuccessfullyusedtime:178.477(ms).Executeidis2485.SQL>select*fromv$backupset;norowsusedtime:00:00:01.009.Executeidis2486.SQL>sf_bakset_backup_dir_remove_all();DMSQLexecutedsuccessfullyusedtime:0.826(ms).Executeidis2492.SQL>select*fromv$backupset_search_dirs;LINEIDDIR---------------------------------------------1/dm_home/dmdba/dmdbms/data/jydm/bakusedtime:0.763(ms).Executeidis2493.

4. 备份信息查看
DM7提供了一系列动态视图供用户查看备份集相关信息,在查看之前应先使用SF_BAKSET_BACKUP_DIR_ADD添加备份集目录,否则只显示默认备份路径下的备份集信息,使用方法如下例所示:

SQL>SELECTSF_BAKSET_BACKUP_DIR_ADD('DISK','/home/dm_bak');

下面逐个介绍DM7提供的备份相关动态视图。
V$BACKUPSET显示备份集基本信息。

SQL>descv$backupsetLINEIDNAMETYPE$NULLABLE------------------------------------------------1DEVICE_TYPEVARCHAR(10)Y备份集存储介质类型2BACKUP_IDINTEGERY备份ID3PARENT_IDINTEGERY并行备份的子备份集所属备份的ID4BACKUP_NAMEVARCHAR(512)Y备份名5BACKUP_PATHVARCHAR(1024)Y备份路径6TYPEINTEGERY0:基备份,1:增量备份,2:表备份,3:归档备份7LEVELINTEGERY是否脱机备份。0:联机备份,1:脱机备份8RANGE#INTEGERY1:库备份,2:表空间备份,3:表级备份,4:归档备份9OBJECT_NAMEVARCHAR(1025)Y对象名:数据库名、表空间名或者表名10OBJECT_IDINTEGERY对象ID,表备份时无效11BASE_NAMEVARCHAR(512)Y基备份名,表备份时无效12BACKUP_TIMEDATETIME(6)Y备份时间13DESC#VARCHAR(1024)Y备份描述信息14ENCRYPT_TYPEINTEGERY加密类型15COMPRESS_LEVELINTEGERY压缩级别16WITHOUT_LOGINTEGERY联机数据库备份是否备份日志,表备份时无效17USE_PWRINTEGERY增量备份过程中是否使用PWR优化,均不使用,保留仅为了兼容18PKG_SIZEINTEGERY数据包大写标志,内部实现19BEGIN_LSNBIGINTY备份的起始LSN值,表备份时无效20END_LSNBIGINTY结束备份的LSN值,表备份时无效21BKP_NUMINTEGERY备份片个数,即备份集中.bak文件个数22DBF_NUMINTEGERY备份集中包含的数据库\表空间数据文件个数,表备份时无效23PARALLEL_NUMINTEGERY并行备份的并行数,0或者1为非并行备份集24DDL_CLONEINTEGERYDDL_CLONE库备份标识,0不是,1是25MPP_FLAGINTEGERYMPP库备份标识,0不是,1是26MIN_TRX_START_LSNBIGINTY备份时活动事务最小的LSN27MIN_EXEC_VERINTEGERY备份集适用的最小执行码的版本号,转换为16进制匹配版本号28CUMULATIVEINTEGERY增量备份时,是否为累积增量备份。1是,0否

下面以创建数据库备份为例,查看备份集的介质类型、备份路径、备份类型等基本信息:

SQL>backupdatabasefulltodb_rac_bak_for_infobackupset'/dm7/backup/db_rac_bak_for_info';executedsuccessfullyusedtime:00:00:01.298.Executeidis224.SQL>sf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak_for_info');DMSQLexecutedsuccessfullyusedtime:0.939(ms).Executeidis225.SQL>select*fromv$backupset_search_dirs;LINEIDDIR-----------------------------------------1/dm7/backup/db_rac_bak_for_info2+DMDATA/data/rac/bakusedtime:1.726(ms).Executeidis226.SQL>selectdevice_type,backup_path,type,range#fromv$backupset;LINEIDDEVICE_TYPEBACKUP_PATHTYPERANGE#--------------------------------------------------------------------------1DISK/dm7/backup/db_rac_bak_for_info01usedtime:00:00:01.023.Executeidis227.

V$BACKUPSET_DBINFO显示备份集的数据库相关信息。

SQL>descv$backupset_dbinfo;LINEIDNAMETYPE$NULLABLE---------------------------------------------1DEVICE_TYPEVARCHAR(10)Y备份集存储介质类型2BACKUP_IDINTEGERY备份ID3BACKUP_NAMEVARCHAR(512)Y备份名4BACKUP_PATHVARCHAR(1024)Y备份路径5EXTENT_SIZEINTEGERY数据文件使用的簇大小6PAGE_SIZEINTEGERY页大小7LOG_PAGE_SIZEINTEGERY日志文件页大小8CASE_SENSITVEINTEGERY大小写敏感标志9DB_MAGICINTEGERY数据库的magic10PM_DB_MAGICINTEGERY永久魔数(permenant_magic)11UNICODE_FLAGINTEGERYunicode标志12DB_VERSIONINTEGERY数据库版本13GLOBAL_VERSIONVARCHAR(512)Y数据库全局版本信息14ENABLE_POLICYINTEGERY安全策略15ARCH_FLAGINTEGERY归档是否打开的标志16RAC_NODEINTEGERY高性能集群的节点数目17PAGE_CHECKINTEGERY数据页校验配置18RLOG_ENCRYPTINTEGERY归档日志是否加密19EX_CIPHER_NAMEVARCHAR(512)Y外部加密算法名称20EX_CIPHER_IDINTEGERY外部加密算法名称对应的ID21EX_HASH_NAMEVARCHAR(512)Y外部HASH算法名称22EX_HASH_IDINTEGERY外部HASH算法名称对应的ID23LENGTH_IN_CHARINTEGERYVARCHAR类型长度是否以字符为单位24USE_NEW_HASHINTEGERY是否使用改进的字符类型HASH算法25BLANK_PAD_MODEINTEGERY数据库空格填充模式

表还原时要求目标库的特定建库参数要与源库一致,如页大小、簇大小,通过查看备份文件的数据库信息可确定目标库需要设置哪些建库参数。下面以创建表备份为例,查看备份集的页大小、簇大小、大小写是否敏感、UNICODE_FLAG等数据库信息:

SQL>backuptabletab_01totab_01_bakbackupset'/dm7/backup/tab_01_bak';executedsuccessfullyusedtime:00:00:01.119.Executeidis236.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/tab_01_bak');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/tab_01_bak')-------------------------------------------------------------------11usedtime:2.096(ms).Executeidis237.SQL>select*fromv$backupset_search_dirs;LINEIDDIR--------------------------------1/dm7/backup/tab_01_bak2+DMDATA/data/rac/bakusedtime:0.726(ms).Executeidis238.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK1132430805-1TAB_01_BAK/dm7/backup/tab_01_bak203SYSDBA.TAB_01-12020-05-3014:56:59.000255000033554432509085120810100493981175075960usedtime:00:00:01.023.Executeidis239.SQL>selectbackup_path,page_size,extent_size,case_sensitivefromv$backupset_dbinfowherebackup_path='/dm7/backup/tab_01_bak';LINEIDBACKUP_PATHPAGE_SIZEEXTENT_SIZECASE_SENSITIVE--------------------------------------------------------------------1/dm7/backup/tab_01_bak8192161usedtime:00:00:01.028.Executeidis240.

V$BACKUPSET_DBF显示备份集中数据文件的相关信息,表备份时无效。

SQL>descv$backupset_dbfLINEIDNAMETYPE$NULLABLE---------------------------------------------1DEVICE_TYPEVARCHAR(10)Y备份集存储介质类型2BACKUP_IDINTEGERY备份ID3BACKUPNAMEVARCHAR(512)Y备份名4BACKUPPATHVARCHAR(1024)Y备份路径5FILE_SEQINTEGERY备份的数据文件序号6TS_IDINTEGERY表空间ID7FILE_IDINTEGERY数据文件ID8TS_STATEINTEGERY表空间状态9TS_NAMEVARCHAR(512)Y表空间名10FILE_NAMEVARCHAR(1024)Y包含完整路径的数据文件名11MIRROR_PATHVARCHAR(1024)Y镜像文件路径12FILE_LENBIGINTY数据文件占用的字节大小13MAX_LIMIT_SIZEINTEGERY文件最大大小,以M为单位14AUTO_EXTENDINTEGERY是否支持自动扩展:1支持,0不支持15NEXT_SIZEINTEGERY文件每次扩展大小,以M为单位16START_BKP_SEQINTEGERY起始备份片编号17START_BKP_OFFBIGINTY起始备份片偏移18END_BKP_SEQINTEGERY结束备份片编号19END_BKP_OFFBIGINTY结束备份片偏移

数据库和表空间备份集中记录了备份的数据文件具体信息,如果想了解备份集中包含了哪些数据文件且这些数据文件有什么属性,可通过查询V$BACKUPSET_DBF实现。下面以表空间备份为例,查看备份集中的数据文件信息。

SQL>createtablespacets_for_dbfdatafile'ts_for_dbf_01.dbf'size128;executedsuccessfullyusedtime:00:00:01.594.Executeidis247.SQL>altertablespacets_for_dbfadddatafile'ts_for_dbf_02.dbf'size128;executedsuccessfullyusedtime:236.359(ms).Executeidis248.SQL>select*fromv$datafile;LINEIDGROUP_IDIDPATHCLIENT_PATHCREATE_TIMESTATUS$RW_STATUSLAST_CKPT_TIMEMODIFY_TIMEMODIFY_TRXTOTAL_SIZEFREE_SIZEFREE_PAGE_NOPAGES_READPAGES_WRITEPAGE_SIZEREAD_REQUESTWRITE_REQUESTAUTO_EXTENDMAX_SIZENEXT_SIZEMIRROR_PATH--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------100+DMDATA/data/rac/system.dbfsystem.dbf2020-04-2615:44:40122020-05-3015:06:012020-04-2615:44:40832616384157601520248508192248501167772150NULL210+DMDATA/data/rac/roll.dbfroll.dbf2020-04-2615:44:40122020-05-3015:06:012020-04-2615:44:40832616384137802624130352098192130352091167772150NULL330+DMDATA/data/rac/TEMP0.DBFTEMP0.DBF2020-05-2816:52:15122020-05-3015:06:012020-05-2816:52:1583261280127032008192001167772150NULL440+DMDATA/data/rac/main.dbfmain.dbf2020-04-2615:44:43122020-05-3015:06:012020-04-2615:44:43832616384163696441081924101167772150NULL550+DMDATA/data/rac/ts_for_dbf_01.dbfts_for_dbf_01.dbf2020-05-3015:06:00122020-05-3015:06:012020-05-3015:06:008326163841637632018192011167772150NULL651+DMDATA/data/rac/ts_for_dbf_02.dbfts_for_dbf_02.dbf2020-05-3015:06:29122020-05-3015:06:012020-05-3015:06:298326163841638332008192001167772150NULL6rowsgotusedtime:5.737(ms).Executeidis249.SQL>backuptablespacets_for_dbftots_for_dbf_bakbackupset'/dm7/backup/ts_for_dbf_bak';executedsuccessfullyusedtime:00:00:01.114.Executeidis250.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/ts_for_dbf_bak');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/ts_for_dbf_bak')-----------------------------------------------------------------------11usedtime:1.928(ms).Executeidis251.SQL>select*fromv$backupset_search_dirs;LINEIDDIR------------------------------------1/dm7/backup/ts_for_dbf_bak2+DMDATA/data/rac/bakusedtime:0.848(ms).Executeidis252.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK1346953844-1TS_FOR_DBF_BAK/dm7/backup/ts_for_dbf_bak002TS_FOR_DBF52020-05-3015:08:17.000425000033554432512365123812100493981175075960usedtime:00:00:01.023.Executeidis253.SQL>selectfile_seq,ts_id,file_id,ts_name,file_namefromv$backupset_dbf;LINEIDFILE_SEQTS_IDFILE_IDTS_NAMEFILE_NAME---------------------------------------------------------------------------------------1150TS_FOR_DBF+DMDATA/data/rac/ts_for_dbf_01.dbf2251TS_FOR_DBF+DMDATA/data/rac/ts_for_dbf_02.dbfusedtime:00:00:01.023.Executeidis254.

V$BACKUPSET_ARCH显示备份集中归档文件的信息,且仅归档备份才会有数据。

SQL>descv$backupset_archLINEIDNAMETYPE$NULLABLE---------------------------------------------1DEVICE_TYPEVARCHAR(10)Y备份集存储介质类型2BACKUP_IDINTEGERY备份ID3BACKUPNAMEVARCHAR(512)Y备份名4BACKUPPATHVARCHAR(1024)Y备份路径5FILE_SEQINTEGERY备份的数据文件序号6FILE_NAMEVARCHAR(1024)Y归档文件路径7FILE_LENBIGINTY归档文件大小8BEGIN_LSNBIGINTY备份归档的起始LSN值9BEGIN_SEQNOBIGINTY起始备份归档序号10BEGIN_RPAG_OFFINTEGERY备份归档起始LSN对应归档页内偏移11END_LSNBIGINTY结束备份归档的LSN值12CREATE_TIMEDATETIME(6)Y归档文件的创建时间13CLOSE_TIMEDATETIME(6)Y归档文件的关闭时间14START_BKP_SEQINTEGERY起始备份片编号15START_BKP_OFFBIGINTY起始备份片偏移16END_BKP_SEQINTEGERY结束备份片编号17END_BKP_OFFBIGINTY结束备份片偏移

备份集日志信息可以是联机库备份备份开始到备份结束这段时间服务器产生的日志,也可以是归档备份中备份的归档信息。接下来以数据库备份为例查询备份集日志信息。

SQL>backupdatabasetodb_rac_bakbackupset'/dm7/backup/db_rac_bak';executedsuccessfullyusedtime:00:00:01.451.Executeidis259.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak')-------------------------------------------------------------------11usedtime:1.664(ms).Executeidis260.SQL>select*fromv$backupset_search_dirs;LINEIDDIR--------------------------------1/dm7/backup/db_rac_bak2+DMDATA/data/rac/bakusedtime:0.775(ms).Executeidis261.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK-274484992-1DB_RAC_BAK/dm7/backup/db_rac_bak001rac-12020-05-3015:16:49.000122000033554432512365124426100493981175075960usedtime:00:00:01.020.Executeidis262.SQL>selectbackuppath,file_seq,file_name,begin_lsn,end_lsnfromv$backupset_archwherebackuppath='/dm7/backup/db_rac_bak';LINEIDBACKUPPATHFILE_SEQFILE_NAMEBEGIN_LSNEND_LSN--------------------------------------------------------------------------------------------1/dm7/backup/db_rac_bak65124151244usedtime:00:00:01.025.Executeidis263.

V$BACKUPSET_BKP显示备份集的备份片信息。

SQL>descv$backupset_bkpLINEIDNAMETYPE$NULLABLE------------------------------------------1DEVICE_TYPEVARCHAR(10)Y备份集存储介质类型2BACKUP_IDINTEGERY备份ID3BACKUPNAMEVARCHAR(512)Y备份名4BACKUPPATHVARCHAR(1024)Y备份路径5BKP_NTHINTEGERY备份片文件编号6FILE_NAMEVARCHAR(1024)Y备份文件名7BKP_LENBIGINTY备份片长度

以数据库备份为例,查看备份集中的备份片信息。

SQL>backupdatabasetodb_rac_bakbackupset'/dm7/backup/db_rac_bak';executedsuccessfullyusedtime:00:00:01.451.Executeidis259.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak')-------------------------------------------------------------------11usedtime:1.664(ms).Executeidis260.SQL>select*fromv$backupset_search_dirs;LINEIDDIR--------------------------------1/dm7/backup/db_rac_bak2+DMDATA/data/rac/bakusedtime:0.775(ms).Executeidis261.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK-274484992-1DB_RAC_BAK/dm7/backup/db_rac_bak001rac-12020-05-3015:16:49.000122000033554432512365124426100493981175075960usedtime:00:00:01.020.Executeidis262.SQL>selectbackuppath,bkp_nth,file_name,bkp_lenfromv$backupset_bkpwherebackuppath='/dm7/backup/db_rac_bak';LINEIDBACKUPPATHBKP_NTHFILE_NAMEBKP_LEN-------------------------------------------------------------------------------1/dm7/backup/db_rac_bak0db_rac_bak.bak266880002/dm7/backup/db_rac_bak1db_rac_bak_1.bak6144usedtime:00:00:01.025.Executeidis265.

V$BACKUPSET_SEARCH_DIRS显示备份集搜索目录。

SQL>descv$backupset_search_dirsLINEIDNAMETYPE$NULLABLE-----------------------------------1DIRVARCHAR(1024)Y备份集搜索目录

查询V$BACKUPSET_SEARCH_DIRS显示当前会话已添加的备份目录,即备份集搜索目录。若用户没有添加备份目录,那么仅显示默认的备份目录。

SQL>selectsf_bakset_backup_dir_remove_all();LINEIDSF_BAKSET_BACKUP_DIR_REMOVE_ALL()-------------------------------------------11usedtime:0.882(ms).Executeidis267.SQL>select*fromv$backupset_search_dirs;LINEIDDIR------------------------------1+DMDATA/data/rac/bakusedtime:0.965(ms).Executeidis268.

如果添加备份目录,查询结果包括默认备份目录和用户添加的备份目录。

SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak')-------------------------------------------------------------------11usedtime:0.894(ms).Executeidis269.SQL>select*fromv$backupset_search_dirs;LINEIDDIR--------------------------------1/dm7/backup/db_rac_bak2+DMDATA/data/rac/bakusedtime:0.714(ms).Executeidis270.

V$BACKUPSET_TABLE显示表备份集中备份表信息,仅表备份有效。

SQL>descv$backupset_tableLINEIDNAMETYPE$NULLABLE-------------------------------------------1DEVICE_TYPEVARCHAR(10)Y备份集存储介质类型2BACKUP_IDINTEGERY备份ID3BACKUPNAMEVARCHAR(512)Y备份名4BACKUPPATHVARCHAR(1024)Y备份路径5SCHEMANAMEVARCHAR(512)Y备份表所属的模式名6USERNAMEVARCHAR(512)Y执行表备份的用户名7TSNAMEVARCHAR(512)Y备份表存储的表空间名8TABLENAMEVARCHAR(512)Y备份表名9TABLETYPEINTEGERY表类型10INIT_SQLVARCHAR(4096)Y完整建表语句,忽略引用约束(语句可能会被截断)11DCONS_SQLVARCHAR(4096)Y备份表中被禁用约束的创建语句(语句可能会被截断,DMRMAN可查看完整语句)12DIDX_SQLVARCHAR(4096)Y备份表中无效二级索引的创建语句(语句可能会被截断,DMRMAN可查看完整语句)13BIDX_NUMINTEGERY备份集中备份的二级索引个数14META_VERSIONINTEGERY当前表备份的元信息的版本号

下面创建表备份并查看备份中备份名、备份路径、表名等信息。

SQL>createtabletab_for_info(c1int);executedsuccessfullyusedtime:12.459(ms).Executeidis277.SQL>insertintotab_for_infovalues(1);affectrows1usedtime:1.779(ms).Executeidis278.SQL>commit;executedsuccessfullyusedtime:1.775(ms).Executeidis279.SQL>backuptabletab_for_infototab_for_info_bakbackupset'/dm7/backup/tab_for_info_bak';executedsuccessfullyusedtime:00:00:01.133.Executeidis280.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/tab_for_info_bak');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/tab_for_info_bak')-------------------------------------------------------------------------11usedtime:1.250(ms).Executeidis281.SQL>select*fromv$backupset;LINEIDDEVICE_TYPEBACKUP_IDPARENT_IDBACKUP_NAMEBACKUP_PATHTYPELEVELRANGE#OBJECT_NAMEOBJECT_IDBASE_NAMEBACKUP_TIMEDESC#ENCRYPT_TYPECOMPRESS_LEVELWITHOUT_LOGUSE_PWRPKG_SIZEBEGIN_LSNEND_LSNBKP_NUMDBF_NUMPARALLEL_NUMDDL_CLONEMPP_FLAGMIN_TRX_START_LSNMIN_EXEC_VERCUMULATIVE-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------1DISK378752781-1TAB_FOR_INFO_BAK/dm7/backup/tab_for_info_bak203SYSDBA.TAB_FOR_INFO-12020-05-3015:31:29.000827000033554432512365128410100493981175075960usedtime:00:00:01.019.Executeidis282.SQL>selectbackupname,tablenamefromv$backupset_table;LINEIDBACKUPNAMETABLENAME--------------------------------------1TAB_FOR_INFO_BAKTAB_FOR_INFOusedtime:00:00:01.018.Executeidis283.

V$BACKUPSET_SUBS显示并行备份中生成的子备份集信息

SQL>descv$backupset_subsLINEIDNAMETYPE$NULLABLE------------------------------------------1DEVICE_TYPEVARCHAR(10)Y备份集存储介质类型2BACKUPNAMEVARCHAR(512)Y备份名3BACKUP_IDINTEGERY备份ID4PARENT_IDINTEGERY子备份集所属主备份集ID5BACKUPPATHVARCHAR(1024)Y各备份集绝对路径6BKP_NUMINTEGERY各备份集中备份片文件个数,可能为07DBF_NUMINTEGERY各备份集中备份数据文件个数,可能为0

数据库和表空间支持并行备份,备份后会在主备份集中生成多个子备份集,查询视图V$BACKUPSET_SUBS可获取子备份集中包含的备份片文件个数及备份数据文件个数等信息。以创建数据库并行备份为例,查看子备份集的相关信息。

SQL>backupdatabasefulltodb_rac_bakbackupset'/dm7/backup/db_rac_bak'parallel4;executedsuccessfullyusedtime:00:00:05.766.Executeidis304.SQL>selectsf_bakset_backup_dir_add('disk','/dm7/backup/db_rac_bak');LINEIDSF_BAKSET_BACKUP_DIR_ADD('disk','/dm7/backup/db_rac_bak')-------------------------------------------------------------------11usedtime:0.918(ms).Executeidis305.SQL>selectbackuppath,bkp_num,dbf_numfromv$backupset_subs;LINEIDBACKUPPATHBKP_NUMDBF_NUM-------------------------------------------------------------------1/dm7/backup/db_rac_bak/db_rac_bak_2112/dm7/backup/db_rac_bak/db_rac_bak_3113/dm7/backup/db_rac_bak/db_rac_bak_0124/dm7/backup/db_rac_bak/db_rac_bak_111usedtime:13.850(ms).Executeidis306.

看完上述内容,你们对DM7中怎么利用disql管理备份有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。