DMRMAN中删除备份集
1
删除特定备份集
remove backupset命令可删除特定备份集,每次只能删除一个备份集。关闭数据库:
[dmdba@localhostbin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
RMAN>backup database '/dm8/data/DAMENG/dm.ini' backupset'/dm8/backup/full01';
RMAN>remove backupset '/dm8/backup/full01';
在数据库中成功删除,操作系统上的备份文件也会对应的删除。
2
批量删除所有备份集
RMAN>backup database '/dm8/data/DAMENG/dm.ini' backupset'/dm8/backup/full01';
RMAN>backup database '/dm8/data/DAMENG/dm.ini' backupset'/dm8/backup/full02';
RMAN>remove backupsets with backupdir '/dm8/backup';
3
批量删除指定时间点的备份集
RMAN>backup database '/dm8/data/DAMENG/dm.ini' backupset'/dm8/backup/full01';
RMAN>remove backupsets with backupdir '/dm8/backup/' until time'2020-08-19 17:00:00';
SQL语句备份中使用函数删除备份集
在DM数据库可以通过下列过程或者函数校验和删除备份集:
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
1
SF_BAKSET_CHECK
对备份集进行校验。
[dmdba@localhostbin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
[dmdba@localhostbin]$ ./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间:6.089(毫秒)
disqlV8
SQL>backup database full backupset '/dm8/backup/full01';
操作已执行
已用时间:00:00:01.278. 执行号:6.
SQL>select SF_BAKSET_CHECK('DISK','/dm8/backup/full01');
行号 SF_BAKSET_CHECK('DISK','/dm8/backup/full01')
------------------------------------------------------
1 1
已用时间:7.370(毫秒).执行号:7.
2
SF_BAKSET_REMOVE
删除指定设备类型和指定备份集目录的备份集。一次只检查一个合法.meta文件,然后删除对应备份集。
SQL>select SF_BAKSET_REMOVE('DISK','/dm8/backup/full01');
行号 SF_BAKSET_REMOVE('DISK','/dm8/backup/full01')
-------------------------------------------------------
1 1
已用时间:19.721(毫秒).执行号:8.
3
SF_BAKSET_REMOVE_BATCH
批量删除满足指定条件的所有备份集。
SQL> backup database full backupset '/dm8/bakcup/full01';
操作已执行
已用时间:938.875(毫秒).执行号:10.
SQL> backup tablespace test full backupset '/dm8/backup/full02';
操作已执行
已用时间:794.957(毫秒).执行号:11.
SQL> select sf_bakset_remove_batch ('DISK', now()-1, 2, NULL);
行号 SF_BAKSET_REMOVE_BATCH('DISK',NOW()-1,2,NULL)
-------------------------------------------------------
1 1
已用时间:8.614(毫秒).执行号:12.
SQL>select sf_bakset_remove_batch ('DISK', now(),NULL,NULL);
行号 SF_BAKSET_REMOVE_BATCH('DISK',NOW(),NULL,NULL)
--------------------------------------------------------
1 1
已用时间:7.756(毫秒).执行号:13.
4
SP_DB_BAKSET_REMOVE_BATCH
批量删除指定时间之前的数据库备份集。使用该方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD添加将要删除的备份集目录,否则只删除默认备份路径下的备份集。
SQL>backup database full backupset '/dm8/backup/full01';
操作已执行
已用时间:922.757(毫秒).执行号:14.
SQL> select sf_bakset_backup_dir_add('DISK','/dm8/backup');
行号 SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup')
---------- ----------------------------------------------
1 1
已用时间:0.946(毫秒).执行号:15.
SQL> sp_db_bakset_remove_batch ('DISK', now());
DMSQL 过程已成功完成
已用时间:10.211(毫秒).执行号:16.
SQL> sp_db_bakset_remove_batch ('DISK', now()-15);
DMSQL 过程已成功完成
已用时间:8.257(毫秒).执行号:17.
5
SP_TS_BAKSET_REMOVE_BATCH
批量删除指定表空间对象及指定时间之前的表空间备份集。使用该方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD添加将要删除的备份集目录,否则只删除默认备份路径下的备份集。
SQL>backup tablespace test full backupset '/dm8/backup/test';
操作已执行
已用时间:800.435(毫秒).执行号:18.
SQL>select sf_bakset_backup_dir_add('DISK','/dm8/backup');
行号 SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup')
--------------------------------------------------------
1 1
已用时间:0.315(毫秒).执行号:19.
SQL>call sp_ts_bakset_remove_batch('DISK',NOW(),'TEST');
DMSQL过程已成功完成
已用时间:8.093(毫秒).执行号:20.
6
SP_TAB_BAKSET_REMOVE_BATCH
批量删除指定表对象及指定时间之前的表备份集。使用该方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD添加将要删除的备份集目录,否则只删除默认备份路径下的备份集。
SQL>create table test (t1 int);
操作已执行
已用时间:8.965(毫秒).执行号:21.
SQL>backup table test backupset '/dm8/backup/test';
操作已执行
已用时间:00:00:01.784. 执行号:22.
SQL>select SF_BAKSET_BACKUP_DIR_ADD ('DISK','/dm8/backup');
行号 SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup')
--------------------------------------------------------
1 1
已用时间:731.887(毫秒).执行号:23.
SQL>call SP_TAB_BAKSET_REMOVE_BATCH('DISK',NOW(),'SYSDBA','TEST');
DMSQL过程已成功完成
已用时间:185.518(毫秒).执行号:24.
7
SP_ARCH_BAKSET_REMOVE_BATCH
批量删除指定时间之前的归档备份集。使用该方法前,需要先使用SF_BAKSET_BACKUP_DIR_ADD添加将要删除的备份集目录,否则只删除默认备份路径下的备份集。
SQL>backup archivelog backupset '/dm8/backup/archbak';
操作已执行
已用时间:00:00:01.363. 执行号:25.
SQL>select SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup');
行号 SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup')
--------------------------------------------------------
1 1
已用时间:1.192(毫秒).执行号:26.
SQL>call SP_ARCH_BAKSET_REMOVE_BATCH('DISK',NOW());
DMSQL过程已成功完成
已用时间:10.074(毫秒).执行号:27.