`
itspace
  • 浏览: 978791 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ORACLE begin backup and tablespace full checkpoint

阅读更多
alter tablespace &name begin backup;其作用无非就是2点:
1、冻结住数据文件文件头scn,日志应用从冻结scn开始恢复
2、处于归档模式的数据库,可以在线拷贝数据文件,并在防止在数据文件拷贝过程中,出现分裂块。
下面研究一下begin backup和checkpoint的关系
版本为
引用
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
PL/SQL Release 9.2.0.4.0 - Production
CORE    9.2.0.3.0       Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production

创建一张测试表格
引用
SQL> alter system checkpoint;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> create table test.t as select * from sys.obj$;

Table created.

SQL> alter tablespace test begin backup;

Tablespace altered.

SQL> alter system switch logfile;

System altered.

SQL> select FILE_ID,BLOCK_ID,BLOCKS from dba_extents where SEGMENT_NAME='T' and OWNER='TEST' order by 1,2;

   FILE_ID   BLOCK_ID     BLOCKS
---------- ---------- ----------
        10          9          8
        10         17          8
        10         25          8
        10         33          8
        10         41          8
        10         49          8
        10         57          8
        10         65          8
        10         73          8
        10         81          8
        10         89          8

   FILE_ID   BLOCK_ID     BLOCKS
---------- ---------- ----------
        10         97          8
        10        105          8
        10        113          8
        10        121          8
        10        129          8
        11          9        128
        12          9        128

18 rows selected.


将begin backup命令发起时对应的scn dump 出来
引用
SQL> alter system dump logfile '/archlog/dbtest/arc_1_8004.dbf' layer 23 opcode 1;

System altered.

在跟踪文件可以看到
引用
REDO RECORD - Thread:1 RBA: 0x001f44.0000185b.0010 LEN: 0x0168 VLD: 0x02
SCN: 0x08dc.db658f3b SUBSCN:  1 07/10/2009 09:07:41
CHANGE #1 MEDIA RECOVERY MARKER SCN:0x0000.00000000 SEQ:  0 OP:23.1
Block Written - afn: 12 rdba: 0x03000002(12,2)
                   scn: 0x08dc.db658f2c seq: 0x02 flg:0x04
Block Written - afn: 12 rdba: 0x03000009(12,9)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 12 rdba: 0x03000003(12,3)
                   scn: 0x08dc.db658f2c seq: 0x01 flg:0x04
Block Written - afn: 12 rdba: 0x0300000a(12,10)
                   scn: 0x08dc.db658f31 seq: 0x02 flg:0x04
Block Written - afn: 11 rdba: 0x02c00002(11,2)
                   scn: 0x08dc.db658f28 seq: 0x02 flg:0x04
Block Written - afn: 11 rdba: 0x02c00009(11,9)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 11 rdba: 0x02c00003(11,3)
                   scn: 0x08dc.db658f28 seq: 0x01 flg:0x04
Block Written - afn: 11 rdba: 0x02c0000a(11,10)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x02800002(10,2)
                   scn: 0x08dc.db658f27 seq: 0x02 flg:0x04
Block Written - afn: 10 rdba: 0x0280000b(10,11)
                   scn: 0x08dc.db658f33 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x02800009(10,9)
                   scn: 0x08dc.db658f31 seq: 0x03 flg:0x04
Block Written - afn: 10 rdba: 0x02800029(10,41)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x02800049(10,73)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x02800069(10,105)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x02800003(10,3)
                   scn: 0x08dc.db658f27 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x0280000a(10,10)
                   scn: 0x08dc.db658f31 seq: 0x0c flg:0x04
Block Written - afn: 10 rdba: 0x02800019(10,25)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x02800039(10,57)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x02800059(10,89)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04
Block Written - afn: 10 rdba: 0x02800079(10,121)
                   scn: 0x08dc.db658f31 seq: 0x01 flg:0x04

可以看到begin backup并没有在表空间级别做全量checkpoint,再对该表空间做end backup,结果会怎么样呢?
引用
SQL> alter system switch logfile;

System altered.

SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /archlog/dbtest
Oldest online log sequence     8003
Next log sequence to archive   8005
Current log sequence           8005
SQL> delete from  test.t;

30135 rows deleted.

SQL> alter tablespace test end backup;

Tablespace altered.

SQL> alter system switch logfile;

System altered.

SQL> alter system dump logfile '/archlog/dbtest/arc_1_8004.dbf' layer 23 opcode 1;

System altered.

在跟踪文件从没有看到任何关于数据块写的信息,也就是说end backup没有对表空间级别做ckpt
引用
DUMP OF REDO FROM FILE '/archlog/dbtest/arc_1_8005.dbf'
Opcode 23.1 only
DBA's: (file # 0, block # 0) thru (file # 65534, block # 4194303)
RBA's: 0x000000.00000000.0000 thru 0xffffffff.ffffffff.ffff
SCN's scn: 0x0000.00000000 thru scn: 0xffff.ffffffff
Times: creation thru eternity
FILE HEADER:
        Software vsn=153092096=0x9200000, Compatibility Vsn=153092096=0x9200000
        Db ID=1066056642=0x3f8abbc2, Db Name='DBTEST'
        Activation ID=1073569894=0x3ffd6066
        Control Seq=272930=0x42a22, File size=204800=0x32000
        File Number=2, Blksiz=512, File Type=2 LOG
descrip:"Thread 0001, Seq# 0000008005, SCN 0x08dcdb658f42-0x08dcdb6591c6"
thread: 1 nab: 0x6a96 seq: 0x00001f45 hws: 0x2 eot: 0 dis: 0
reset logs count: 0x2892d6ec scn: 0x0883.2a4722f6
Low scn: 0x08dc.db658f42 07/10/2009 09:07:48
Next scn: 0x08dc.db6591c6 07/10/2009 09:08:51
Enabled scn: 0x0883.2a4722f6 03/05/2009 14:38:36
Thread closed scn: 0x08dc.db658f42 07/10/2009 09:07:48
Log format vsn: 0x8000000 Disk cksum: 0xc265 Calc cksum: 0xc265
Terminal Recovery Stamp scn: 0x0000.00000000 01/01/1988 00:00:00
Most recent redo scn: 0x0000.00000000
Largest LWN: 0 blocks
End-of-redo stream : No
Unprotected mode
Miscellaneous flags: 0x11
END OF REDO DUMP


从理论上来讲,对表空间做offline,就会对表空间做全量ckpt,我再对该表空间做offline
引用
SQL> alter tablespace test  offline;

Tablespace altered.

SQL> alter system switch logfile;

System altered.

SQL> alter system dump logfile '/archlog/dbtest/arc_1_8006.dbf' layer 23 opcode 1;

System altered.

在跟踪文件可以看到,将dba_extents涉及到得block全部dump出来了
引用
Block Written - afn: 11 rdba: 0x02c0005a(11,90)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c0005b(11,91)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c0005d(11,93)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c0005e(11,94)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c00060(11,96)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c00062(11,98)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c00064(11,100)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c00067(11,103)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c00069(11,105)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c0006b(11,107)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c0006e(11,110)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06
Block Written - afn: 11 rdba: 0x02c00070(11,112)
                   scn: 0x08dc.db6591bf seq: 0x01 flg:0x06

...

再来研究一下10g
引用
SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

SQL> select count(*) from ttt.ttt;

  COUNT(*)
----------
     50650

SQL> alter system checkpoint;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> select TABLESPACE_NAME,FILE_ID,BLOCK_ID,BLOCKS from dba_extents where SEGMENT_NAME='TTT' and OWNER='TTT'  order by 3,4;

TABLESPACE_NAME                   FILE_ID   BLOCK_ID     BLOCKS
------------------------------ ---------- ---------- ----------
TT                                      7        145          8
TT                                      7        153          8
TT                                      7        161          8
TT                                      7        169          8
TT                                      7        177          8
TT                                      7        185          8
TT                                      7        193          8
TT                                      7        201          8
TT                                      7        209          8
TT                                      7        217          8
TT                                      7        225          8

TABLESPACE_NAME                   FILE_ID   BLOCK_ID     BLOCKS
------------------------------ ---------- ---------- ----------
TT                                      7        233          8
TT                                      7        241          8
TT                                      7        249          8
TT                                      7        257          8
TT                                      7        521          8
TT                                      7        649        128
TT                                      7        777        128
TT                                      7        905        128
TT                                      7       1033        128

20 rows selected.

SQL> delete from ttt.ttt;

50650 rows deleted.

SQL> alter tablespace tt begin backup;

Tablespace altered.

SQL>  alter system dump logfile '/archlog/mctest/1_49401_679664461.dbf' layer 23 opcode 1;

System altered.

从相关跟踪文件,可以看到dba_extents涉及到得block全部刷新到数据文件中,即在10g中
begin backup是对表空间做全量ckpt的

引用

Block Written - afn: 7 rdba: 0x01c002d9 BFT:(1024,29360857) non-BFT:(7,729)
                   scn: 0x08dc.db69bb5a seq: 0x01 flg:0x06
Block Written - afn: 7 rdba: 0x01c002da BFT:(1024,29360858) non-BFT:(7,730)
                   scn: 0x08dc.db69bb5a seq: 0x01 flg:0x06
Block Written - afn: 7 rdba: 0x01c002db BFT:(1024,29360859) non-BFT:(7,731)
                   scn: 0x08dc.db69bb5a seq: 0x01 flg:0x06
Block Written - afn: 7 rdba: 0x01c002dc BFT:(1024,29360860) non-BFT:(7,732)
                   scn: 0x08dc.db69bb5a seq: 0x01 flg:0x06
Block Written - afn: 7 rdba: 0x01c002dd BFT:(1024,29360861) non-BFT:(7,733)
                   scn: 0x08dc.db69bb5a seq: 0x01 flg:0x06
Block Written - afn: 7 rdba: 0x01c002de BFT:(1024,29360862) non-BFT:(7,734)
                   scn: 0x08dc.db69bb5a seq: 0x01 flg:0x06
Block Written - afn: 7 rdba: 0x01c002df BFT:(1024,29360863) non-BFT:(7,735)
。。。
[ora10g@mcprod udump]$ cat mctest_ora_9400.trc|grep "non-BFT:(7"|wc -l
619


0
0
分享到:
评论

相关推荐

    ORACLE中的checkpoint

    3. **表空间备份或读只模式(Tablespace Backup/Read Only)**:在对表空间进行备份或将表空间设置为读只模式前,会触发Checkpoint,确保数据的完整性。 4. **手动触发**:DBA可以通过执行`ALTER SYSTEM CHECKPOINT...

    Oracle_create_tablespace语法详解.docx

    Oracle Create Tablespace 语法详解 本文将对 Oracle Create Tablespace 语法进行详细的解释和分析,从 undo 表空间到表空间的创建,DATAFILE 的设置,MININUM EXTENT,BLOCKSIZE,logging clause,FORCE LOGGING,...

    OCP 12c之03_12c_ocp_Backup_and_Recovery_Workshop

    文件标题和描述都指向了一个名为“OCP 12c之03_12c_ocp_Backup_and_Recovery_Workshop”的主题,这表明该文件可能是一个培训材料或教程,专门针对Oracle 12c版本中使用恢复管理器(RMAN)进行备份和恢复的实践工作坊...

    Oracle checkpoint 原理

    4. 使用ALTER TABLESPACE … BEGIN BACKUP命令将表空间置于热备份模式,或者将表空间脱机。这种检查点称为完全表空间检查点,只将热备份模式下表空间的脏缓冲区写入磁盘。 5. 当由初始化参数FAST_START_MTTR_TARGET...

    oracle lmt_tablespace 存储

    本文将深入探讨 Oracle 数据库中的本地管理表空间(Locally Managed Tablespace,简称 LMT)的概念、优势及其内部工作原理。LMT 是 Oracle 提供的一种高级表空间管理方式,它在数据文件级别管理存储空间,通过位图...

    创建Oracle表空间

    create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; 2. 创建数据表空间: 数据表空间是存储...

    oracle的基本语法

    根据提供的Oracle文档标题、描述及部分示例代码,可以总结出以下关于Oracle基本语法的关键知识点: ### Oracle 基本语法概述 Oracle是一种广泛使用的数据库管理系统,它支持SQL(Structured Query Language)语言...

    rlv方式增加oracle tablespace datafile

    rlv方式增加oracle tablespace datafile

    最全的oracle常用命令大全.txt

    WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME; 7、查看数据库库对象 select owner, object_type, status, count(*) count# from all_objects group by owner, object_...

    CREATE TABLESPACE命令详解

    ### CREATE TABLESPACE 命令详解 在数据库管理中,`CREATE TABLESPACE` 命令是用于创建新的表空间的基础指令。表空间是数据库逻辑存储结构中的一个基本单位,用于存储数据文件、索引等数据库对象。通过合理地规划和...

    windows下oracle数据库备份压缩&删除历史备份.rar

    2. **RMAN表空间备份**:如果只需要备份特定表空间,如用户数据存储的USERS表空间,可以使用`run { backup tablespace 'USERS'; }`命令。 3. **RMAN数据文件备份**:针对单个数据文件,使用`run { backup filespiec...

    关于Oracle数据库热备份脚本深入剖析

    Oracle提供了多种备份方式,包括冷备份(Cold Backup)、热备份(Hot Backup)、RMAN(Restore and Recovery Manager)备份以及IMP(Import)等。 - **冷备份**:在数据库关闭的情况下进行的备份,适用于快速恢复场景,但...

    oracle tablespace usage

    AND p.tablespace_name (+) = h.tablespace_name AND f.file_id = h.file_id AND f.tablespace_name = h.tablespace_name GROUP BY h.tablespace_name ORDER BY 1; ``` 这部分查询专门针对临时表空间进行统计: ...

    oracle_rman增量备份脚本

    ### Oracle RMAN 增量备份技术详解 #### 一、概述 在Oracle数据库管理中,备份是非常重要的环节之一,而RMAN(Recovery Manager)是Oracle提供的一个强大的备份工具,能够实现对整个数据库或者单独的数据文件进行...

    英文原版-PeopleSoft for the Oracle DBA 2nd Edition

    You’ll find full coverage of key database issues such as indexing, connectivity, and tablespace usage as they apply to PeopleSoft. Kurtz also provides some of the best advice and information to be ...

    Oracle_tablespace_(表空间)的创建、删除、修改、扩展及检查等

    Oracle 表空间(tablespace)的创建、删除、修改、扩展及检查等 Oracle 表空间是 Oracle 数据库中的一种逻辑存储结构,它决定数据库实体的空间分配、设置数据库用户的空间份额、控制数据库部分数据的可用性、分布...

    oracle表空间管理

    ### Oracle表空间管理 在Oracle数据库管理中,表空间管理是一项重要的任务,它涉及如何有效地分配、使用和管理存储资源。表空间是Oracle数据库中数据物理存储的基本单位,每个数据库至少包含一个表空间。理解并掌握...

    oracle backup

    ### Oracle数据库备份技术详解 #### 一、Oracle的数据备份机制 Oracle数据库的备份与恢复机制是其核心功能之一,旨在确保数据库在面对各种潜在故障时能够保持数据的一致性和完整性。Oracle提供了两种主要的备份...

    Oracle数据库精讲之数据库管理_ Oracle数据库管理视频

    第十四讲:oracle Partitioned Tables and Indexes管理 第十五讲:oracle view管理 第十六讲:oracle sequences管理 第十七讲:oracle 触发器管理 第十八讲:oracle 用户管理 第十九讲:oracle 安装部署管理

    Oracle用户(user)和表空间(tablespace).pdf

    本文主要探讨了 Oracle 用户(user)和表空间(tablespace)的相关概念、创建、配置、修改以及删除等核心操作,旨在为初学者提供一个清晰的学习路径。 首先,Oracle 用户是数据库的访问实体,它代表了数据库的认证...

Global site tag (gtag.js) - Google Analytics