[20150308]热备份和数据库检查点.txt

简介: [20150308]热备份和数据库检查点.txt --今天看书,提到在热备份前,会做了一个数据文件检查点操作. --实际上这个很好理解: 开始热备份时候,做了一个数据文件检查点操作,因为热备份时备份要产生的日志很大,数据库必须要知道那个时候开始,做这项工作。

[20150308]热备份和数据库检查点.txt

--今天看书,提到在热备份前,会做了一个数据文件检查点操作.
--实际上这个很好理解:

开始热备份时候,做了一个数据文件检查点操作,因为热备份时备份要产生的日志很大,数据库必须要知道那个时候开始,做这项工作。
保证了在热备份期间,只有在发出热备份命令之后的时间里修改的块可能会被写到数据文件上。

--自己做一个简单检查:

SCOTT@test> @ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.3.0     Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

RMAN> report schema ;
Report of database schema for database with db_unique_name TEST
List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    780      SYSTEM               ***     /u01/app/oracle11g/oradata/test/system01.dbf
2    1000     SYSAUX               ***     /u01/app/oracle11g/oradata/test/sysaux01.dbf
3    848      UNDOTBS1             ***     /u01/app/oracle11g/oradata/test/undotbs01.dbf
4    864      USERS                ***     /u01/app/oracle11g/oradata/test/users01.dbf
5    100      EXAMPLE              ***     /u01/app/oracle11g/oradata/test/example01.dbf
6    64       RMAN                 ***     /u01/app/oracle11g/oradata/test/rman01.dbf
7    64       TOOLS                ***     /u01/app/oracle11g/oradata/test/tools01.dbf
8    64       TEST                 ***     /u01/app/oracle11g/oradata/test/test01.dbf
9    64       TESTMSSM             ***     /u01/app/oracle11g/oradata/test/testmssm01.dbf
10   4        UNDOTBS2             ***     /u01/app/oracle11g/oradata/test/undotbs02.dbf
11   102      TEST16K              ***     /u01/app/oracle11g/oradata/test/test16k01.dbf
12   1        TOOLSX               ***     /u01/app/oracle11g/oradata/test/tools01x.dbf
13   50       TBS_TS1              ***     /u01/app/oracle11g/oradata/test/tbs_ts1_01.dbf
14   127      TBS_TS2              ***     /u01/app/oracle11g/oradata/test/tbs_ts2_01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    339      TEMP                 32767       /u01/app/oracle11g/oradata/test/temp01.dbf

SCOTT@test> SELECT file#, CHECKPOINT_CHANGE#, CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT  FROM v$datafile_header;
       FILE# CHECKPOINT_CHANGE# CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT
------------ ------------------ ---------------- ----------------- ------- ----------------
           1        12005514399                7        3011113647 ONLINE         856622640
           2        12005514399             2140        3011113647 ONLINE         856622634
           3        12005514399       3241444492        3011113647 ONLINE         856622635
           4        12005514399            17993        3011113647 ONLINE         856622644
           5        12005514399           973735        3011113647 ONLINE         856622637
           6        12005514399          1412559        3011113647 ONLINE         856622603
           7        12005514399          4383251        3011113647 ONLINE         856622632
           8        12005514399         13169364        3011113647 ONLINE         856622634
           9        12005514399       3223747107        3011113647 ONLINE         856622632
          10        12005514399      12002485849        3011113647 ONLINE               151
          11        12005514399      11673111577        3011113647 ONLINE              1117
          12        12005514399      11994962958        3011113647 ONLINE               475
          13        12005514399      11992635787        3011113647 ONLINE               588
          14        12005514399      11992670578        3011113647 ONLINE               586
14 rows selected.

--对file#=4 表空间users做热备份。当前CHECKPOINT_CHANGE#=12005514399,CHECKPOINT_COUNT=856622644.

2.开始测试:
SCOTT@test> select rowid,dept.* from dept;
ROWID                    DEPTNO DNAME          LOC
------------------ ------------ -------------- -------------
AABBrlAAEAAAAWDAAB           10 ACCOUNTING     new york
AABBrlAAEAAAAWDAAC           20 RESEARCH       dallas1
AABBrlAAEAAAAWDAAD           30 SALES          chicago
AABBrlAAEAAAAWDAAE           40 OPERATIONS     boston

SCOTT@test> @lookup_rowid AABBrlAAEAAAAWDAAB
      OBJECT         FILE        BLOCK          ROW DBA                  TEXT
------------ ------------ ------------ ------------ -------------------- ----------------------------------------
      269029            4         1411            1 4,1411               alter system dump datafile 4 block 1411
                                                                        
SCOTT@test> update dept set loc=upper(loc) ;
4 rows updated.
--不提交。切换另外的会话,注意执行如下命令alter tablespace users begin backup ;会隐含发commit命令。

SCOTT@test> alter tablespace users begin backup ;
Tablespace altered.

SCOTT@test> SELECT file#, CHECKPOINT_CHANGE#, CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT  FROM v$datafile_header;
       FILE# CHECKPOINT_CHANGE# CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT
------------ ------------------ ---------------- ----------------- ------- ----------------
           1        12005514399                7        3011113647 ONLINE         856622640
           2        12005514399             2140        3011113647 ONLINE         856622634
           3        12005514399       3241444492        3011113647 ONLINE         856622635
           4        12005514724            17993        3011113647 ONLINE         856622645
           5        12005514399           973735        3011113647 ONLINE         856622637
           6        12005514399          1412559        3011113647 ONLINE         856622603
           7        12005514399          4383251        3011113647 ONLINE         856622632
           8        12005514399         13169364        3011113647 ONLINE         856622634
           9        12005514399       3223747107        3011113647 ONLINE         856622632
          10        12005514399      12002485849        3011113647 ONLINE               151
          11        12005514399      11673111577        3011113647 ONLINE              1117
          12        12005514399      11994962958        3011113647 ONLINE               475
          13        12005514399      11992635787        3011113647 ONLINE               588
          14        12005514399      11992670578        3011113647 ONLINE               586

14 rows selected.

--注意看file#=4,CHECKPOINT_CHANGE#现在是12005514724,CHECKPOINT_COUNT=856622645,CHECKPOINT_COUNT也增加1次。

--通过bbed 观察,我并没有执行alter systenm checkpoint,可以发现bbed观察对应数据块,可以发现修改信息已经写磁盘。
BBED> set dba  4,1411
        DBA             0x01000583 (16778627 4,1411)

BBED> p *kdbr[1]
rowdata[151]
------------
ub1 rowdata[151]                            @8146     0x2c

BBED> x /rncc
rowdata[151]                                @8146
------------
flag@8146: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@8147: 0x03
cols@8148:    3

col    0[2] @8149: 10
col   1[10] @8152: ACCOUNTING
col    2[8] @8163: NEW YORK

SCOTT@test> set numw 12
SCOTT@test> select * from v$backup ;
       FILE# STATUS                  CHANGE# TIME
------------ ------------------ ------------ -------------------
           1 NOT ACTIVE                    0
           2 NOT ACTIVE                    0
           3 NOT ACTIVE                    0
           4 ACTIVE              12005514724 2015-03-09 08:43:00
           5 NOT ACTIVE                    0
           6 NOT ACTIVE           3011239824 2012-11-08 15:43:19
           7 NOT ACTIVE                    0
           8 NOT ACTIVE           3268230043 2014-03-20 10:13:21
           9 NOT ACTIVE                    0
          10 NOT ACTIVE                    0
          11 NOT ACTIVE                    0
          12 NOT ACTIVE                    0
          13 NOT ACTIVE                    0
          14 NOT ACTIVE                    0

14 rows selected.

--结束热备份:
SCOTT@test> alter tablespace users end backup ;
Tablespace altered.

SCOTT@test> SELECT file#, CHECKPOINT_CHANGE#, CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT  FROM v$datafile_header;
       FILE# CHECKPOINT_CHANGE# CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT
------------ ------------------ ---------------- ----------------- ------- ----------------
           1        12005514399                7        3011113647 ONLINE         856622640
           2        12005514399             2140        3011113647 ONLINE         856622634
           3        12005514399       3241444492        3011113647 ONLINE         856622635
           4        12005514724            17993        3011113647 ONLINE         856622646
           5        12005514399           973735        3011113647 ONLINE         856622637
           6        12005514399          1412559        3011113647 ONLINE         856622603
           7        12005514399          4383251        3011113647 ONLINE         856622632
           8        12005514399         13169364        3011113647 ONLINE         856622634
           9        12005514399       3223747107        3011113647 ONLINE         856622632
          10        12005514399      12002485849        3011113647 ONLINE               151
          11        12005514399      11673111577        3011113647 ONLINE              1117
          12        12005514399      11994962958        3011113647 ONLINE               475
          13        12005514399      11992635787        3011113647 ONLINE               588
          14        12005514399      11992670578        3011113647 ONLINE               586
14 rows selected.

--注意看file#=4,CHECKPOINT_CHANGE#现在是12005514724(没变),CHECKPOINT_COUNT=856622646,CHECKPOINT_COUNT又增加1次。

SCOTT@test> rollback ;
Rollback complete.

SCOTT@test> select rowid,dept.* from dept;
ROWID                    DEPTNO DNAME          LOC
------------------ ------------ -------------- -------------
AABBrlAAEAAAAWDAAB           10 ACCOUNTING     new york
AABBrlAAEAAAAWDAAC           20 RESEARCH       dallas1
AABBrlAAEAAAAWDAAD           30 SALES          chicago
AABBrlAAEAAAAWDAAE           40 OPERATIONS     boston

--可以发现在做热备份前,数据库会对涉及到的做了一个数据文件检查点操作.

目录
相关文章
|
3月前
|
存储 关系型数据库 MySQL
mysql数据库备份与恢复
MySQL数据库的备份与恢复是确保数据安全性和业务连续性的关键操作。
113 4
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
129 68
|
4月前
|
SQL 关系型数据库 MySQL
如何快速在表级别做同构或者异构数据库之间的数据迁移/备份
【8月更文挑战第17天】本文介绍在同构与异构数据库间快速迁移/备份表级数据的方法。同构迁移可利用数据库自带工具(如MySQL的`mysqldump`)或管理软件(如phpMyAdmin);异构迁移则推荐使用ETL工具(如Pentaho Data Integration)或数据库复制工具(如SymmetricDS),亦可通过编程方式实现。实施前需测试以确保数据完整准确,并注意处理兼容性问题。
164 4
|
1月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
85 3
|
1月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
40 3
|
2月前
|
存储 定位技术 数据库
介绍一下数据库的备份和恢复策略
【10月更文挑战第21】介绍一下数据库的备份和恢复策略
|
1月前
|
数据库
【赵渝强老师】数据库的备份方式
备份数据库是指将数据库中的数据及相关信息保存起来,以便在系统故障时恢复。备份对象不仅限于数据本身,还包括数据库对象、用户权限等。根据备份策略、类型和模式的不同,可分为整体/部分备份、完全/增量备份、一致/非一致备份。文中还附有相关视频讲解。
|
3月前
|
关系型数据库 MySQL 数据库
Navicat备份数据库
涵盖`Navicat`数据库备份、数据安全及备份策略等主题。文库采用精美主题,提升阅读体验。
47 1
Navicat备份数据库
|
3月前
|
SQL 监控 关系型数据库
MySQL数据库中如何检查一条SQL语句是否被回滚
检查MySQL中的SQL语句是否被回滚需要综合使用日志分析、事务状态监控和事务控制语句。理解和应用这些工具和命令,可以有效地管理和验证数据库事务的执行情况,确保数据的一致性和系统的稳定性。此外,熟悉事务的ACID属性和正确设置事务隔离级别对于预防数据问题和解决事务冲突同样重要。
97 2
|
3月前
|
SQL 数据库 数据安全/隐私保护
如何手动备份数据库?
如何手动备份数据库?
134 1