使用RMAN备份与恢复数据库(1)——RMAN基本命令
RMAN(Recovery Manager)称为恢复管理器,是ORACLE进行数据库备份(backup)、修复(restore)和恢复(recover)的一个常用工具。
一、RMAN备份对象的分类
使用RMAN可以备份以下对象:(1)整个数据库;(2)数据文件;(3)表空间;(4)归档重做日志文件;(5)控制文件;(6)初始化参数文件。
二、RMAN备份形式
RMAN备份分为镜像复制和备份集两种:
(1)镜像复制是对数据文件、控制文件和归档重做日志文件进行复制,镜像复制文件与原文件大小相同,原文件中未使用的数据块也被复制到备份文件中。
(2)备份集(Backup set)是RMAN创建的一个具有特定格式的逻辑对象,一个备份集在物理上由一个或多个RMAN指定格式的二进制文件组成。每一个备份文件称为一个备份片(Backup Piece)。
三、RMAN备份类型
1、完全备份
完全备份(FULL Backup)是指对数据文件进行备份时,不管数据文件中的数据块是否被修改都复制到备份中。
2、增量备份
增量备份(Incremental Backup)是指备份数据文件时,只备份上次增量备份后被修改过的数据块。根据增量备份所参照的基础不同,增量备份又分为差异增量备份(Differential Incremental Backup)和累积增量备份(Cumulative Incremental Backup)两种。
(1)差异增量备份:以最近级别为0或1的增量备份为基础,复制所有被修改过的数据块(默认为差异增量备份)。比如:每周周日对数据库做级别为0的增量备份,即备份数据库中所有被使用的数据块,其余每天对数据库做差异增量备份,即周一备份相对周日的增量备份发生数据变化的数据块,周二备份相对于周一的增量备份发生数据变化的数据块,……以此类推。
(2)累积增量备份:以最近级别为0的增量备份为基础,复制所有被修改过的数据块。比如:每周周日对数据库做级别为0的增量备份,即备份数据库中所有被使用的数据块。其余每天对数据库做累积增量备份,即周一备份相对周日的增量备份发生数据变化的数据块,周二也备份相对于周日的增量备份发生数据变化的数据块,……以此类推。
四、RMAN基本命令
1、连接目标数据库
在操作系统命令提示符下输入命令,连接目标数据库:
RMAN TARGET user/password@net_service_name [NOCATALOG];
说明:与目标数据库连接时,用户须具有sysdba系统权限,以保证可以进行数据库的备份、修复与恢复工作。
举例:
[oracle@wgx ~]$ rman target /Recovery Manager: Release 11.2.0.1.0 - Production on Wed Apr 8 16:23:32 Copyright (c) 1982, , Oracle and/or its affiliates. All rights reserved.connected to target database: ORCL (DBID=1559168802)
也可以先进入rman,再执行以下命令:
CONNECT TARGET | CATALOG user/password@net_service_name [NOCATALOG];
说明:
(1)TARGET:连接目标数据库;
(2)CATALOG:连接恢复目录数据库;
(3)net_service_name:连接远程数据库,指定服务名;
(4)NOCATALOG:表示不使用恢复目录保存档案资料库信息,档案资料库信息保存在目标数据库的控制文件中
举例:
[oracle@wgx ~]$ rmanRecovery Manager: Release 11.2.0.1.0 - Production on Wed Apr 8 16:27:13 Copyright (c) 1982, , Oracle and/or its affiliates. All rights reserved.RMAN> connect target /connected to target database: ORCL (DBID=1559168802)
2、启动与关闭数据库
在RMAN中,可以启动和关闭数据库,代码如下:
RMAN> shutdown immediate;using target database control file instead of recovery catalogdatabase closeddatabase dismountedOracle instance shut downRMAN> startup mount;connected to target database (not started)Oracle instance starteddatabase mountedTotal System Global Area 1068937216 bytesFixed Size 220 bytesVariable Size482348888 bytesDatabase Buffers 578813952 bytesRedo Buffers 5554176 bytesRMAN> alter database open;database opened
3、REPORT SCHEMA命令
获取目标数据库的模式结构:
RMAN> report schema;Report of database schema for database with db_unique_name ORCLList of Permanent Datafiles===========================File Size(MB) Tablespace RB segs Datafile Name---- -------- -------------------- ------- ------------------------1 780SYSTEM***/usr/local/oradata/orcl/system01.dbf2 520SYSAUX***/usr/local/oradata/orcl/sysaux01.dbf3 225UNDOTBS1 ***/usr/local/oradata/orcl/undotbs01.dbf4 15 USERS***/usr/local/oradata/orcl/users01.dbf5 50 DATA01***/usr/local/oradata/orcl/data01.dbf6 20 DATA02***/usr/local/oradata/orcl/data02.dbfList of Temporary Files=======================File Size(MB) Tablespace Maxsize(MB) Tempfile Name---- -------- -------------------- ----------- --------------------1 38 TEMP 32767 /usr/local/oradata/orcl/temp01.dbf
4、show all命令
查看当前会话中所有RMAN预定义的配置参数的设置情况:
RMAN> show all;RMAN configuration parameters for database with db_unique_name ORCL are:CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP OFF; # defaultCONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # defaultCONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # defaultCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # defaultCONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/home/oracle/rmanbak/%d_%I_%s_%p_%T.bak';CONFIGURE MAXSETSIZE TO UNLIMITED; # defaultCONFIGURE ENCRYPTION FOR DATABASE OFF; # defaultCONFIGURE ENCRYPTION ALGORITHM 'AES128'; # defaultCONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # defaultCONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # defaultCONFIGURE SNAPSHOT CONTROLFILE NAME TO '/usr/local/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f'; # default
5、CONFIGURE命令
(1)重新设置RMAN中预定义参数的取值
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt;new RMAN configuration parameters:CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';new RMAN configuration parameters are successfully storedRMAN> show default device type;RMAN configuration parameters for database with db_unique_name ORCL are:CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
说明:参数修改后,查看参数值时后面的注释#default消失。
(2)使用CLEAR关键字将某个参数恢复到默认值
RMAN> CONFIGURE DEFAULT DEVICE TYPE CLEAR;old RMAN configuration parameters:CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';RMAN configuration parameters are successfully reset to default valueRMAN> show default device type;RMAN configuration parameters for database with db_unique_name ORCL are:CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
6、在RMAN中执行SQL语句
如果要在使用RMAN时执行SQL或PL/SQL语句,首先在RMAN提示符后输入SQL命令,然后再将要执行的SQL语句用单引号或双引号引起来,最后输入分号即可执行该SQL语句。
例如:
RMAN> SQL 'alter tablespace data01 read only';sql statement: alter tablespace data01 read only
说明:
(1)STARTUP、SHUTDOWN等命令可直接执行;
(2)RMAN中不能执行SELECT语句;
(3)如果SQL、PL/SQL语句包含单引号,需要在每个单引号之前再加一个单引号。