閱讀120 返回首頁    go 阿裏雲 go 技術社區[雲棲]


rman備份與腳本

1. 建立rman表空間

SQL> create tablespace rman

 logging datafile '/u01/app/oracle/oradata/TBDB/rman.dbf'  size 1024M

 extent management local segment space  management auto;

 


2.創建rman備份賬號

create user rman identified by rman default  tablespace rman;

grant connect,resource to rman;

grant recovery_catalog_owner to rman;

grant unlimited tablespace to rman;

grant sysdba to rman;


3.建立catalog數據庫及注冊數據庫

rman catalog rman/rman

RMAN> create catalog tablespace  "RMAN";

RMAN> exit

  

  注: 需啟動連接器,node222 為客戶端連接服務器的標識符

rman target sys/oracle@node222 catalog rman/rman@node222

connected to target database: NODE222 (DBID=3694045568)
connected to recovery catalog database

RMAN> register database;

database registered in recovery catalog
starting full resync of recovery catalog
full resync complete


4.rman環境設置

   1) 設置保留30天的備份信息

   2)啟用控製文件自動備份及備份存放位置配置

RMAN> configure retention policy to  recovery window of 30 days;

RMAN> configure controlfile autobackup  on;


5.查看配置信息

RMAN>show all;


6.備份策略

  每日0000進行一次全庫備份 係統自動清除30天以前的備份信息

 

7. 創建備份必要目錄(oracle身份創建)

mkdir /u01/app/oracle/backup

cd /u01/app/oracle/backup

mkdir controlfileback 存放備份的控製文件

mkdir dbback        存放備份的數據文件

mkdir log           存放備份生成的日誌,堅持該日誌查看備份是否成功

mkdir logback       存放歸檔日誌文件

 


8. 備份腳本 cat /u01/app/oracle/backup/script/dbback.sh

#!/bin/bash

#this is rman auto full backup script

# Copyright by terrytsang

 

ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1

NLS_LANG=AMERICAN_AMERICA.AL32UTF8

LD_LIBRARY_PATH=$ORACLE_HOME/lib

ORACLE_BASE=/u01/app/oracle

ORACLE_SID=TBDB

export ORACLE_HOME  LD_LIBRARY_PATH NLS_LANG ORACLE_BASE  ORACLE_SID

 

 

backtime=`date +"20%y%m%d%H%M%S"` 

cd $ORACLE_HOME/bin

rman target / catalog rman/rman log=/u01/app/oracle/backup/log/backupall_$backtime.log  <<EOF

run{

   allocate channel c1 device type disk;

   allocate channel c2 device type disk;

   allocate channel c3 device type disk;

   allocate channel c4 device type disk;

   allocate channel c5 device type disk;

   crosscheck backup;

 

   sql 'alter system archive log current';

     backup database format '/u01/app/oracle/backup/dbback/db_%d_%T_%U';

   sql 'alter system archive log current';

     backup archivelog all format '/u01/app/oracle/backup/logback/arc_%t_%s'  delete all input; 

     backup current controlfile format '/u01/app/oracle/backup/controlfileback/cntrl_%s_%p_%s'; 

   crosscheck archivelog all;

 

  delete  noprompt expired backup;

  delete  noprompt obsolete;

  delete  noprompt backup of database completed before 'sysdate - 30';

  release  channel c1;

   release channel c2;

   release channel c3;

   release channel c4;

   release channel c5;

}

EOF

echo "backup complete!"


9. 定義備份時間間隔

crontab 0 0 * * * /u01/app/oracle/backup/script/dbback.sh  2>&1 >/dev/null

 

 

最後更新:2017-04-03 16:59:48

  上一篇:go Design Pattern: Factory Method 模式
  下一篇:go 徹底理解PHP的SESSION機製