电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

简单在线备份 script


发布日期:2024/2/14
 

Backup

rem

rem Filename: backupsql

rem Purpose:Generate script to do a simple online database backup

rem Notes:Adjust the copy_cmnd and copy_dest variables and run from

rem sqlplus Uncomment last few lines to do the actual backup

rem Author: Frank Naude Oracle FAQ

rem

set serveroutput on

set trimspool on

set line

set head off

set feed off

spool backupcmd

declare

copy_cmnd constant varchar() := cp; Use ocopy for NT

copy_dest constant varchar() := /backup/; C:\BACKUP\ for NT

dbnamevarchar();

logmode varchar();

begin

select name log_mode

into dbname logmode

from sysv_$database;

if logmode <> ARCHIVELOG then

raise_application_error(

ERROR: Database must be in ARCHIVELOG mode!!!);

return;

end if;

dbms_outputput_line(spool backup||dbname||||

to_char(sysdate ddMonyy)||log);

Loop through tablespaces

for c in (select tablespace_name ts

from sysdba_tablespaces)

loop

dbms_outputput_line(alter tablespace ||cts|| begin backup;);

Loop through tablespaces data files

for c in (select file_name fil

from sysdba_data_files

wheretablespace_name = cts)

loop

dbms_outputput_line(!||copy_cmnd|| ||cfil|| ||copy_dest);

end loop;

dbms_outputput_line(alter tablespace ||cts|| end backup;);

end loop;

Backup controlfile and switch logfiles

dbms_outputput_line(alter database backup controlfile to trace;);

dbms_outputput_line(alter database backup controlfile to ||||

copy_dest||control||dbname||||

to_char(sysdateDDMonYYHHMI)||||;);

dbms_outputput_line(alter system switch logfile;);

dbms_outputput_line(spool off);

end;

/

spool off

set head on

set feed on

set serveroutput off

Unremark/uncomment the following line to run the backup script

@backupcmd

exit

End Backup

rem

rem Filename: end_backupsql

rem Purpose:Take database data files out of backup mode

rem Notes: Run from SVRMGRL

rem Author: Frank Naude Oracle FAQ

rem

connect internal

spool end_backuplog

select alter database datafile ||fname|| end backup;

from v$datafile f v$backup b

where bfile# = ffile#

andbstatus = ACTIVE

/

spool off

! grep ^alter end_backuplog >end_backuplog

@end_backuplog

! rm end_bacluplog

! rm end_backuplog

exit

或者使用这个sql

rem

rem Filename: end_backupsql

rem Purpose:This script will create a file called end_backup_scriptsql

rem and run it to take all tablespaces out of backup mode

rem Author: Frank Naude Oracle FAQ

rem

column cmd format a heading Text

set feedback off

set headingoff

set pagesize

spool end_backup_scriptsql

select alter tablespace ||atablespace_name|| end backup; cmd

from sysdba_data_files a sysv_$backup b

wherebstatus = ACTIVE

andbfile#= afile_id

group by atablespace_name

/

spool off

set feedback on

set headingon

set pagesize

set termouton

start end_backup_scriptsql

#将所有错误记录到一个table里

rem

rem Filename: dberrorsql

rem Purpose:Log all database errors to a table

rem Oraclei or above/ DBA or CREATE ANY TRIGGER privs/ and

remGRANT SELECT ON SYSV_$SESSION required

rem Date: Mar

rem Author: Nico Booyse ()

rem

drop trigger log_errors_trig;

drop table log_errors_tab;

create table log_errors_tab (

error varchar()

timestamp date

usernamevarchar()

osuservarchar()

machine varchar()

process varchar()

program varchar());

create or replace trigger log_errors_trig

after servererror on database

declare

var_user varchar();

var_osuser varchar();

var_machinevarchar();

var_processvarchar();

var_programvarchar();

begin

select username osuser machine process program

into var_user var_osuser var_machine var_process var_program

from sysv_$session

whereaudsid = userenv(sessionid);

insert into log_errors_tab

values(dbms_standardserver_error()sysdatevar_user

var_osuservar_machinevar_processvar_program);

end;

/

上一篇:如何编写排序菜单sort

下一篇:核心( Kernel )编译与 Lilo 多重开机