oracle 冷備和熱備指令碼

2021-09-17 02:14:45 字數 4589 閱讀 7177

指令碼放在/u01/scripts/coldscr/mikecold.sql

在資料庫執行時可以執行此指令碼來冷備。

set feedback off

set heading off

set verify off

set trimspool off

set echo off

settime

offset timing off

set pagesize 0

set linesize 200

define dir=

'/backup/cold/mike'

;define diroutmike=

'/u01/scripts/coldscr/mikecoldout.sql'

;spool &diroutmike

select

'!cp '

||name||

' &dir'

from v$datafile order

byfile

#;select

'!cp '

||name||

' &dir'

from v$controlfile;

spool off

;shutdown immediate;

@&diroutmike

startup;

指令碼放在/u01/scripts/hotscr/mikehot.sql

在資料庫執行時可以執行此指令碼來熱備。

set feedback off

set pagesize 0

set heading off

set verify off

set linesize 100

set trimspool on

set echo off

settime

offset timing off

undefine mikedir

undefine mikescp

define mikedir=

'/backup/hot'

define mikescp=

'/u01/scripts/hotscr/mikehotout.sql'

declare

cursor cur_tablespace is

select tablespace_name from dba_tablespaces where

status

<>

'read only' a

nd contents not

like

'%temp%'

;cursor cur_datafile(tn varchar2)

isselect 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(

'! cp '

||cd.file_name||

' &mikedir');

endloop

;dbms_output.put_line(

'alter tablespace '

||ct.tablespace_name||

' end backup;');

endloop

;end

;/

本**包括以下兩個檔案。

主檔案backup.bat,用來執行備份的批處理檔案,配置好引數,直接執行即可。

rem 設定oracle_sid

set oracle_sid=testdb

rem 設定備份目錄

set backup_dest_path=h:/oracle/oradata/testdbbackup/

rem 設定歸檔日誌目錄

set archive_dest_path=h:/oracle/oradata/testdb/archive/

rem 建立備份的sqlplus指令碼到mybackup.

sql檔案

sqlplus /nolog @createscript.sql

rem 執行備份

sqlplus /nolog @mybackup.sql

%backup_dest_path%

%archive_dest_path%

生成備份指令碼檔案createscript.sql

connect

/as sysdba

--關閉螢幕輸出

set term off

;--關閉輸出列頭資訊

set heading off

;--設定行長度

set linesize 500

;--關閉輸出統計行數資訊

set feedback off

;--關閉變數掃瞄

set scan off

;--開啟輸出

set serveroutput on size 100000;

spool off

--將生成的指令碼輸出到mybackup.sql檔案

spool mybackup.

sqldeclare

--讀取資料表空間

cursor cur_tbs is

select

distinct b.

*from v$datafile a, v$tablespace b

where a.ts# = b.ts#;

--讀取表空間資料檔案

cursor cur_datafile(its integer)is

select

*from v$datafile a where a.ts# = its;

--讀取控制檔案

cursor cur_controlfile is

select

*from v$controlfile;

--讀取重做日誌檔案

cursor cur_redofile is

select

*from v$logfile;

begin

--輸出連線資料庫命令

dbms_output.put_line(

'connect / as sysdba;');

for rec_tbs in cur_tbs loop

--輸出開始備份表空間命令

dbms_output.put_line(

'alter tablespace '

|| rec_tbs.name ||

' begin backup;');

for rec_datafile in cur_datafile(rec_tbs.ts#) loop

--輸出作業系統複製資料檔案命令

dbms_output.put_line(

'host copy /y "'

||rec_datafile.name||

'" "&1";');

endloop

;--輸出結束備份表空間命令

dbms_output.put_line(

'alter tablespace '

|| rec_tbs.name ||

' end backup;');

endloop

;for rec_controlfile in cur_controlfile loop

--輸出作業系統複製控制檔案命令

dbms_output.put_line(

'host copy /y "'

||rec_controlfile.name||

'" "&1";');

endloop

;--輸出切換日誌命令

dbms_output.put_line(

'alter system archive log current;');

--輸出備份歸檔日誌檔案命令

dbms_output.put_line(

'host move /y "&2*.*" "&1";');

for rec_redofile in cur_redofile loop

--輸出備份重做日誌檔案命令

dbms_output.put_line(

'host copy /y "'

||rec_redofile.member||

'" "&1";');

endloop

;--輸出退出sqlplus命令

dbms_output.put_line(

'exit;');

end;/

spool off

exit

;

Hadoop的冷備 熱備

冷備份 hadoop1.x namenode 主 secondarynamenode 從 在hadoop1.x中,secondarynamenode會按照時間閾值 比如24小時 或者edits日誌大小閾值 比如1g 週期性的將fsimage和edits合併成新的fsimage並替換,然後將最新的fs...

Oracle冷備步驟

冷備 在資料庫關閉狀態下完成物理系統的拷貝過程。非歸檔模式 1 得到資料庫執行的所有物理檔案 2 計畫內關閉資料庫 3 執行拷貝物理檔案到相應目錄 4 冷備完成後,啟動資料庫 指令碼如下 spool u02 back.sql select ho cp name u02 orcl from v dat...

遠端oracle熱備

一.遠端oracle熱備份命令 匯出 exp sys 密碼 庫 as sysdba full y file d backupfile 2pm 20170607.dmp 匯入 imp sys 密碼 庫 as sysdba full y file d backupfile 2pm 20170607.dm...