connect / as SYSDBA
--关闭屏幕输出
set term off;
--关闭输出列头信息
set heading off;
--设置行长度
set linesize 100;
--关闭输出统计行数信息
set feedback off;
--关闭变量扫描
SET SCAN off;
--关闭变量定义
SET DEFINE off;
--打开输出
SET SERVEROUTPUT ON SIZE 100000;
spool off
--将生成的脚本输出到mybackup.sql文件
spool mybackup.sql
declare
--读取数据文件
cursor cur_datafile is
select * from v$datafile;
--读取临时文件
cursor cur_tempfile is
select * from v$tempfile;
--读取控制文件
cursor cur_controlfile is
select * from v$controlfile;
--读取重做日志文件
cursor cur_redofile is
select * from v$logfile;
begin
--输出连接数据库命令
dbms_output.put_line('connect / as SYSDBA;');
--输出备份spfile文件命令
dbms_output.put_line('create pfile=''&1\pfile.ora'' from spfile;');
--输出关闭数据库命令
dbms_output.put_line('shutdown immediate;');
for rec_datafile in cur_datafile loop
--输出操作系统复制数据文件命令
dbms_output.put_line('host copy /Y "'||rec_datafile.name||'" "&1";');
end loop;
for rec_tempfile in cur_tempfile loop
--输出操作系统复制临时文件命令
dbms_output.put_line('host copy /Y "'||rec_tempfile.name||'" "&1";');
end loop;
for rec_controlfile in cur_controlfile loop
--输出操作系统复制控制文件命令
dbms_output.put_line('host copy /Y "'||rec_controlfile.name||'" "&1";');
end loop;
for rec_redofile in cur_redofile loop
--输出备份重做日志文件命令
dbms_output.put_line('host copy /Y "'||rec_redofile.member||'" "&1";');
end loop;
--输出启动数据库命令
dbms_output.put_line('startup;');
--输出退出sqlplus命令
dbms_output.put_line('exit;');
end;
/
spool off
exit;