Oracle添加和删除联机重做日志文件
联机重做日志
联机重做日志的概念一、联机重做日志1、重做线程每个数据库实例的联机重做日志组都是一个联机重做的实例线程。
不管有没有多路复用,一般每个Oracle都只有一个重做线程,当然RAC中每个实例都包含一个重做线程。
2、联机重做日志内容重做条目记录了可以对数据库重新构造的所有修改数据,包括回滚段。
重做记录在SGA重做日志缓存区中缓冲,并由LGWR进程写入某个联机重做日志文件。
事务被提交时,必定需要用LGWR将日志全部从SGA缓存中写入联机重做日志文件,然后才被告知提交完成。
LGWR还会为每个事务分配一个识别重做记录的系统修改号(SCN)。
当重做日志缓存填满时LGWR也会将重做条目写入到重做日志文件,这些是可以回滚的。
3、联机重做日志写入方式数据库的联机重做日志组务必要有两个或两个以上,这样可以保持其中一个一直用于写入,另一个用于归档。
LGWR采用循环写入的方式,即写满一个换下一个。
或归档模式则写满了之后归档,否则则直接覆盖。
4、活动与非活动当前正在写入的联机重做日志文件成为“当前的”联机重做日志文件。
实例恢复时所需的联机重做日志文件称为“活动的”联机重做日志文件。
实例恢复不用的联机重做日志文件称为“非活动的”联机重做日志文件。
已经进行存档的联机重做日志文件不能重新使用或重写,知道ARCn存储了这个文件内容。
5、日志切换 & 日志顺序号一般默认在一个文件写满时切换到写一个文件,但是也可以规定时间进行切换,这样就不用理会是否写满。
也可以手动进行强制切换。
每次日志切换都会分配一个新的日志顺序号,归档时也将顺序号进行保存。
每个联机或存档的重做日志文件都通过它的日志顺序号进行唯一标识。
二、规划联机重做日志1、多路复用(Group)多路复用是避免损坏联机重做日志文件。
多路复用时LGWR将同一重做日志信息同时写入多个同样的联机重做日志文件。
建议必须要使用多路复用(至少两个组)。
注:当某个成员不可用,则标记为INVALID,并向LGWR跟踪文件和数据报警文件中写入错误信息。
Oracle大型数据库实验五重做日志文件、表空间管理操作
Oracle大型数据库实验五重做日志文件、表空间管理操作第一篇:Oracle大型数据库实验五重做日志文件、表空间管理操作集美大学计算机工程学院实验报告课程名称:大型数据库技术指导教师:杨艳华班级:计算12 姓名:实验成绩:上机实践日期:2014.12 上机实践时间:2学时实验项目名称:重做日志文件、表空间管理操作学号:20 实验项目编号:实验五组号:一、实验目的1、理解重做日志文件的基本概念;2、掌握重做日志文件组及其成员的添加、移动、删除等操作;3、掌握归档重做日志的设置;4、理解表空间的基本概念和分类;5、掌握永久表空间的创建和管理操作;6、掌握还原表空间的管理。
二、实验要求1、完成重做日志文件组及其成员文件的管理操作;2、完成归档重做日志的设置;3、完成永久表空间和临时表空间的管理操作;4、完成还原表空间的管理。
三、实验内容(1)查看数据库当前重做日志文件组及成员的设置情况,然后,为数据库添加一组重做日志,组内包含两个成员文件,分别为redo4a.log和redo4b.log,大小分别为5MB。
1(2)为上面新添加的那组重做添加一个日志成员,命名为“redo4c-姓名简拼.log”,实现重做日志的多路存储。
(3)把数据库从非归档模式修改为归档模式,之后创造条件让数据库立即归档,并检查归档是否成功(4)创建永久表空间ν创建一个表空间名为“TB+学号后三位+姓名简拼” ν空间的大小为50M ν表空间包括两个数据文件:表空间名_01.dbf(30M)和表空间名_02.dbf(20M),大小均不能自动扩展ν数据文件均存放在Oracle 的安装根目录下ν区的分配方式为统一大小,192K ν段管理采用自动方式(5)改变上述永久表空间的可用性ν先将表空间脱机ν再进行联机(6)创建一个4K的非标准块表空间,命名为“tbf+学号后三位+姓名简拼”,数据文件存储在”oradataorcl姓名简拼”目录下,大小为(学号后三位*2)M。
oracle merge nologging用法
oracle merge nologging用法在Oracle 数据库中,MERGE 语句用于同时执行插入(INSERT)、更新(UPDATE)和删除(DELETE)操作。
而NOLOGGING 是一个选项,用于指示Oracle 在执行数据操作时不要将日志记录到重做日志文件中,从而提高性能。
当将MERGE 语句与NOLOGGING 选项结合使用时,可以在执行大批量数据操作时提高性能。
这通常用于数据仓库、ETL 过程或其他大规模数据操作场景。
但需要注意的是,由于NOLOGGING 可能会导致数据丢失或不可恢复,因此在使用时需要谨慎考虑。
下面是一个示例,演示了如何在Oracle 中使用MERGE 语句和NOLOGGING 选项:```sqlMERGE /*+ NOLOGGING */ INTO target_table tgtUSING source_table srcON (tgt.id = src.id)WHEN MATCHED THENUPDATE SET tgt.column1 = src.column1WHEN NOT MATCHED THENINSERT (id, column1, column2) VALUES (src.id, src.column1, src.column2);```在这个示例中,我们使用MERGE 语句将source_table 中的数据合并到target_table 中。
通过添加注释/*+ NOLOGGING */,我们告诉Oracle 在执行此MERGE 操作时不记录重做日志,以提高性能。
请务必在使用MERGE 和NOLOGGING 时进行充分测试,并确保了解它们对数据完整性和恢复能力的影响。
oracle数据库管理员操作日志
oracle数据库管理员操作日志
作为Oracle数据库管理员,操作日志是非常重要的工作之一。
数据库管理员需要定期记录数据库的操作日志,以便追踪和监控数据库的活动,保证数据库的安全性和稳定性。
操作日志记录了数据库管理人员和用户对数据库的操作,包括但不限于数据库的创建、修改、删除,用户的访问和权限变更,以及数据库的备份和恢复等操作。
在Oracle数据库中,可以通过以下几种方式记录操作日志:
1. Oracle数据库自带的日志功能,Oracle数据库提供了详细的日志记录功能,可以通过配置参数来开启日志记录,并设置日志的级别和格式。
管理员可以通过查看数据库的日志文件来了解数据库的操作情况。
2. 使用审计功能,Oracle数据库提供了审计功能,可以对数据库的操作进行审计,并记录到审计日志中。
管理员可以通过配置审计策略来监控数据库的操作,包括对特定对象的操作、特定用户的操作等。
3. 使用第三方工具,除了Oracle数据库自带的日志功能外,
还可以使用第三方的监控和日志记录工具来记录数据库的操作日志。
这些工具通常提供了更丰富的功能和更直观的界面,可以帮助管理
员更方便地管理和分析数据库的操作日志。
无论使用哪种方式记录操作日志,数据库管理员都需要定期对
日志进行分析和归档,以便及时发现潜在的问题并采取相应的措施。
此外,数据库管理员还需要遵守相关的法律法规和公司政策,确保
操作日志的安全和完整性,防止日志被篡改或删除。
操作日志对于
数据库的安全和稳定性至关重要,因此数据库管理员需要高度重视
操作日志的记录和管理工作。
Oracle 删除重做日志
Oracle 删除重做日志当日志成员出现损坏或丢失时,后台进程LGWR不能将事务变化写入到该日志成员中,在这种情况下应该删除该日志成员;当日志组尺寸不合适时,需要重新建立新日志组,并删除原有的日志组。
删除重做日志是使用ALTER DATABASE语句来完成的,执行该语句要求数据库用户必须具有ALTER DATABASE系统权限。
1.删除日志成员要删除一个成员日志文件,只需要使用带DROP LOGFILE MEMBER子句的ALTER DA TABASE语句。
例如,下面的语句将删除4号日志组的第2个成员:SQL> alter database drop logfile member2 'e:\oradata\orcl\redo04b.log';数据库已更改。
上面语句只是在数据字典和控制文件中将重做日志成员的信息删除,并不会在操作系统中物理地删除相应的文件,这需要确认删除成功后手工在操作系统中删除文件。
2.删除日志组由于已经存在日志组的尺寸不能改变,所以当日志组尺寸不合适时,就需要重新建立日志组并指定合适尺寸,然后删除不符合尺寸要求的日志组。
在删除一个日志组时,其中的成员文件也将全部被删除。
在删除日志组时,首先需要考虑如下几点:●无论日志组中有多少个成员,一个数据库至少需要两个日志组。
●只能删除处于INACTIVE状态的日志组。
如果要删除CURRENT状态的重做日志组,则必须执行一个手工切换日志,将它切换到INACTIVE状态。
●如果数据库处于归档模式下,在删除重做日志组之前必须确定它已经被归档。
因此,在删除重做日志组之前,可以查询V$LOG动态性能视图来获知各个重做日志组的状态以及它是否已经归档。
例如:SQL> select group#,archived,status from v$log;GROUP# ARC STATUS---------- --- ----------------1 NO CURRENT2 NO INACTIVE3 NO INACTIVE4 YES UNUSED要删除一个重做日志组,需要使用带有DROP LOGFILE子句的ALTER DATABASE语句。
oracle归档操作步骤
oracle归档操作步骤
Oracle的归档操作主要包括开启归档模式、修改归档日志路径以及删除归档日志等步骤。
1.查看归档模式是否开启以及重做日志存放路径。
可以通过执行SQL
命令archive log list来查看归档日志的状态,以及SELECT * FROM v$logfile ORDER BY group#;来查看重做日志的存放路径。
2.开启归档模式。
首先关闭数据库实例,然后启动到mount状态,接着
修改数据库为归档模式,最后打开数据库。
3.修改归档日志路径。
如果需要修改归档日志的路径,可以通过修改初
始化参数log_archive_dest_1的值来实现。
注意新路径必须已经存在,且每个目录都必须存在。
4.实验是否成功将路径做了修改。
可以通过切换重做日志的活跃状态来
触发日志备份,生成新的归档日志,并检查新的归档日志是否保存在设置的目录下。
5.删除归档日志。
首先通过执行crosscheck archivelog all;命令
来检查归档日志文件,然后通过执行delete expired archivelog all;命令来删除校验失败的记录。
oracle insert nologging语法
oracle insert nologging语法NOLOGGING 是 Oracle 数据库中的一个特性,用于控制是否在重做日志中记录某些操作。
当启用 NOLOGGING 时,可以减少日志的生成,从而提高某些操作的性能,但这也意味着在某些情况下,你可能会失去数据的持久性保证。
使用 NOLOGGING 需要注意以下几点:1、数据持久性:使用 NOLOGGING 的操作可能不会记录在重做日志中,所以如果发生故障,这些未记录的操作数据可能会丢失。
2、不能与某些操作一起使用:你不能对整个表或索引使用 NOLOGGING。
它只能应用于特定的DML 操作,如 INSERT、UPDATE 或 DELETE。
3、启用和禁用:一旦你为某个表或索引启用了 NOLOGGING,就不能再将其更改为 LOGGING。
你必须先删除该表或索引,然后再重新创建它。
4、考虑备份:如果你打算对一个表启用 NOLOGGING,确保你有最近的备份,并了解相关的风险。
5、使用场景:通常在大数据量插入、备份或某些特定性能场景下使用 NOLOGGING。
如何为 INSERT 操作启用 NOLOGGING:1首先,确保你的表当前是 LOGGING 模式:sqlALTER TABLE your_table_name LOGGING;2、之后,你可以为特定的 INSERT 操作使用 NOLOGGING:sqlINSERT /*+ APPEND NOLOGGING */ INTO your_table_name (column1, column2, ...) VALUES (value1, value2, ...);注意:上述语句中的 /*+ APPEND */ 是一个提示,它告诉 Oracle 将新记录直接追加到表的末尾,而不是进行常规的缓冲和排序。
这通常与大数据量的插入操作一起使用以提高性能。
3、如果你要为整个表启用 NOLOGGING,你可以使用以下命令:sqlALTER TABLE your_table_name NOLOGGING;但请确保你了解这样做的后果,并确保有适当的备份策略。
oracle 日志归档 原理
oracle 日志归档原理Oracle数据库日志归档(Archive Log Mode)是数据库管理系统中用于实现数据库可恢复性的重要机制。
在归档模式下,Oracle数据库会将已填满的联机重做日志文件的内容复制到单独的归档日志文件中,并且只有在当前的日志内容被安全地归档后,才会覆盖或重新使用这些联机重做日志。
以下是Oracle日志归档的基本原理:1.联机重做日志:•Oracle数据库运行时会产生一系列的联机重做日志文件(Online Redo Logs),这些文件按照日志组的方式组织,每个日志组内包含一个或多个日志成员。
•当数据库执行事务处理时,所有对数据库的修改都会以重做记录的形式写入当前活动的日志组中。
2.日志切换:•随着数据库操作的进行,当前日志组填满后,会触发日志切换(Log Switch),即系统开始往下一个日志组中写入新的重做记录。
•在非归档模式下,旧的日志组可以被覆盖和重复使用;而在归档模式下,必须先将旧日志组的内容归档才能进行切换。
3.归档过程:•归档是由后台进程ARCn (Archiver) 自动完成的,或者管理员可以通过手动方式将填满的联机重做日志文件复制到指定的归档位置。
•归档日志文件具有与原始联机日志相同的逻辑内容,并带有唯一的日志序列号(Log Sequence Number, LSN),以便在恢复过程中确定应用重做记录的顺序。
4.作用:•在发生故障需要恢复数据库时,通过应用归档日志中的重做记录,可以将数据库状态恢复到故障发生前的任意时间点(Point-in-Time Recovery, PITR)。
•对于数据库镜像、数据保护以及维护高可用性环境如Data Guard(物理/逻辑standby数据库)也是至关重要的。
oracle控制文件
STARTUPБайду номын сангаасNOMOUNT;
5, 使用CREATE CONTROLFILE语句为数据库创建一个新的控制文件。
在丢失了联机重做日志组、或者重命名了数据库必须指定RESETLOGS选项。
6, 在离线存储设置上存储新控制文件的备份。
7, 为数据库编辑CONTROL_FILES初始化参数,以便指出现在所有控制文件都是第5步创建的数据库的一部分。
什么是控制文件:
每个ORACLE数据库都有一个控制文件。控制文件是一个小型的二进制文件,它可以记录数据库的物理结构,其中包含以下内容:
数据库名称
相关的数据文件和联机重做日志文件的名称和位置
数据库创建的时标
当前日志的序号
检验点信息
8, 如果有必要可以恢复数据库。
9, 打开数据库。
备份控制文件:
1,将控制文件备份为二进制文件(现有控制文件的复制品)
ALTER DATABASE BACKUP CONTROLFILE TO ‘g:\JYSH\BAK\CONTROL.BAK';
2,制作以后可用于重新创建控制文件的SQL语句:
无论何时打开数据库,控制文件必须能够由ORACLE数据库服务器写入内容。没有控制文件,数据库就不能装载。
在不同的磁盘上复用控制文件
每个ORACLE数据库都应该至少有两个控制文件,它们分别存储在不同的磁盘上。当一个磁盘失败导致控制文件损坏,可以由另一个恢复损坏的控制文件。
依据数据库初始化参数文件中的初始化参数CONTROL_FILES列出的所有文件名,ORACLE会将相应的内容写入到所有这些控制文件中。
oracle日志文件
分类:Oracle 体系结构2010-07-20 14:11 2259人阅读评论(5) 收藏举报--=========================================-- Oracle 联机重做日志文件(ONLINE LOG FILE)--=========================================一、Oracle中的几类日志文件Redo log files -->联机重做日志Archive log files -->归档日志Alert log files -->告警日志Trace files -->跟踪日志user_dump_dest -->用户跟踪日志backupground_dump_dest -->进程跟踪日志--查看后台进程相关目录SQL> show parameter dumpNAME TYPE VALUE------------------------------------ -----------------------------------------background_core_dump string partialbackground_dump_dest string/u01/app/oracle/admin/orcl/bdumpcore_dump_dest string/u01/app/oracle/admin/orcl/cdumpmax_dump_file_size string UNLIMITEDshadow_core_dump string partialuser_dump_dest string/u01/app/oracle/admin/orcl/udump关于Oracle 常用目录及路径请参考:Oracle 常用目录结构(10g)关于Oracle 体系结构请参考:Oracle实例和Oracle数据库(Oracle体系结构)二、联机重做日志的规划管理1.联机重做日志记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等)提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复)可以被分组管理2.联机重做日志组由一个或多个相同的联机日志文件组成一个联机重做日志组至少两个日志组,每组一个成员(建议每组两个成员,分散放开到不同的磁盘)由LGWR后台进程同时将日志内容写入到一个组的所有成员LGWR的触发条件在事务提交的时候(COMMIT)Redo Log Buffer 三分之一满Redo Log Buffer 多于一兆的变化记录在DBWn写入数据文件之前3.联机重做日志成员重做日志组内的每一个联机日志文件称为一个成员一个组内的每一个成员具有相同的日志序列号(log sequence number),且成员的大小相同每次日志切换时,Oracle服务器分配一个新的LSN号给即将写入日志的日志文件组LSN号用于唯一区分每一个联机日志组和归档日志处于归档模式的联机日志,LSN号在归档时也被写入到归档日志之中4.日志文件的工作方式日志文件采用按顺序循环写的方式当一组联机日志组写满,LGWR则将日志写入到下一组,当最后一组写满则从第一组开始写入写入下一组的过程称为日志切换切换时发生检查点过程检查点的信息同时写入到控制文件5.联机日志文件的规划总原则分散放开,多路复用日志所在的磁盘应当具有较高的I/O一般日志组大小应满足自动切换间隔至少15-20分钟左右业务需求建议使用rdo结尾的日志文件名,避免误删日志文件。
Oracle 增加重做日志
Oracle 增加重做日志如果发现LGWR经常处于等待状态,则就需要考虑添加日志组及其成员,一个数据库最多可以拥有MAXLOGFILES个日志组。
增加重做日志是使用ALTER DA TABASE语句完成的,执行该语句时要求用户必须具有ALTER DATABASE系统权限。
1.增加重做日志组当管理重做日志时,为防止后台进程LGWR等待写入日志组,DBA必须选择合适的日志组个数。
要增加重做日志组,可以使用带ADD LOGFILE子句的ALTER DATABASE语句。
例如,下面的语句向数据库中添加了一个新的重做日志组:SQL> alter database add logfile2 ('d:\app\Administrator\oradata\orcl\redo04.log',3 'e:\oradata\orcl\redo04b.log')4 size 10m;数据库已更改。
新增的重做日志组具有两个成员,每个成员文件的大小均为10MB。
一般情况下,日志文件的大小在10MB到50MB之间,Oracle默认的日志文件大小为50MB。
如果在ALTER DA TABASE ADD LOGFILE语句指定GROUP子句,Oracle将自动为新建的重做日志组设置编号,例如:下面的语句可以在创建日志组时指定为第4组:SQL> alter database add logfile group 42 ('d:\app\Administrator\oradata\orcl\redo04.log',3 'e:\oradata\orcl\redo04b.log')4 size 10m;数据库已更改。
使用组号可以更加方便地管理重做日志组,但是,对日志组的编号必须为连续的,不要跳跃式地指定日志组编号。
也就是说,不要将组号编为10,20,30等这样不连续的数。
oracle数据库处理归档日志的步骤
一、了解归档日志归档日志是Oracle数据库中一种重要的日志记录方式,它记录了数据库中所有发生的修改操作,包括插入、更新、删除等。
归档日志的作用是用于数据库的恢复和回滚操作,确保数据库的完整性和可靠性。
二、启用归档模式1. 确认数据库当前日志模式在连接数据库后,可以使用以下SQL语句确认当前的数据库日志模式:```SELECT log_modeFROM v$database;```如果返回结果为ARCHIVELOG,则表示数据库已经处于归档模式;如果返回结果为NOARCHIVELOG,则表示数据库尚未启用归档模式。
2. 修改数据库为归档模式如果数据库尚未启用归档模式,可以使用以下步骤将数据库修改为归档模式:```SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;```通过以上步骤,数据库将被修改为归档模式,并可以开始处理归档日志。
三、配置归档参数1. 确认归档目标归档目标是指归档日志文件的存储位置。
可以使用以下SQL语句确认当前的归档目标:```SHOW PARAMETER LOG_ARCHIVE_DEST;```如果没有设置归档目标,需要通过以下SQL语句进行设置:```ALTER SYSTEM SETLOG_ARCHIVE_DEST_1='LOCATION=/archivelog';```其中,/archivelog为归档日志存储的路径,可以根据实际情况进行调整。
2. 确认归档模式归档模式是指数据库在何种情况下触发归档日志的记录。
可以使用以下SQL语句确认当前的归档模式:```SHOW PARAMETER LOG_ARCHIVE_START;```如果归档模式未启用,需要通过以下SQL语句进行设置:```ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE;```通过以上步骤,归档参数将被正确配置,数据库可以开始处理归档日志。
oracle清理归档日志
list expired archivelog all; 4.定期清除archivelog: 可以将如下代码写成.bat文件,在控制面版的任务计划下添加新的定时任务: RMAN target sys/*****@orcl crosscheck archivelog all; delete expired archivelog all;
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 即注册
oracle清 理 归 档 日 志
1.用RMAN连接目标DB: rman target / RMAN target sys/*****@orcl 2.在RMAN命令窗口中,输入如下命令(清理所有的归档日志): crosscheck archivelog all; delete expired archivelog all; 或者清理指定时间之前的日志(archivelog): DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';(指定删除7天前的归档日志); 或者直接如下: RMAN target sys/*****@orcl; DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; ================================================================= RMAN target sys/*****@orcl DELETE NOPROMPT ARCHIVELOG UNTIL TIME "TO_DATE('XXXX-XX-XX','YYYY-MM-DD')"; 3.其它相关命令: 查看归档日志列表:
Oracle归档模式及归档日志的操作
Oracle归档模式及归档日志的操作1归档模式及归档日志基本概念:1.1为什么要给Oracle做归档操作:Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。
当ORACLE数据库运行在ARCHIVELOG(归档模式)模式时,所有的事务重做日志都将保存.这意味着对数据库进行的所有事务都留有一个备份,尽管重做日志以循环方式工作,但在一个重做日志被覆盖前均将为其建立一个副本.在重做日志文件复制完成之前,ORACLE数据库将停止一切新的操作,在旧的事务记录完成之前ORACLE不对其进行覆盖.有了所有事务的副本,数据库就可以从所有类型的失败中恢复,包括用户错误或磁盘崩溃.这是一种最安全的数据库工作方式。
在实际开发中,归档模式是符合开发的,归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,数据库使用归档方式运行时才可以进行灾难性恢复。
1.2归档模式和非归档模式的区别:非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.1.3什么是归档日志:归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档日志中.当数据库出现介质失败时,使用数据文件备份,归档日志和重做日志可以完全恢复数据库。
2Linux系统开启归档模式:使用ssh登录到Linux系统:2.1切换到oracle用户,然后使用sqlplus /nolog登录到oracle数据上:su -oraclesqlplus /nolog2.2使用oracle系统管理员sysdba登录到数据库:conn /as sysdba2.3查看当前oracle的模式:select log_mode from v$database;如果当前模式为NOARCHIVELOG,就说明没有开启归档模式2.4关闭数据库,启动到mount状态:shutdown immediate;startup mount;2.5修改数据库为归档模式alter database archivelog; (此处的分号不可以省略)(如果是归档模式改为非归档,则执行:alter database noarchivelog;)2.6启动数据库:alter database open;2.7再次验证:执行select log_mode from v$database;可查看到oracle已经修改为归档模式了3Windows开启归档模式:3.1打开sqlplus工具:sqlplus工具路径:F:\Oracle\product\11.2.0\dbhome_1\BIN中的sqlplus.exe双击打开即可。
Oracle 重做日志简介
Oracle 重做日志简介日志文件也称为重做日志文件(Redo Log File),重做日志文件用于记载事务操作所引起的数据库变化。
执行DDL或DML操作时,Oracle会将事务变化的信息顺序写入重做日志。
当丢失或损坏数据库中的数据时,Oracle会根据重做日志文件中的记录,恢复丢失的数据。
1.重做记录重做日志文件是由重做记录组成,重做记录又称为重做条目,它由一组修改向量组成。
每个修改向量都记录了数据库中某个数据块所做的修改。
例如,如果用户执行了一条UPDATE语句对某个表中的一条记录进行修改,同时将生成一条重做记录。
这条重做记录可能由多个变更向量组成,在这些变更向量中记录了所有被这条语句修改过的数据块中的信息,被修改的数据块包括表中存储这条记录的数据块,以及回退段中存储的相应的回退条目的数据块。
如果由于某种原因导致数据库丢失了这条UPDA TE语句操作的结果,则可以通过与这条UPDATE语句对应的重做记录找到被修改结果并复制到各个数据块中,从而完成数据恢复。
利用重做记录,不仅能够恢复对数据文件所做的修改操作,还能够恢复对回退段所做的修改操作。
因此,重做日志文件不仅可以保护用户数据库,还能够保护回退段数据。
在进行数据库恢复时,Oracle会读取每个变更向量,然后将其中记录的修改信息重新应用到相应的数据块上。
重做记录将以循环方式在SGA区的重做日志高速缓存中进行缓存,并且由后台进程LGWR写入到重做日志文件中。
当一个事条被提交时,LGWR进程将与该事务相关的所有重做记录全部写入重做日志文件中,同时生成一个“系统变更码SCN”。
系统变更码SCN 会随重做记录一起保存到重做日志文件中,以标识与重做记录相关的事务。
只有当某个事务所产生的重做记录全部被写入重做日志文件后,Oracle才会认为该事务提交成功。
2.写入重做日志文件在Oracle中,用户对数据库所做的修改首先被保存在内存中,这样可以提高数据库的性能,因为对内存中的数据进行操作要比对磁盘进行操作快得多。
oracle 删除归档日记
oracle 删除归档日记要删除归档日志,可以使用以下步骤:1. 首先,确认数据库实例处于归档模式。
可以使用以下命令:```ARCHIVE LOG LIST;```如果显示当前归档模式为“Enabled”,则可以继续进行下一步。
2. 确认要删除的归档日志的起始和结束时间。
可以使用以下命令:```SELECT SEQUENCE#, FIRST_TIME, NEXT_TIMEFROM V$ARCHIVED_LOGWHERE FIRST_TIME >= TO_DATE('开始时间', 'YYYY-MM-DD HH24:MI:SS')AND NEXT_TIME <= TO_DATE('结束时间', 'YYYY-MM-DD HH24:MI:SS');```替换上述命令中的“开始时间”和“结束时间”为实际的起始和结束时间。
3. 使用 RMAN(Recovery Manager)工具删除归档日志。
可以使用以下命令:```RMAN TARGET /DELETE ARCHIVELOG ALL COMPLETED BEFORE '开始时间';```替换上述命令中的“开始时间”为实际的起始时间。
4. 在删除完成后,可以再次确认归档日志是否已被删除。
使用以下命令:```SELECT SEQUENCE#, FIRST_TIME, NEXT_TIMEFROM V$ARCHIVED_LOGWHERE FIRST_TIME >= TO_DATE('开始时间', 'YYYY-MM-DD HH24:MI:SS')AND NEXT_TIME <= TO_DATE('结束时间', 'YYYY-MM-DD HH24:MI:SS');```确保不再显示要删除的归档日志。
请注意,在执行这些操作之前,请务必备份数据库以防意外情况发生。
oracle重做日志文件和归档日志
数据库恢复的原理
当数据库发生故障时,可以利用重做 日志文件来进行恢复。Oracle会根据 重做日志文件中的记录,重新执行对 数据库所做的更改,从而将数据库恢 复到一致的状态。
04 Oracle重做日志文件和归 档日志的管理和维护
日志文件的备份与恢复
备份策略
制定定期备份和增量备份策略,确保重做日志文件和归档日志的安全。
恢复方法
在发生故障时,根据备份情况选择适当的恢复方法,如全量恢复或增量恢复。
日志文件的清理与维护
清理过期日志
定期清理过期或不再需要的日志文件 ,释放存储空间。
Oracle重做日志文件和归档日志
contents
目录
• Oracle重做日志文件 • 归档日志 • Oracle重做日志文件和归档日志的关系 • Oracle重做日志文件和归档日志的管理
和维护 • Oracle重做日志文件和归档日志的故障
处理
ቤተ መጻሕፍቲ ባይዱ
01 Oracle重做日志文件
重做日志文件的作用
数据恢复
THANKS FOR WATCHING
感谢您的观看
存储容量
需要合理规划存储空间,确保有足够的空间存储归档日志文件,避 免空间不足导致数据库故障。
归档日志的恢复
恢复方法
当数据库发生故障时,可以使用归档日志进行恢复。可以选择完全恢复或部分恢复,根据需要选择相应的归档日志文 件。
恢复过程
在恢复过程中,需要按照时间顺序应用归档日志文件,确保数据的一致性。可以使用RMAN(Oracle Recovery Manager)进行自动恢复或手动恢复。
Oracle的Insert、Update、Delete等DML操作速度的提高
在Oracl e数据库中,Insert、Update、Delete三个操作是对数据库中的数据进行插入、更新以及删除。
在进行这些操作时,如果数据库中的记录比较多时,则所需要的时间比较长。
如需要利用一个Upda te语句更新大量记录时,即使更新的内容很简单,如只是将价格提升10%,但是仍然需要花费比较成的时间。
所以从某种程度上来说,进行这些操作时其执行速度跟内容的大小关系不大,反而跟记录的多少却有很大的关系。
那么在Ora cle数据库中,能否采取一些措施来提高这些操作的速度呢?为此笔者有如下两个建议,希望对大家有所帮助。
建议一:在执行这些操作时不向重做日志中写东西。
在执行更新、插入、删除操作时,默认情况下,其在更新数据的同时,也会像重做日志文件中记录这些改变。
如利用Upd ate语句将数据库中产品的价格提高10%时。
数据库会更改这些价格,同时也会在重做日志中记录这些改变。
显然,更新一个数据,数据库要进行两项工作。
为此,当更新所涉及到的记录比较多时,这个更新操作就可能要耗费比较长的时间。
此时,可能需要更新内容本身字符的多少,跟其更新的效率并不具有很大的联系。
其执行的速度主要跟其更新所涉及到的记录数量有关。
为此,有时候在追求其更快的执行速度时,我们往往需要在这些语句中加入一个nolog ging选项。
如在使用Up date语句更新价格信息时,加上这个No loggi ng 选项就可以显著提高其执行的速度。
更新操作所涉及到的记录越多,其效果越明显。
那么这个可选项到底有什么作用呢?顾名思义,这个参数就是告诉数据库系统,在执行这个操作的时候,不要忘重做日志中记录相关的信息。
也就是说,此时数据库系统只需要做一件工作即可,至需要更改数据,而不会产生重做日志文件。
oracle_重做日志文件--笔记
oracle_重做⽇志⽂件--笔记重做⽇志⽂件(redo log file)⽬录重做⽇志⽂件相关。
重做⽇志⽂件简介。
查询重做⽇志⽂件的信息。
⽇志切换。
管理⽇志⽂件组增删⽇志⽂件组。
增删⽇志⽂件成员。
归档与⾮归档模式。
⼀.重做⽇志⽂件相关。
Oracle引⼊重做⽇志的⽬的:数据库的恢复。
Oracle相关进程:重做⽇志写进程(LGWR)。
重做⽇志性质:联机⽇志⽂件,oracle服务器运⾏时需要管理它们。
相关数据字典:v$log ; v$logfile。
操作者权限:具有sys⽤户或system⽤户权限。
1.1重做⽇志⽂件的规划。
(于⽹络上收集)联机⽇志⽂件的规划原则如下:1:分散放开,多路复⽤。
⼀般会将同⼀组的不同⽇志成员⽂件放到不同的磁盘或不同的裸设备上。
以提⾼安全性。
2:把重做⽇志放在速度最快的硬盘上(即:⽇志所在的磁盘应当具有较⾼的I/O),⼀般会将⽇志⽂件放在裸设备上。
3:把重做⽇志⽂件设为合理⼤⼩:例如,增⼤⽇志⽂件⼤⼩可以加快⼀些⼤型的INSERT、UPDATE、DELETE操作,也能降低⽇志⽂件切换频率。
减少⼀些⽇志等待事件。
⼀般根据具体业务情况有所不同。
⼀般⽇志组⼤⼩应满⾜⾃动切换间隔⾄少15-20分钟左右业务需求4:ORACLE推荐,同⼀个重做⽇值组下的所有重做⽇志⽂件⼤⼩、成员个数⼀致.⼆.重做⽇志⽂件简介。
2.1重做⽇志重做⽇志⽂件⼜叫联机⽇志⽂件,记录了对数据库修改的信息,包括⽤户对数据修改和数据库管理员对数据库结构的修改。
2.2重做⽇志的作⽤。
它主要⽤于在oracle发⽣故障的时候和数据库备份⽂件配合恢复数据库。
⼀般来说,数据库故障丢失数据,有两种情况。
⼀是,因为停电或死机,脏块未写⼊磁盘,造成该数据丢失。
⼆是,磁盘损坏,数据全完蛋。
对应第⼀种情况,oracle会使⽤实例恢复,使⽤重做⽇志⾃动恢复数据,不需要⽤户⼲预。
没错,实例恢复,它是⾃动的。
对应第⼆种情况,便需要DBA使⽤备份,重做⽇志,归档⽇志来恢复数据了。
总结联机重做日志文件
学习任务:解释联机重做日志文件的目的联机重做日志文件的结构控制日志切换和检查点多重映像和维护联机重做日志文件获取联机重做日志文件的信息每个数据库至少需要拥有两个联机重做日志文件,因为Oracle是以循环方式来使用联机重做日志文件的。
为了避免由于单点故障造成丢失数据库信息,可以考虑使用日志文件副本。
一组相同的联机重做日志文件副本称作联机重做日志组。
属于日志组的每个文件被称为日志成员,并且同一个日志组的不同日志成员互为镜像,LGWR后台进程向组内所有联机重做日志文件并发写入相同信息,组内的每个成员都有相同的日志序列号和同样的大小。
注意:如果某个重做日志文件被破坏,只要它所在的日志组中至少有一个成员还可以用,则Oracle可以正常运行,不过在警告文件中记录有一个重做日志文件无法使用。
添加联机重做日志文件组ALTER DAT ABASE ADD LOGFILE GROUP 3 ('$HOME/ORADAT A/u01/log3a.rdo','$HOME/ORADATA/u02/log3b.rdo')SIZE 1M;添加联机重做日志文件成员ALTER DAT ABASE ADD LOGFILE MEMBER'$HOME/ORADATA/u04/log1c.rdo' TO GROUP 1,'$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2,'$HOME/ORADATA/u04/log3c.rdo' TO GROUP 3;删除联机重做日志文件组ALTER DAT ABASE DROP LOGFILE GROUP 3;注意:1.不能删除数据库仅有的两个日志组;2.当数据库处于归档模式下,确保日志组已经归档;3.不能删除当前日志组;4.在删除了日志组之后,应该手工删除其对应物理文件。
删除联机重做日志文件成员ALTER DAT ABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';删除日志成员限制:1.不能删除日志组的唯一成员;2.如果数据库处于归档模式下,要确保日志成员所在组已经归档;3.不能删除当前日志组的日志成员;4.在删除了日志成员时,并未删除操作系统文件,应该手工删除其对应物理文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle添加和删除联机重做日志文件
作者:雨竹清风
数据库管理员应该在每个重做日志组中保证至少两个,以防止重做日志的物理错误。
创建重做日志文件的命令为:alter database add logfile member‘路径’to group 组号;
示例如下:
SQL>desc v$logfile;
名称是否为空?类型
-----------------------------------------------------------------------------
GROUP#NUMBER
STATUS VARCHAR2(7)
TYPE VARCHAR2(7)
MEMBER VARCHAR2(513)
IS_RECOVERY_DEST_FILE VARCHAR2(3)
SQL>col member for a50
SQL>select GROUP#,STATUS,TYPE,MEMBER from v$logfile;
GROUP#STATUS TYPE MEMBER
--------------------------------------------------------------------------
3ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
2ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
1ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
SQL>alter database add logfile member 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01b.LOG'to group1;
数据库已更改。
添加后查询一下是否成功。
SQL>col member for a50
SQL>select GROUP#,STATUS,TYPE,MEMBER from v$logfile;
GROUP#STATUS TYPE MEMBER
--------------------------------------------------------------------------
3ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
2ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
1ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
1INVALID ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01B.LOG
删除联机重做日志文件,用alter database drop logfile member'路径';命令。
若要删除刚刚添加的重做日志文件要先切换状态。
用命令:alter system switch logfile;因为刚刚添加的状态为INVALID。
有时可能会多次切换。
为此也可以先关闭数据库再重新打开,这样比较方便的删除。
示例如下:
SQL>alter system switch logfile;
系统已更改。
SQL>alter database drop logfile member 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01B.LOG';
数据库已更改。