2019-12-02 - BoobooWei
redolog
文件分类
联机重做日志文件
每个Oracle数据库都有一组两个或多个联机重做日志文件。这些联机重做日志文件,以及重做日志文件的存档副本,统称为数据库的重做日志。一个重做日志由重做条目(也称为重做记录),其记录的所有数据更改作出。如果发生故障导致修改后的数据无法永久写入数据文件,则可以从重做日志中获取更改,因此永远不会丢失工作。
为了防止涉及重做日志本身的故障,Oracle数据库允许您创建多路复用的重做日志,以便可以在不同的磁盘上维护两个或多个重做日志副本。
存档的重做日志文件
Managing Archived Redo Log Files
归档的重做日志文件是数据库生成的在线重做日志文件的脱机副本。当数据库处于ARCHIVELOG
模式时,Oracle数据库会自动归档重做日志文件。Oracle建议您启用联机重做日志的自动存档。
对 redolog
的管理
管理内容 | SQL |
---|---|
查看日志的工作工作状态 | select * from v$log; |
查看日志的物理信息 | select * from v$logfile; |
查看日志切换的历史 | select SEQUENCE#,to_char(FIRST_TIME,’yyyy-mm-dd hh24:mi:ss’) from v$log_history; |
监控日志切换频率:(成员大小、组的数量、切换频率,决定数据库性能) | select to_char(first_time,’yyyymmddhh24’),count(*) from v$log_history group by to_char(first_time,’yyyymmddhh24’); |
改变成员尺寸:添加新的组同时指定新的成员大小 | alter database add logfile group 3 ‘/home/oracle/db01/redo03.log’ size 100m; alter database add logfile group 4 ‘/home/oracle/db01/redo04.log’ size 100m; |
删除日志组 | alter database drop logfile group 1; |
手工切换日志 | alter system switch logfile; |
手工产生检查点 | alter system checkpoint; |
在组下增加成员 | alter database add logfile member ‘/home/oracle/redo01b.log’ to group 1, ‘/home/oracle/redo02b.log’ to group 2, ‘/home/oracle/redo03b.log’ to group 3; |
移动日志文件 | shutdown immediate startup mount !mv /home/oracle/redo01b.log /home/oracle/db01/redo01b.log !mv /home/oracle/redo02b.log /home/oracle/db01/redo02b.log !mv /home/oracle/redo03b.log /home/oracle/db01/redo03b.log alter database rename file ‘/home/oracle/redo01b.log’ to ‘/home/oracle/db01/redo01b.log’; alter database rename file ‘/home/oracle/redo02b.log’ to ‘/home/oracle/db01/redo02b.log’; alter database rename file ‘/home/oracle/redo03b.log’ to ‘/home/oracle/db01/redo03b.log’; |
归档模式 | 每次联机日志切换时,当前组都会被备份下来,生成归档文件! |
查看数据库是否为归档模式 | show parameter DB_RECOVERY_FILE_DEST |
将数据库转换为归档模式 | shutdown immediate startup mount alter database archivelog; alter database open; archive log list |
查看存档位置 | show parameter DB_RECOVERY_FILE_DEST |
查看已经归档的日志文件 | select sequence#,name from v$archived_log; |
修改存档位置 | mkdir -p /home/oracle/arc_cctv_dest1/ alter system set log_archive_dest_1=’location=/home/oracle/arc_cctv_dest1/‘; alter system switch logfile; select sequence#,name from v$archived_log; |
练习
SQL> column member format a30 |
您必须在以NOARCHIVELOG
或ARCHIVELOG
模式运行数据库之间进行选择。
是否启用已归档的重做日志文件组的归档取决于数据库上运行的应用程序的可用性和可靠性要求。如果在发生磁盘故障时无法承受丢失数据库中任何数据的风险,请使用ARCHIVELOG
模式。填充的重做日志文件的存档可能需要您执行额外的管理操作。
- 在NOARCHIVELOG模式下
运行数据库在NOARCHIVELOG
模式下运行数据库时,将禁用重做日志的归档。 在ARCHIVELOG模式下
运行数据库在ARCHIVELOG
模式下运行数据库时,将启用重做日志的归档。Running a Database in NOARCHIVELOG Mode
When you run your database inNOARCHIVELOG
mode, you disable the archiving of the redo log.- Running a Database in ARCHIVELOG Mode
When you run a database inARCHIVELOG
mode, you enable the archiving of the redo log.
笔记
管理日志文件: |