2010年(61)
分类: Oracle
2010-01-19 11:10:22
书归正传,在开始之前俺先强调一点,通过RMAN的方式无论是要还是要恢复,都必须先启动实例并加载。有人在抗议,说这太初级了。俺说明一下,作为一名资深IT业者(注,业余的业),长期混迹于各大知名论坛,摸爬滚打多年,并与各阶层、各领域Oracle新手进行过多次、广泛、深入的探讨,咱啥样的需求没碰见过,咱啥样的问题没瞅着过,考虑到很多初学者对Oracle的认知,本章甚至本书中内容别说初级,连弱智的内容都有,所以俺友情提醒大虾们务必开启初级内容过滤功能,以妨过多占用您宝贵时间,什么?你不会这一招,哎,我这里有秘制一目十行术,需要的朋友抓紧时间与我联系!
RMAN 是Oracle数据库自带的备份恢复工具,有两种调用方式,一种是类似于DOS,通过键盘操作的 命令行方式 ,第二种是类似于 Windows ,通过鼠标操作的图形化界面方式(EM)。图形化方式操作简单,但也因此省略了一些具体过程,你可能成功操作但却不知道 Oracle 究竟做了什么,怎么做的。对于立志要成为一名职业Oracle DBA ,第二种方式完全不在考虑之列(最多只是参考)。本篇后续内容所做的各项操作都将以命令行方式进行。
通过RMAN连接本地数据库非常简单,以 W indows 平台为例,进入到命令提示符界面:
C:\Documents and Settings\junsansi> SET ORACLE_SID =jssbook
C:\Documents and Settings\junsansi> RMAN TARGET /
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 17 21:12:17 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: JSSBOOK (DBID=1415261003)
RMAN>如上所示,使用RMAN连接本地数据库之前必须首先设置操作系统环境变量:ORACLE_SID,并指定该值等于目标数据库的实例名。如果本地库只有一个实例并已经设置了ORACLE_SID环境变量,则不需要再指定ORACLE_SID。RMAN会自动连接到默认实例。
当然,你也可以先启动RMAN,然后再通过CONNECT命令来连接目标数据库,如下所示:
C:\Documents and Settings\junsansi> RMAN
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 17 21:12:36 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect target /
connected to target database: JSSBOOK (DBID=1415261003)本地连接允许使用操作系统验证,因此上述示例都不需要输入用户名和密码,不过如果本地没有启用操作系统身份验证的话,就必须指定具有相应权限的用户名和密码。
需要注意,Linux/UNIX 环境下设置操作系统环境变量应使用 export 命令,另外ORACLE_SID必须为大写。例如:
[oracle@yans1 ~ ]$ export ORACLE_SID=test08
[oracle@yans1 ~ ]$ rman target /
Recovery Manager: Release 10.2.0.3.0 - Production on Tue Mar 17 16:08:32 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: TEST08 (DBID=3812548755)
RMAN>如果要连接的目标数据库是一个远程数据库,那么必须在建立连接时指定一个有效的网络服务名(Net Service Name),本地的tnsname.ora文件中必须已经建立了该网络服务名的正确配置。连接示例如下:
C:\Documents and Settings\junsansi> RMAN TARGET SYS/CHANGE_ON_INSTALL@TESTDB
Recovery Manager: Release 10.2.0.1.0 - Production on Tue Mar 17 16:12:32 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: TESTDB (DBID=2220262593)
RMAN>当然,在这里你也可以同样先启动RMAN命令行工具,然后再通过CONNECT命令创建连接。具体示例与上类似,如果再做演示,那这个环节就不仅是弱,而是超弱,即使坚定的我也承受不了如此强烈的呕吐加鄙视的欲望,所以还是作罢吧。
哈哈,退出就太简单啦,敲个EXIT试试~
还有一点,各位新友也了解一下,对于以后写RMAN批处理会有帮助。在启动 RMAN 时可以指定日志输出,之前的示例中均没有指定,那么RMAN就将执行结果直接输出到屏幕了。如果我们以后写了一堆超长的RMAN批处理放在后台执行,肯定希望能够把执行日志记录下来备查,这个时候日志输出功能就用上了。这个功能也非常简单,指定log参数即可,如下所示:
C:\Documents and Settings\Administrator> RMAN TARGET / log f:\oracle\logs\rman_log.txt
RMAN>RMAN 会将执行的结果直接输出到指定的 F :\oracle\logs\rman_log.txt 文件,这样脚本放入后台执行,即使出现问题,我们也可以根据rman_log文件来辅助分析。