oracle运维——rman命令备份数据库的实列

启动rman并连接数据库

输入rman命令

RMAN> connect target orcl


1.将数据库切换为归档日志模式

要使用rman,首先必须将数据库设置为归档日志(archivelog)模式。打开sql plus,使用sysdba身份登录到orcl实例

查看当前数据库实例的编号、名称和日志模式

select dbid,name,log_mode from V$DATABASE;

如果log_mode字段值等于noarchivelog,设置为归档模式:

关闭数据库

shutdown immediate

再次启动数据库但不打开实例

startup mount

切换为归档日志模式

alter database archivelog

再次确认日志模式

 select dbid,name,log_mode from V$DATABASE;

打开数据库实例

alter database open

2.创建保存rman数据的表空间, 表空间数据文件的目录必须提前创建好,否则报错

create tablespace rman_ts datafile ‘表空间数据文件.dbf’ size 200m;

3.创建rman用户并授权,默认表空间rman_ts,临时表空间temp;

create user rman identified by rman default tablespace rman_ts temporary tablespace temp;

grant connect,recovery_catalog_owner,resource to rman;

4.创建恢复目录

rman catalog rman/rman target orcl

RMAN>create catalog tablespace rman_ts;

5.注册目标数据库

RMAN>register database;

备份整个库

RMAN>run {

  allocate channel dev1 type disk;

  backup database;

  release channel dev1;

}

也可以单独备份归档日志文件

RMAN>run {

  allocate channel dev1 type disk;

  backup archivelog all;

  release channel dev1;

}

恢复整个数据库

shutdown immediate

startup force mount

restore database

recover database

alter database open;

恢复表空间

RMAN> SQL “alter tablespace users offline immediate”;

RMAN> restore tablespace users;

RMAN> recover tablespace users;

RMAN> SQL “alter tablespace users online”;

恢复单个数据块

恢复所有被破坏的数据块:

RMAN> RECOVER CORRUPTION LIST;

恢复指定的被破坏的数据块:

查看跟踪文件和告警日志的位置:

SQL> select name,value from V$DIAG_INFO;

恢复数据块时指定数据文件编号和数据块编号:

RMAN> RECOVER DATAFILE 1 BLOCK 233,235 DATAFILE 2 BLOCK 100 TO 200;

恢复归档日志

RMAN> run {

  allocate channel dev1 type disk;

  restore archivelog all;

  release channel dev1;

}

Categories: 数据库运维