首页 > 代码库 > 北京邀请赛 H. Happy Reversal
北京邀请赛 H. Happy Reversal
这个单元讲述如何启动、与rman client如何互动,准备rman环境,实现备份和恢复策略
注意:尽管闪回数据库和安全还原点不是真的数据库备份,但是它们是数据保护策略一个重要部分。这些特性需要一些初始化设置,这些设置依赖于在备份策略中你怎么混合它们。Chapter 5-Data Protection with Restore Points andFlashback Database 提供了关于怎么建立数据库使用这些特性。
3.1、Overview of Interacting With the RMAN Client
这部分描述了rman client的基本互动,比如启动和退出rman客户端,在命令提示输入命令,使用命令行的语法。
3.1.1、Starting and Exiting RMAN
有以下启动rman的基础选项:
(1)不指定任何连接选项
$ rman
(2)指定目标数据库、一个恢复目录
$ rman target /
$ rman target sys/a@boss nocatalog
$ rman target / catalog rmanuser/pass@boss
Connecting the RMANClient to Databases on page 3-5提供了关于连接rman到不同类型数据库的信息。
(3)退出和终止rman
RMAN> exit
3.1.2、Setting Globalization Support Environment Variables for RMAN
在调用rman之前,设置NLS_DATE_FORMAT and NLS_LANG环境变量是有用的。这些环境变量决定了在rman命令(restore、recover、report)中使用的时间参数的格式。下面的例子显示
典型的语言和日期格式设置:
NLS_LANG=american
NLS_DATE_FORMAT=‘Mon DD YYYY HH24:MI:SS‘
如果使用rman连接一个没有unmount的数据库,随后使用rman加载数据库,那么设置NLS_LANG环境变量,他也可以指定被数据库使用的字符集
3.1.3、Entering RMAN Commands at the Command Prompt
当rman client准备命令输入,它显示命令提示符:
RMAN>
RMAN> CONNECT TARGET /
RMAN> CONNECT CATALOG rman/rman@inst2
RMAN> BACKUP DATABASE ;
很多rman命令带了很多参数,必须以分号结尾(很少有异常的,比如startup,shutdown,connect,不使用分号也能使用)。当不在一行输入命令时,rman为延续提示行号,比如:
RMAN> BACKUP DATABASE
2> INCLUDE CURRENT
3> CONTROLFILE
4> ;
3.1.4、Using Command Files with RMAN
为了避免重复的任务,可以创建一个包含rman命令的文本文件,启动rman client使用@参数,% rman TARGET / @cmdfile1。命令执行完后,rman退出。
或者RMAN> @cmdfile1,rman不会自动退出。
Oracle Database Backup and Recovery Reference提供了有关使用@和命令文件的信息。
3.1.5、Checking Syntax of RMAN Commands and Command Files: CHECKSYNTAX
不执行rman命令,测试rman命令的语法正确性。使用命令行语法CHECKSYNTAX来启动rman到一个只能分析语法的模式,当返回RMAN-00558表示rman语法不合法。
3.2、Using RMAN to Start Up and Shut Down Databases
当一个rman过程需要数据库被启动、关闭或带回到mount或nomount状态,你可以使用rman client启动和关闭目标数据库:
% rman TARGET /
RMAN> SHUTDOWN IMMEDIATE # closes database consistently
RMAN> STARTUP MOUNT
为了把目标数据库改变到nomount或mount状态,你既可以使用sql*plus也可以使用rman sql命令来执行sql语句:
RMAN> SQL ‘ALTER DATABASE nomount‘;
RMAN> SQL ‘ALTER DATABASE mount‘;
RMAN> SQL ‘ALTER DATABASE open‘;
3.3、Connecting the RMAN Client to Databases
3.3.1、Types of Database Connections Used with RMAN
为了完成有用的任务,rman客户端必须连接到一个目标数据库,目标数据库是要被备份和还原的数据库。依赖于要完成的任务和特定的备份策略,rman client可以也要连接到其他两个数据库:
(1)The recovery catalog database
它为rman资料库尤其控制文件提供了一个可供选择的备份还原。
(2)An auxiliary database
它可能是一个standby数据库,或一个完成特定任务(复制一个数据库,数据库没有离线传输表空间,完成表空间基于时间点的恢复)的实例。
注意:为了使用auxiliary database完成过多任务,rman在任务运行期间创建了一个自动化的辅助实例,连接上它,完成任务后,摧毁它。不要给任何明确的命令连接到自动化的辅助数据库
3.3.2、Authentication for Database Connections
当连接一个目标或辅助数据库时,你必须有sysdba权限。可以使用一个密码文件或操作系统认证作为as sysdba连接。
注意:连接数据库时,不像sql*plus,rman命令不需要指定sysdba权限。因为所有rman数据库连接需要sysdba权限,所以rman经常隐含地尝试使用sysdba权限连接。
如果你使用操作系统认证连接到数据库,你必须设置环境变量指定oracle sid。当连接到恢复目录时,sysdba权限不需要。注意你必须grant RECOVERY_CATALOG_OWNER角色给方案对象拥有者。为了自动辅助实例,当建立实例时,rman确保你有sysdba权限。
Oracle Database Administrator‘s Guide提供了关于认证用户的信息。
3.3.3、Connecting to the Target Database from the Command Line
从命令行连接到目标数据库,输入以下命令:
# example of operating system authentication
% rman TARGET / NOCATALOG
# example of Oracle Net authentication
% rman TARGET SYS/oracle@trgt NOCATALOG
如果你没有在命令行指定nocatalog,同时在启动rman后没有指定connect calalog,那么rman工作在nocatalog模式。一旦在nocatalog模式你执行一个使用rman资料库的命令,那么你必须退出和重启来能够连接到一个恢复目录。
3.3.4、Connecting to the Target Database from the RMAN Prompt
如果启动rman没有连接到目标数据库,那么你必须在RMAN Prompt执行CONNECT TARGET命令来连接到一个目标数据库,开始完成有用的工作:
% rman
RMAN> CONNECT TARGET /
% rman
RMAN> connect target SYS/oracle@trgt
3.4、Setting Up a Database for RMAN Backup--为rman备份准备一个数据库
使用rman备份一个数据库是容易的。明智的默认设置让你不需要其他准备或配置就能做基础的备份和恢复。如果了解更多普通选项,使用rman实现基于rman的备份策略就会更高效。很多选项可以被设置在rman环境作为永久基础,所以你不必每次执行一个命令时指定相同的选项。
以下论述说明了怎么改变rman的默认行为,介绍重要的可用设置和它们的普遍可能的值。
3.4.1、Persistent Configuration Settings: Controlling RMAN Behavior
设置选项控制了rman行为的很多方面,比如备份保留策略,备份到磁盘或磁带的默认位置,默认的备份设备类型等等。这些配置设置的默认值让你不需要对它们做任何改变就可以高效地使用rman。然而,随着设计一个更高级的备份和恢复策略,你必须改变这些设置实现策略。RMAN SHOW and CONFIGURE命令查看和改变rman配置设置。
Oracle Database Backup and Recovery Reference提供了CONFIGURE的语法。
3.4.1.1、Displaying Current RMAN Configuration Settings: SHOW
RMAN> SHOW RETENTION POLICY;
RMAN> SHOW DEFAULT DEVICE TYPE;
RMAN> SHOW ALL;
3.4.1.2、Restoring Default RMAN Configuration Settings: CONFIGURE... CLEAR
RMAN> CONFIGURE BACKUP OPTIMIZATION CLEAR;
RMAN> CONFIGURE RETENTION POLICY CLEAR;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;
3.4.2、Configuring the Default Device Type for Backups
默认的,rman把备份保存在磁盘的特定目录,你也可以把备份保存在磁带:
CONFIGURE DEFAULT DEVICE TYPE TO sbt;
BACKUP DATABASE;
BACKUP DATAFILE 3;
BACKUP DATABASE PLUS ARCHIVELOG;
你也可以直接备份到一个特定的设备类型,使用BACKUP命令的DEFAULT DEVICE条目:
BACKUP DEVICE TYPE sbt DATABASE;
Oracle Database Backup and Recovery Reference提供了更多关于BACKUP命令的DEFAULT DEVICE条目。
3.4.3、Configuring the Default Backup Type for Disk Backups
RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY; # image copies
RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET; # uncompressed
备份保存到磁盘和磁带上的备份类型都可以是备份集。注意对于介质管理器设备没有相似的选择,因为rman写入到介质管理设备(sbt)的备份只能是备份集,不能是镜像拷贝等
3.4.4、Configuring Compressed Backupsets as Default for Tape or Disk
RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET;
RMAN> CONFIGURE DEVICE TYPE sbt BACKUP TYPE TO COMPRESSED BACKUPSET;
如果关闭压缩,就忽略COMPRESSED关键字:
RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO BACKUPSET;
RMAN> CONFIGURE DEVICE TYPE sbt BACKUP TYPE TO BACKUPSET;
3.4.5、Configuring Disk Devices and Channels
rman通道是在目标数据库上连接到服务器的会话,它们完成所有rman任务。默认,rman为所有操作分配一个磁盘通道。
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘/backup/ora_df%t_s%s_s%p‘; #%t表示四个字节的时间戳,%s表示备份集编号,%p表示备份片编号
你也可以配置一个自动存储管理(ASM)磁盘组作为目标位置:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘+dgroup1‘;
注意:通过为磁盘通道配置一个显式的格式,你直接备份到非快速闪回区,你会丢失快速闪回区的磁盘空间管理能力。
3.4.6、Configuring Tape Devices and Channels
一些介质管理配置器需要通过在CONFIGURE命令中包含PARMS字符串传递的设置:
CONFIGURE CHANNEL DEVICE TYPE sbt PARMS=‘ENV=mml_env_settings‘; #你的PARMS依赖于介质管理器库。阅读介质管理器提供商的文档获得更多信息。
你可以使用CONFIGURE DEVICE TYPE SBT配置并行设置,备份集的压缩和sbt设备的其他选项:
CONFIGURE DEVICE TYPE sbt PARALLELISM 2;
old RMAN configuration parameters:
CONFIGURE DEVICE TYPE ‘SBT_TAPE‘ BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE ‘SBT_TAPE‘ PARALLELISM 2 BACKUP TYPE TO COMPRESSED
BACKUPSET;
new RMAN configuration parameters are successfully stored
注意:上述例子中CONFIGURE命令设置并行和备份类型不影响没有指定设置的值。
3.4.7、Configuring Control File and Server Parameter File Autobackup
无论任何时候控制文件中结构原数据库改变或增加新的备份记录,可以配置rman自动备份控制文件和服务器参数文件。这种配置即使当前控制文件、catalog和服务器参数文件都丢失,rman也能恢复数据库。因为自动备份的文件名使用一个众所周知的格式,rman不需要访问一个资料库就能找到它,接着还原服务器参数文件。在使用服务器参数文件启动实例后,rman从自动备份还原控制文件。在加载控制文件后,rman资料库是可用的,rman可以还原数据文件和找到归档日志。