暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

干货分享丨DM8备份集删除

达梦大数据 2020-08-23
691

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.

                                                            本期干货就分享到这里

                                                            往期干货精选

                                                            干货分享|DM表的行计数器(COUNTER)属性

                                                            干货分享|DM8命令行方式安装创建数据库

                                                            干货分享|DM8表空间备份恢复

                                                            干货分享|DM数据库密码策略和登录限制设置

                                                            文章转载自达梦大数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                            评论