oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作
文章目录
- 一.归档方式
- 1.1 联机重做日志、归档日志概念
- 1.2 工作模式
- 1.3 数据库恢复
- 1.4 归档模式
- (1)启用
- (2)查看归档文件被存放的路径以及存放文件的容量:
- (3)手动进行日志切换:
- (4)log_archive_dest参数,查看归档目录路径和状态:
- (5)修改归档目录路径 log_archive_dest_n
- (6)设置多个归档目录,每个归档目录存储的内容是一样的
- (7)修改归档目录状态 defer (表示不可用) enable(表示可用)
- (8)从10g开始 log_archive_dest被废弃,只能使用log_archive_dest_n
- 1.5 关闭归档模式
- 二.日志文件组
- 2.1联机日志文件组四种常见状态:
- 2.1联机日志文件组操作
- (1)给日志文件组增加文件
- (2)创建日志文件组
- (3)清除联机日志文件组
一.归档方式
1.1 联机重做日志、归档日志概念
oracle数据库有联机重做日志,用于记录对数据库所做的修改,包括对表进行的DML(INSERT、UPDATE、DELETE)操作以及DDL操作、对系统所做的改变等。
数据库通过LGWR进程把日志缓冲区中的重做条目写入联机日志文件(redo01.log等)中。用户修改记录并commit后,数据库宕机,重新启动数据库,需要用到redo01.log等。对于DML操作, 通过前滚、后滚,只要用户提交了数据记录,就不会丢失,只要没有提交,就不会保存。
由于联机重做日志文件的重要性,因此以组的方式管理日志文件,数据库中至少有2个日志文件组,每个日志组中所有日志成员的内容完全相同,如果一个日志文件损坏,只要组内的其他日志文件仍然可用,该组依然对外提供日志操作,不会宕机。
oracle中日志文件分为在线日志文件(即联机重做日志)和归档日志两类。归档日志是对在线日志文件的历史备份
在线日志查看:
select * from V$LOGFILE;
1.2 工作模式
在线日志按照组来工作,每一个组有多个文件。日志组按照循环方式进行工作,在oracle中至少有2个日志组。当一个联机重做日志组1被写满时,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又发生日志切换,去写联机重做日志组1,循环往复。
如果数据库处于非归档模式,联机重做日志在切换时就会丢弃。 而在归档模式下,当发生日志切换的时候, arch进程会把被切换的日志进行归档。例如,当前使用联机重做日志1被写满时,发生日志切换,开始写联机重做日志2,归档模式下,联机重做日志1的内容会被拷贝到另一个指定目录下。这个目录被称为归档目录,拷贝的文件被称为归档重做文件。
数据库在归档模式下运行时才可以进行灾难性恢复。(在生产环境中建议启用归档模式,若实际环境中
运行稳定、没有太多日志产生且对实时性要求不高,可采用逻辑备份方式,保证数据库安全)
注: Oracle提供的逻辑备份与恢复的命令有exp/imp,expdp/impdp,表级复制(create table
目标表 as select * from 源表)。Oracle逻辑备份没有支持增量备份;对数据恢复也是非一致性的。
所以一般都是用于数据迁移的工作。
查看归档模式:
方式一:
SELECT log_mode from v$database;
方式二:
在sqlplus中运行
archive log list
1.3 数据库恢复
非归档日志方式可避免实例故障,但无法避免介质故障,在此方式下,数据库只能实施冷备份;
归档日志方式产生归档日志,用户可以使用归档日志完全恢复数据库。
1.4 归档模式
(1)启用
关闭数据库:
shutdown immediate;
启动数据库到mount状态(控制文件已经打开,用户信息仍然不能查看):
startup mount;
配置归档模式并打开数据库:
alter database archivelog;
alter database open;
查看归档状态
archive log list
注: 存档终点,即联机日志切换时,被拷贝到此目录下
(2)查看归档文件被存放的路径以及存放文件的容量:
(3)手动进行日志切换:
alter system switch logfile;
(4)log_archive_dest参数,查看归档目录路径和状态:
(5)修改归档目录路径 log_archive_dest_n
alter system set log_archive_dest_1='location=D:\software\arch1\';
修改归档目录后,手动归档,原来的归档路径不再存储归档日志:
(6)设置多个归档目录,每个归档目录存储的内容是一样的
alter system set log_archive_dest_2='location=D:\software\arch2\';
alter system set log_archive_dest_3='location=D:\software\arch3\';
(7)修改归档目录状态 defer (表示不可用) enable(表示可用)
alter system set log_archive_dest_state_1='defer';
(8)从10g开始 log_archive_dest被废弃,只能使用log_archive_dest_n
1.5 关闭归档模式
调整数据库从归档模式到非归档模式,按照上诉步骤再执行一遍:
shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
二.日志文件组
2.1联机日志文件组四种常见状态:
current:表示当前使用的联机日志文件组;
active:表示这个日志文件组中,所记录的重做记录所对应的内存中的脏数据块还没有被完全写入数据文件中,实例恢复时需要这组日志;(database buffer cache做了修改但还没有写到datafile的数据,只要没有写入数据文件,不管是否提交,都可以称为脏数据)
inactive:表示这个日志文件组中,所记录的重做记录所对应的内存中的脏数据块已经被写入到数据文件中,实例恢复时不需要这组日志;
unused:表示还没有被使用过
2.1联机日志文件组操作
(1)给日志文件组增加文件
alter database add logfile member 'D:\software\oracle\oradata\orcl\redo02a.log' to group 2;
对于日志文件组2,D:\SOFTWARE\ORACLE\ORADATA\ORCL\REDO02A.LOG和D:\SOFTWARE\ORACLE\ORADATA\ORCL\REDO02.LOG 文件大小和内容将会完全相同
(2)创建日志文件组
不同日志组的大小可以不同,但同一个日志组内所有日志文件大小必须相同
alter database add logfile group 4 'D:\software\oracle\oradata\orcl\redo04.log' size 10m;
(3)清除联机日志文件组
alter database clear logfile group 1;
清除联机日志组内所有成员,适用于日志文件组损坏了部分成员的情况,注意被清除的日志文件组必须视inactive状态,清除后的日志组状态变为unused
oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作相关推荐
- 添加日志文件组与日志文件成员
添加日志文件组与日志文件成员 首先确定当前登录的账户的权限,是否包含创建日志文件组或者日志文件成员的alter database 系统权限. SQL> select privilege from ...
- 【解决方法】因为 'PRIMARY' 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长,以便增加可用磁盘空间
文章目录 平台 问题描述 解决问题 1.查看数据库数据文件存放路径 2.查看存放路径的盘是否已满 3.更改数据库设置 平台 sqlserver 2012 问题描述 正常运行的生产系统,今天下午突然发现 ...
- SQL Server 数据库中添加文件组和数据文件
SQL Server 现有数据库中添加文件组和数据文件use CURRENT_DB --进入当前操作数据库 go alter database CURRENT_DB add filegroup FG1 ...
- linux tar压缩权限,LINUX 文件/组/帮助/权限/文件压缩/管道
Linux文件/目录详解 常用文件路径的作用 /var/log/messages 系统类的日志文件/var/log/secure 登录日志文件/var/spool/cron 定时任务目录/etc/fs ...
- 由于文件组 'PRIMARY 中的磁盘空间不足,无法为数据库 'newnet' 分配新页。请删除文件组中的对象、将其他文件添加到文件组或者为文件组中的现有文件启用自动增长,以便增加必要的空间。
1.确定数据库所在的磁盘空间足够用. 2.数据库->属性->文件->自动增长->最大文件大小->不限制文件增长.
- 因为 ‘PRIMARY‘ 文件组已满。请删除不需要的文件、删除文件组中的对象、将其他文件添加到文件组或为文件组中的现有文件启用自动增长
今天遇到一个奇葩sql错误 服务器内存满了导致 解决办法直接选择一个空闲都服务器盘 就可以解决 点击报错的数据库>右键> 文件>添加>修改保存路径>点击确定就可以了 不懂 ...
- 【oracle11g,12】归档日志和归档
一.归档和非归档区别: 1.归档模式: 归档会在日志切换时,备份历史日志,用于oltp,可以进行冷备份和热备份,可以实现数据库完全恢复和不完全恢复(基于时间点,scn). 归档会启用arch的后台进程 ...
- oracle 删除补全日志组_浅谈Oracle 20c ASM文件组模板技术
首先,Oracle ASM file group 是一组文件,它们共享相同的属性和特征.文件组最主要的好处是在相同的磁盘组里为不同的数据库文件定义不同的可用性属性,这一特性让在多租户架构的pdb (可 ...
- php删除oracle数据记录日志文件,Oracle手动切换日志文件和清空日志文件
日志文件组是循环使用的,当一组日志文件被写满时,Oracle系统自动的切换到下一组日志文件.在需要的时候,数据库管理员也可以手 Oracle切换日志文件组 日志文件组是循环使用的,当一组日志文件被写满 ...
最新文章
- PNAS-2018-根系分泌物香豆素调控微生物群落结构并促进植物健康
- jsr 303_使用Spring和JSR 303进行方法参数验证
- BZOJ2877 NOI2012魔幻棋盘(二维线段树)
- 砝码问题之一(回头发现貌似多重背包)
- 迭代器(Iterator)模式
- qt中设置控件不能使用
- 利用打码平台识别点选验证码
- 为ARM处理器实现Machine Forth
- 信息安全CIA三要素
- Navicat导入Excel提示无法打开Excel文件
- windows批处理脚本执行回到桌面的操作
- 从蓄水池问题思考异步FIFO深度设计
- VsCode同步配置到另一台设备
- 为什么苹果日历不能设置日程_iphone6提醒事项加入日历怎么不提醒我 到时
- Cobaltstrike系列教程(十)安装扩展
- 【docker】 docker-server启动重启关闭
- JAVA强制类型转换常见错误
- 新团队团队融合研讨会_行程报告:2020年软件开发人员多样性与融合研讨会
- 土壤湿度指标(Soil wetness index,SWI)
- Arduino- GY30光线传感器实验(检测光照强度)
热门文章
- 怎么样识别表格?分享三个识别表格的操作方法
- 1英寸等于2.54cm。编写程序,要求输入你的身高(以英寸为单位),然后显示该身高值等于 多少厘米。(结果保留两位小数)
- 移动应用程序设计基础——点菜单列表实现
- 数字三位分节法(即整数部分从右向左,每隔三位用逗号分开)python实现
- Speedoffice(excel)如何使用COUNTIF函数进行条件计数
- Android App抓包、Mock数据探索
- 这个时代,让我们一起格局打开!【2022戴尔科技峰会预告】
- Busybox制作x86文件系统(最便捷版)
- MCU(单片机)datasheet(规格说明书)
- 五个热门的免费Linux视频软件下载