linux下oracle熱備份指令碼
環境:linux redhat 5 oracle 10.2.0.1
備份指令碼:open_backup.sql 所在目錄:/u01/open_backup
指令碼內容:
set feedback off pagesize 0 heading off verify off linesize 100 trimspool on
define dir='/u01/open_backup'
define fil='/u01/open_backup/open_backup_commands.sql'
define spo='&dir/open_backup_output.lst'
prompt *** Spooling to &fil
set serveroutput on
spool &fil
prompt spool &spo
prompt archive log list;;
prompt alter system switch logfile;;
DECLARE
CURSOR cur_tablespace IS
SELECT tablespace_name FROM dba_tablespaces WHERE status <> 'READ ONLY';
CURSOR cur_datafile (tn VARCHAR) IS
SELECT file_name
FROM dba_data_files
WHERE tablespace_name=tn;
BEGIN
FOR ct IN cur_tablespace LOOP
dbms_output.put_line('alter tablespace '||ct.tablespace_name ||' begin backup;');
FOR cd IN cur_datafile(ct.tablespace_name) LOOP
dbms_output.put_line('host cp '||cd.file_name ||' &dir');
END LOOP;
dbms_output.put_line('alter tablespace '||ct.tablespace_name||' end backup;');
END LOOP;
END;
/
prompt alter system switch logfile;;
prompt alter database backup controlfile to '&dir/backup.ctl' REUSE;;
prompt archive log list;;
prompt spool off;;
spool off;
@&fil
經過測試,可以成功執行.
在資料庫執行狀態備份資料,執行sqlplus>@/u01/open_backup.sql 即可
如果需要備份引數檔案的話:
如:
SQL> create pfile='/u01/open_backup/initorcl.ora' from spfile='/u01/app/oracle/product/10.2.0/db_1/dbs/spfileorcl.ora';
建立歸檔檔案指令碼:archive_backup.sql
目錄:/u01/open_backup/archive/目錄下:
內容:
define dir='/u01/open_backup/archive'
define fil='/u01/open_backup/archive/archive_backup_commands.sql'
spool &fil
prompt archive log next;;
select 'host mv '||name ||' &dir'
from v$archived_log
where completion_time>=trunc(sysdate)-1
and completion_time
spool off;
@&fil
在資料庫open下執行
SQL>@/u01/open_backup/archive/archive_backup.sql
即可
把昨天的歸檔的所有日誌移動到/u01/open_backup/archive/目錄下
備份指令碼:open_backup.sql 所在目錄:/u01/open_backup
指令碼內容:
set feedback off pagesize 0 heading off verify off linesize 100 trimspool on
define dir='/u01/open_backup'
define fil='/u01/open_backup/open_backup_commands.sql'
define spo='&dir/open_backup_output.lst'
prompt *** Spooling to &fil
set serveroutput on
spool &fil
prompt spool &spo
prompt archive log list;;
prompt alter system switch logfile;;
DECLARE
CURSOR cur_tablespace IS
SELECT tablespace_name FROM dba_tablespaces WHERE status <> 'READ ONLY';
CURSOR cur_datafile (tn VARCHAR) IS
SELECT file_name
FROM dba_data_files
WHERE tablespace_name=tn;
BEGIN
FOR ct IN cur_tablespace LOOP
dbms_output.put_line('alter tablespace '||ct.tablespace_name ||' begin backup;');
FOR cd IN cur_datafile(ct.tablespace_name) LOOP
dbms_output.put_line('host cp '||cd.file_name ||' &dir');
END LOOP;
dbms_output.put_line('alter tablespace '||ct.tablespace_name||' end backup;');
END LOOP;
END;
/
prompt alter system switch logfile;;
prompt alter database backup controlfile to '&dir/backup.ctl' REUSE;;
prompt archive log list;;
prompt spool off;;
spool off;
@&fil
經過測試,可以成功執行.
在資料庫執行狀態備份資料,執行sqlplus>@/u01/open_backup.sql 即可
如果需要備份引數檔案的話:
如:
SQL> create pfile='/u01/open_backup/initorcl.ora' from spfile='/u01/app/oracle/product/10.2.0/db_1/dbs/spfileorcl.ora';
建立歸檔檔案指令碼:archive_backup.sql
目錄:/u01/open_backup/archive/目錄下:
內容:
define dir='/u01/open_backup/archive'
define fil='/u01/open_backup/archive/archive_backup_commands.sql'
spool &fil
prompt archive log next;;
select 'host mv '||name ||' &dir'
from v$archived_log
where completion_time>=trunc(sysdate)-1
and completion_time
@&fil
在資料庫open下執行
SQL>@/u01/open_backup/archive/archive_backup.sql
即可
把昨天的歸檔的所有日誌移動到/u01/open_backup/archive/目錄下
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12778571/viewspace-201898/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle物理熱備份指令碼(ZT)Oracle指令碼
- oracle for linux 備份指令碼OracleLinux指令碼
- 生成熱備份指令碼指令碼
- oracle 熱備指令碼 .Oracle指令碼
- linux 下RMAN備份shell指令碼Linux指令碼
- windows 下的Oracle 冷備份指令碼WindowsOracle指令碼
- ORACLE備份指令碼Oracle指令碼
- oracle 備份指令碼Oracle指令碼
- oracle的熱備指令碼Oracle指令碼
- 備份&恢復系列之二:在linux中對oracle進行熱備份的指令碼!LinuxOracle指令碼
- suse下oracle的自動備份指令碼Oracle指令碼
- ORACLE日常備份指令碼Oracle指令碼
- Oracle 集中備份指令碼Oracle指令碼
- oracle RMAN備份指令碼Oracle指令碼
- oracle_備份指令碼Oracle指令碼
- Linux 平臺下 Oracle 資料泵備份(expdp) SHELL 指令碼LinuxOracle指令碼
- 關於Oracle資料庫熱備份指令碼深入剖析Oracle資料庫指令碼
- Windows下RMAN備份指令碼Windows指令碼
- Oracle冷備份(一致備份)指令碼Oracle指令碼
- [Oracle] rman備份指令碼(2)Oracle指令碼
- Oracle邏輯備份指令碼Oracle指令碼
- oracle rman備份指令碼收集Oracle指令碼
- Oracle物理冷備份指令碼Oracle指令碼
- linux下rman增量備份指令碼以及指令碼自動執行Linux指令碼
- 【Oracle指令碼】-很不錯的Windows下資料庫備份EXP指令碼Oracle指令碼Windows資料庫
- Oracle 熱備份Oracle
- windows和unix平臺下Oracle冷備份指令碼WindowsOracle指令碼
- Linux 平臺下 RMAN 全備 和 增量備份 shell 指令碼Linux指令碼
- 分享Oracle Rman的備份指令碼Oracle指令碼
- ORACLE常用定時備份指令碼Oracle指令碼
- oracle自動冷備份指令碼Oracle指令碼
- oracle rman 定時備份指令碼Oracle指令碼
- ORACLE自動備份shell指令碼Oracle指令碼
- Oracle用指令碼執行備份Oracle指令碼
- [Oracle] rman備份的指令碼(1)Oracle指令碼
- ORACLE RMAN備份的指令碼配置Oracle指令碼
- oracle備份指令碼_user_passwordOracle指令碼
- RAC模式下的備份策略以及RMAN備份指令碼模式指令碼