为什么80%的码农都做不了架构师?>>>
-- 使用RMAN实现异机备份恢复(WIN平台)
--=================================
在有些情况下,如数据库服务器处于磁盘空间的压力或成本控制需要将数据文件备份到异机,使用RMAN可以完成该工作。基于Windows平台
所需完成的配置相对简单,仅仅是添加账户与使用新增的帐户来启动数据库服务以及设置共享路径。
下面给出具体描述。
一、配置数据库服务器与备份目的主机
1. 帐户配置(假定有主机A,B 且A为数据库服务器,B为备份目的主机,且能互相ping通)
如果主机A与主机B使用的Administrator密码相同,且A上的OracleServiceDBNAME服务和OracleOraHome92TNSListener服务都以"本
地系统账户登陆"
如果主机A与主机B使用不同的Administrator密码,处于安全考虑不宜设为相同,则则可以分别在主机A与主机B上新建一用户,假
定在主机A上建立DBA_oracle,密码为ORA_PWD,则在主机B上也建立该用户(用户名可以不同,密码必须相同),密码同样设置为ORA_PWD
。将刚建好的用户在各自主机将其加入到Aministrators组
2. 设定OracleServiceDBNAME服务和OracleOraHome92TNSListener服务的启动帐户。在运行处输入services.msc。在主机A上设定使用此帐
户登陆,即使用刚刚建立的DBA_oracle,输入密码启动,该设置需要重启后有效
3. 在主机B上设定共享文件夹,如RMAN_Shared,设置其权限为完全控制(在A上使用\\IP\RMAN_Shared测试是否可写入文件)
二、查看RMAN的配置与数据库情况
三、备份数据库并关闭数据库,删除system01.dbf文件
RMAN> show CONTROLFILE AUTOBACKUP; RMAN 配置参数为: CONFIGURE CONTROLFILE AUTOBACKUP ON; -->控制文件自动备份,建议开启 RMAN> show CONTROLFILE AUTOBACKUP FORMAT; RMAN 配置参数为: CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '\\192.168.1.151\RMAN_Shared\CONTROL _%F'; -->控制文件备份位置 RMAN> show SNAPSHOT CONTROLFILE NAME; RMAN 配置参数为: CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\ORA92\DATABASE\SNCFTESTHH.ORA'; # default -->快照控制文件位置 SQL> select * from v$version; -->数据库的版本,当前演示环境为Oracle 9i BANNER ---------------------------------------------------------------- Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production PL/SQL Release 9.2.0.1.0 - Production CORE 9.2.0.1.0 Production TNS for 32-bit Windows: Version 9.2.0.1.0 - Production NLSRTL Version 9.2.0.1.0 - Production SQL> show parameter db_name NAME TYPE VALUE ------------------------------------ ----------- --------------- db_name string testHH
使用备份脚本对数据库进行备份,备份脚本在最后给出
四、从异机进行还原与恢复
D:\>rman target robinson/robin@testhh cmdfile=D:\oracle\oradata\testHH\backup.rman log=D:\oracle\ora data\testHH\backup.log
1.关闭数据库
2.删除system01.dbf数据文件以便测试恢复
SQL> shutdown immediate; 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。
3.重启实例,收到错误提示
SQL> ho del D:\oracle\oradata\testHH\SYSTEM01.DBF
4.使用RMAN进行还原与恢复
SQL> startup ORACLE 例程已经启动。 Total System Global Area 126950220 bytes Fixed Size 453452 bytes Variable Size 109051904 bytes Database Buffers 16777216 bytes Redo Buffers 667648 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 1: 'D:\ORACLE\ORADATA\TESTHH\SYSTEM01.DBF'
5.结论
D:\>rman target / -->连接到缺省的目标数据库 恢复管理器: 版本9.2.0.8.0 - Production Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved. 连接到目标数据库: TESTHH (DBID=3955637780) RMAN> restore database; -->还原数据库 启动 restore 于 25-7月 -11 正在使用目标数据库控制文件替代恢复目录 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: sid=14 devtype=DISK 通道 ORA_DISK_1: 正在开始恢复数据文件备份集 通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件 正将数据文件00002恢复到D:\ORACLE\ORADATA\TESTHH\UNDOTBS01.DBF 正将数据文件00003恢复到D:\ORACLE\ORADATA\TESTHH\CWMLITE01.DBF 正将数据文件00005恢复到D:\ORACLE\ORADATA\TESTHH\EXAMPLE01.DBF 正将数据文件00006恢复到D:\ORACLE\ORADATA\TESTHH\INDX01.DBF 正将数据文件00010恢复到D:\ORACLE\ORADATA\TESTHH\XDB01.DBF 通道 ORA_DISK_1: 已恢复备份段 1 段 handle=\\192.168.1.151\RMAN_SHARED\FULL_TESTHH_15MIBDKA_1_1 tag=FULL_BAK params=NULL 通道 ORA_DISK_1: 恢复完成 通道 ORA_DISK_1: 正在开始恢复数据文件备份集 通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件 正将数据文件00001恢复到D:\ORACLE\ORADATA\TESTHH\SYSTEM01.DBF 正将数据文件00004恢复到D:\ORACLE\ORADATA\TESTHH\DRSYS01.DBF 正将数据文件00007恢复到D:\ORACLE\ORADATA\TESTHH\ODM01.DBF 正将数据文件00008恢复到D:\ORACLE\ORADATA\TESTHH\TOOLS01.DBF 正将数据文件00009恢复到D:\ORACLE\ORADATA\TESTHH\USERS01.DBF 通道 ORA_DISK_1: 已恢复备份段 1 段 handle=\\192.168.1.151\RMAN_SHARED\FULL_TESTHH_16MIBDMB_1_1 tag=FULL_BAK params=NULL 通道 ORA_DISK_1: 恢复完成 完成 restore 于 25-7月 -11 RMAN> recover database; -->恢复数据库 启动 recover 于 25-7月 -11 使用通道 ORA_DISK_1 正在开始介质的恢复 完成介质的恢复 完成 recover 于 25-7月 -11 SQL> alter database open; SQL> select name,open_mode from v$database; NAME OPEN_MODE --------- ---------- TESTHH READ WRITE
从上面的备份与恢复来看,使用异机备份与恢复与使用本地服务器备份与恢复操作方式并无太多差异,但数据库的性能则受到一定
的影响。即备份到异机其备份与恢复速度低于备份恢复在本地服务器。在大型生产环境中且实时性要求特高的情形,尽可能的避免异机
备份与恢复。尽管如此,备份到异机与从异机恢复仍然不失为一种可选方案。
五、RMAN 备份脚本
run{ allocate channel ch1 device type disk; allocate channel ch2 device type disk; backup database format='\\192.168.1.151\RMAN_Shared\full_%d_%U' -->注意格式的写法\\IP\Shared_folder\ tag='full_bak'; sql "alter system archive log current"; crosscheck archivelog all; delete noprompt expired archivelog all; backup archivelog all format='\\192.168.1.151\RMAN_Shared\log_%d_%U' delete input -->注意格式的写法\\IP\Shared_folder\ tag='log_bak'; release channel ch1; release channel ch2;}
六、快捷参考
有关性能优化请参考
Oracle硬解析与软解析
共享池的调整与优化(Sharedpool Tuning)
Buffercache 的调整与优化(一)
Oracle表缓存(cachingtable)的使用
有关ORACLE体系结构请参考
Oracle表空间与数据文件
Oracle密码文件
Oracle参数文件
Oracle联机重做日志文件(ONLINE LOG FILE)
Oracle控制文件(CONTROLFILE)
Oracle归档日志
Oracle回滚(ROLLBACK)和撤销(UNDO)
Oracle数据库实例启动关闭过程
Oracle10g SGA 的自动化管理
Oracle实例和Oracle数据库(Oracle体系结构)
有关闪回特性请参考
Oracle闪回特性(FLASHBACK DATABASE)
Oracle闪回特性(FLASHBACK DROP & RECYCLEBIN)
Oracle闪回特性(Flashback Query、FlashbackTable)
Oracle闪回特性(Flashback Version、Flashback Transaction)
有关基于用户管理的备份和备份恢复的概念请参考
Oracle冷备份
Oracle热备份
Oracle备份恢复概念
Oracle实例恢复
Oracle基于用户管理恢复的处理(详细描述了介质恢复及其处理)
SYSTEM表空间管理及备份恢复
SYSAUX表空间管理及恢复
有关RMAN的备份恢复与管理请参考
RMAN 概述及其体系结构
RMAN 配置、监控与管理
RMAN 备份详解
RMAN 还原与恢复
RMAN catalog 的创建和使用
基于catalog 创建RMAN存储脚本
基于catalog 的RMAN 备份与恢复
使用RMAN迁移文件系统数据库到ASM
RMAN 备份路径困惑(使用plus archivelog时)
有关ORACLE故障请参考
ORA-32004的错误处理
ORA-01658错误
CRS-0215错误处理
ORA-00119,ORA-00132 错误处理
又一例SPFILE设置错误导致数据库无法启动
对参数FAST_START_MTTR_TARGET= 0 的误解及设定
SPFILE错误导致数据库无法启动(ORA-01565)
有关ASM请参考
创建ASM实例及ASM数据库
ASM 磁盘、目录的管理
使用 ASMCMD 工具管理ASM目录及文件
有关SQL/PLSQL请参考
SQLPlus常用命令
替代变量与SQL*Plus环境设置
使用Uniread实现SQLplus翻页功能
SQL 基础-->SELECT 查询
SQL 基础--> NEW_VALUE的使用
SQL 基础--> 集合运算(UNION与UNION ALL)
SQL 基础--> 常用函数
SQL 基础--> 视图(CREATEVIEW)
SQL 基础--> 创建和管理表
SQL 基础--> 多表查询
SQL 基础--> 过滤和排序
SQL 基础--> 子查询
SQL 基础--> 分组与分组函数
SQL 基础--> 层次化查询(STARTBY ... CONNECT BY PRIOR)
SQL 基础--> ROLLUP与CUBE运算符实现数据汇总
PL/SQL--> 游标
PL/SQL--> 异常处理(Exception)
PL/SQL--> 语言基础
PL/SQL--> 流程控制
PL/SQL--> PL/SQL记录
PL/SQL--> 包的创建与管理
PL/SQL--> 隐式游标(SQL%FOUND)
PL/SQL--> 包重载、初始化
PL/SQL--> DBMS_DDL包的使用
PL/SQL--> DML 触发器
PL/SQL--> INSTEAD OF 触发器
PL/SQL--> 存储过程
PL/SQL--> 函数
PL/SQL--> 动态SQL
PL/SQL--> 动态SQL的常见错误
有关ORACLE其它特性
Oracle常用目录结构(10g)
使用OEM,SQL*Plus,iSQL*Plus 管理Oracle实例
日志记录模式(LOGGING、FORCE LOGGING 、NOLOGGING)
表段、索引段上的LOGGING与NOLOGGING
OralceOMF 功能详解
Oracle用户、对象权限、系统权限
Oracle角色、配置文件
Oracle分区表
Oracle外部表
使用外部表管理Oracle 告警日志(ALAERT_$SID.LOG)
簇表及簇表管理(Index clustered tables)
数据泵 EXPDP 导出工具的使用
数据泵 IMPDP 导入工具的使用
导入导出 Oracle 分区表数据
SQL*Loader使用方法
启用用户进程跟踪
配置非默认端口的动态服务注册
配置ORACLE 客户端连接到数据库
systemsys,sysoper sysdba 的区别
ORACLE_SID、DB_NAME、INSTANCE_NAME、DB_DOMIAN、GLOBAL_NAME
Oracle补丁全集 (Oracle 9i 10g 11g Path)
Oracle10.2.0.1 升级到10.2.0.4
Oracle彻底 kill session
原文链接: http://blog.csdn.net/robinson_0612/article/details/6639064