1.日志切换和检查点
数据库管理员可以根据管理和维护的需要,在任何时候强制性地进行重做日志切换,也可以强制性地产生检查点。
强制性产生重做日志切换的命令为:ALTER SYSTEM SWITCH LOGFILE
强制性产生检查点的命令为:ALTER SYSTEM CHECKPOINT
也可以通过设置FAST_START_MTTR_TARGET参数方式来强制产生检查点,其参数设置如下:
FAST_START_MTTR_TARGET=900
单位是秒,以上的参数的含义是:实例恢复的时间不会超过900秒。
1) 获得数据库中有多少个重做日志组,每个组中有多少个成员及它们的大小和状态等信息
SQL>select group#,sequence#,members,bytes,status,archived from v$log;
2) 获得数据库中每个重做日志组的每个成员所在的目录和文件名及它们的状态等信息
SQL>select * from v$logfile;
2.添加和删除联机重做日志文件组
创建新的重做日志组的SQL命令格式如下:
ALTER DATABASE [数据库名]
ADD LOGFILE [GROUP 正整数] 文件名
[, [GROUP 正整数] 文件名] 。。。]
如:SQL>alter database add logfile (‘E:\Disk3\redo04a.log’,’E:\Disk6\redo04b.log’) size 15M;
删除重做日志组的SQL命令的格式如下:
ALTER DATABASE [数据库名]
DROP LOGFILE {GROUP 正整数|(‘文件名’[,’文件名’]。。。)}
[, {GROUP正整数| (‘文件名’[, ‘文件名’] 。。。)}]。。。
如:SQL>ALTER DATABASE DROP LOGFILE GROUP 4
注意:当前的重做日志组不能删除。如果要删除,先使用ALTER SYSTEM SWITCH LOGFILE命令进行切换。每个实例至少有两组重做日志才能正常工作。最后要说的是当一组重做日志被删除后,它的操作系统文件依然存在,只能用操作系统命令删除,否则会留下一些无用的垃圾及文件。
3.添加和删除联机重做日志成员(文件)
添加重做日志组成员
SQL>ALTER DATABASE ADD LOGFILE MEMBER
‘J:\DISK3\redo01b.log’ to GROUP 1,
‘J:\DISK3\redo02b.log’ to GROUP 2,
‘J:\DISK3\redo03b.log’ to GROUP 3;
验证是否添加正确
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
获得每个新创建的重做日志文件名
SQL>SELECT * FROM v$logfile;
删除不需要的重做日志成员
SQL>ALTER DATABASE DROP LOGFILE MEMBER
‘J:\DISK3\red003B.LOG’;
建议:不能使用上面介绍的命令同时删除每个重做日志组的一个成员,因为不能删除当前组的成员。如要删除,应该先使用ALTER SYSTEM SWITCH LOGFILE命令进行切换。如果想删除刚刚加入的成员,有时可能会遇到麻烦。因为刚刚加入的成员的状态为INVALID,因此在删除它们之前可能要发若干ALTER SYSTEM SWITCH LOGFILE命令多次进行切换,还要等很久。比较容易的方法是:先关闭数据库,再开启数据库,之后就可以轻松地删除这些成员了。
4.清除联机重做日志文件
1) 如果数据库是开启的,由于一个联机重做日志文件崩溃使用归档活动不能继续进行,最终导致数据库的挂起。可以重新初始化重做日志文件。
SQL>ALTER DATABASE CLEAR LOGFILE GROUP 组号;
2)如果崩溃的重做日志文件已不能归档,可以清除已崩溃的重做日志文件,从而避免对它们进行归档。
SQL>ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 组号;
注:当Oracle服务器执行了以上任何一条命令之后,Oracle数据库以前的备份都将变为无用,所以应该尽快做一个全备份。
例子:清除一个重做日志文件
首先以system或sys用户并加上AS SYSDBA选项登录。为了安全起见首先为数据库做一个脱机(关闭数据库)的全备份。
1. 为了备份所需的文件,获取所有控制文件的文件名。
SQL>select * from v$controlfile;
2. 因为在Oracle默认安装时,所有的控制文件,数据文件和重做日志文件都放在同一个目录下,因此可以使用如下命令快速关闭数据库。
SQL>shutdown immediate
3. 使用操作系统命令将所有的控制文件,数据文件和重做日志文件复制到备份目录中。
SQL>host copy J:\ORACLE\PRODUCT\10.1.0\ORADATA\MOON\*.* J:\BACKUP\
4. 将口令文件和参数文件等也复制到指定的备份目录中。
SQL>host copy J:\ORACLE\PRODUCT\10.1.0\Db_1\database\*.* J:\Backup\database\
5. 完成备份后,启动ORACLE数据库
SQL>startup
6. 获得所有重做日志组和成员的详细信息
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
SQL>SELECT * FROM v$logfile;
7. 清除第3组重做日志
SQL>alter database clear logfile group 3;
8. 再通过如下命令确认
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
SQL>SELECT * FROM v$logfile;
会发现第3组重做日志的序列号(SEQUENCE#)已经变为0,这也是为什么当清除一个重做日志后需要做数据库全备份的原因所在。因为Oracle在进行数据库恢复时,要求重做日志的序列号必须是连续的。
9. 最后,应该再关闭数据库做一个数据库的全备份。
5. 利用OMF来管理联机重做日志文件
利用Oracle管理文件(Oracle Managed Files)来自动管理和维护重做日志文件是从9i开始引入的。该方法简化了重做日志的管理和维护。
例子:利用OMF来自动管理和维护重做日志文件
以system或sys用户登录
1. 设定每个重做日志成员存放的目录
SQL>alter system set DB_CREATE_ONLINE_LOG_DEST_1=’J:\DISK3’;
SQL>alter system set DB_CREATE_ONLINE_LOG_DEST_2=’J:\DISK6’;
SQL>alter system set DB_CREATE_ONLINE_LOG_DEST_3=’J:\DISK9’;
2. 可以用如下命令以OMF方式在所运行的数据库中加入一组新的重做日志,共有3个成员,文件名由服务器生成,其大小都为100MB。
SQL>alter database add logfile;
3. 确定是否创建成功
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
SQL>SELECT * FROM v$logfile;
例子:如何在数据库中删除一组以OMF方式创建的重做日志组
以system或sys用户登录
1. 用如下命令删除数据库中的一组重做日志组
SQL>alter database drop logfile group 4;
2. 确定是否删除成功
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
SQL>SELECT * FROM v$logfile;
可看出与手工方式不同的是此时Oracle服务器会自动地删除所对应的操作系统文件。
6 重做日志配置的应用实例
前提:3个重做日志组各只有一个成员,且所有的重做日志文件存在一张磁盘上,现在将每个重做日志组成员增加到3个,为了使数据库的重做日志的维护变得容易,将重做日志组增加到5个,为了提高数据库运行的效率,每个重做日志成员(文件)的大小都置为15MB。
1. 添加两个新的重做日志组
SQL>ALTER DATABASE ADD LOGFILE
(‘J:\DISK3\MOON\ONLINELOG\RED0004A.LOG’,
‘J:\DISK3\MOON\ONLINELOG\RED0004B.LOG’,
‘J:\DISK3\MOON\ONLINELOG\RED0004C.LOG’)
SIZE 15M;
SQL>ALTER DATABASE ADD LOGFILE
(‘J:\DISK3\MOON\ONLINELOG\RED0005A.LOG’,
‘J:\DISK3\MOON\ONLINELOG\RED0005B.LOG’,
‘J:\DISK3\MOON\ONLINELOG\RED0005C.LOG’)
SIZE 15M;
2. 确定是否添加成功
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
SQL>SELECT * FROM v$logfile;
3. 以上可见当前组是那个,假如是第1组,用如下方法删除第3组,并重新添加第3组
SQL>ALTER DATABASE DROP LOGFILE GROUP 3;
用如下命令确认下:
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
添加第3组:
SQL>ALTER DATABASE ADD LOGFILE GROUP 3
(‘J:\DISK3\MOON\ONLINELOG\RED0003A.LOG’,
‘J:\DISK3\MOON\ONLINELOG\RED0003B.LOG’,
‘J:\DISK3\MOON\ONLINELOG\RED0003C.LOG’)
SIZE 15M;
用如下命令确认下:
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
4. 用以上方法删除第2组,并重新添加第2组
5. 接下来是删除当前组,但当前组不能删除,于是使用如下命令进行重做日志切换
SQL>ALTER SYSTEM SWITCH LOGFILE;
用如下命令确认下:
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
6. 此时会发现当前组为第2组,但第1组为活动状态,而活动的重做日志组是不能删除的,当然可以等到第1组变为非活动后再删除该组,但是为了加快工作进度,又发了一条重做日志切换命令。
SQL>ALTER SYSTEM SWITCH LOGFILE;
用如下命令确认下:
SQL>SELECT group#,sequence#,members,bytes,status,archived FROM v$log;
7. 此时第1组变为非活动状态,用以第3步的方法删除第1组,并重新添加第1组
8. 用如下命令确认是否都存在所规定的磁盘和目录中
SQL>SELECT * FROM v$logfile ORDER BY group#,member;
9. 删除操作系统上旧的,无用的重做日志成员所对应的所有操作系统文件。
分享到:
相关推荐
### Oracle移动重做日志文件知识点详解 #### 一、Oracle重做日志文件概述 在Oracle数据库系统中,重做日志文件是至关重要的组成部分之一。它主要用于记录所有对数据库所做的修改操作,确保在系统崩溃后能够进行...
Oracle重做日志文件管理 Oracle重做日志文件管理是Oracle...管理员需要掌握重做日志文件的作用、重做日志文件组的管理、重做日志文件组查询、重做日志文件组状态、日志切换和检查点等知识,以便正确地管理数据库。
### Oracle在线重做日志文件详解 #### 一、引言 在Oracle数据库管理与维护过程中,重做日志文件(Redo Log Files)扮演着至关重要的角色。它们记录了所有对数据库所做的修改操作,是数据库恢复过程中的关键组件之一...
在Oracle数据库管理中,重做日志文件是记录所有事务更改的关键组件,用于在系统崩溃或数据丢失时恢复数据库。然而,有时出于必要,数据库管理员可能需要删除重做日志文件组或其成员。尽管如此,这个过程并不简单,...
【Oracle重做日志文件对医保系统性能影响分析】 在Oracle数据库系统中,重做日志文件(Redo Log Files)是确保数据安全性和恢复能力的关键组件。它们记录了所有事务对数据库所做的更改,用于在系统崩溃或介质故障后...
Oracle数据库重做日志文件的分析及其应用 本文将详细讨论 Oracle 数据库重做日志文件的分析及其应用,包括日志文件的概念、类型、结构、恢复机制等方面的知识点。 1. 日志文件的概念 日志文件是数据库管理系统中...
- 而在归档模式下,当一个重做日志文件组被写满后,Oracle会将这些重做日志文件归档到磁盘上的指定位置,这样即便发生介质故障,也能通过归档的重做日志文件恢复到更早的时间点。 - **重做日志文件的配置**: - ...
重做日志文件是Oracle数据库中一种非常重要的日志文件,也是其一个很有特色的功能。重做日志文件会纪录对于数据库的任何操作,如利用DML语句或者DDL语句对数据进行更改,或者数据库管理员对数据库结构进行更改,都会...
Oracle 8管理控制文件和重做日志文件 Oracle 8管理控制文件和重做日志文件是Oracle数据库管理中两个重要的概念。控制文件是Oracle数据库的关键组件之一,负责存储数据库的结构信息和控制信息,而重做日志文件则是...
Oracle将重做日志文件分割成多个虚拟日志文件(VLF),VLF的数量和大小由数据库根据日志文件的初始大小和增长策略自动调整。VLF是重做日志文件的基本单位,当一个VLF中的记录不再需要时,会被新的重做记录覆盖并重复...
Oracle重做日志文件管理技巧.pdf
有关oracle数据库的重做日志管理文件
- 重做日志文件(Redo Log Files)是Oracle用来存储事务日志的地方,它们包含了所有对数据库进行的修改操作。当数据库进行数据修改时,这些修改首先在内存中完成,然后由LGWR后台进程定期批量写入数据文件。而重做...
1. **识别丢失的重做日志文件**:首先,需要确定丢失的是哪个重做日志文件,这通常通过查询数据库的V$LOG视图来完成。 2. **创建临时重做日志文件**:在数据库实例中创建一个新的临时重做日志文件,其大小和位置应...
例如,在当前示例中,我们创建了四个新的重做日志文件,分别对应于第991至994号日志组,每个文件大小为512MB: ```sql ALTER DATABASE ADD LOGFILE THREAD 7 GROUP 991 ('+dg_ora/orcl/redo_tmp_01.log') SIZE 512M...
联机重做日志文件由多个逻辑单元组成,称为重做日志文件组。每个文件组包含至少一个物理文件,这些文件通常分布在不同的磁盘上,以提高I/O性能和数据安全性。文件中包含了按照时间顺序记录的重做条目,确保在数据库...