oracle重做日志教程,Oracle教程:重做日志文件基本维护

重做日志文件最重要的用途就是用来恢复数据(其实你也可以用来logminer),它记录着system global area(sga)当中的database bu

重做日志文件最重要的用途就是用来恢复数据(其实你也可以用来logminer),它记录着system global area(sga)当中的database buffer cache(高速缓存区)的所有变更信息,记录到log buffer;不过在某些特殊情况下比如sqlldr direct等直接写入操作例外,这些例外将不会被记录。因此,使用redo log在实例崩溃情况下来恢复尚未写入数据文件的的数据。

针对每个实例,只有一个写进程LGWR;重做日志文件建议至少两个组,每个组至少两个成员文件,同一个组内的成员之间是内容相同的副本拷贝,同组内的成员大小保持一致,当然建议所有的成员大小都一致,为了避免相关的LGWR等待影响数据库性能,一个比较有用的建议是将成员文件在物理磁盘上分散存放。

提到重做日志文件不得不提到重做日志缓存区log buffer,以及一个重要的进程LGWR日志写进程,该进程负责建log buffer的内容写入到redo logfile,具体的触发条件如下:

◆ 当发出commit命令的时候

◆ 当log buffer的空间写满到1/3的时候或者当log buffer的空间写满1MB的记录的时候

◆ 当每3秒钟超时的时候

◆ 当DBWn需要写入数据文件的操作之前的时候

◆ 当切换日志文件的时候

0. 查看日志文件

SELECT group#, sequence#, bytes, members, status FROM v$log;--组号、序列号、大小、成员数量、状态【UNUSED-从未使用过;CURRENT-当前使用中;ACTIVE-活动的,,进行恢复的使用将会被用到;INACTIVE-非活动的;CLEARING_CURRENT-正在清除当前日志文件中已经关闭的线程;CLEARING-类似的,在执行ALTER DATABASE CLEAR LOGFILE之后将被清空为空日志之后将转化为UNUSED】

select * from v$logfile;--状态【INVALID-该文件不可访问;STALE-该文件内容不完全,比如正在添加一个文件成员;DELETED-该文件不再被使用;空白-正在使用】

SELECT groups, current_group#, sequence# FROM v$thread;--组数量、当前组、序列号

1. 查看log buffer

show parameter log_buffer

伴随着重做日志而来的还有一个重要的信息,那就是是否将日志文件进行归档。数据库可以运行在归档模式(archivelog)和非归档模式(noarchivelog)下。

2. 查看归档模式

archive log list;

select log_mode from v$database;

select archiver from v$instance;

3. 归档方式切换

为了简单,这里使用Oracle 10g来演示。

SQL*Plus: Release 10.2.0.5.0 - Production on Tue May 8 15:49:39 2012

Copyright (c) 1982, 2010, Oracle. All Rights Reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> archive log list;

Database log mode No Archive Mode

Automatic archival Disabled

Archive destination /u01/oracle/10g/arch

Oldest online log sequence 158

Current log sequence 160

--目前未归档,我们要切换为归档,首先设置归档目录

SQL> alter system set log_archive_dest_1='location=/u01/oracle/10g/arch' scope=spfile;

System altered.

--关闭数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

--启动实例mount状态

SQL> startup mount;

ORACLE instance started.

Total System Global Area 1610612736 bytes

Fixed Size 2096632 bytes

Variable Size 469762568 bytes

Database Buffers 1124073472 bytes

Redo Buffers 14680064 bytes

Database mounted.

--打开归档模式

SQL> alter database archivelog;

Database altered.

--打开数据库

SQL> alter database open;

Database altered.

--检查归档模式

SQL> archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/10g/arch

Oldest online log sequence 158

Next log sequence to archive 160

Current log sequence 160

--手工切换日志文件

SQL> archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/10g/arch

Oldest online log sequence 159

Next log sequence to archive 161

Current log sequence 161

SQL> alter system switch logfile;

System altered.

SQL> archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/10g/arch

Oldest online log sequence 160

Next log sequence to archive 162

Current log sequence 162

SQL> alter system archive log current;

System altered.

SQL> archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u01/oracle/10g/arch

Oldest online log sequence 161

Next log sequence to archive 163

Current log sequence 163

--切换为非归档模式

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 1610612736 bytes

Fixed Size 2096632 bytes

Variable Size 469762568 bytes

Database Buffers 1124073472 bytes

Redo Buffers 14680064 bytes

Database mounted.

SQL> alter database noarchivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;

Database log mode No Archive Mode

Automatic archival Disabled

Archive destination /u01/oracle/10g/arch

Oldest online log sequence 158

Current log sequence 160

logo.gif 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

以太网,局域网,万维网

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 以太网是一种通信协议标准 万维网WWW 是 Internet 的多媒体信息查询工具 以太网: 以…

java的自动类型转换和强制类型转换

在程序运行时,经常需要将一种数值类型进行转换成另一种类型。下面给出了一个合法的转换。数值之间的合法转换上图中有6个实心箭头,表示无信息丢失的转换,有三个虚箭头,表示可能有精度丢失的转换。例如123456789是一个大整数&#…

Class 泛型

Java Class 泛型的例子说明: http://blog.chinaunix.net/uid-1911213-id-3085866.html http://blog.163.com/sir_876/blog/static/1170522320121216273111/转载于:https://www.cnblogs.com/yedu/p/4514016.html

java动态代理的实现

动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程。友情提示:本文略有难度,读者需具备代理模式相关基础知识&#xff0c…

常见的网络类型

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 我们经常听到Internet网、星形网等名词,它们表示什么?是怎样分…

oracle放在内存里,oracle如中何把小表钉住在内存中

buffer_pool_defualtbuffer_pool_keepbuffer_pool_recycle如果要把表钉死在内存中,也就是把表钉在keep区。相关的命令为:alter table ..... storage(buffer_pool keep);这句命令把表示表如果缓存的话是缓存在keep区。可以通过语句:select tab…

C++基础之this指针的详解

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** 关于C中的this指针,建议大家看看这篇文章,《C中的this指针》&a…

xcode 开发ios兼容性问题的上下黑边 和 coco2d-x 游戏分辨率适配 ResolutionPolicy::FIXED_WIDTH 都会引起上下黑边问题!!!...

1:Xcode6在iPhone5iOS7模拟器上编译,上下有黑边问题 问题描述: Xcode6环境下,对iPhone5或iPhone5s模拟器,在iOS7或iOS7.1下运行,屏幕上下有黑边。在iOS8下没问题。 问题分析: 这种熟悉的场景又出…

如何用参数化SQL语句污染你的计划缓存

你的SQL语句的参数化总是个好想法。使用参数化SQL语句你不会污染你的计划缓存——错!!!在这篇文章里我想向你展示下用参数化SQL语句就可以污染你的计划缓存,这是非常简单的! ADO.NET-AddWithValue ADO.NET是实现像SQL …

oracle values函数,Oracle文本函数简介

Oracle文本函数使我们常用的函数,下面就为您介绍几种Oracle文本函数的用法,供您参考学习,希望可以让您对Oracle文本函数有更深的认识。(1)UPPER、LOWER和INITCAP这三个函数更改提供给它们的文体的大小写。select upper(product_name) from pr…

c++ int *p = new int()

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** int *anew int(120); 申请一个整型变量空间,赋初值为120,并…

Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件

Ios: 如何保護iOS束文件屬性列表,圖像,SQLite,媒體文件我創建了Hello World示例項目,然後添加data.plist文件到資源文件夾。現在人們可以很容易得到束文件解壓縮。國際音標。有任何的方法來保護data.plist文件保存在iPhone應用程序…

w3wp oracle,w3wp.exe占用CPU超过50%的处理

w3wp.exe占用CPU超过50%的处理1.查看CPU占用高的进程:任务管理器C:\Documents andSettings\Administrator>iisappW3WP.exe PID: 18008 AppPoolId: STATW3WP.exe PID: 8328 AppPoolId: STATW3WP.exe PID: 17868 AppPoolId: JYCV16W3WP.exe PID: 16652 AppPoolId: …

论两种学习模式

引言 A:你是如何学习的,通过视频、书籍和实践结合?B:不是,一般情况是以一个问题为点去画线和面。 两种学习模式 按部就班方式获取知识(通过书、视频)缺点 信息接收者缺乏深度思考和探索信息发布者的知识体系不一定适合…

启动mq命令 linux,RocketMQ:Linux下启动server和broker的命令

目录QUESTION:RocketMQ:Linux下启动server和broker的命令?ANSWER:一、启动mqnamesrv1.1当前执行1.2后台运行二、启动mqbroker2.1当前执行2.2后台运行QUESTION:RocketMQ:Linux下启动server和broker的命令?ANSWER:一、启动mqnamesrv1.1当前执行进入rocke…

C++中int *p[4]和 int (*q)[4]的区别

*************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com *************************************************** C中int *p[4]和 int (*q)[4]的区别 前者是指针数组,后者是指向数组的指针…

Spring笔记③--spring的命名空间

p:命名空间: xmlns:p"http://www.springframework.org/schema/p" 作用:简化在xml配置bean的属性 在<bean>中使用p:属性名来配置 AOP:命名空间: xmlns:aop"http://www.springframework.org/schema/aop" xsi:schemaLocation: http://www.springframewo…

linux不用命令开启ssh,不用密码也能ssh登陆Linux?

Linux的一个后门引发对PAM的探究1.1 起因今天在搜索关于Linux下的后门姿势时&#xff0c;发现一条命令如下&#xff1a;ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort5555;经典后门。直接对sshd建立软连接&#xff0c;之后用任意密码登录即可。ssh rootx.x.x.x -p 5555这个是…

ScrollView常用(暂时用上了的)代理方法

2019独角兽企业重金招聘Python工程师标准>>> ScrollView常用代理方法: #pragma mark - 滚动结束调用 -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {// 计算 滑动到了第几页double page scrollView.contentOffset.x / scrollView.width;self.p…

笔试题目汇总

C常考笔试题:不用if,while,do-while,for,打印出所有大于0小于k的整数.函数原型void printLess(int k); 解法一:递归方式(刚想出来) [cpp] view plaincopy #include <iostream> using namespace std; void printLess(int k) { switch(--k) { case 0:…