[20141202]改变文件大小与检查点.txt

[20141202]改变文件大小与检查点.txt

Resize datafile会触发一个文件级检查点,真的是这样吗?自己做一个测试:

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

$ rlrman
Recovery Manager: Release 11.2.0.3.0 - Production on Tue Dec 2 08:47:25 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: TEST (DBID=2071943378)
RMAN> report schema ;
using target database control file instead of recovery catalog
Report of database schema for database with db_unique_name TEST

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    770      SYSTEM               ***     /u01/app/oracle11g/oradata/test/system01.dbf
2    920      SYSAUX               ***     /u01/app/oracle11g/oradata/test/sysaux01.dbf
3    718      UNDOTBS1             ***     /u01/app/oracle11g/oradata/test/undotbs01.dbf
4    768      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   1        UNDOTBS2             ***     /u01/app/oracle11g/oradata/test/undotbs02.dbf
11   101      TEST16K              ***     /u01/app/oracle11g/oradata/test/test16k01.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          11991495125                    7           3011113647 ONLINE             856621853
                   2          11991495125                 2140           3011113647 ONLINE             856621847
                   3          11991495125           3241444492           3011113647 ONLINE             856621848
                   4          11991495125                17993           3011113647 ONLINE             856621853
                   5          11991495125               973735           3011113647 ONLINE             856621850
                   6          11991495125              1412559           3011113647 ONLINE             856621803
                   7          11991495125              4383251           3011113647 ONLINE             856621845
                   8          11991495125             13169364           3011113647 ONLINE             856621847
                   9          11991495125           3223747107           3011113647 ONLINE             856621845
                  10          11991495125           3223804181           3011113647 ONLINE             856621845
                  11          11991495125          11673111577           3011113647 ONLINE                   329

11 rows selected.

--修改file#11 ,datafile='/u01/app/oracle11g/oradata/test/test16k01.dbf',大小现在101M。

SCOTT@test> alter database datafile '/u01/app/oracle11g/oradata/test/test16k01.dbf' resize 100m;
Database 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          11991495125                    7           3011113647 ONLINE             856621853
                   2          11991495125                 2140           3011113647 ONLINE             856621847
                   3          11991495125           3241444492           3011113647 ONLINE             856621848
                   4          11991495125                17993           3011113647 ONLINE             856621853
                   5          11991495125               973735           3011113647 ONLINE             856621850
                   6          11991495125              1412559           3011113647 ONLINE             856621803
                   7          11991495125              4383251           3011113647 ONLINE             856621845
                   8          11991495125             13169364           3011113647 ONLINE             856621847
                   9          11991495125           3223747107           3011113647 ONLINE             856621845
                  10          11991495125           3223804181           3011113647 ONLINE             856621845
                  11          11991495750          11673111577           3011113647 ONLINE                   330
11 rows selected.

--可以发现CHECKPOINT_CHANGE#从11991495125=>11991495750.CHECKPOINT_COUNT增加1.

--但是如果增加文件大小呢?

SCOTT@test> alter database datafile '/u01/app/oracle11g/oradata/test/test16k01.dbf' resize 102m;
Database 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          11991495125                    7           3011113647 ONLINE             856621853
                   2          11991495125                 2140           3011113647 ONLINE             856621847
                   3          11991495125           3241444492           3011113647 ONLINE             856621848
                   4          11991495125                17993           3011113647 ONLINE             856621853
                   5          11991495125               973735           3011113647 ONLINE             856621850
                   6          11991495125              1412559           3011113647 ONLINE             856621803
                   7          11991495125              4383251           3011113647 ONLINE             856621845
                   8          11991495125             13169364           3011113647 ONLINE             856621847
                   9          11991495125           3223747107           3011113647 ONLINE             856621845
                  10          11991495125           3223804181           3011113647 ONLINE             856621845
                  11          11991495750          11673111577           3011113647 ONLINE                   330

11 rows selected.

--可以发现CHECKPOINT_CHANGE#保持不变.CHECKPOINT_COUNT也没有变化.

SCOTT@test> host ls -l /u01/app/oracle11g/oradata/test/test16k01.dbf
-rw-r-----  1 oracle11g oinstall 106971136 Dec  2 08:50 /u01/app/oracle11g/oradata/test/test16k01.dbf

-- 102*1024*1024+16384=106971136 ,大小一致。
-- 说明:数据文件大小是定义的值+1个数据块,这个数据文件块大小是16K的。

总结:
1.数据文件改小,才会触发一个文件级检查点.
2.数据文件改大,不会触发一个文件级检查点.

时间: 2024-10-23 18:21:31

[20141202]改变文件大小与检查点.txt的相关文章

[20150911]关于增量检查点.txt

[20150911]关于增量检查点.txt --昨天被人问及我们的测试库,增量检查点的问题,我告诉对方,我设置了参数log_checkpoints_to_alert=true,当写增量检查点时会 --同时写入alert*.log日志文件,被问及时间间隔问题,实际上增量检查点的写入与许多因素相关,比如如果数据库修改很多,数据缓存 --大小,redo file的大小以及数量都存在关系. --但是我的测试库基本我自己用,没事看看增量检查点的间隔是多少,会与什么参数有关. $ grep -B1 "^In

[20150910]关于对象级检查点.txt

[20150910]关于对象级检查点.txt --oracle从8i以后基本使用增量检查点取代原来的检查点模式,但是如果一个对象表被drop,truncate时也要将这些脏块写文件. --这个叫Object level Checkpoint,如何验证这个过程,实际上很简单仅仅需要检查v$bh或者x$bh视图,或者转储脏块看看里面 --的内容是否存在变化,来验证这个过程,还是通过例子来说明: --我个人喜欢使用bbed观察,效果与块转储一直. 1.建立测试环境: SCOTT@test> @ver1

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

[20150308]热备份和数据库检查点.txt --今天看书,提到在热备份前,会做了一个数据文件检查点操作. --实际上这个很好理解: 开始热备份时候,做了一个数据文件检查点操作,因为热备份时备份要产生的日志很大,数据库必须要知道那个时候开始,做这项工作. 保证了在热备份期间,只有在发出热备份命令之后的时间里修改的块可能会被写到数据文件上. --自己做一个简单检查: SCOTT@test> @ver1 PORT_STRING                    VERSION       

[20121127]rman备份数据文件大小与truncate.txt

[20121127]rman备份数据文件大小与truncate.txt 记得以前看rman的书,rman仅仅备份已经格式话的块,如果这样一个表被truncate后,即使空间回收了.但是在rman备份时,备份大小不会变画太多,这些前面使用的块一定会备份. 自己做一个测试看看. 1.建立测试环境:SQL> select * from v$version where rownumBANNER--------------------------------------------------------

[20130618]改变dbid.txt_just play!.txt

[20130618]改变dbid.txt_just play!.txt 参考链接:http://www.pythian.com/blog/how-to-choose-your-oracle-database-id-dbid/ 修改数据库的dbid,一般可以选择nid工具,或者alter database open resetlogs打开.但是无法控制修改为什么数值!按照上面的链接做一个测试,不要在生产系统上做这种操作. SQL>  select name, dbid from v$databas

ftruncate(改变文件大小)

ftruncate(改变文件大小) 定义函数 int ftruncate(int fd,off_t length); 函数说明 ftruncate()会将参数fd指定的文件大小改为参数length指定的大小. 参数fd为已打开的文件描述词,而且必须是以写入模式打开的文件. 如果原来的文件大小比参数length大,则超过的部分会被删去. 返回值 执行成功则返回0,失败返回-1,错误原因存于errno. 错误代码 EBADF 参数fd文件描述词为无效的或该文件已关闭. EINVAL 参数fd 为一s

mfc txt文件大小-MFC获取txt文件大小问题

问题描述 MFC获取txt文件大小问题 我要写出数据到txt文件中,当txt文件达到一定大小,比如说1M时,关闭当前文档,重新写入一个新的txt文档,应该用什么样的思路去实现呢?新手,求大神指教!

[20141202]11g审计sys.dba_audit_session

[20141202]11g审计sys.dba_audit_session.txt --今天在例行检查,使用Oracle Enterprise Manager的时候(我自己很少使用这个东西),在检查点击某处时候,我感觉很慢. --我看了后台的执行语句: /* Formatted on 2014/12/2 14:57:59 (QP5 v5.252.13127.32867) */ SELECT TO_CHAR (CURRENT_TIMESTAMP AT TIME ZONE 'GMT',        

[20120801]bvi二进制编辑工具.txt

[20120801]bvi二进制编辑工具.txt 工作需要,需要编辑一些DMP文件(oracle的exp导出文件),主要目的是转换字符集.这些文件比较大,使用vim不是很方便. 具体操作如下:1.从如下站点下载对应版本:http://pkgs.repoforge.org/bvi/我的机器是centos 6.2.下载如下版本: http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/bvi-1.3.2-1.el6.rf.x86_64.rpm 安装如下