DM逻辑备份

1、编辑环境变量

vi ~/.bash_profile

[dmdba@mydm ~]$ cat .bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

. ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm/dbms/bin"

export DM_HOME="/dm/dbms"

添加以下内容

DM_HOME=/dm/dbms

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${DM_HOME}/bin

export PATH=$PATH:${DM_HOME}/bin

2、编写shell脚本

[dmdba@mydm dm]$ cat backup.sh

##定义变量文件名

d=$(date '+%y%m%d')_TEST

##导出用户TEST的数据

dexp SYSDBA/SYSDBA owner=SYSDBA directory=/dm/bak/ file=$d-%U.dmp log=$d.log parallel=4

##压缩备份文件和日志文件

tar zcvf /dm/bak/$(date '+%y%m%d')_TEST.tar.gz /dm/bak/*_TEST*.dmp /dm/bak/*_TEST*.log --remove-files

##保存7天备份文件,删除6天之前备份

find /dm/bak/ -mtime +6 -name "*.tar.gz" -exec rm -rf {} \;

赋予脚本执行权限

[dmdba@mydm ~]$chmod +x /dm/bak/backup.sh

3、编写定时任务

[dmdba@mydm ~]$ crontab -l

00 00 * * * /dm/backup.sh

全量备份 + 增量备份 + 删除

此备份策略适用于数据量大于 100G 并且小于 3T 的场景下。注意开启数据库归档,确定备份路径。

—设置 2 分钟后自动进行一次全量备份

call SP_INIT_JOB_SYS(1);

call SP_CREATE_JOB('bakall_one',1,0,'',0,0,'',0,'执行一次全量备份');

call SP_JOB_CONFIG_START('bakall_one');

call SP_ADD_JOB_STEP('bakall_one', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak/all', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakall_one', 'bakall_one_time01', 1, 0, 0, 0, 0, NULL, NULL, SYSDATE()+0.0014, NULL, '');

call SP_JOB_CONFIG_COMMIT('bakall_one');

--设置全量备份

call SP_CREATE_JOB('bakall',1,0,'',0,0,'',0,'每月第一个周六23:00全量备份');

call SP_JOB_CONFIG_START('bakall');

call SP_ADD_JOB_STEP('bakall', 'bakall', 6, '01020000/opt/dmdbms/data/DAMENG/bak/all', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakall', 'bakall_time01', 1, 4, 1, 7, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');

call SP_JOB_CONFIG_COMMIT('bakall');

--设置增量备份 + 删除备份

call SP_CREATE_JOB('bakadd_delbak',1,0,'',0,0,'',0,'每天(除周六)23:00增量备份、删除30天前的增量备份、删除40天前的全量备份');

call SP_JOB_CONFIG_START('bakadd_delbak');

call SP_ADD_JOB_STEP('bakadd_delbak', 'bakadd', 6, '11020000/opt/dmdbms/data/DAMENG/bak/all|/opt/dmdbms/data/DAMENG/bak/add', 3, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_STEP('bakadd_delbak', 'delbak', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak/add'');

CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-30);

SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/opt/dmdbms/data/DAMENG/bak/all'');

CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE-40);', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakadd_delbak', 'bakadd_delbak_time01', 1, 2, 1, 63, 0, '23:00:00', NULL, '2019-01-01 01:01:01', NULL, '');

call SP_JOB_CONFIG_COMMIT('bakadd_delbak');

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容