oracle RMAN 的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle RMAN 的使用相关的知识,希望对你有一定的参考价值。

使用RMAN将一个数据库中的数据导出,backup database;然后将导出的数据拷贝到另一个oracle机器上,这台机器只装了oracle软件没有装数据库,使用rman可以直接将备份的数据导出吗?restore database from '目录',出错:
RMAN> restore database from '/home/oracle/o1_mf_ncsnf_TAG20140823T000845_9zgtt6j1_.bkp';

Starting restore at 23-AUG-14
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 08/23/2014 00:27:07
RMAN-12010: automatic channel allocation initialization failed
RMAN-06403: could not obtain a fully authorized session
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
不可以直接导入吗?谢谢!
是使用rman导入数据。restore database from '目录'。上面写错字了,不好意思!

3. 恢复目录

3.1.恢复目录的概念

恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。

恢复目录可以存在于ORACLE数据库的计划中。

虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。

恢复目录数据库不能使用恢复目录备份自身。

3.2.建立恢复目录

第一步,在目录数据库中创建恢复目录所用表空间:

SQL> create tablespace rman_ts datafile 'd:\oracle\oradata\rman\rman_ts.dbf' size 20M;

表空间已创建。

第二步,在目录数据库中创建RMAN 用户并授权:

SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts;

用户已创建。

SQL> grant recovery_catalog_owner to rman ;

授权成功。
SQL> grant connect, resource to rman ;

授权成功。

第三步,在目录数据库中创建恢复目录

C:\>rman catalog rman/rman

恢复管理器:版本8.1.6.0.0 - Production

RMAN-06008:连接到恢复目录数据库
RMAN-06428:未安装恢复目录
RMAN>create catalog tablespace rman_ts;
RMAN-06431:恢复目录已创建

注意:虽然使用RMAN不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信息。不使用恢复目录将会对备份恢复操作有限制。

3.3.使用恢复目录的优势

可以存储脚本;

记载较长时间的备份恢复操作;

4. 启动RMAN

RMAN为交互式命令行处理界面,也可以从企业管理器中运行。

为了使用下面的实例,先检查环境符合:

the target database is called "his" and has the same TNS alias

user rman has been granted "recovery_catalog_owner "privileges

目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接

the recovery catalog database is called "rman" and has the same TNS alias

the schema containing the recovery catalog is "rman" (same password)

在使用RMAN前,设置NLS_DATE_FORMAT 和NLS_LANG环境变量,很多RMAN LIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。

下例是环境变量的示范:

NLS_LANG= SIMPLIFIED CHINESE_CHINA.ZHS16GBK
NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SS

为了保证RMAN使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。

4.1.使用不带恢复目录的RMAN

设置目标数据库的 ORACLE_SID ,执行:

% rman nocatalog
RMAN> connect target
RMAN> connect target internal/<password>@his

4.2.使用带恢复目录的RMAN

% rman rman_ts rman/rman@rman
RMAN> connect target
% rman rman_ts rman/rman@rman target internal/<password>@his

4.3.使用RMAN

一旦连接到目标数据库,可以通过交互界面或者事先存储的脚本执行指定RMAN命令, 下面是一个使用RMAN交互界面的实例:

RMAN> resync catalog;
RMAN-03022:正在编译命令:resync
RMAN-03023:正在执行命令:resync
RMAN-08002:正在启动全部恢复目录的 resync
RMAN-08004:完成全部 resync

使用脚本的实例:

RMAN> execute script alloc_1_disk;

创建或者替代存储的脚本:

RMAN> replace script alloc_1_disk
2> allocate channel d1 type disk;
3>

5.注册或者注销目标数据库

5.1.注册目标数据库

数据库状态:

恢复目录状态:打开

目标数据库:加载或者打开

目标数据库在第一次使用RMAN之前必须在恢复目录中注册:

第一步,启动恢复管理器,并且连接目标数据库:

C:\>rman target internal/oracle@his catalog rman/rman@rman

恢复管理器:版本8.1.6.0.0 - Production

RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库

第二步,注册数据库:

RMAN> register database;
RMAN-03022:正在编译命令:register
RMAN-03023:正在执行命令:register
RMAN-08006:注册在恢复目录中的数据库
RMAN-03023:正在执行命令:full resync
RMAN-08002:正在启动全部恢复目录的resync
RMAN-08004:完成全部resync

5.2.注销目标数据库

RMAN提供了一个注销工具,叫DBMS_RCVCAT工具包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。

为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID。

C:\>rman target internal/oracle@his catalog rman/rman@rman

恢复管理器:版本8.1.6.0.0 - Production

RMAN-06005:连接到目标数据库:HIS (DBID=3021445076)
RMAN-06008:连接到恢复目录数据库

其中DBID=3021445076,利用DBID=3021445076查询数据库键值码:

连接到目标数据库,查询db表:

SQL> select * from db;

DB_KEY DB_ID CURR_DBINC_KEY
---------- ---------- --------------
1 3021445076 2

获得DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:

SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076);
PL/SQL 过程已成功完成。

至此,注销数据库操作完成。
... ...
请采纳。
参考技术A 切换服务器归档模式,如果已经是归档模式可跳过此步:
%sqlplus /nolog (启动sqlplus)
SQL> conn / as sysdba (以DBA身份连接数据库)
SQL> shutdown immediate; (立即关闭数据库)
SQL> startup mount (启动实例并加载数据库,但不打开)
SQL> alter database archivelog; (更改数据库为归档模式)
SQL> alter database open; (打开数据库)
SQL> alter system archive log start; (启用自动归档)
SQL> exit (退出) 2、连接:
rman target=sys/comeon@orcl; (启动恢复管理器) 3、基本设置:
RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)
RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)
RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)
RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式) 4、查看所有设置:
RMAN> show all 5、查看数据库方案报表:
RMAN> report schema; 6、备份全库:
RMAN> backup database plus archivelog delete input; (备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志) 7、备份表空间:
RMAN> backup tablespace system plus archivelog delete input; (备份指定表空间及归档的重做日志,并删除旧的归档日志) 8、备份归档日志:
RMAN> backup archivelog all delete input; 9、复制数据文件:
RMAN> copy datafile 1 to '/oracle/dbs/system.copy'; 10、查看备份和文件复本:
RMAN> list backup; 11、验证备份:
RMAN> validate backupset 3; 12、从自动备份中恢复服务器参数文件:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> startup nomount; (启动实例)
RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (从自动备份中恢复服务器参数文件) 13、从自动备份中恢复控制文件:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> startup nomount; (启动实例)
RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件) 13、恢复和复原全数据库:
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> exit (退出)
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (将数据文件重命名)
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (将数据文件重命名)
%rman target=rman/rman@mydb (启动恢复管理器)
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化参数文件启动数据库)
RMAN> restore database; (还原数据库)
RMAN> recover database; (恢复数据库)
RMAN> alter database open; (打开数据库) 14、恢复和复原表空间:
RMAN> sql 'alter tablespace users offline immediate'; (将表空间脱机)
RMAN> exit (退出恢复管理器)
%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (将表空间重命名)
%rman target=rman/rman@mydb (启动恢复管理器)
RMAN> restore tablespace users; (还原表空间)
RMAN> recover tablespace users; (恢复表空间)
RMAN> sql 'alter tablespace users online'; (将表空间联机)
参考技术B   数据库的备份模式
  根据是否将联机重做日志文件进行归档,可以将Oracle数据库的日志操作模式分为NOARCHIVELOG(非归档)和ARCHIVELOG(归档)两种类型。
  当建立数据库的时候,如果不指定日志操作模式,则默认的操作模式为 NOARCHIVELOG。NOARCHIVELOG是指不保留重做历史记录的日志操作模式,在这种模式下,如果进行日志切换,那么在不保留原有重做日志内容的情况下,日志组的新内容会直接覆盖其原有内容。ARCHIVELOG则保留重做日志的历史记录。
  创建RMAN目录
  注册目标数据库
  RMAN使用脚本来备份数据库
参考技术C 你的oracle实例的状态不正常,尝试重启实例。

shutdown abort;
startup mount;

确认能做 select * from v$datafile ; 后 再做上述操作

以上是关于oracle RMAN 的使用的主要内容,如果未能解决你的问题,请参考以下文章

Oracle RMAN备份恢复3-高级篇_超越OCP精通Oracle视频课程培训19

oracle备份 使用RMAN 工具

Oracle RMAN备份恢复1-基础篇_超越OCP精通Oracle视频教程培训17

oracle9i中Rman的备份使用点滴

Oracle涂抹oracle学习笔记第8章RMAN说,我能备份

oracle何时查询v$rman