当前位置:  数据库>oracle

Oracle 日志记录(联机日志/非联机日志)

    来源: 互联网  发布时间:2017-04-09

    本文导语: 查看方法:select name,log_mode from v$database; Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一...

查看方法:select name,log_mode from v$database;

Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。
如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志 2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。
数据库使用归档方式运行时才可以进行灾难性恢复。
归档日志模式和非归档日志模式的区别
非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.
归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.
用ARCHIVE LOG LIST 可以查看期模式状态时归档模式还是非归档模式.





改变归档模式到非归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;



启用自动归档: LOG_ARCHIVE_START=TRUE
归档模式下,日志文件组不允许被覆盖(重写),当日志文件写满之后,如果没有进行手动归档,那么系统将挂起,知道归档完成为止.
这时只能读而不能写.
运行过程中关闭和重启归档日志进程
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START




手动归档: LOG_ARCHIVE_START=FALSE
归档当前日志文件
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
归档序号为052的日志文件
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
归档所有日志文件
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改变归档日志目标
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';







1------------------------------------------------------
某DBA告诉我这样可以不写LOG:
alert tablename nologgin;
insert into tablename (select ...)
注意:insert语句后面必须是‘select...’语句,否则无效



2------------------------------------------------------
NOLOGING选项只是在direct-load模式下才不写redo log,nomal DML无效

3------------------------------------------------------
alter table tb_txn_log nologging,然后改回来alter table tb_txn_log logging这种模式
会影响联机交易

4------------------------------------------------------
 insert into test1 nologging select * from dba_objects
 alter table test1 nologging
 insert into test1  select * from dba_objects


5------------------------------------------------------

关于nologging的用法
有许多朋友误已写SQL或把表的属性加NOLOGGING,就可以不采成日志。这是一个误解。

在数据迁移或大量的数据insert入库时,由于大量数据的insert或修改,经常引起redo log sync的等待,造成数据库性能缓慢。
因为许多朋友对NOLOGGING的误解,所以许多人在insert数据时,在SQL后加nologging,想通过该用法使操作不采生日记录。但无效果。
这里讨论nologging的具体用法:

数据库操作,只有如下几种情况下不产成redo记录:
1、用sql*load的direct load方式时,不采用redo记录
2、用insert的direct方式,即在append方式insert( insert append可以实现直接路径加载,速度比常规加载方式快很多。但有一点需要注意: insert append时在表上加“6”类型的Exclusive锁,会阻塞表上的所有DML语句。因此在有业务运行的情况下要慎重使用.在使用了append选项以后,insert数据会直接加到表的最后面,而不会在表的空闲块中插入数据。
使用append会增加数据插入的速度。
的作用是在表的高水位上分配空间,不再使用表的extent中的空余空间
append 属于direct insert,归档模式下append+table nologging会大量减少日志,非归档模式append会大量减少日志,append方式插入只会产生很少的undo
不去寻找 freelist 中的free block , 直接在table HWM 上面加入数据。)
3、create table .... as select
4、create index
5、alter table ... move partition
6、alter table ... split partition
7、alter index ... split partition
8、alter index ... rebuild
9、alter index ... rebuild partition
10、INSERT, UPDATE, and DELETE on LOBs in NOCACHE NOLOGGING mode stored out of line














    
 
 

您可能感兴趣的文章:

  • oracle联机数据库备份详解
  • oracle 11g的警告日志和监听日志的删除方法
  • aix下自动备份oracle 的输出日志问题,急!!
  • 回收Oracle的监听器日志文件
  • Oracle 11g 数据库 Alert日志的新发展
  • 查看修改Oracle10G归档日志空间的限制
  • Oracle 删除归档日志实例
  • oracle的归档模式 ORACLE数据库归档日志常用命令
  • Oracle重做日志文件损坏或丢失后的恢复
  • ORACLE DATAGUARD中手工处理日志v$archive_GAP的方法
  • Linux下Oracle归档日志自动清理脚本代码(sh)
  • 关于Oracle数据库日志redo log
  • oracle 如何关闭打开归档日志
  • 教你怎样用Oracle方便地查看报警日志错误
  • 每日Oracle:配置日志模式的相关参数log_archive_des
  • win平台oracle rman备份和删除dg备库归档日志脚本
  • ORACLE 报警日志如何查看?第1/2页
  • oracle日志操作模式(归档模式和非归档模式的利与弊)
  • 使用Oracle Partition Table对日志表进行分区
  • Oracle 日志状态为stale解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 从jsp想oracle插入记录的顺序问题
  • 紧急求救:为什么oracle只能选择一定数据的记录
  • 记录Linux下一次oracle启动错误
  • ejb的bmp向oracle表插入图片记录的问题!
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • 给200分:oracle的jdbc有BUG??为何在servlet中记录数不能超过120条?
  • 关于JDBC访问Oracle返回数据集的记录限制的问题
  • Oracle 如何快速查找和删除重复记录
  • Oracle 当前用户下所有表的记录总数
  • Oracle中用Rowid查找和删除重复记录
  • Linux下Oracle归档日志自动清理脚本代码(sh) iis7站长之家
  • shell向oracle插记录 小问题送分了,谢谢
  • 利用ASP来实现Oracle数据记录的分页显示
  • Oracle数据库设置任务计划备份一周的备份记录
  • Linux(Oracle系统在上面)系统无缘无故死机 , 可能是由于应用程序引起 , 可是由于重新启动查不到相关信息 , 不知道在哪里有记录系统CPU Lo
  • MySQL数据迁移到Oracle记录
  • Oracle中取固定记录数详细步骤
  • Oracle基本操作全记录
  • SQL查询前10条记录(SqlServer/mysql/oracle)的语法分析
  • 在oracle下要在同一事务下插入多条记录,该怎么做??最好要有原代码
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3