DM8单机备份策略

1.4 DM8单机备份策略

1.4.1 开启数据库归档日志,归档日志文件最大10GB

##### 开启归档有三种方式 #####
## 1.1 方法一 (SQL命令行)
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/DMDB/arch, TYPE=local, FILE_SIZE=64, SPACE_LIMIT=10240';
SQL> ALTER DATABASE ARCHIVELOG;
#SQL> ALTER DATABASE NOARCHIVELOG;
SQL> ALTER DATABASE OPEN;

# 查看归档配置情况
SQL> select arch_mode from v$database;
行号     ARCH_MODE
---------- ---------
1          Y

SQL> select arch_name,arch_type,arch_dest,arch_file_size,arch_space_limit 
from  v$dm_arch_ini;
行号     ARCH_NAME      ARCH_TYPE ARCH_DEST  ARCH_FILE_SIZE ARCH_SPACE_LIMIT
---------- -------------- --------- ---------- -------------- ----------------
1          ARCHIVE_LOCAL1 LOCAL     /DMDB/arch 64             10240


## 1.2 方法二 (dm.ini/dmarch.ini参数文件)
# 前提:必须停库,非在线修改,修改完成后再启动数据库实例。
[dmdba@DMDB10 DMOA]$ service DmServiceDMOA stop

# dm.ini文件部分内容:关于归档开启的开关
ARCH_INI = 1  #dmarch.ini

# dmarch.ini 文件:归档相关的配置参数
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /DMDB/arch
ARCH_FILE_SIZE = 64  #单位MB
ARCH_SPACE_LIMIT = 10240 #单位MB 0表示无限制,范围1024~4294967294M        

# 由于手工编辑修改,很有可能误写错单词等等,最好先前台测试数据库是否正常启动。  
[dmdba@DMDB10 DMOA]$ dmserver /DMDB/data/DMOA/dm.ini   
        

#### ******* 与归档相关的数据字典 ******** ####   
V$ARCHIVED_LOG 兼容oracle视图
V$ARCH_FILE
V$ARCH_STATUS
V$ARCH_QUEUE
V$ARCH_SEND_INFO
V$BACKUPSET_ARCH
V$BACKUPSET_SEARCH_DIRS  


## 1.3 方法三 (DM图形管理工具)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4.2 制定数据库备份脚本和策略

一个星期周期,每周六凌晨2点进行全量备份,其他每天凌晨1点进行增量备份

#### 实现方式两种 ####
## 方式一:shell脚本 + crontab定时任务
[dmdba@DMDB10 backup]$ vi dmrman_dmoa.rcv 
#!/bin/bash
export DM_HOME=/DMDB/app/DM8
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH
YMD=$(date +%F)
WEEK_DAY=$(date +%w)
DISQLCMD="disql SYSDBA@localhost:5234"

case "$WEEK_DAY" in
   6)
     $DISQLCMD -e "backup database full backupset '/DMDB/backup/DMOA_FULL_$YMD';" >> /DMDB/backup/backup.log
     ;;
   *)
     $DISQLCMD -e "backup database increment with backupdir '/DMDB/backup' backupset '/DMDB/backup/DMOA_INCR_$YMD';" >> /DMDB/backup/backup.log
      ;;
esac

# remove backupset before 7 days.
$DISQLCMD  -e "SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK','/DMDB/backup');CALL SP_DB_BAKSET_REMOVE_BATCH('DISK', sysdate-7);" >> /DMDB/backup/backup.log

###############################end#####################################

# crontab 系统定时任务每晚1点开始
[dmdba@DMDB10 backup]$ chmod +x dmrman_dmoa.rcv
[root@DMDB10 backup]# crontab -e
#0 1 * * * su - dmdba -c /DMDB/backup/dmrman_dmoa.rcv
0 1 * * 6 su - dmdba -c /DMDB/backup/dmrman_dmoa.rcv
0 2 * * 0-5 su - dmdba -c /DMDB/backup/dmrman_dmoa.rcv



## 方式二:DM管理工具代理 + JOB
-- 全量备份定时任务
call SP_CREATE_JOB('daily_full_backup',1,0,'',0,0,'',0,'每日数据库备份计划');
call SP_JOB_CONFIG_START('daily_full_backup');
call SP_ADD_JOB_STEP('daily_full_backup', 'full_backup_sat', 5, '01000/DMDB/backup', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('daily_full_backup', 'full_backup_sat', 1, 2, 1, 64, 0, '01:00:00', NULL, '2020-12-01 18:33:32', NULL, '每周六凌晨1点执行一次数据库全量备份');
call SP_JOB_CONFIG_COMMIT('daily_full_backup');

-- 增量备份定时任务
call SP_CREATE_JOB('daily_incr_backup',1,0,'',0,0,'',0,'每日增量备份计划');
call SP_JOB_CONFIG_START('daily_incr_backup');
call SP_ADD_JOB_STEP('daily_incr_backup', 'incr_backup_nosat', 5, '11000/DMDB/backup|/DMDB/backup', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('daily_incr_backup', 'incr_backup_nosat', 1, 2, 1, 63, 0, '02:00:00', NULL, '2020-12-01 18:46:25', NULL, '除周六外,每天凌晨2点做增量备份');
call SP_JOB_CONFIG_COMMIT('daily_incr_backup');

# 查询作业
select name,enable,username,createtime from SYSJOB.SYSJOBS;
select name,start_time,end_time, errcode,errinfo from SYSJOB.SYSJOBHISTORIES2;

在这里插入图片描述

1.4.3 管理备份

V$BACKUPSET
V$BACKUPSET_BKP
V$BACKUPSET_DBINFO
V$BACKUPSET_DBF
V$BACKUPSET_SEARCH_DIRS
V$BACKUPSET_ARCH
V$BACKUPSET_TABLE
V$BACKUPSET_SUBS

与备份管理相关的函数:
 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:批量删除指定条件的归档备份集。

猜你喜欢

转载自blog.csdn.net/ai20110304/article/details/113963424