在归档模式(NOARCHIVE)下,如何手工热备数据库和表空间?

如何在归档模式(NOARCHIVE)下,手工热备数据库和表空间?


相关实验

1.工作准备:由于NOARCHIVE 模式下不支持手工热备,所以需先检查数据库是否处于归档模式(ARCHIVE)
archive log list;
如果不是,需要一致性关闭后重启数据库到mount状态下设置。
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> archive log list;
SQL> alter database open;


2.手工数据库热备

手工非一致性备份(热备份)的执行方式及热备份的监控(v$backup) 
SQL> alter database begin backup;    
然后对整个库做热备份,即手工COPY数据库相关文件到
SQL> alter database end backup;


3.表空间热备
相关知识点:
v$datafile中显示的数据文件的信息,这些数据是从oracle的控制文件中获得的
v$datafile_header是从数据文件的头部读取的
在正常运行下,两者的检查点SCN值是一致的,即以下查询结果ctrf_scn和dfh_scn值相同

select a.file#,
       a.TABLESPACE_NAME,
       a.name,
       a.checkpoint_change# dfh_scn,
       b.checkpoint_change# ctrf_scn
  from v$datafile_header a, v$datafile b
 where a.file# = b.file#;


       FILE#    TABLESPACE_NAME    NAME    DFH_SCN    CTRF_SCN
1    1    SYSTEM    /u01/app/oracle/oradata/orcl/system01.dbf    3992729    3992729
2    2    SYSAUX    /u01/app/oracle/oradata/orcl/sysaux01.dbf    3992729    3992729
3    3    UNDOTBS1    /u01/app/oracle/oradata/orcl/undotbs01.dbf    3992729    3992729
4    4    USERS    /u01/app/oracle/oradata/orcl/users01.dbf    3992729    3992729
5    5    RMAN_TS    /u01/app/oracle/oradata/orcl/rmants.dbf    3992729    3992729
6    6    EXAMPLE    /u01/app/oracle/oradata/orcl/example.dbf    3992729    3992729
7    7    TEST_TS    /u01/app/oracle/oradata/orcl/test_ts.dbf    3992729    3992729


此时v$datafile_header a, v$datafile b 中的SCN号一致。
但当datafile出现损坏时,可以用v$datafile_header确定应用重做的起始SCN(即上述查询别名dfh_scn,),而v$datafile可确定应用重做的结束SCN值(ctrf_scn)。


手工非一致性备份(热备份)的执行方式及热备份的监控(v$backup) 
SQL> alter tablespace TEST_TS begin backup;    
手工对对表空间对应数据文件进行备份

手工备份数据文件期间 ,scn 被冻结,不发生变化。

select a.file#,
       a.TABLESPACE_NAME,
       a.name,
       a.checkpoint_change# dfh_scn,
       b.checkpoint_change# ctrf_scn
  from v$datafile_header a, v$datafile b
 where a.file# = b.file#;


       FILE#    TABLESPACE_NAME    NAME    DFH_SCN    CTRF_SCN
1    1    SYSTEM    /u01/app/oracle/oradata/orcl/system01.dbf    3992729    3992729
2    2    SYSAUX    /u01/app/oracle/oradata/orcl/sysaux01.dbf    3992729    3992729
3    3    UNDOTBS1    /u01/app/oracle/oradata/orcl/undotbs01.dbf    3992729    3992729
4    4    USERS    /u01/app/oracle/oradata/orcl/users01.dbf    3992729    3992729
5    5    RMAN_TS    /u01/app/oracle/oradata/orcl/rmants.dbf    3992729    3992729
6    6    EXAMPLE    /u01/app/oracle/oradata/orcl/example.dbf    3992729    3992729
7    7    TEST_TS    /u01/app/oracle/oradata/orcl/test_ts.dbf    3993077    3993077

发现TEST_TS对应记录的SCN与别的不同

SQL> select * from v$backup;

       FILE#    STATUS    CHANGE#    TIME
1    1    NOT ACTIVE    0    
2    2    NOT ACTIVE    0    
3    3    NOT ACTIVE    0    
4    4    NOT ACTIVE    0    
5    5    NOT ACTIVE    0    
6    6    NOT ACTIVE    0    
7    7    ACTIVE    3993077    2018-9-18 9:11:56

7 rows selected.

STATUS 是 ACTIVE,表示可以备份相应的数据文件。并且对于其中的数据块 DBWN 仍然可以刷新。
通过操作系统命令CP完成数据文件的备份

$cd /u01/app/oracle/oradata/orcl/
$cp test_ts.dbf test_ts.bak

备份完毕,执行 end backup
 
SQL> alter tablespace TEST_TS end backup;

insert into test.test_tab values (3);

select * from test.test_tab;

alter system checkpoint;


select a.file#,
       a.TABLESPACE_NAME,
       a.name,
       a.checkpoint_change# dfh_scn,
       b.checkpoint_change# ctrf_scn
  from v$datafile_header a, v$datafile b
 where a.file# = b.file#;


       FILE#    TABLESPACE_NAME    NAME    DFH_SCN    CTRF_SCN
1    1    SYSTEM    /u01/app/oracle/oradata/orcl/system01.dbf    3993202    3993202
2    2    SYSAUX    /u01/app/oracle/oradata/orcl/sysaux01.dbf    3993202    3993202
3    3    UNDOTBS1    /u01/app/oracle/oradata/orcl/undotbs01.dbf    3993202    3993202
4    4    USERS    /u01/app/oracle/oradata/orcl/users01.dbf    3993202    3993202
5    5    RMAN_TS    /u01/app/oracle/oradata/orcl/rmants.dbf    3993202    3993202
6    6    EXAMPLE    /u01/app/oracle/oradata/orcl/example.dbf    3993202    3993202
7    7    TEST_TS    /u01/app/oracle/oradata/orcl/test_ts.dbf    3993202    3993202

此时v$datafile_header a, v$datafile b 中的SCN号一致,且不同数据文件SCN号一致。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值