【练习---日志文件的恢复】-----多元化成员中,单个成员丢失

1.查看当前的日志组成员:

09:59:28 SYS@ORA11GR2>select group#,member from v$logfile;

    GROUP# MEMBER
---------- --------------------------------------------------
         3 /u01/app/oracle/oradata/ORA11GR2/redo03.log
         2 /u01/app/oracle/oradata/ORA11GR2/redo02.log
         1 /u01/app/oracle/oradata/ORA11GR2/redo01.log

09:59:42 SYS@ORA11GR2>select group#,members,bytes/1024/1024 M,status from v$log;

    GROUP#    MEMBERS          M STATUS
---------- ---------- ---------- ----------------
         1          1         50 CURRENT
         2          1         50 INACTIVE
         3          1         50 INACTIVE

2.给每个日志组增加一个成员:

09:59:49 SYS@ORA11GR2>alter database add logfile member
10:00:24   2  ‘/u01/app/oracle/disk/redo03b.log‘ to group 3;

Database altered.

10:01:13 SYS@ORA11GR2>alter database add logfile member
10:01:25   2  ‘/u01/app/oracle/disk/redo02b.log‘ to group 2;

Database altered.

10:02:30 SYS@ORA11GR2>alter database add logfile member
10:02:42   2  ‘/u01/app/oracle/disk/redo01b.log‘ to group 1;

Database altered.

3.现在有三个日志组,每组都有两个成员:

10:02:53 SYS@ORA11GR2>select group#,member from v$logfile;

    GROUP# MEMBER
---------- --------------------------------------------------
         3 /u01/app/oracle/oradata/ORA11GR2/redo03.log
         2 /u01/app/oracle/oradata/ORA11GR2/redo02.log
         1 /u01/app/oracle/oradata/ORA11GR2/redo01.log
         3 /u01/app/oracle/disk/redo03b.log
         2 /u01/app/oracle/disk/redo02b.log
         1 /u01/app/oracle/disk/redo01b.log

6 rows selected.

3.[[email protected]3 ~]$ ls /u01/app/oracle/disk
redo01b.log  redo02b.log  redo03b.log

4.关库删除一个日志组成员:

10:04:21 SYS@ORA11GR2>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
[[email protected] ~]$ rm /u01/app/oracle/disk/redo03b.log

5.起库,不会报错:

10:05:28 SYS@ORA11GR2>startup
ORACLE instance started.

Total System Global Area  830930944 bytes
Fixed Size                  2257800 bytes
Variable Size             536874104 bytes
Database Buffers          289406976 bytes
Redo Buffers                2392064 bytes
Database mounted.
Database opened.

6.但是看alert日志,会有找不到redo03b.log的日志文件

ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: ‘/u01/app/oracle/disk/redo03b.log‘
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
10:10:13 SYS@ORA11GR2>select group#,member,status from v$logfile;

    GROUP# MEMBER                                             STATUS
---------- -------------------------------------------------- -------
         3 /u01/app/oracle/oradata/ORA11GR2/redo03.log
         2 /u01/app/oracle/oradata/ORA11GR2/redo02.log
         1 /u01/app/oracle/oradata/ORA11GR2/redo01.log
         3 /u01/app/oracle/disk/redo03b.log                   INVALID
         2 /u01/app/oracle/disk/redo02b.log
         1 /u01/app/oracle/disk/redo01b.log

6 rows selected.

7.解决办法:

关库
10:12:35 SYS@ORA11GR2>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
系统层面拷贝一个
[[email protected] ~]$ cp /u01/app/oracle/disk/redo01b.log /u01/app/oracle/disk/redo03b.log
此时起库alert日志里也没有错误信息了
10:19:19 SYS@ORA11GR2>alter system switch logfile;

System altered.

10:20:17 SYS@ORA11GR2>select group#,member,status from v$logfile;

    GROUP# MEMBER                                             STATUS
---------- -------------------------------------------------- -------
         3 /u01/app/oracle/oradata/ORA11GR2/redo03.log
         2 /u01/app/oracle/oradata/ORA11GR2/redo02.log
         1 /u01/app/oracle/oradata/ORA11GR2/redo01.log
         3 /u01/app/oracle/disk/redo03b.log
         2 /u01/app/oracle/disk/redo02b.log
         1 /u01/app/oracle/disk/redo01b.log

6 rows selected.
时间: 2024-10-21 06:24:03

【练习---日志文件的恢复】-----多元化成员中,单个成员丢失的相关文章

数据库恢复之丢失联机重做日志文件的恢复

联机重做日志文件用来循环记录ORACLE数据库的所有操作,几乎时刻都在读写,因此单纯备份某个时间点的联机重做日志文件没有意义,恢复时根本用来上.RMAN的备份里根本就没有备份联机重做日志的功能,而且不止RMAN,所有的备份软件都没有备份联机重做日志文件的说法.因此,丢失联机重做日志后的数据库恢复也用不到RMAN. 如果ORACLE数据库在启动时发现丢失某一某一联机重做日志文件,则直接报错.ORACLE通过文件冗余的方式来确保联机重做日志文件的安全.即每组联机重做日志创建 多个文件,至少两个,每个

人工误删除InnoDB ibdata数据文件与ib_logile重做日志文件如何恢复详细过程

有人因为不熟悉InnoDB引擎,而误删除innoDB ibdata(数据文件)和ib_logfile(redo log重做事务日志文件),结果导致了悲剧的发生.如果有做主从复制同步那还好,如果是单机呢?如何恢复? 1)使用rm –f ib* 删除数据文件和重做日志文件 下面就来使用具体看看如何恢复. 若此时你发现数据库还可以正常工作,数据照样可以写入,切记,这时千万别把mysqld进程杀死,否则没法挽救. 先找到mysqld的进程pid,如下所示. mysql01:/data/mysql3306

BAK文件怎么恢复到数据库中

1.右击SQLServer2000实例下的“数据库”文件夹.就是master等数据库上一级的那个图标.选择“所有任务”,“还原数据库” 2.在“还原为数据库”中填上你希望恢复的数据库名字.这个名字应该与你的源码中使用的数据库名字一致. 3.在弹出的对话框中,选“从设备” 4.点击“选择设备” 5.点击“添加” 6.点击“文件名”文本框右侧的“…”按钮,选中你的“.BAK”文件,并点击确定回到“选择还原设备”对话框. 7.点击确定回到“还原数据库”对话框. 8.点击“选项”选项卡 9.将所有“移至

【恢复】Redo日志文件丢失的恢复

第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢失据的风险,强烈建议在条件允许的情况下,对Redo日志进行多路镜像.需要注意的是,RMAN不能备份联机Redo日志文件.所以,联机Redo日志一旦出现故障,则只能进行清除日志了.清除日志文件即表明可以重用该文件. 1.1.1  数据库归档/非归档模式下inactive redo异常ORA-00316

重做日志文件组和重做日志文件组成员的管理

一.重做日志文件组: 1.添加重做日志组的指令: alter database [数据库名称] add logfile[group 正整数] 文件名称 [,[group 正整数]文件名称]] 不是有group选项时oracle系统会自动在当前最大的组号上加1来产生新的组号 ex:alter database add logfile ('D:\REDO04.LOG','D:\REDO05.LOG') size 15m; 增加新的重做日志组并且添加两个重做日志成员,大小设置为15M 2.删除重做日志

oracle联机重做日志文件(online redo log file)

oracle联机重做日志文件(online redo log file几乎所有的发生在oracle的内部变化都记录在online  redo log file中,oracle使用 这些 redo log groups 去恢复数据库,因此它们是非常的重要. 联机重做日志文件的主要工作是:备份数据,1:记录所有的数据改变2:提供了一种恢复机制3:一定是被组织成组的4:至少有两组联机重做日志文件 每一个redo  log 是被分配到 组中, oralce 一次值写一个 online redo log

Oracle 控制文件和日志文件

管理控制文件 在Oracle数据库中,控制文件是一个很小(大小一般在10MB范围内)的二进制文件,含有数据库的结构信息,包括数据文件和日志文件的信息.可以将控制文件理解为物理数据库的一个元数据存储库.控制文件在数据库创建时被自动创建,并在数据库发生物理变化时更新.控制文件被不断更新,并且在任何时候都要保证控制文件是可用的.只有Oracle进程才能够安全地更新控制文件的内容,所以,任何时候都不要试图手动编辑控制文件. 由于控制文件在数据库中的重要地位,所以保护控制文件的安全非常重要,为此Oracl

使用作业自动清理数据库日志文件

原文:使用作业自动清理数据库日志文件 在上一篇文章中介绍了如何删除数据库日志文件,但是想想还是不是不方便需要手工操作,于是想结合作业实现自动清理日志文件,在清理日志文件时我加上了条件,当磁盘控空间不足多少M才会清理,下面介绍如何实现该功能.没有阅读上一篇文章的,可以通过传送门阅读(删除数据库日志文件的方法)! 阅读目录 SQL查询磁盘空间大小 存储过程添加作业 示例下载 回到顶部 SQL查询磁盘空间大小  采用内置的存储过程,即可查看各个磁盘可用空间 exec master..xp_fixedd

SQL Server日志文件庞大收缩方法(实测好用)

原文:SQL Server日志文件庞大收缩方法(实测好用) 这两个命令连续执行,间隔时间越少越明显(可多次运行),直到达到效果 --截断 BACKUP LOG CloudMonitor TO DISK='NUL' --收缩 DBCC SHRINKFILE('CloudMonitor_log') 以后就可以采用常规的定期备份日志(比如一小时一次)来防止日志文件无限增长. SQL Server日志文件庞大收缩并非易事, 文章中提到: 由于首日志.尾日志和空间重复利用的原因,当备份日志后产生了日志截断