[20171130]关于rman的一些总结.txt

[20171130]关于rman的一些总结.txt

--//最近一直做rman相关测试,测试那个乱,没办法.无法从周围的人获得帮助,纯粹是自己的乱猜,乱测,不知道别人是否能看懂我写的东西.
--//有必要做一些总结,不一定对,仅仅是我当前的看法.

1.数据文件备份集中,文件头是最后写到备份集文件的.
2.使用备份集恢复也是一样,文件头也是最好写入的.
3.以上情况对as copy的方式也是一样.

--//oracle这样操作主要目的保证备份是好的可用,反之恢复也是一样.

4.关于备份参数filesperset,最好选择1(我自己的认为这样比较好,缺点当然是备份文件显得有点多),如果觉得备份文件太多,建议选择4,
  次之选择8,大于8.我个人不建议选择.
5.关于rman备份的input or output memory buffer问题,我直接摘录一段:

Oracle RMAN 11g Backup and Recovery.pdf

作者:Robert G. Freeman Matthew Hart
页数:689
出版社:Mc graw hill
出版号: ISBN: 978-0-07-162861-7
        MHID: 0-07-162861-4

RMAN in Memory P80

    RMAN builds buffers in memory through which it streams data blocks for potential backup. This
memory utilization counts against the total size of the PGA and, sometimes, the SGA. There are
two kinds of memory buffers. Input buffers are the buffers that are filled with data blocks read
from files that are being backed up. Output buffers are the buffers that are filled when the
memory-to-memory write occurs to determine whether a particular block needs to be backed up.
When the output buffer is filled, it is written to the backup location. The memory buffers differ
depending on whether you are backing up to or restoring from disk or tape. Figure 2-3 illustrates
input and output buffer allocation. It illustrates a backup of two datafiles being multiplexed into
a single backup set.
       
Input Memory Buffers
    When you are backing up the database, the size and number of input memory buffers depend on
the exact backup command being executed. Primarily, they depend on the number of files being
multiplexed into a single backup. Multiplexing refers to the number of files that will have their
blocks backed up to the same backup piece. To keep the memory allocation within reason, the
following rules are applied to the memory buffer sizes based on the number of files being backed
up together:

■ If the number of files going into the backup set is four or less, then RMAN allocates four
   buffers per file at 1MB per buffer. The total will be 16MB or less.
■ If the number of files going into the backup set is greater than four, but no greater than
   eight, then each file gets four buffers, each of 512KB. This ensures that the total remains
   at 16MB or less.
■ If the number of files being multiplexed is greater than eight, then RMAN allocates four
   buffers of size 128KB. This ensures that each file being backed up will account for 512KB
   of buffer memory.

    Bear in mind that these memory amounts are on a per-channel basis. So, if you allocate two
channels to back up a database with 32 datafiles, for instance, then RMAN will load-balance the
files between the two channels and may not end up with 16 files per channel. If some files are
significantly larger than others, you may end up with only 8 files going into one backup set and
24 files going into the other. If this were the case, then the buffers for the first channel with 8 files
would allocate 16MB of memory for input buffers (four buffers multiplied by 512KB each, multiplied
by 8 files), and the second channel would allocate 12MB of memory buffers (512KB per file
multiplied by 24 files).
    You can use the following query to monitor the size of buffers on a per-file basis while the
backup is running:

SELECT set_count, device_type, type, filename, buffer_size, buffer_count, open_time, close_time
  FROM v$backup_async_io
ORDER BY set_count, type, open_time, close_time;

--//注意:原来有这个问题!下次备份注意看buffer_size!

Output Buffers When Backing Up to Disk P81
    In addition to input buffers, RMAN allocates output buffers, depending on what the output source
is. If you are backing up to disk, then RMAN allocates output buffers that must fill up with data blocks
from the input buffers before being flushed to the backup piece on your file system. Per channel,
there will be four output buffers, each of which is 1MB. So, the memory footprint per channel will
always be 4MB.

Output Memory Buffers When Backing Up to Tape P81
    Memory allocation is different when backing up to tape, to account for the slower I/O rates
that we expect from tape devices. When you are backing up to or restoring from tape, RMAN
allocates four buffers per channel process, each of which is 256KB, so that the total memory
footprint per channel is 1MB.

6.关于写入备份集顺序问题.我个人认为至少对于单个数据文件应该按照顺序写入.

7.文件头损坏,dbv与rman检查无效,感觉都是坏块,使用如下命令无效!!
RMAN> recover datafile 6 block 1;
RMAN> blockrecover datafile 6 block 1;

8.另外在备份期间如果有脏块写盘:会在一些视图中记录数据块的最高scn,这样确定如果不完全恢复scn在文件头与最高scn之间情况,
  不会选择这个备份,而且如果catalog,oracle不会扫描备份集合或者备份image,确定最高的scn.
--//as copy备份记录在,例子:
select recid,file#,NAME,CHECKPOINT_CHANGE#,ABSOLUTE_FUZZY_CHANGE# from v$datafile_copy where recid=33 ;
--//备份集可以查询,例子:
select file#,CHECKPOINT_CHANGE#,ABSOLUTE_FUZZY_CHANGE# from v$backup_datafile;

9.疑问:
--//上个星期做了rman copy备份与数据文件变化的测试.
--//在做rman copy备份时数据文件增大,链接:http://blog.itpub.net/267265/viewspace-2147642/
http://blog.itpub.net/267265/viewspace-2147673/
--//提到检查备份copy image时发现没有BBBBB,CCCC字串.
--//我的猜测oracle 做映像备份与建立备份集一样,也是根据数据文件位图区确定读取那些数据块,这样在备份开始后新建立的块不会备份.
$ strings /home/oracle/backup/sugar01.dbf | grep "AAAA" |wc
100000  170040 3624077
$ strings /home/oracle/backup/sugar01.dbf | grep "BBBB" |wc
      0       0       0
$ strings /home/oracle/backup/sugar01.dbf | grep "CCCC" |wc
      0       0       0

--//后记:这是我当时的理解,实际上应该是错误的.有必要做一些的测试.自己看着都觉得乱!!

--//在做rman copy备份时数据文件减少的情况下,链接:http://blog.itpub.net/267265/viewspace-2147673/
--//而我在减少文件大小后:
SCOTT@book> ALTER DATABASE DATAFILE '/mnt/ramdisk/book/sugar01.dbf' RESIZE 9M ;
Database altered.

$ strings /home/oracle/backup/sugar01.dbf_yyy |grep "BBBBB" |wc
  62394  106045 2256986

$ strings /home/oracle/backup/sugar01.dbf_yyy |grep "CCCC" |wc
      0       0       0

时间: 2024-09-20 14:44:40

[20171130]关于rman的一些总结.txt的相关文章

[20171130]关于rman备份疑问.txt

[20171130]关于rman备份疑问.txt --//前面测试太乱,重新做一些rman as copy相关测试. 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- --------------------------------------------------------------

[20171121]rman backup as copy.txt

[20171121]rman backup as copy.txt --//上个星期做数据文件块头恢复时,提到使用rman备份数据文件时,文件头数据库信息是最后写入备份集文件的,在filesperset=1的情况 --//下写入备份集文件中的倒数第2块就是文件头的备份.参考链接: http://blog.itpub.net/267265/viewspace-2147297/=>[20171115]恢复数据文件块头4补充.txt --//而且我最后还做了测试证明如果resotre数据文件,实际上文

[20171031]rman备份压缩模式.txt

[20171031]rman备份压缩模式.txt --//测试rman备份压缩模式,那种效果好,我记忆里选择medium在备份时间和备份文件大小综合考虑最佳. --//还是通过脚本测试: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- ---------------------------

[20171204]关于rman备份疑问4.txt

[20171204]关于rman备份疑问4.txt --//上午排除我几天在做rman测试的疑问. --//链接如下:http://blog.itpub.net/267265/viewspace-2148029/ --//顺便测试备份集包含5个数据文件的情况(本来不想做,还是做看看),验证自己的判断是否正确. 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -----------

[20171031]rman merge例子2.txt

[20171031]rman merge例子2.txt --//以前做的测试 [20170626]rman merge例子.txt --//链接 http://blog.itpub.net/267265/viewspace-2141253/ --//不断应用日志,常用的方式如下: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER --------------------------

[20160427]rman tag format标识.txt

[20160427]rman tag format标识.txt --昨天别人问一个关于rman很奇怪的问题,就是能否实现给全备以及archive加不同的tag. --当然最简单的方法就是分开执行,这样就没有问题. --我们生产系统就是分开写的,例子: backup as compressed backupset full database filesperset=1     tag="full $current"     include current controlfile    

[20161114]rman备份的疑问.txt

[20161114]rman备份的疑问.txt --这个是我前几天做测试时遇到的疑问,不知道为什么rman 备份要修改数据块的dba地址. 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- ---------------------------------------------------

[20161101]rman备份与数据文件变化7.txt

[20161101]rman备份与数据文件变化7.txt --//想象一下,如果备份文件时间很长,而这个时候数据文件大小发生了变化,oracle的备份如何解决这个问题呢? --//去年已经测试了建立备份集的情况,一直想做一次image copy的测试,一直脱,主要原因自己不想做这个测试.... --//而且当时的测试很乱,自己主要一边做一边想.... --//链接: http://blog.itpub.net/267265/viewspace-2127386/ http://blog.itpub

[20171122]rman filesystemio_options.txt

[20171122]rman备份与参数filesystemio_options设置.txt --//这几天写了几篇filesystemio_options参数设置的文章,单独测试这个参数对rman备份以及os缓存的影响. 1.测试环境: SYS@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- ----------