DM8实操经验 备份归档有关的存储过程总结
归档相关:
SQL> select * from v$ifun where name like '%archive%';
SF_ARCHIVELOG_DELETE_BEFORE_LSN
定义:
INT
SF_ARCHIVELOG_DELETE_BEFORE_LSN (
lsn bigint
)
功能说明:
数据库以归档模式打开的情况下,删除小于指定LSN值的归档日志文件,包括本地归档和远程归档。待删除的文件必须处于未被使用状态
返回值:
删除归档日志文件数,-1表示出错
举例说明:
删除LSN值小于95560的归档日志文件
SELECT SF_ARCHIVELOG_DELETE_BEFORE_LSN(95560);
SF_ARCHIVELOG_DELETE_BEFORE_TIME
定义:
INT
SF_ARCHIVELOG_DELETE_BEFORE_TIME (
time datetime
)
功能说明:
数据库以归档模式打开的情况下,删除指定时间之前的归档日志文件,包括本地归档和远程归档。待删除的文件必须处于未被使用状态
返回值:
删除归档日志文件数,-1表示出错
SF_REMOTE_ARCHIVE_CHECK
定义:
int
SF_REMOTE_ARCHIVE_CHECK(
inst_name varchar(256)
)
功能说明:检查本地保存的源实例远程归档目录中归档是否完整
参数说明:
inst_name: 远程归档源实例名
返回值:
检查失败返回报错code
0:不完整,需要修复;1:完整,无需修复
举例说明:
登录DSC01,检查DSC02源实例的对应的远程归档是否完整
select SF_ARCHIVELOG_DELETE_BEFORE_TIME(‘DSC02’);
SP_REMOTE_ARCHIVE_REPAIR
void
SP_REMOTE_ARCHIVE_REPAIR (
src_inst_name varchar(256),
dest_inst_name varchar(256)
)
功能说明:
在dest_inst_name以外的DMDSC实例上调用,修复dest_inst_name上的src_inst_name发到dest_inst_name上的远程归档。该函数自动收集dest_inst_name上缺失的来自src_inst_name的远程归档日志区间,src_inst_name上根据每个区间发送对应的归档到dest_inst_name上,在dest_inst_name上生成归档文件,保存在对应的远程归档目录中。
参数说明:
src_inst_name: 远程归档源实例名
dest_inst_name: 待修复的远程归档目的实例名
返回值:
无
举例说明:
修复DSC02上来自DSC01的远程归档:
select SP_REMOTE_ARCHIVE_REPAIR(‘DSC01’,’DSC02’);
SF_REMOTE_ARCHIVE_TRUNCATE
int
SF_REMOTE_ARCHIVE_TRUNCATE(
inst_name varchar(256)
)
功能说明:
截断远程归档中不连续部分,使远程归档连续。若指定inst_name为当前节点实例名,则直接返回。建议在使用SF_REMOTE_ARCHIVE_REPAIR之后,执行SF_REMOTE_ARCHIVE_CHECK仍不完整的情况下使用,避免删除多余归档。但是即使误删除多余归档,也可以使用其他节点修复。
参数说明:
inst_name: 远程归档源实例名
返回值:
检查失败返回报错code
0:截断完成 ;1:当前节点实例无需截断
举例说明:
登录DSC01,截断DSC02源实例的对应的远程归档
select SF_REMOTE_ARCHIVE_TRUNCATE(‘DSC02’);
备份相关:
SF_BAKSET_BACKUP_DIR_ADD
添加备份目录。若添加目录已经存在或者为库默认备份路径,则认为已经存在,不添加,但也不报错。执行以下命令:
INT SF_BAKSET_BACKUP_DIR_ADD(device_type varchar,backup_dir varchar(256))
参数说明
device_type:待添加的备份目录对应存储介质类型,DISK 或者 TAPE。目前,无论指定介质类型为 DISK 或者 TAPE,都会同时搜索两种类型的备份集。
backup_dir:待添加的备份目录。
返回值
1:目录添加成功;其它情况下报错。
SQL> select SF_BAKSET_BACKUP_DIR_ADD('DISK','/u01/dmdbms/data/bak');
SF_BAKSET_BACKUP_DIR_REMOVE
删除备份目录。若删除目录为库默认备份路径,不进行删除,认为删除失败。若指定目录存在于记录的合法目录中,则删除;不存在或者为空则跳过,正常返回。执行以下命令:
INT SF_BAKSET_BACKUP_DIR_REMOVE (
device_type varchar,
backup_dir varchar(256)
)
参数说明
device_type:待删除的备份目录对应存储介质类型。待删除的备份目录对应存储介质类型,DISK 或者 TAPE。
backup_dir:待删除的备份目录。
返回值
1:目录删除成功、目录不存在或者目录为空;0:目录为库默认备份路径;其他情况报错。
SQL> select SF_BAKSET_BACKUP_DIR_REMOVE('DISK','/u01/dmdbms/data/bak');
SF_BAKSET_BACKUP_DIR_REMOVE_ALL
清理全部备份目录,默认备份目录除外,执行以下命令:
INT SF_BAKSET_BACKUP_DIR_REMOVE_ALL ()
返回值
1:目录全部清理成功;其它情况下报错。
SQL> select SF_BAKSET_BACKUP_DIR_REMOVE_ALL();
SP_BACKUP_COPY_BEGIN
SP_BACKUP_COPY_END
SP_BACKUP_HUGE_TABLE
SP_BACKUP_ALL_HUGE_TABLE