首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rman脚本与cronjob

Rman脚本与cronjob
EN

Stack Overflow用户
提问于 2022-04-04 20:15:21
回答 2查看 893关注 0票数 0

我有一个rman脚本,它在执行它时可以工作(./backup.sh)。但是当我使用cronjob时,它就不起作用了。我的脚本如下

backup.sh

rman target / @backup.rcv log=rman.log

backup.rcv

backup format '/backup/rman/backup/%U.arch.rman' filesperset 2 archivelog all delete input; backup format '/backup/rman/backup/%U.datafiles.rman' filesperset 2 incremental level 0 database; backup format '/backup/rman/backup/%U.arch.rman' filesperset 2 archivelog all delete input; backup format '/backup/rman/backup/%U.ctl.rman' current controlfile; delete noprompt obsolete;

我的职位看起来像这样

crontab -l

5 0 * * * /nas_backup/rman/svbo/backup/L0backup.sh >/dev/null 2>&1

我对这个rman和bash脚本非常陌生,所以任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-15 03:28:30

为了修复这个问题,将"L0backup.sh“中的代码替换为

代码语言:javascript
复制
#!/bin/bash
#
export ORACLE_SID=your-sid
export ORACLE_HOME=your-oracle-home
$ORACLE_HOME/bin/rman target / nocatalog  <<EOF
backup format '/nas_backup/rman/backup/%U.arch.rman' filesperset 2 archivelog all delete input;
backup format '/nas_backup/rman/backup/%U.datafiles.rman' filesperset 2 incremental level 0 database;
backup format '/nas_backup/rman/backup/%U.arch.rman' filesperset 2 archivelog all delete input;
backup format '/nas_backup/rman/backup/%U.ctl.rman' current controlfile;
delete noprompt obsolete;
EOF

要得到你的ORACLE_SID和ORACLE_HOME,你可以像

代码语言:javascript
复制
#echo $ORACLE_SID
your-sid
# echo $ORACLE_HOME
your-oracle-home

接下来设置您的crontab -假设您希望上面的文件每午夜运行一次(Crontab Guru)

#crontab -e

代码语言:javascript
复制
5 0 * * * /bin/bash /nas_backup/rman/backup/L0backup.sh  > /nas_backup/rman/backup/rman.log 2>&1

如果您注意到您的输出被标记为"rman.log“。

此外,您现在可以删除"backup.rcv“文件,因为它不再被使用。

票数 0
EN

Stack Overflow用户

发布于 2022-04-06 14:52:47

第01步。创建具有以下内容的备份脚本(根据您的需要对其进行修改)

代码语言:javascript
复制
#!/bin/sh 
#
# Run as: oracle
#
export ORACLE_SID=orcl
export ORACLE_HOME=/oradb/oraclebase/dbhome

rman target /  << EOI
  # Allocating channels (should equal number of physical CPU #lscpu)
  ALLOCATE CHANNEL CH1 DEVICE TYPE DISK;
  ALLOCATE CHANNEL CH2 DEVICE TYPE DISK;

  # change into the highest rate compression - required license 
  CONFIGURE COMPRESSION ALGORITHM 'HIGH' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD FALSE;

  # validate physical existence of backupset & copy
  CROSSCHECK BACKUPSET;
  CROSSCHECK COPY;
  
  # removing metadata of "EXPIRED" info from the catalog
  DELETE NOPROMPT EXPIRED BACKUPSET;
  DELETE NOPROMPT EXPIRED COPY;

  # Backup full database (incremental level 0) on Sunday
  BACKUP AS COMPRESSED BACKUPSET INCREMENTAL LEVEL 0 DATABASE FORMAT '/backup/%d_full_level_0_%U.bak';
  #incremental level 1 on the other days not Sunday
  #enabling block change tracking if you want level 1 goes fast
  #BACKUP AS COMPRESSED BACKUPSET INCREMENTAL LEVEL 1 DATABASE FORMAT '/backup/%d_full_level_1_%U.bak';

  # Backup archivelog log
  BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL DELETE INPUT FORMAT '/backup/%_ARCHIVE_%U.bak';;

  # Clean obsolete backups depending on setting of retention policy 
  CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
  DELETE NOPROMPT OBSOLETE;

  # Allocated channel will release automatically ;)
  exit

EOI

exit

步骤02:更改所有者和权限步骤03:为该脚本设置crontab作业。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71743273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档