备份打开的数据库

       本练习中,将在DENVER数据库打开时,创建一个该数据库的完整备份。为此,使用ALTER TABLESPACE...BEGIN BACKUP命令,对表空间中的数据文件实施一个打开的备份。使用ALTER TABLESPACE...END BACKUP或ALTER DATABASE END BACKUP命令,使表空间脱离热备模式。当每个表空间都处于备份模式时,拷贝该表空间对应的数据文件。除了拷贝每个联机数据以外,一个完整的数据库打开备份还包括对当前控制文件的备份拷贝。

任务描述

时间(分钟)

1. 产生数据库活动

5

2. 创建备份脚本

15

3. 运行热备份

5

4. 检查备份命令

5

总计时间

30

       在确信数据库已经有了一些操作活动之后,创建一个脚本文件,其中包含了完成一个合法的完整打开数据库备份所需的所有命令。运行备份脚本,然后再检查已完成的工作。

       任务1:产生数据库活动

       向Tina的DATE_LOG表中插入一些行。如果用的是还原,请确认恢复已经结束。确信借助任务系统,一些行被插入到表中。可以将任务的时间间隔设为每分钟一次,以增加数据库的操作活动。

       任务2:创建热备份脚本

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

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

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

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

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

5)       对于每个表空间,重复2)~4)。

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

7)       备份当前控制文件

       在运行热备份脚本时,使用SQL*Plus命令以及PL/SQL来创建一个有关SQL命令和操作系统命令的可执行文件,该文件(我们称之为备份命令文件)还将创建一个文件用来显示输出结果,用到的文件有:

² 备份脚本文件(open_backup.sql)  这是一个在文件编辑器(后面列出)中创建的文件。

² 备份命令文件(open_backup_commands.sql) 该文件是在open_backup.sql中创建并执行的。

² 备份命令文件输出文件(open_backup_output_sql)   该文件捕捉open_backup_commands.sql执行的那个文件的输出结果。

       查看open_backup.sql的内容,注意其中有些行的注释。

[oracle@oracle11gR2 ~]$ more open_backup.sql 
set feedback off heading off verify off trimspool on
set pagesize 0 linesize 100
define dir = '/tmp/backup/hot'
define fil = '/tmp/open_backup_commands.sql'
define spo = '&dir/open_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

执行open_backup.sql脚本:

sys@DENVER> @open_backup
*** Spooling to /tmp/open_backup_commands.sql
spool /tmp/backup/hot/open_backup_output.lst
archive log list;
alter system switch logfile;
alter tablespace SYSTEM begin backup;
host cp /u01/oradata/denver/system01.dbf /tmp/backup/hot
alter tablespace SYSTEM end backup;
alter tablespace SYSAUX begin backup;
host cp /u01/oradata/denver/sysaux01.dbf /tmp/backup/hot
alter tablespace SYSAUX end backup;
alter tablespace UNDOTBS1 begin backup;
host cp /u01/oradata/denver/undotbs01.dbf /tmp/backup/hot
alter tablespace UNDOTBS1 end backup;
alter tablespace TEMP begin backup;
alter tablespace TEMP end backup;
alter tablespace USERS begin backup;
host cp /u01/oradata/denver/users01.dbf /tmp/backup/hot
host cp /u01/oradata/denver/user02.dbf /tmp/backup/hot
alter tablespace USERS end backup;
alter tablespace EXAMPLE begin backup;
host cp /u01/oradata/denver/example01.dbf /tmp/backup/hot
alter tablespace EXAMPLE end backup;
alter tablespace PERFSTAT begin backup;
host cp /u01/oradata/denver/perfstat_01.dbf /tmp/backup/hot
alter tablespace PERFSTAT end backup;
alter tablespace TOOLS begin backup;
host cp /u01/oradata/denver/tools01.dbf /tmp/backup/hot
alter tablespace TOOLS end backup;
alter system switch logfile;
alter database backup controlfile to "/tmp/backup/hot/backup.ctl" REUSE;
archive log list;
spool off;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/admin/denver/archdest
Oldest online log sequence     6
Next log sequence to archive   8
Current log sequence           8



alter tablespace TEMP begin backup
*
ERROR at line 1:
ORA-03217: invalid option for alter of TEMPORARY TABLESPACE


alter tablespace TEMP end backup
*
ERROR at line 1:
ORA-03217: invalid option for alter of TEMPORARY TABLESPACE




alter database backup controlfile to "/tmp/backup/hot/backup.ctl" REUSE
                                     *
ERROR at line 1:
ORA-02236: invalid file name


Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/admin/denver/archdest
Oldest online log sequence     8
Next log sequence to archive   9
Current log sequence           10



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值