首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle 10g RMAN的备份测试
【标  题】:Oracle 10g RMAN的备份测试
【关键字】:Oracle,10g,RMAN
【来  源】:http://blog.chinaunix.net/article.php?articleId=39107&blogId=104

Oracle 10g RMAN的备份测试

情况一,数据库崩溃,只剩下磁带上的通过rman 的全备份,有controlfile和spfile都在rman备份中。
通过重新安装一个同名的SID之后再进行恢复。

注意事项:
1 rman的保存格式前后要一样.
2 archive 的格式也要和原来一样。

oracle 10g


情况一,数据库崩溃,只剩下磁带上的通过rman 的全备份,有controlfile和spfile都在rman备份中。
通过重新安装一个同名的SID之后再进行恢复。

注意事项:
1 rman的保存格式前后要一样.
2 archive 的格式也要和原来一样。

oracle 10g

[oracle@standby oracle]$ rman target /


启动归档
SQL>alter database archivelog;

System altered.

SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     7
Current log sequence           9
SQL>

重启数据库,归档就会自动启动。

启动自动备份控制文件

RMAN> configure controlfile autobackup on;

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored


RMAN> configure channel device type disk format 'F:\backup\%U';

new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'F:\backup\%U';
new RMAN configuration parameters are successfully stored


SQL> select name from v$datafile;

NAME
---------------------------------------------------
F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\SYSTEM01.DBF
F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\UNDOTBS01.DBF
F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\SYSAUX01.DBF
F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\USERS01.DBF


确定原控制文件的路径
SQL> select name from v$controlfile;

查看log位置

SQL>select name from V$ARCHIVED_LOG;

查看log的信息
SQL>select * from v$log_history;

插入数据
SQL> select * from ttt;

NAME       EMAIL
---------- ----------
aa         aa@abc.com
bb         bb@abc.com
cc         cc@abc.com

RMAN备份,

RMAN>backup database;

再插入数据
SQL> select * from ttt;

NAME       EMAIL
---------- ----------
aa         aa@abc.com
bb         bb@abc.com
cc         cc@abc.com
dd         dd@abc.com

用DBCA删除 数据库和相关数据文件。
再重新建个相同实例名的SID,再开始恢复。

配置RMAN
RMAN> configure channel device type disk format 'F:\backup\%U';  //注意和原来的格式一样。

new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'F:\backup\%U';
new RMAN configuration parameters are successfully stored


先需要从自动备份中恢复控制文件
RMAN> startup nomount;

RMAN> restore controlfile to '/opt/oracle/oradata/control01.ctl' from autobackup;

重建本地认证文件
C:\>orapwd file=F:\oracle\product.1.0\Db_1\DATABASE\PWDtest.ORA password=123456 entries=2;

RMAN>shutdown immediate

RMAN> startup mount

database is already started
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 08/03/2005 20:00:30
RMAN-06189: current DBID 1863531774 does not match target mounted database (1862908416)

RMAN>

重新设置DBID

RMAN> set DBID=1862908416

executing command: SET DBID


你可能需要修改spfile文件,如果文件位置改变。

SQL> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> create spfile from pfile;

File created.

SQL> startup mount;
ORACLE instance started.

RMAN> restore database;


转入SQLPLUS,sys登陆sqlplus
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 356534 generated at 08/02/2005 19:14:40 needed for thread 1
ORA-00289: suggestion :
F:\ORACLE\PRODUCT.1.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG05_08_03\O1_MF_1_
2_%U_.ARC
ORA-00280: change 356534 for thread 1 is in sequence #2


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel            //因为log丢失,此步选cancel
Media recovery cancelled.


SQL> alter database open resetlogs;

Database altered.

SQL> select * from ttt;

NAME       EMAIL
---------- ----------
aa         aa@abc.com
bb         bb@abc.com
cc         cc@abc.com

SQL>

数据回来了,但是由于归档和redo log丢了,丢失一部分数据。


情况二 数据库崩溃,但是还剩下归档和redo log是好的。


启动归档
SQL>alter database archivelog;

System altered.

SQL> archive log list;
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     7
Current log sequence           9
SQL>

重启数据库,归档就会自动启动。

启动自动备份控制文件

RMAN> configure controlfile autobackup on;

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

配置RMAN的格式和存储位置。
RMAN> configure channel device type disk format 'F:\backup\%U';

new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'F:\backup\%U';
new RMAN configuration parameters are successfully stored

查看数据文件的位置
SQL> select name from v$datafile;


确定原控制文件的路径
SQL> select name from v$controlfile;

查看log位置

SQL>select name from V$ARCHIVED_LOG;

查看log的信息
SQL>select * from v$log_history;

插入数据
SQL> select * from sss;

AA         BB         CC
---------- ---------- ---
aa         bb         cc
aa         jj         mm
vv         ss         tt

完全备份数据库
RMAN>backup data

再插入数据

SQL> select * from sss;

AA         BB         CC
---------- ---------- ---
aa         bb         cc
aa         jj         mm
vv         ss         tt
mm         mm         mm


用DBCA删除数据库,删除相关的数据文件,保留redo log和归档日志。

再用DBCA重建一个SID一样的数据库。

RMAN>startup

配置RMAN
RMAN> configure channel device type disk format 'F:\backup\%U';  //注意和原来的格式一样。

new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   'F:\backup\%U';
new RMAN configuration parameters are successfully stored


RMAN>startup nomount
RMAN>restore controlfile to '/opt/oracle/oradata/control01.ctl' from autobackup;
再copy几份和原来一样的路径文件名。

RMAN>shutdown immediate

RMAN> startup mount

connected to target database (not started)
Oracle instance started
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 08/03/2005 19:55:46
ORA-01991: invalid password file 'F:\oracle\product.1.0\Db_1\DATABASE\PWDtest.ORA'


重建本地认证文件
C:\>orapwd file=F:\oracle\product.1.0\Db_1\DATABASE\PWDtest.ORA password=123456 entries=2;

RMAN>shutdown immediate

RMAN> startup mount

database is already started
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 08/03/2005 20:00:30
RMAN-06189: current DBID 1863531774 does not match target mounted database (1862908416)

RMAN>

重新设置DBID

RMAN> set DBID=1862908416

executing command: SET DBID

RMAN> startup mount

database is already started

RMAN> restore database;


RMAN> recover database;

Starting recover at 03-8月 -05
using channel ORA_DISK_1

starting media recovery

archive log thread 1 sequence 1 is already on disk as file F:\ORACLE\PRODUCT.1.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG\
2005_08_03\O1_MF_1_1_1H2D39KL_.ARC
archive log thread 1 sequence 2 is already on disk as file F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\REDO02.LOG
archive log thread 1 sequence 3 is already on disk as file F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\REDO03.LOG
archive log thread 1 sequence 4 is already on disk as file F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\REDO01.LOG
archive log filename=F:\ORACLE\PRODUCT.1.0\FLASH_RECOVERY_AREA\TEST\ARCHIVELOG05_08_03\O1_MF_1_1_1H2D39KL_.ARC thr
ead=1 sequence=1
archive log filename=F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\REDO02.LOG thread=1 sequence=2
archive log filename=F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\REDO03.LOG thread=1 sequence=3
archive log filename=F:\ORACLE\PRODUCT.1.0\ORADATA\TEST\REDO01.LOG thread=1 sequence=4
media recovery complete
Finished recover at 03-8月 -05

RMAN>


由于控制文件是用备份还原的需要resetlogs打开。
SQL> alter database open resetlogs;


SQL> select * from sss;

AA         BB         CC
---------- ---------- ---
aa         bb         cc
aa         jj         mm
vv         ss         tt
mm         mm         mm  //此行数据回来了,说明没有丢数据.


A simple triger.:【上一篇】
找出最耗资源的sql:【下一篇】
【相关文章】
  • 修改oracle监听占用的8080端口
  • Oracle 体系结构介绍
  • Oracle9i 2.0.4在Red Hat Enterprise Linux AS 3上的安装
  • Oracle erp销售订单订单行状态不对导致订单无法关闭之解决方案!
  • oracle下定时执行过程脚本
  • Oracle的Archive Log模式下的恢复工作
  • Oracle调优(入门及提高篇)
  • oracle管理查询
  • oracle热物理备份步骤
  • Oracle触发器
  • 【随机文章】
  • 华为公司无线局域网解决方案
  • 线性表的链式表示与实现
  • 如何学习Oracle
  • informix常用命令的用法说明
  • 解析并防范计算机蠕虫病毒(4)
  • 静静的走过一段路
  • instanceof 与类实例关系分析
  • RedHat Linux 9下管道和分页器
  • debian amd64 安装 java
  • CSS语法手册(四)文本填充,边框,边界和位置属性(二)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.