備份策略 增量備份中的差異備份:週日和週三執行0級備份,其他每天執行1級備份

mengzhaoliang發表於2008-06-10
/* 2008/06/10  星期二
*蒙昭良
*環境:linux5 + Oracle10gR2
*備份策略
*增量備份中的差異備份:週日和週三執行0級備份,其他每天執行1級備份
*需要的空間小,恢復效率低
*某一專案執行的備份
*/
一、備份時資料庫所在的狀態?
    備份時資料庫處於open狀態,這樣資料庫可以正常的工作。

二、備份的資料備份在什麼地方?
    備份在本地磁碟,這樣備份簡單,不需要第三方的工具。備份在磁帶庫需要第三方工具。

三、備份的儲存空間?
    可以用作業系統命令df -lh 命令檢視空間,準備留給備份的空間大小。

四、什麼方式備份?
    用RMAN的增量備份(差量備份),這樣備份和恢復都比較簡單。所佔用的空間比較小。


測試環境:
1      作業系統:Redhat Linux 5
[oracle@mzl proc]$ cat /proc/version
Linux version 2.6.18-8.el5 (brewbuilder@ls20-bc2-14.build.redhat.com) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Fri Jan 26 14:15:21 EST 2007

2     資料庫版本:Oracle10gR2 32位
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

3     資料庫的名字:orcl
SQL> show parameter db_name;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      orcl

4  歸檔狀態
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     22
Next log sequence to archive   24
Current log sequence           24

5  啟用 FLASHBACK DATABASE 事件記錄
    這樣在不慎drop表時可以快速恢復。
SQL> select dbid,name,flashback_on,current_scn from v$database;

      DBID NAME      FLASHBACK_ON       CURRENT_SCN
---------- --------- ------------------ -----------
1172558471 ORCL      NO                     1307040
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  268435456 bytes
Fixed Size                  1218868 bytes
Variable Size              88082124 bytes
Database Buffers          171966464 bytes
Redo Buffers                7168000 bytes
Database mounted.
SQL> alter database flashback on;  

Database altered.

SQL> select dbid,name,flashback_on,current_scn from v$database;

      DBID NAME      FLASHBACK_ON       CURRENT_SCN
---------- --------- ------------------ -----------
1172558471 ORCL      YES                          0

SQL> alter database open;

Database altered.

6    啟動控制檔案的自動備份
    這樣在備份時或者表空間變化時,資料庫會自動備份控制檔案。
RMAN> configure controlfile autobackup on;

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

RMAN> show controlfile autobackup;

RMAN configuration parameters are:
CONFIGURE CONTROLFILE AUTOBACKUP ON;

7    資料庫啟動用spfile引數
    這樣備份時spfile會和控制檔案一起備份。
    檢視是否用spfile引數檔案:
SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string
VALUE的值為空,資料庫是用pfile檔案啟動的,如果有值,則為spfile啟動
建立spfile引數檔案
SQL> create spfile from pfile;

File created.

會在$oracle_home/dbs/下生成spfileSID.ora
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  268435456 bytes
Fixed Size                  1218868 bytes
Variable Size              88082124 bytes
Database Buffers          171966464 bytes
Redo Buffers                7168000 bytes
Database mounted.
Database opened.
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/10.2.0
                                                 /db_1/dbs/spfileORCL.ora

8   使用rman的冗餘策略,預設為3
RMAN> configure retention policy to redundancy 3;

new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
new RMAN configuration parameters are successfully stored

RMAN> show retention policy;  

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 3;

9    在/home/mzl/BackupDatabase/下建立backuplevel0.rcv和backuplevel1.rcv指令碼
backuplevel0.rcv內容:
#   script.:bakuplevel0.rcv
#   creater:mengzhaoliang
#   date:2008/6/10
#   desc:backup level0 database datafile in archive with rman

# connect database
export ORACLE_SID=ORCL
export PATH=/u01/app/oracle/product/10.2.0/db_1/bin
rman target/ << EOF_RMAN
run{
allocate channel c1 type disk;
backup incremental level 0 tag 'db0' format '/home/mzl/BackupDatabase/rmanbackup/db0_%d_%T_%s' database include current controlfile;
sql 'alter system archive log current';
backup filesperset 3 format '/home/mzl/BackupDatabase/rmanbackup/arch0_%d_%T_%s' archivelog all delete input;
release channel c1;
}
# end


backuplevel1.rcv內容:
#   script.:bakuplevel1.rcv
#   creater:mengzhaoliang
#   date:2008/6/10
#   desc:backup level1 database datafile in archive with rman

# connect database
export ORACLE_SID=ORCL
export PATH=/u01/app/oracle/product/10.2.0/db_1/bin
rman target/ << EOF_RMAN
run{
allocate channel c1 type disk;
backup incremental level 1 tag 'db1' format '/home/mzl/BackupDatabase/rmanbackup/db1_%d_%T_%s' database include current controlfile;
sql 'alter system archive log current';
backup filesperset 3 format '/home/mzl/BackupDatabase/rmanbackup/arch1_%d_%T_%s' archivelog all delete input;
release channel c1;
}
# end

    給這兩個指令碼授予執行的許可權:
[oracle@mzl BackupDatabase]$ chmod +x  *.rcv

(注意:要試執行指令碼:./backuplevel1.rcv)

11   用crontab指定執行時間
[oracle@mzl BackupDatabase]$ crontab -e
crontab: installing new crontab
[oracle@mzl BackupDatabase]$ crontab -l
0 1 * * 0  /home/mzl/BackupDatabase/backuplevel0.rcv
0 1 * * 3  /home/mzl/BackupDatabase/backuplevel0.rcv
0 1 * * 1-2  /home/mzl/BackupDatabase/backuplevel1.rcv
0 1 * * 4-6  /home/mzl/BackupDatabase/backuplevel1.rcv


週日和週三凌晨1:00執行0級備份,週一、二、四、五、六凌晨1:00執行1級備份


內容:
0 1 * * 0  /home/mzl/BackupDatabase/backuplevel0.rcv
0 1 * * 3  /home/mzl/BackupDatabase/backuplevel0.rcv
0 1 * * 1-2  /home/mzl/BackupDatabase/backuplevel1.rcv
0 1 * * 4-6  /home/mzl/BackupDatabase/backuplevel1.rcv



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-343267/,如需轉載,請註明出處,否則將追究法律責任。

相關文章