龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle数据库环境详解

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
我们今天要阐述下测试环境中的 Oracle 数据库环境,的相关模式在模拟某些文件丢失后,你怎样运用Oracle数据库对其进行调整,以下就是其相关的具体操作方法,希望同大家一起分享。

我们今天要阐述下测试环境中的Oracle数据库环境,的相关模式在模拟某些文件丢失后,你怎样运用Oracle数据库对其进行调整,以下就是其相关的具体操作方法,希望同大家一起分享。

一、先阐述下测试环境

系统数据库环境:window+Oracle10g R2+archive模式;

模拟Redo文件丢失,Oracle数据库在正常关闭的情况发现Redo丢失了;

二、测试

(1)、倘若丢了一个或多个redo组的一个成员。这种情况最好处理,直接copy其它目录的成员,重新启动数据库即可。此种情况不作太多的说明;

(2)、倘若丢失的是一组或两组甚至全部Redo日志丢失,则有以下三种方法可以恢复;

A、clear logfile方法(以下的测试均属于是redo日志全部丢失的环境下)

1、关闭数据库;

2、手动删除所有redo文件;

3、启动数据库;

SQL> startup

Oracle 例程已经启动。

  1. Total System Global Area 612368384 bytes  
  2. Fixed Size 1250428 bytes  
  3. Variable Size 255855492 bytes  
  4. Database Buffers 348127232 bytes  
  5. Redo Buffers 7135232 bytes  

Oracle数据库装载完毕。

ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员

ORA-00312: 联机日志 1 线程 1:

  1. 'E:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG' 

ORA-00312: 联机日志 1 线程 1: 'F:\REDO\REDO01_B.LOG'

SQL>

4、查看当前日志状态;

  1. SQL> select group#,members,archived,status from v$log;  
  2. GROUP# MEMBERS ARC STATUS  
  3. 1 2 YES INACTIVE  
  4. 2 2 NO CURRENT  
  5. 3 2 YES INACTIVE  
  6. SQL> 

5、clear生成非当前的日志;

  1. SQL>alter database clear logfile group1; 

Oracle数据库已更改。

  1. SQL> 

6、继续打开数据库;

  1. SQL> alter database open;  
  2. alter database open  
  3. *   

第 1 行出现错误:

ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员

ORA-00312: 联机日志 2线程 1:

  1. 'E:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG' 

ORA-00312: 联机日志 3 线程 1: 'F:\REDO\REDO02_B.LOG'

  1. SQL> 
  2. SQL> alter database clear logfile group 2;  
  3. alter database clear logfile group 2*  

第 1 行出现错误:

ORA-00350: 日志 2(实例 orcl 的日志, 线程 1) 需要归档

ORA-00312: 联机日志 2 线程 1:

  1. 'E:\Oracle\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG' 

ORA-00312: 联机日志 2 线程 1: 'F:\REDO\REDO02_B.LOG'

报错;因为group2是当前状态;

此时只能从其它目录copy有效备份。然后在alter database;

  1. SQL>alter database clear unarchived logfile group2; 

数据库已更改。

然后再重建Group 3,方法同重建 Group 1;

  1. SQL> alter database clear logfile group 3; 

Oracle数据库已更改。

  1. SQL> alter database open; 

数据库已更改。

注意:倘若没有物理有效备份文件,数据库则将无法打开;用clear logifle这种方法,对于处于CURRENT状态的Redo,只能通过COPY有效的物理备份去打开数据库,否则无法打开;

精彩图集

赞助商链接