备份打开的数据库脚本

SET feedback OFF
SET pagesize 0
SET heading OFF
SET verify OFF
SET linesize 100
SET trimspool ON
define dir = 'c:\oracle\oradata\backup'
define fil = '&dir\backup_commands.sql'
define spo = '&dir\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 

 
创建数据库中所有文件的一个热备份,准备生成的找开的数据库脚本将完成以下工作:

1.切换日志文件,确保在备份前所做的所有更改都已被归档。

2.将一个表空间设置为热备份模式。

3.用操作系统命令拷贝表空间中的文件。

4.将该表空间脱离热备份模式。

5.对于每个表空间,重复步骤2-4

6.切换日志文件,确保备份后所做的所有更改都已被归档。

7.备份当前控制文件。

posted @   jimeper  阅读(403)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示