指令碼放在/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...