网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.快速解决Oracle监听器服务不能启.
.在Linux机器上安装运行Oracle.
.使用Instr()与decode()进行多条件.
.都是防火墙惹的祸--Oracle连接总.
.Re: 关于ORACLE用户权限的问题!.
.集合和成员函数.
.Oracle10g废弃log_archive_start.
.oracle数据库PL/SQL过程(组图).
.SQLPlus命令使用指南(二) enh.
.10046event 漫步.
.Red Hat Linux 7.1使用手册(下).
.Oracle恢复实验一:使用添加数据.
.Installing Oracle 9iR2 on RHEL.
.让Linux远离病毒侵扰.
.在DB2中如何實現Oracle的相關功能.
.[技术]Oracle数据库空间的使用和.
.ORACLE常用傻瓜問題1000問(之六).
.Digital Unix Version 4.0下Orac.
.如何安装配置Oracle 9i网络环境三.
.删除文件跟恢复文件系列.

Oracle 10g RMAN的备份测试

发表日期:2008-2-9


情况一,数据库崩溃,只剩下磁带上的通过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  //此行数据回来了,说明没有丢数据.
上一篇:一个简单的oracle分页存储过程的实现和调用 人气:1133
下一篇:举一个 web 翻页 sql 调整的实例 人气:638
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐