`
xitonga
  • 浏览: 611014 次
文章分类
社区版块
存档分类
最新评论

oracle热备份用户管理备份之块撕裂

 
阅读更多

oracle热备份-----用户管理备份

基础知识及讲解:http://blog.csdn.net/wanghui5767260/article/details/20627639

用户管理备份:是指用户通过将表空间置于热备份模式,然后通过操作系统工具进行拷贝,拷贝结束后表空间热备份模式。

1.表空间单独存盘

2.冻结文件头 其他块继续使用此时拷贝只有文件头是好块

3.改变了日志的行为



实验步骤:
1. 创建一个带有序列号的大表作为测试表 tyger
2. 没有开启表空间热备模式
① 查看当前的日志产生量
②更新测试表中的第3行数据,并查看日志产生量
③ 更新完第3行数据产生的日志量 新的日志产生量-旧的日志产生量
3. 开启表空间热备模式
① 在次更新第3行数据,并查看日志产生量
② 对比开启热备模式更新操作产生的日志 会发现产生大量日志
③ 更新第10000行数据,并查看日志产生量
④ 对比发现 更新操作也产生了大量的日志
⑤ 更新第10001行数据,并查看日志产生量
⑥ 发现这次更新操作反而产生了很少的日志
1. 创建一个带序列号的大表tyger,这样相邻行都会在一个块里,序列号相距比较远的就不会在同一个块中

SYS@ORCL>create table tyger tablespace users as select rownum rn,o.*
2 from dba_objects o;


Table created.

2. 查看当前日志产生量(没有开启表空间热备模式

SYS@ORCL>select ms.statistic#,name,value
2 from v$mystat ms,v$statname sn
3 where ms.statistic#=sn.statistic# and name='redo size';


STATISTIC# NAME VALUE
---------- -------------------------------------------------- ----------
134 redo size 12245956


3. 更行 表tyger 中的第3行数据

SYS@ORCL>update tyger set object_id=99999 where rn=3;


1 row updated.


SYS@ORCL>commit;


Commit complete.


4.查看更新第3行数据后的日志产生量

SYS@ORCL>select ms.statistic#,name,value
2 from v$mystat ms,v$statname sn
3 where ms.statistic#=sn.statistic# and name='redo size';


STATISTIC# NAME VALUE
---------- -------------------------------------------------- ----------
134 redo size 12246604


5. 计算更新第3行产生的日志量

SYS@ORCL>select 12246604-12245956 from dual;


12246604-12245956
-----------------
648 //未开启热备模式


6. 开启users表空间热备模式

SYS@ORCL>alter tablespace users begin backup;


Tablespace altered.


7. 继续更新第3行的ID

SYS@ORCL>update tyger set object_id=88888 where rn=3;


1 row updated.


SYS@ORCL>commit;


Commit complete.


8.查看当前的日志产生量

SYS@ORCL>select ms.statistic#,name,value
2 from v$mystat ms,v$statname sn
3 where ms.statistic#=sn.statistic# and name='redo size';


STATISTIC# NAME VALUE
---------- -------------------------------------------------- ----------
134 redo size 12256856


9. 计算在开启热备模式后 更新第3行数据产生的日志量
(明显高于没有开启热备模式的日志量10252 >> 648)

SYS@ORCL>select 12256856-12246604 from dual;


12256856-12246604
-----------------
10252 //开启热备模式后产生大量的日志量


10. 更新第10000行的ID查看更新后的日志量

SYS@ORCL>update tyger set object_id=77777 where rn=10000;


1 row updated.


SYS@ORCL>commit;


Commit complete.


SYS@ORCL>select ms.statistic#,name,value
2 from v$mystat ms,v$statname sn
3 where ms.statistic#=sn.statistic# and name='redo size';


STATISTIC# NAME VALUE
---------- -------------------------------------------------- ----------
134 redo size 12265660


11. 计算更新了第10000行后的日志产生量

SYS@ORCL>select 12265660-12256856 from dual;


12265660-12256856
-----------------
8804 //首次更新第10000行产生大量日志量


12. 继续更新第10001行的数据查看日志产生量

SYS@ORCL>update tyger set object_id=98765 where rn=10001;


1 row updated.


SYS@ORCL>select ms.statistic#,name,value
2 from v$mystat ms,v$statname sn
3 where ms.statistic#=sn.statistic# and name='redo size';


STATISTIC# NAME VALUE
---------- -------------------------------------------------- ----------
134 redo size 12266140

13. 此时发现更新完第10000行后继续更新第10001行数据日志量很少

SYS@ORCL>select 12266140-12265660 from dual;


12266140-12265660
-----------------
480 //再次更新第10001行产生很少的日志量



结论:
通过用户管理备份方式备份数据文件时,会将需要备份的数据文件头部的SCN号冻结,但是其他块还是好块,可以继续写入数据,更新10000行数据时将所在数据块头部冻结,所以会产生大量日志,但是更新10001行数据时,此时的数据文件头部已经被冻结,所以产生的日志量会很少。所以通过热备-用户管理备份方式 改变了日志的行为




图中所示:对于一个正在进行热备--用户管理备份的数据块,此时的数据块块头的SCN号已经被冻结,
当备份过程中突然数据库崩溃,此时该块状态:数据块块头冻结,数据块一半已备份,另一半未备份,
这就是块撕裂 重新开启数据库需要对该块执行重新热备份。





分享到:
评论

相关推荐

    Oracle热备份脚本

    Oracle热备份是指在数据库正常运行时进行的数据备份操作,它允许在不影响用户访问的情况下,对数据库进行完整或部分的备份。热备份的优势在于能够在不停止服务的情况下保护数据,但需要注意的是,热备份只能备份到...

    oracle热备份原理分析

    1. RMAN(恢复管理器):Oracle提供RMAN作为热备份的主要工具。它支持多种备份类型,包括完整数据库备份、表空间备份、数据文件备份等。RMAN可以利用服务器进程或归档日志完成热备份,同时提供了命令行接口和脚本化...

    oracle热备份

    Oracle热备份是一种在数据库运行状态下进行的备份方法,它允许你在不影响用户操作的情况下获取数据库的完整备份。这种备份策略在数据库系统中至关重要,因为它确保了业务连续性,减少了因备份而产生的停机时间。 ...

    oracle热备份代码

    1、制作日志镜像,以备还原 2、control_files加镜像 3、冷备份(数据会丢失,目录结构也需相同) 4、热备份(前提,开启日志模式)

    oracle的冷备份和热备份方法介绍

    热备份可以实现更细粒度的恢复,比如按表或用户恢复。热备份的执行涉及一系列命令,包括开启归档模式,备份数据文件和控制文件,然后在完成后关闭归档模式。 总的来说,冷备份适合对业务连续性要求不高的环境,而热...

    oracle双机热备份方法

    oracle双机热备份方法oracle双机热备份方法oracle双机热备份方法

    Oracle 冷备份与热备份的区别

    ### Oracle冷备份与热备份的区别 #### 物理备份与逻辑备份的概念 在数据库领域,备份是一项非常重要的工作,它可以确保在系统发生故障时能够快速恢复数据,减少数据丢失的风险。Oracle作为一款广泛使用的数据库管理...

    oracle 批量备份多个用户

    oracle 批量备份多个用户 能同时备份多个脚本 在user.txt 中添加用户列表即可

    ORACLE 基于时间点热备份

    ### ORACLE 基于时间点热备份 #### 概述 在数据库管理与维护过程中,备份是一项极其重要的任务,特别是在企业级应用中,确保数据的安全性和可用性至关重要。Oracle数据库提供了多种备份策略来满足不同场景的需求。...

    oracle的冷热备份

    Oracle数据库作为业界广泛使用的数据库管理系统之一,提供了多种备份与恢复机制来确保数据的安全性和可用性。其中,“冷备份”(Cold Backup)与“热备份”(Hot Backup)是两种基本且重要的备份方式。这两种备份...

    oracle自动备份脚本

    在IT行业中,数据库的安全与数据的完整性至关重要,Oracle数据库作为全球领先的数据库管理系统之一,其数据保护机制备受关注。本文将围绕“Oracle自动备份脚本”这一主题,深入探讨如何利用脚本实现Oracle数据库的...

    oracle数据备份工具,主要对oracle数据库进行自动备份

    oracle数据备份工具,主要对oracle数据库进行自动备份

    oracle自动备份工具

    Oracle自动备份工具是一款专为Oracle数据库设计的实用备份解决方案,尤其适合那些希望简化数据库备份流程的用户。该工具依赖于.NET Framework 2.0运行环境,确保了在各种Windows操作系统上的兼容性和稳定性。 ...

    oracle冷备份和热备份

    Oracle数据库的备份是确保数据安全和业务连续性的重要环节,主要分为冷备份和热备份两种方式。 冷备份是在数据库正常关闭的状态下进行的,这意味着在备份期间,数据库必须是不工作的。这种备份方法非常快速,因为只...

    oracle备份

    比如使用export实用程序导出数据库对象、使用Oracle备份数据库、使用Oracle对称复制、使用Oracle并行服务器、使用Oracle冷备份、使用Oracle热备份等各种备份方法都有其优缺点、适用的场合和相应的软硬件要求。...

    ORACLE 完全热备份小教程

    2. **执行RMAN备份命令**:利用Oracle的恢复管理器(RMAN),通过`BACKUP DATABASE`命令来执行完全热备份。这一步骤可能根据具体的数据库配置和需求有所不同,例如,可能需要指定备份的格式、压缩选项、备份的副本...

    oracle 常用的备份方式及备份策略

    Oracle 备份策略是数据库管理员的重要任务之一,通过备份可以确保数据库的安全性和可靠性。本文将详细介绍 Oracle 备份策略,包括备份的重要性、备份分类、冷备份、热备份、逻辑备份等内容。 了解备份的重要性 ...

Global site tag (gtag.js) - Google Analytics