[20171128]rman Input or output Memory Buffers.txt

--//做一个简单测试rman 的Input or output Memory Buffers.

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

--// drop tablespace sugar including contents and datafiles;
CREATE TABLESPACE SUGAR DATAFILE
  '/mnt/ramdisk/book/sugar01.dbf' SIZE 11M AUTOEXTEND OFF
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

create table t1 tablespace sugar as select rownum id ,lpad('A',32,'A') name from dual connect by level<=2e5;

SCOTT@book> select sum(bytes) from dba_extents where owner=user and segment_name in ('T1');
SUM(BYTES)
----------
  10485760

--//rman配置:
RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK RATE 128k;
new RMAN configuration parameters:
CONFIGURE CHANNEL 1 DEVICE TYPE DISK RATE 128 K;
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
old RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored

--//建立测试脚本.
$ cat out.sh
#!/bin/bash
rman target / <<EOF &
backup as copy datafile 7 format '/home/oracle/backup/%b_1' ;
EOF
for i in {1..100}
do
    echo -n $(date +%H%M%S) ":" >> /tmp/aaa.txt
    strings /home/oracle/backup/sugar01.dbf_1 2>/dev/null | grep "AAAAA" |wc >> /tmp/aaa.txt 2>/dev/null
    sleep 1
done

2.做表空间sugar的映像备份:
$ . out.sh
....
Starting backup at 2017-11-28 15:09:25
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=144 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=/mnt/ramdisk/book/sugar01.dbf
output file name=/home/oracle/backup/sugar01.dbf_1 tag=TAG20171128T150925 RECID=69 STAMP=961254653
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:35
channel ORA_DISK_1: throttle time: 0:01:28
Finished backup at 2017-11-28 15:11:00

Starting Control File and SPFILE Autobackup at 2017-11-28 15:11:00
piece handle=/u01/app/oracle/fast_recovery_area/BOOK/autobackup/2017_11_28/o1_mf_s_961254660_f1t304tk_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2017-11-28 15:11:01
....

$ cut -d":" -f2 /tmp/aaa.txt  | uniq -c
      9       0       0       0
      6   20058   34093  725881
      6   41226   70058 1491458
      7   62394  106045 2256986
      6   83562  142017 3023196
      6  104730  178013 3794099
      6  125898  214038 4560480
      6  147066  250034 5326802
      6  168234  286030 6093124
      6  189402  322053 6859500
     36  200000  340080 7243181
--//可以发现前9秒没有AAAA.

$ time strings /home/oracle/backup/sugar01.dbf_1 2>/dev/null | grep "AAAAA" |wc
 200000  340080 7243181
real    0m0.336s
user    0m0.410s
sys     0m0.032s

--//单独执行strings消耗.0410s.这样6次,strings大约消耗2.4秒.这样大约8秒,AAAA的次数就发生变化.
--//而CONFIGURE CHANNEL 1 DEVICE TYPE DISK RATE 128k;这样1M数据量就需要8秒.

--//另外还可以看出前后相减:
 20058 - 0 = 20058
 41226 - 20058 = 21168
 62394 - 41226 = 21168
 83562 - 62394 = 21168
104730 - 83562 = 21168
125898 -104730 = 21168
147066 -125898 = 21168
168234 -147066 = 21168
189402 -168234 = 21168

--//除了第1个数量是20058外,其它都是21168.

SCOTT@book> column PARTITION_NAME noprint
SCOTT@book> select * from dba_extents where segment_name='T1';
OWNER  SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME  EXTENT_ID    FILE_ID   BLOCK_ID      BYTES     BLOCKS RELATIVE_FNO
------ ------------ ------------ --------------- ---------- ---------- ---------- ---------- ---------- ------------
SCOTT  T1           TABLE        SUGAR                    0          7        128      65536          8            7
SCOTT  T1           TABLE        SUGAR                    1          7        136      65536          8            7
SCOTT  T1           TABLE        SUGAR                    2          7        144      65536          8            7
SCOTT  T1           TABLE        SUGAR                    3          7        152      65536          8            7
SCOTT  T1           TABLE        SUGAR                    4          7        160      65536          8            7
SCOTT  T1           TABLE        SUGAR                    5          7        168      65536          8            7
SCOTT  T1           TABLE        SUGAR                    6          7        176      65536          8            7
SCOTT  T1           TABLE        SUGAR                    7          7        184      65536          8            7
SCOTT  T1           TABLE        SUGAR                    8          7        192      65536          8            7
SCOTT  T1           TABLE        SUGAR                    9          7        200      65536          8            7
SCOTT  T1           TABLE        SUGAR                   10          7        208      65536          8            7
SCOTT  T1           TABLE        SUGAR                   11          7        216      65536          8            7
SCOTT  T1           TABLE        SUGAR                   12          7        224      65536          8            7
SCOTT  T1           TABLE        SUGAR                   13          7        232      65536          8            7
SCOTT  T1           TABLE        SUGAR                   14          7        240      65536          8            7
SCOTT  T1           TABLE        SUGAR                   15          7        248      65536          8            7
SCOTT  T1           TABLE        SUGAR                   16          7        256    1048576        128            7
SCOTT  T1           TABLE        SUGAR                   17          7        384    1048576        128            7
SCOTT  T1           TABLE        SUGAR                   18          7        512    1048576        128            7
SCOTT  T1           TABLE        SUGAR                   19          7        640    1048576        128            7
SCOTT  T1           TABLE        SUGAR                   20          7        768    1048576        128            7
SCOTT  T1           TABLE        SUGAR                   21          7        896    1048576        128            7
SCOTT  T1           TABLE        SUGAR                   22          7       1024    1048576        128            7
SCOTT  T1           TABLE        SUGAR                   23          7       1152    1048576        128            7
SCOTT  T1           TABLE        SUGAR                   24          7       1280    1048576        128            7
25 rows selected.

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 128 and 256-1;
  COUNT(*)
----------
     20058

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 256 and 384-1;
  COUNT(*)
----------
     21168

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 384 and 512-1;
  COUNT(*)
----------
     21168

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 512 and 640-1;
  COUNT(*)
----------
     21168

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 640 and 768-1;
  COUNT(*)
----------
     21168

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 768 and 896-1;
  COUNT(*)
----------
     21168

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 896 and 1024-1;
  COUNT(*)
----------
     21168

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 1024 and 1152-1;
  COUNT(*)
----------
     21168

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 1152 and 1280-1;
  COUNT(*)
----------
     21168

SCOTT@book> select count(*) from t1 where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) >= 1280 ;
  COUNT(*)
----------
     10598

--//8*21168+20058=189402
--//189402+10598=200000
--//说明oracle 的输出缓存是1M.

--//你可能认为不是顺序读取.
--//修改一定的记录看看.

update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 128 and 256-1   and rownum<=1;
update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 256 and 384-1   and rownum<=2;
update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 384 and 512-1   and rownum<=3;
update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 512 and 640-1   and rownum<=4;
update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 640 and 768-1   and rownum<=5;
update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 768 and 896-1   and rownum<=6;
update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 896 and 1024-1  and rownum<=7;
update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 1024 and 1152-1 and rownum<=8;
update t1 set name=lpad('B',32,'B') where DBMS_ROWID.ROWID_BLOCK_NUMBER (rowid) between 1152 and 1280-1 and rownum<=9;
commit;
alter system checkpoint;
alter system checkpoint;
alter system checkpoint;

$ cat out1.sh
#!/bin/bash
rman target / <<EOF &
backup as copy datafile 7 format '/home/oracle/backup/%b_1' ;
EOF
for i in {1..100}
do
    echo -n $(date +%H%M%S-%N) ":" >> /tmp/aaa.txt
    strings /home/oracle/backup/sugar01.dbf_1 2>/dev/null | grep "BBBBB" |wc >> /tmp/aaa.txt 2>/dev/null
    sleep 1
done

$ . out1.sh
....
Starting backup at 2017-11-28 15:22:35
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=132 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=/mnt/ramdisk/book/sugar01.dbf
output file name=/home/oracle/backup/sugar01.dbf_1 tag=TAG20171128T152235 RECID=70 STAMP=961255443
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:35
channel ORA_DISK_1: throttle time: 0:01:28
Finished backup at 2017-11-28 15:24:10

Starting Control File and SPFILE Autobackup at 2017-11-28 15:24:10
piece handle=/u01/app/oracle/fast_recovery_area/BOOK/autobackup/2017_11_28/o1_mf_s_961255450_f1t3rtys_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2017-11-28 15:24:11
...

$ cut -d":" -f2 /tmp/aaa.txt  | uniq -c
      9       0       0       0
      6       1       1      34
      6       3       5     105
      7       6       8     209
      6      10      16     352
      6      15      26     541
      7      21      38     762
      6      28      47    1009
      6      36      63    1304
     30      45      81    1636

--//前后相减正好是1,2,3,4,5,6,7,8,9.不正说明是顺序读取的吗?
--//没有测试input memory buffer.有点长,另外写一篇.

[20171128]rman Input or output Memory Buffers.txt的更多相关文章

  1. Input and Output File

    Notes from C++ Primer File State Condition state is used to manage stream state, which indicates if ...

  2. Java中的IO流,Input和Output的用法,字节流和字符流的区别

    Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流.内存中的数据持久化到设备上-------->输出(Output).把 硬盘上的数据读取到内存中,这种操作 成为 ...

  3. 7. Input and Output

    7. Input and Output There are several ways to present the output of a program; data can be printed i ...

  4. [20160704]Addition program that use JOptionPane for input and output

    //Addition program that use JOptionPane for input and output. import javax.swing.JOptionPane; public ...

  5. Python Tutorial 学习(七)--Input and Output

    7. Input and Output Python里面有多种方式展示程序的输出.或是用便于人阅读的方式打印出来,或是存储到文件中以便将来使用.... 本章将对这些方法予以讨论. 两种将其他类型的值转 ...

  6. [Python] Print input and output in table

    Print the input and output in a table using prettyTable. from prettytable import PrettyTable import ...

  7. Angular4学习笔记(六)- Input和Output

    概述 Angular中的输入输出是通过注解@Input和@Output来标识,它位于组件控制器的属性上方. 输入输出针对的对象是父子组件. 演示 Input 新建项目connInComponents: ...

  8. Python - 3. Input and Output

    from:http://interactivepython.org/courselib/static/pythonds/Introduction/InputandOutput.html Input a ...

  9. Angular2中Input和Output

    @Input @Input是用来定义模块的输入的,用来让父模块往子模块传递内容: @Output 子模块自定义一些event传递给父模块用@Output. 对于angular2中的Input和Outp ...

随机推荐

  1. Django Rest Framework-介绍

    什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移" RE ...

  2. AlarmManager的使用和七牛云android SDK上传图片

    一学期的课程设计又开始了,虽然以后不搞安卓,但是课设还是想好好完成的,因为之前做过地图开发,所以选了一个跟 这个相关的题目,其实有一个校车系统也可以选,但是之前做过一个相似度接近80%的东西,不想混混 ...

  3. hashmap可以用null为键值

    import java.util.HashMap; import java.util.Map; import java.util.TreeMap;   public class TestMain { ...

  4. Linux学习笔记之五————Linux常用命令之用户、权限管理

    一.引言 用户是Unix/Linux系统工作中重要的一环,用户管理包括用户与组账号的管理. 在Unix/Linux系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资 ...

  5. 关于ASP.Net Core Web及API身份认证的解决方案

    6月15日,在端午节前的最后一个工作日,想起有段日子没有写过文章了,倒有些荒疏了.今借夏日蒸蒸之气,偷得浮生半日悠闲.闲话就说到这里吧,提前祝大家端午愉快(屈原听了该不高兴了:))!.NetCore自 ...

  6. 以ActiveMQ为例JAVA消息中间件学习【2】

    前言 之前我们学习了什么是消息中间件,以ActiveMQ为例做了一个最简单的消息中间件的实现.但是我们做的就只能算是个例子而已,因为在实际的项目中肯定会有spring插一脚,所以spring肯定有来管 ...

  7. Crypto++应用:非对称加密RSA

    1,非对称加密RSA: (1)乙方生成两把密钥(公钥和私钥).公钥是公开的,任何人都可以获得,私钥则是保密的. (2)甲方获取乙方的公钥,然后用它对信息加密. (3)乙方得到加密后的信息,用私钥解密. ...

  8. 用Redis作Mysql数据库缓存

    使用redis作mysql数据库缓存时,需要考虑两个问题: 1.确定用何种数据结构存储来自Mysql的数据; 2.在确定数据结构之后,用什么标识作为该数据结构的键. 直观上看,Mysql中的数据都是按 ...

  9. 光流法详解之二(HS光流)

    Horn–Schunck光流算法[1]是一种全局方法估算光流场. 参考博文:https://blog.csdn.net/hhyh612/article/details/79216021 假设条件: H ...

  10. bootstrap-multiselect 多选

    官方教程 http://www.kuitao8.com/demo/20140224/1/bootstrap-multiselect-master/index.html 使用方法: 第一步引用样式以及相 ...