rman一直是我在Oracle里面最不懂的一块。
一说起rman我就如一个三岁小孩看高等代数一样,太深奥了,听了云里雾里。
所以今天开始着重学习一下rman。
首先做一个全库备份:
[oracle@localhost ~]$ rman
Recovery Manager: Release 10.2.0.1.0 - Production on 星期四 8月 6 21:58:35 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect target;
connected to target database: ORCL (DBID=1213195129)
RMAN> backup database;
Starting backup at 06-8月 -09
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=143 devtype=DISK
............
很成功。不过备份文件被放到哪里去了呢?由于我预计全备份会占用很大的空间(包括数据文件等)。
所以我ctrl+c掉了。结果本来应该可以在$ORACLE_HOME/db_1/dbs下面的备份文件没有找到。
为什么?难道找错路径了?
于是找google,查看如何设置rman备份的默认路径,不过配置命令在我看来有点长了:
RMAN> configure channel device type disk format '/data/backup/%d_db_%u';
old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data/arch/%d_db_%u';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data/backup/%d_db_%u';
new RMAN configuration parameters are successfully stored
于是再进行全库备份,此时可以发现/data分区的空间在不断增长了:
[oracle@localhost ~]$ while true; do df -ah /data/ | grep /data; sleep 1; done
/dev/sdd 7.9G 505M 7.0G 7% /data
/dev/sdd 7.9G 507M 7.0G 7% /data
/dev/sdd 7.9G 509M 7.0G 7% /data
/dev/sdd 7.9G 511M 7.0G 7% /data
/dev/sdd 7.9G 513M 7.0G 7% /data
/dev/sdd 7.9G 515M 7.0G 7% /data
/dev/sdd 7.9G 516M 7.0G 7% /data
/dev/sdd 7.9G 518M 7.0G 7% /data
/dev/sdd 7.9G 520M 7.0G 7% /data
从这里也可以看出每秒的磁盘写在2M左右。
而且通过观察磁盘读写情况,也可以看出,此时这两个分区的读写很厉害:
[oracle@localhost backup]$ iostat -xtc 1 /dev/sd[cd]
Linux 2.6.18-8.el5 (localhost.localdomain) 08/06/2009 _i686_ (1 CPU)
08/06/2009 10:35:49 PM
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 10.10 89.90 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdc 0.00 4.04 0.00 0.00 0.00 0.00 0.00 2.19 0.00 0.00 101.31
sdd 0.00 4961.62 0.00 121.21 0.00 38270.71 315.73 145.10 1194.12 8.36 101.31
08/06/2009 10:35:50 PM
avg-cpu: %user %nice %system %iowait %steal %idle
0.98 0.00 9.80 89.22 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 2.95 0.00 0.00 98.33
sdd 0.00 1862.75 0.00 116.67 0.00 36705.88 314.62 123.91 1211.56 8.43 98.33
08/06/2009 10:35:51 PM
avg-cpu: %user %nice %system %iowait %steal %idle
0.00 0.00 8.08 91.92 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sdc 0.00 3.03 1.01 3.03 258.59 80.81 84.00 2.68 2134.25 247.25 99.90
sdd 0.00 23.23 0.00 82.83 0.00 25842.42 312.00 27.88 1175.39 12.02 99.60
其中sdc是数据所在分区,sdd是备份所在分区。
由于可以预计的备份空间会在7G左右,所以没有继续备份下去。也做ctrl+c取消掉了。
这时,之前为什么找不到备份文件的原因找到了:如果中途取消备份,rman会将之前
的文件删除掉。保证不会留有垃圾文件。这个与我平时见到的一些操作不同,如果中
途被取消,文件会仍旧放在那边。
是否还有其他的显式指定备份路径呢?
继续google,果然找到一个:
RMAN> backup database format '/data/backup/%U.RMN';
然后也按照这个路径进行备份了。
需要注意的是,以上备份都是在archivelog模式下做的。如果在noarchivelog模式下,
则会报:非归档模式下不能备份的错误。
好了,以上是一个简单的全库备份及备份文件路径设置操作。
--------------------------------------------华丽的分割线----------------------------------------------
然后开始学习rman的第一步:
查看配置参数:
RMAN> show all;
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data/backup/%d_db_%u';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/product/10.2.0/db_1/dbs/snapcf_orcl.f'; # default
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12932950/viewspace-611528/
,如需转载,请注明出处,否则将追究法律责任。