使用catalog的备份方法
一、在恢复目录数据库上执行的操作:
create tablespace rmants datafile '/home/oracle/oradata/rman/rmants.dbf' size 50M;
create user rman identified by rman default tablespace rmants temporary tablespace temp quota unlimited on rmants;
grant recovery_catalog_owner,connect,resource to rman ;
rman catalog rman/rman
create catalog tablespace "RMANTS";
二、在备份的目标数据库上的tnsname.ora中增加恢复目录数据库的连接配置
vi tnsname.ora
rman =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rman)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = rman)
)
)
三、在备份的目标数据库上执行如下操作进行目标数据库注册到恢复目录数据库:
rman target / catalog rman/rman@rman
register database;
四、在备份的目标数据库上制定备份脚本
mkdir -p /home/oracle/rmanbak/databak
mkdir -p /home/oracle/rmanbak/archbak
vi /home/oracle/rmanbak/fulbackup.sh
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=/home/oracle/product/10.2.0/db_1
export ORACLE_SID=wlvm
export NLS_LANG='Simplified Chinese_China.UTF8'
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH:$ORACLE_HOME/bin
cd /home/oracle/rmanbak/databak
find . -user ora -mtime +7 -exec rm -f {} /;
cd /home/oracle/rmanbak/archbak
find . -user ora -mtime +7 -exec rm -f {} /;
rman target / catalog rman/rman@rman cmdfile=/home/oracle/rmanbak/backupdatabase log='/home/oracle/rmanbak/databak/backupdatabase.log'
五、制定rman中备份脚本backupdatabase
RUN{
ALLOCATE CHANNEL c1 TYPE disk;
ALLOCATE CHANNEL c2 TYPE disk;
ALLOCATE CHANNEL c3 TYPE disk;
BACKUP FULL DATABASE
TAG 'FULL_DB_BACKUP_GDLIS'
FILESPERSET 3
FORMAT '/home/oracle/rmanbackup/databak/%T_%U.dbf'
INCLUDE CURRENT CONTROLFILE
PLUS ARCHIVELOG format '/home/oracle/rmanbackup/archbak/%T_%U.arc'
DELETE INPUT;
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
RELEASE CHANNEL c3;
}
六、制定备份计划
01 01 * * * sh /home/oracle/rmanbak/fulbackup.sh
以上是对数据库使用了恢复目录来进行rman的全备的,下面还有种方法是不通过恢复目录数据库进行rman的全备,不需要额外的数据库,
但该种方法使用比较简单,但恢复相对比较困难
一、在备份数据库上制定数据库全备rman备份脚本
mkdir -p /home/oracle/rmanbak/databak
mkdir -p /home/oracle/rmanbak/archbak
mkdir -p /home/oracle/rmanbackup/ctlbak
vi /home/oracle/rmanbak/backupdatabase
RUN{
ALLOCATE CHANNEL c1 TYPE disk;
ALLOCATE CHANNEL c2 TYPE disk;
ALLOCATE CHANNEL c3 TYPE disk;
BACKUP FULL DATABASE
TAG 'FULL_DB_BACKUP_GDLIS'
FILESPERSET 3
FORMAT '/home/oracle/rmanbackup/databak/%T_%U.dbf'
INCLUDE CURRENT CONTROLFILE
PLUS ARCHIVELOG format '/home/oracle/rmanbackup/archbak/%T_%U.arc'
DELETE INPUT;
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
RELEASE CHANNEL c3;
}
二、制定备份归档日志文件和控制文件的rman备份脚本
vi /home/oracle/rmanbak/arcctl
RUN{
ALLOCATE CHANNEL c1 TYPE disk;
ALLOCATE CHANNEL c2 TYPE disk;
ALLOCATE CHANNEL c3 TYPE disk;
BACKUP ARCHIVELOG ALL
FORMAT '/home/oracle/rmanbackup/ctlbak/%T_%U.arc'
DELETE INPUT;
backup as copy current controlfile format '/home/oracle/rmanbackup/ctlbak/ctl_%d_%T_%s.ctl';
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
RELEASE CHANNEL c3;
}
三、制定全备数据库备份脚本
vi /home/oracle/rmanbak/fulbackup.sh
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=/home/oracle/product/10.2.0/db_1
export ORACLE_SID=wlvm
export NLS_LANG='Simplified Chinese_China.UTF8'
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH:$ORACLE_HOME/bin
cd /home/oracle/rmanbak/databak
find . -user ora -mtime +7 -exec rm -f {} /;
cd /home/oracle/rmanbak/archbak
find . -user ora -mtime +7 -exec rm -f {} /;
rman target / nocatalog cmdfile=/home/oracle/rmanbak/backupdatabase log='/home/oracle/rmanbak/databak/backupdatabase.log'
四、制定归档日志和控制文件备份脚本
vi /home/oracle/rmanbak/arcctlbak.sh
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=/home/oracle/product/10.2.0/db_1
export ORACLE_SID=wlvm
export NLS_LANG='Simplified Chinese_China.UTF8'
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=$PATH:$ORACLE_HOME/bin
cd /home/oracle/rmanbak/ctlbak
find . -user ora -mtime +7 -exec rm -f {} /;
rman target / nocatalog cmdfile=/home/oracle/rmanbak/arcctl log='/home/oracle/rmanbak/databak/arcctl.log
五、制定备份计划
01 01 * * 6 sh /home/oracle/rmanbak/fulbackup.sh
01 01 * * 1,2,3,4,5,7 sh /home/oracle/rmanbak/arcctlbak.sh