LINUX上RMAN自動備份指令碼

來源:互聯網
上載者:User

1. 建備份目錄 oradataback,2級目錄archback(放歸檔日誌)、rmanscripts(備份指令碼),
在rmanscripts下面建  rmanlevel0.sh  rmanlevel1.sh  rmanlevel2.sh 檔案:
 mkdir oradataback
 --home/oracle/app/oradataback
 chmod 775 oradataback
 chown -R oracle:oinstall /home/oracle/app/oradataback
 touch  rmanlevel0.sh  rmanlevel1.sh  rmanlevel2.sh
 賦權同上
2. vi 編輯3個檔案:
0級備份檔案:
--rmanlevel0.sh--
#!/bin/sh
# set porfile_env
export ORACLE_SID=eytdbs # rman level0 backup
rman log='/home/oracle/app/oradataback/db_rman0.log' append <<EOF
connect target /;
run
{
allocate channel c1 type disk;
backup as compressed backupset incremental level=0 database format '/home/oracle/app/oradataback/db_level0_%T_%U' tag='level0';
sql 'alter system archive log current';
backup archivelog all format '/home/oracle/app/oradataback/archback/db_arch_%T_%U' delete input;
release channel c1;
}
EOF
1級備份檔案:
--rmanlevel1.sh--
#!/bin/sh
# set porfile_env
export ORACLE_SID=eytdbs # rman level0 backup
rman log='/home/oracle/app/oradataback/db_rman1.log' append <<EOF
connect target /;
run
{
allocate channel c1 type disk;
backup incremental level=1 database format '/home/oracle/app/oradataback/db_level1_%T_%U' tag='level1';
sql 'alter system archive log current';
backup archivelog all format '/home/oracle/app/oradataback/archback/db_arch_%T_%U' delete input;
release channel c1;
}
EOF
2級備份檔案:
--rmanlevel2.sh--
#!/bin/sh
# set porfile_env
export ORACLE_SID=eytdbs  # rman level0 backup
rman log='/home/oracle/app/oradataback/db_rman2.log' append <<EOF
connect target /;
run
{
allocate channel c1 type disk;
backup incremental level=2 database format '/home/oracle/app/oradataback/db_level2_%T_%U' tag='level2';
sql 'alter system archive log current';
backup archivelog all format '/home/oracle/app/oradataback/archback/db_arch_%T_%U' delete input;
release channel c1;
}
EOF
#說明:在oracle使用者下手動運行指令碼的命令:sh rmanlevel2.sh
3. 加自動運行任務:
在root下設定,用vi編輯: #crontab -e
0 2 1 * * su – oracle -c /home/oracle/app/oradataback/rmanscripts/rmanlevel0.sh  //每月1日2:00運行 0級備份
0 2 * * 0 su – oracle -c /home/oracle/app/oradataback/rmanscripts/rmanlevel1.sh  //每周日2:00運行 1級備份
0 2 * * 1-6 su – oracle -c /home/oracle/app/oradataback/rmanscripts/rmanlevel2.sh  //每周一周六2:00運行 2級增量備份
--查看添加的任務: crontab   -l
--crontab的格式:
minutes|hours|day of month|month|day of week|
--啟動crond:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
4. 測試結果:
   可以自動運行,能成功的備份資料, 但有點小問題,
   一是rman備份格式 %F 一直都用這個格式,但今天既然不認識了,只能改為_%T_%U',不知道什麼原因。
   二是報了幾個錯誤:
   RMAN-00558: error encountered while parsing input commands
   RMAN-01009: syntax error: found "identifier": expecting one of: "...... {, "
   RMAN-01008: the bad identifier was: EOF
   RMAN-01007: at line 1 column 1 file: standard input
   找了半天也沒找到毛病,以後再慢慢的研究吧。

作者“srsunbing”

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.