備份&恢復系列之二:在linux中對oracle進行熱備份的指令碼!
在www.itpub.net上看到piner的Oracle備份&恢復案例,寫得非常好!因為有很具體的步驟,就在自己的資料庫中測試了一下:
測試環境:
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 資料庫版本:Oracle10g
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> select file#,status,enabled,name from v$datafile;
FILE# STATUS ENABLED NAME
---------- ------- ---------- ------------------------------------------
1 SYSTEM READ WRITE /u01/app/oracle/oradata/orcl/system01.dbf
2 ONLINE READ WRITE /u01/app/oracle/oradata/orcl/undotbs01.dbf
3 ONLINE READ WRITE /u01/app/oracle/oradata/orcl/sysaux01.dbf
4 ONLINE READ WRITE /u01/app/oracle/oradata/orcl/users01.dbf
5 ONLINE READ WRITE /u01/app/oracle/oradata/orcl/example01.dbf
5 控制檔案的所在位置
SQL> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- ------------------------------------------ --- ---------- --------------
/u01/app/oracle/oradata/orcl/control01.ctl NO 16384 430
/u01/app/oracle/oradata/orcl/control02.ctl NO 16384 430
/u01/app/oracle/oradata/orcl/control03.ctl NO 16384 430
6 重做日誌檔案位置
SQL> col member format a45
SQL> l
1* select * from v$logfile
SQL> /
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- --------------------------------------------- ---
3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log NO
2 STALE ONLINE /u01/app/oracle/oradata/orcl/redo02.log NO
1 STALE ONLINE /u01/app/oracle/oradata/orcl/redo01.log NO
7 我在/home/mzl/BackupDatabase/目錄下寫個hotbak.sql指令碼
[oracle@mzl proc]$ vi /home/mzl/BackupDatabase/hotbak.sql
指令碼內容如下:
#rem script.:hotbak.sql
#rem creater:mengzhaoliang
#rem data:2008/2/4
#rem desc:backup all database datafile in archive
#enter database
$ORACLE_HOME/bin/sqlplus "/as sysdba" <alter system archive log current;
#start
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/system01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/undotbs01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/users01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/sysaux01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/example01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
#backup control file
#binary
alter database backup controlfile to '/home/mzl/BackupDatabase/controlbinarybackup';
#ascii
alter database backup controlfile to trace;
alter system archive log current;
<
8 在linux啟動一個終端執行該hotbak.sql指令碼
[oracle@mzl BackupDatabase]$ ./hotbak.sql
熱備份完畢!
附上piner的說明:
說明:
1、熱備份必須在資料庫歸檔方式下才可以執行
2、以上指令碼可以在資料庫執行狀態下備份資料庫所有的資料檔案(除了臨時資料檔案),沒有必要備份聯機日誌。
3、歸檔日誌至少需要一次完整備份之後的所有日誌。
4、如果以上命令沒有成功依次執行,那麼備份也是無效的,如連線資料庫不成功,那麼備份則無效。
測試環境:
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 資料庫版本:Oracle10g
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> select file#,status,enabled,name from v$datafile;
FILE# STATUS ENABLED NAME
---------- ------- ---------- ------------------------------------------
1 SYSTEM READ WRITE /u01/app/oracle/oradata/orcl/system01.dbf
2 ONLINE READ WRITE /u01/app/oracle/oradata/orcl/undotbs01.dbf
3 ONLINE READ WRITE /u01/app/oracle/oradata/orcl/sysaux01.dbf
4 ONLINE READ WRITE /u01/app/oracle/oradata/orcl/users01.dbf
5 ONLINE READ WRITE /u01/app/oracle/oradata/orcl/example01.dbf
5 控制檔案的所在位置
SQL> select * from v$controlfile;
STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- ------------------------------------------ --- ---------- --------------
/u01/app/oracle/oradata/orcl/control01.ctl NO 16384 430
/u01/app/oracle/oradata/orcl/control02.ctl NO 16384 430
/u01/app/oracle/oradata/orcl/control03.ctl NO 16384 430
6 重做日誌檔案位置
SQL> col member format a45
SQL> l
1* select * from v$logfile
SQL> /
GROUP# STATUS TYPE MEMBER IS_
---------- ------- ------- --------------------------------------------- ---
3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log NO
2 STALE ONLINE /u01/app/oracle/oradata/orcl/redo02.log NO
1 STALE ONLINE /u01/app/oracle/oradata/orcl/redo01.log NO
7 我在/home/mzl/BackupDatabase/目錄下寫個hotbak.sql指令碼
[oracle@mzl proc]$ vi /home/mzl/BackupDatabase/hotbak.sql
指令碼內容如下:
#rem script.:hotbak.sql
#rem creater:mengzhaoliang
#rem data:2008/2/4
#rem desc:backup all database datafile in archive
#enter database
$ORACLE_HOME/bin/sqlplus "/as sysdba" <
#start
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/system01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/undotbs01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/users01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/sysaux01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
alter tablespace system begin backup;
!cp /u01/app/oracle/oradata/orcl/example01.dbf /home/mzl/BackupDatabase/;
alter tablespace system end backup;
#backup control file
#binary
alter database backup controlfile to '/home/mzl/BackupDatabase/controlbinarybackup';
#ascii
alter database backup controlfile to trace;
alter system archive log current;
<
8 在linux啟動一個終端執行該hotbak.sql指令碼
[oracle@mzl BackupDatabase]$ ./hotbak.sql
熱備份完畢!
附上piner的說明:
說明:
1、熱備份必須在資料庫歸檔方式下才可以執行
2、以上指令碼可以在資料庫執行狀態下備份資料庫所有的資料檔案(除了臨時資料檔案),沒有必要備份聯機日誌。
3、歸檔日誌至少需要一次完整備份之後的所有日誌。
4、如果以上命令沒有成功依次執行,那麼備份也是無效的,如連線資料庫不成功,那麼備份則無效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-168314/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份&恢復系列之三:在linux中對oracle用rman指令碼備份!LinuxOracle指令碼
- 備份&恢復系列之一:怎樣在linux中寫對oracle的冷備份指令碼!LinuxOracle指令碼
- 備份與恢復系列 七 續 catalog中的備份指令碼指令碼
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- linux下oracle熱備份指令碼LinuxOracle指令碼
- 循序漸進oracle第7章:備份與恢復之RMAN完整備份指令碼Oracle指令碼
- Oracle物理熱備份指令碼(ZT)Oracle指令碼
- 使用mysqldump對mysql進行備份和恢復MySql
- 使用xtrabackup對mysql進行備份和恢復MySql
- 備份與恢復系列 十一 控制檔案的備份與恢復
- 【物理熱備】(下)備份恢復系統表空間 手工備份恢復
- 【MySQL】Xtrabackup備份及恢復指令碼MySql指令碼
- RMAN備份恢復測試指令碼指令碼
- 使用NetBackup進行oracle備份和恢復Oracle
- Oracle 聯機備份 離線備份 物理備份 恢復Oracle
- oracle for linux 備份指令碼OracleLinux指令碼
- 生成熱備份指令碼指令碼
- Oracle SCN機制———在備份與恢復中Oracle
- 【Mongo】Mongodump 與 mongorestore對mongo進行備份恢復GoREST
- oracle rman備份驗證和備份/恢復進度監控Oracle
- 對二所ATC的MySQL進行 備份與恢復MySql
- Oracle 備份恢復概念Oracle
- oracle備份恢復PPTOracle
- Oracle 備份和恢復Oracle
- ORACLE備份&恢復案例Oracle
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- ORACLE備份指令碼Oracle指令碼
- oracle 備份指令碼Oracle指令碼
- 備份與恢復系列 十 引數檔案spfile的備份與恢復
- Linux中SVN的備份與恢復Linux
- Oracle學習系列—資料庫備份—熱備份Oracle資料庫
- 【備份恢復】從備份恢復資料庫資料庫
- 【管理篇備份恢復】備份恢復基礎
- 資料庫備份與異機恢復——熱備份方式資料庫
- ORACLE備份和恢復 - 邏輯備份 exp/impOracle
- 對read only表空間進行熱備份和使用備份的controlfile進行恢復時的一點總結!
- 【RMAN】RMAN備份恢復2 RMAN熱備指令碼與crontab計劃任務指令碼
- Oracle用指令碼執行備份Oracle指令碼