Oracle Rman 增量備份計畫任務

2021-08-16 07:35:09 字數 3945 閱讀 9383

rman其實就是乙個工具,通過這乙個工具,協調上面的幾大部件。

rman可以通過生產的資料庫備份自己的硬碟上面,磁帶上面,備份的資訊會放到控制檔案裡面或者資料庫裡面。

要實現上面的典型的增量備份方案

可以做成執行計畫

因為只有0,1,2三種級別備份所以只需要三個指令碼。

[oracle@oracle11g script]$ pwd

/rmanbackup/script

在該目錄下面建立三個檔案,即備份的指令碼,分別為0,1,2級的指令碼。

[oracle@oracle11g script]$ vi bakl0

[oracle@oracle11g script]$ vi bakl1

[oracle@oracle11g script]$ vi bakl2

裡面寫上

run

裡面通過修改數字來表示增量為多少的備份。

rman target /  msglog=/rmanbackup/ramlog/bakl0.log cmdfile=/rmanbackup/script/bakl0

[oracle@oracle11g script]$ rman target /  msglog=/rmanbackup/ramlog/bakl0.log cmdfile=/rmanbackup/script/bakl0

rman> 2> 3> 4> 5> 6> 7> 8> 9> 10> [oracle@oracle11g script]$

看到可以使用rman指令碼進行備份。

備份產生的檔案可以看到已經產生了

[oracle@oracle11g beifeng]$ pwd

/rmanbackup/beifeng

[oracle@oracle11g beifeng]$ ls

inc0_03sln8as_20171209  inc0_04sln8eh_

20171209

再去看看日誌檔案裡面內容

[oracle@oracle11g ramlog]$ vi bakl0.log

recovery manager: release 11.2.0.4.0 - production on sat dec 9 19:19:55 2017

connected to target database: oradb (dbid=2714287021)

rman> run

10>

using target database control file instead of recovery catalog

allocated channel: c1

channel c1: sid=35 device type=disk

starting backup at 09-dec-17

channel c1: starting incremental level 0 datafile backup set

channel c1: specifying datafile(s) in backup set

channel c1: starting piece 1 at 09-dec-17

channel c1: finished piece 1 at 09-dec-17

piece handle=/rmanbackup/beifeng/inc0_03sln8as_20171209 tag=monday_inc0 comment=none

channel c1: backup set complete, elapsed time: 00:01:56

channel c1: starting incremental level 0 datafile backup set

channel c1: specifying datafile(s) in backup set

including current control file in backup set

including current spfile in backup set

channel c1: starting piece 1 at 09-dec-17

channel c1: finished piece 1 at 09-dec-17

piece handle=/rmanbackup/beifeng/inc0_04sln8eh_20171209 tag=monday_inc0 comment=none

channel c1: backup set complete, elapsed time: 00:00:03

"bakl0.log" 44l, 1628c       

在使用上面方式備份的時候最好使用全路徑,不要使用相對路徑。rman也最好使用全路徑。

[oracle@oracle11g ramlog]$ which rman

這樣寫最好

上面都是手動備份,如果要自動實現備份就要使用crontab了。

每天晚上23:45分執行指令碼。

/etc/crontab中加入下面的兩句,第一句就是注釋了。以

#號開始,後面寫乙個自己能知道這是什麼任務的備註;

# reboot os

30 8 * * * root /sbin/reboot

第一段應該定義的是:分鐘,表示每個小時的第幾分鐘來執行。範圍是從0-59

第二段應該定義的是:小時,表示從第幾個小時來執行,範圍是從0-23

第三段應該定義的是:日期,表示從每個月的第幾天執行,範圍從1-31

第四段應該定義的是:月,表示每年的第幾個月來執行,範圍從1-12

第五段應該定義的是:周,表示每週的第幾天執行,範圍從0-6,其中

0表示星期日。

每六段應該定義的是:使用者名稱,也就是執行程式要通過哪個使用者來執行,這個一般可以省略;

第七段應該定義的是:執行的命令和引數

# for details see man 4 crontabs

# example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) or jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

[root@oracle11g ramlog]# crontab -e -u oracle

在裡面加上上面那些語句,代表會以oracle使用者執行

rman target /..............................

。注意修改完使用者的執行計畫之後使用下面語句重啟一下服務。

[root@oracle11g ramlog]# service crond restart

stopping crond:                                            [  ok  ]

starting crond:



Oracle Rman 備份指令碼

oracle dbservera crontab l 0 0 u01 rmanbak rmanbak.sh u01 rmanbak rmanbak.log 2 1 oracle dbservera cat u01 rmanbak rmanbak.sh bin bash bash profile ec...

Oracle RMAN簡單備份

oracle資料庫rman備份 準備工作 查詢資料庫是否為歸檔模式 sql select name,log mode from v database 1.sql alter system set log archive dest 1 location oracle oracle10g log arc...

oracle rman自動備份指令碼

bin sh opt oracle bash profile pwd sys bak dir opt oracle backup oatest begin seq sqlplus s as sysdba crosscheck backupset crosscheck archivelog all d...