Einfache Bedienung von Oracle RMAN

oracle备份恢复有flashback和RMAN. RMAN是一种高效的实用的备份恢复工具可以将工作人员从繁重的工作

中解脱出来同时给数据库安全方面提供很大的保障

RMAN备份有noarchivelog模式和archivelog模式其中noarchivelog模式必须要关闭数据库才能执行备份

且只能恢复到备份时候的时间点对于备份之前某个时间点却无能为力archivelog模式时Oracle允许数据库

打开和运行的同时备份每个单独的表空间和数据文件也可以在不同时刻备份选择的数据库部分相当灵活

这里简单说下RMAN在archivelog模式下的备份与恢复

catalog准备工作

1.创建两数据库,为了方便数据库名和监听器名与实例名是一致的

其中一个库做为目标数据库另一个库作为恢复目录数据库

2.登陆两数据库并startup

3.登陆恢复目录数据库创建表空间, 创建用户(密码和用户名相同),然后为用户赋予所有权限

4.使用RMAN工具连接catalog, 执行rman catalog 新建用户/新建用户@catalog库将新建表空间和用户关联

5.同时连接目标数据库和catalog :rman target sys/oracle@目标库 catalog 新建用户/新建用户@catalog库

6.注册一下数据库catalog创建成功

开启archivelog模式使用sqlplus工具登进去后以挂载的方式开启数据库然后alter database archivelog,

接着open即可

RMAN备份数据库首先需要创建脚本创建脚本有命令行方式和文本方式脚本有全局脚本和本地脚本

这里以全局脚本为例

创建脚本global_del_obso

RMAN> create global script global_del_obso comment ‘A script for obsolete backup and delete it’

{

allocate channel ch1 device type disk;

delete obsolete recovery window of 7 Tage;

release chanel ch1;

}

s1

创建脚本golbal_arch

RMAN> create global script global_arch comment‘A script for archievlog and delete it’

{

allocate channel ch1 device type disk;

sql “alter system rchivelog current”

set limit channel ch1 readate=10240;

set limit channel ch1 bytes=2048000;

backup as compressed backupset rchivelog all delete input format‘/opt/oracle/product/dbs/arch_%d_%U

release channel chI;

}

s2

s3

创建脚本glbbal_inc0

RMAN>create global script global_inco

Comment ‘A script for backup ddibase using incremental levelo’

{

excute global script global_del_obso;

allocate channel ch1 device type disk;

set limit channel ch1 readate=10240;

set limit channel ch1 kbytes=2048000;

backup as compressed backupset incremental level database

formate=’/opt/app/oracle/inco_%d_%U;

tag=’inc0’

excute global script global_arch;

}

s4

执行脚本global_inc0,如此完成了数据的完全备份

现在执行一个操作将prod下的表空间users01.dbf改名为users01.dbf.bak

看RMAN是否能够恢复

s7

在做恢复之前还需要创建一个恢复脚本

RMAN> create global script recover_tablespace comment ‘a script for recover tablespace

{

allocate channel ch1 device type disk;

sqlalter tablespace users offline immediate”;

restore tablespace users;

sqlalter tablespace users online”;

}

执行这个脚本recover_tablespace

Lauf { execute global script recover_tablspace; }

s8

查看prod下的表空间users01.dbf是否出现

s9

如此可见表空间恢复成功其他文件恢复以后说明

Hinterlasse eine Antwort