[20171208]rman与truncate3.txt

[20171208]rman与truncate3.txt

--//前几天测试truncate表依旧备份一部分信息,测试几次确定备份8extent.当时的测试几个extents是相邻的.
--//今天补充测试如果数据分布是离散的,情况是否一样?

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

CREATE TABLESPACE T01 DATAFILE
  '/mnt/ramdisk/book/T01.dbf' SIZE 21M AUTOEXTEND OFF
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

create table t01a tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('A',26,'A') name from dual connect by level<=100;
create table t02  tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('B',26,'B') name from dual connect by level<=2e4;
create table t01b tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('A',26,'A') name from dual connect by level<=100;
create table t03  tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('C',26,'C') name from dual connect by level<=2e4;
create table t01c tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('A',26,'A') name from dual connect by level<=100;
create table t04  tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('D',26,'D') name from dual connect by level<=2e4;
create table t01d tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('A',26,'A') name from dual connect by level<=100;
create table t05  tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('E',26,'E') name from dual connect by level<=2e4;
create table t01e tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('A',26,'A') name from dual connect by level<=100;

drop table t01a purge ;
drop table t01b purge ;
drop table t01c purge ;
drop table t01d purge ;
drop table t01e purge ;

create table t01 tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('Z',26,'Z') name from dual connect by level<=1e5;

SCOTT@book> column PARTITION_NAME noprint
SCOTT@book> select * from dba_extents where segment_name='T01' order by block_id;
OWNER  SEGMENT_NAME SEGMENT_TYPE       TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID   BYTES BLOCKS RELATIVE_FNO
------ ------------ ------------------ --------------- --------- ------- -------- ------- ------ ------------
SCOTT  T01          TABLE              T01                     0       7      128   65536      8            7
SCOTT  T01          TABLE              T01                     1       7      264   65536      8            7
SCOTT  T01          TABLE              T01                     2       7      400   65536      8            7
SCOTT  T01          TABLE              T01                     3       7      536   65536      8            7
SCOTT  T01          TABLE              T01                     4       7      672   65536      8            7
SCOTT  T01          TABLE              T01                     5       7      680   65536      8            7
SCOTT  T01          TABLE              T01                     6       7      688   65536      8            7
SCOTT  T01          TABLE              T01                     7       7      696   65536      8            7
SCOTT  T01          TABLE              T01                     8       7      704   65536      8            7
SCOTT  T01          TABLE              T01                     9       7      712   65536      8            7
SCOTT  T01          TABLE              T01                    10       7      720   65536      8            7
SCOTT  T01          TABLE              T01                    11       7      728   65536      8            7
SCOTT  T01          TABLE              T01                    12       7      736   65536      8            7
SCOTT  T01          TABLE              T01                    13       7      744   65536      8            7
SCOTT  T01          TABLE              T01                    14       7      752   65536      8            7
SCOTT  T01          TABLE              T01                    15       7      760   65536      8            7
SCOTT  T01          TABLE              T01                    16       7      768 1048576    128            7
SCOTT  T01          TABLE              T01                    17       7      896 1048576    128            7
SCOTT  T01          TABLE              T01                    18       7     1024 1048576    128            7
SCOTT  T01          TABLE              T01                    19       7     1152 1048576    128            7
20 rows selected.

--//这样表T01的数据分布相对离散.看看做truncate备份那些信息.
truncate table t01 ;
alter system checkpoint;
alter system checkpoint;
alter system checkpoint;

2.备份:
RMAN> backup datafile 7 format '/home/oracle/backup/T1z_%U';

Starting backup at 2017-12-08 09:23:26
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=/mnt/ramdisk/book/T01.dbf
channel ORA_DISK_1: starting piece 1 at 2017-12-08 09:23:26
channel ORA_DISK_1: finished piece 1 at 2017-12-08 09:23:27
piece handle=/home/oracle/backup/T1z_hfsljh0e_1_1 tag=TAG20171208T092326 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2017-12-08 09:23:27

$ strings -t d T1z_hfsljh0e_1_1 | grep ZZZZZ|wc
   9978   26939  440925

$ strings -t d T1z_hfsljh0e_1_1 | grep ZZZZZ|head -1
1082678 K 000174ZZZZZZZZZZZZZZZZZZZZZZZZZZ,

$ strings -t d T1z_hfsljh0e_1_1 | grep BBBB|head -1
1148214 K 000174BBBBBBBBBBBBBBBBBBBBBBBBBB,

$ strings -t d T1z_hfsljh0e_1_1 | grep CCCC|head -1
2262326 K 000174CCCCCCCCCCCCCCCCCCCCCCCCCC,

$ strings -t d T1z_hfsljh0e_1_1 | grep ZZZZZ|tail  -1
5775323  009807ZZZZZZZZZZZZZZZZZZZZZZZZZZ

--//实际上也可以看出确实是8个extents.与前面测试记数一致.

SCOTT@book> drop table t01 purge ;
Table dropped.

SCOTT@book> create table t01 tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('Z',26,'Z') name from dual connect by level<=1e5;
Table created.

SCOTT@book> select rowid,t01.* from t01 where id in (174,009807,9978);
ROWID                      ID NAME
------------------ ---------- --------------------------------
AAAWMlAAHAAAACDACt        174 000174ZZZZZZZZZZZZZZZZZZZZZZZZZZ
AAAWMlAAHAAAAK/AAA       9807 009807ZZZZZZZZZZZZZZZZZZZZZZZZZZ
AAAWMlAAHAAAAK/ACr       9978 009978ZZZZZZZZZZZZZZZZZZZZZZZZZZ

SCOTT@book> @ &r/rowid AAAWMlAAHAAAACDACt
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
     90917          7        131        173  0x1C00083           7,131                alter system dump datafile 7 block 131 ;

SCOTT@book> @ &r/rowid AAAWMlAAHAAAAK/AAA
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
     90917          7        703          0  0x1C002BF           7,703                alter system dump datafile 7 block 703 ;

SCOTT@book> @ &r/rowid AAAWMlAAHAAAAK/ACr
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
     90917          7        703        171  0x1C002BF           7,703                alter system dump datafile 7 block 703 ;

SCOTT@book> column PARTITION_NAME noprint
SCOTT@book> select * from dba_extents where segment_name='T01' order by block_id;
OWNER  SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME EXTENT_ID    FILE_ID   BLOCK_ID      BYTES     BLOCKS RELATIVE_FNO
------ ------------ ------------ --------------- --------- ---------- ---------- ---------- ---------- ------------
SCOTT  T01          TABLE        T01                     0          7        128      65536          8            7
SCOTT  T01          TABLE        T01                     1          7        264      65536          8            7
SCOTT  T01          TABLE        T01                     2          7        400      65536          8            7
SCOTT  T01          TABLE        T01                     3          7        536      65536          8            7
SCOTT  T01          TABLE        T01                     4          7        672      65536          8            7
SCOTT  T01          TABLE        T01                     5          7        680      65536          8            7
SCOTT  T01          TABLE        T01                     6          7        688      65536          8            7
SCOTT  T01          TABLE        T01                     7          7        696      65536          8            7
SCOTT  T01          TABLE        T01                     8          7        704      65536          8            7
SCOTT  T01          TABLE        T01                     9          7        712      65536          8            7
SCOTT  T01          TABLE        T01                    10          7        720      65536          8            7
SCOTT  T01          TABLE        T01                    11          7        728      65536          8            7
SCOTT  T01          TABLE        T01                    12          7        736      65536          8            7
SCOTT  T01          TABLE        T01                    13          7        744      65536          8            7
SCOTT  T01          TABLE        T01                    14          7        752      65536          8            7
SCOTT  T01          TABLE        T01                    15          7        760      65536          8            7
SCOTT  T01          TABLE        T01                    16          7        768    1048576        128            7
SCOTT  T01          TABLE        T01                    17          7        896    1048576        128            7
SCOTT  T01          TABLE        T01                    18          7       1024    1048576        128            7
SCOTT  T01          TABLE        T01                    19          7       1152    1048576        128            7
20 rows selected.

--//确实是8块.也就是即使truncate表,rman在做备份也要选择前8个extent做备份.
--//好像数据做的不够离散,EXTENT_ID=4,5,6,7还是连续的,不过我觉得应该能说明问题.EXTENT_ID=0,1之间间隔128块(1M)呢.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2148442/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/267265/viewspace-2148442/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值