为什么80%的码农都做不了架构师?>>>   

在ORACLE 数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多时候挽回或最大可能的减少数据丢失。

一、 要使OARCLE 数据库进行日志的自动归档,需要做两方面的事情;
1.是数据库日志模式的设置(可为Archive Mode 和No Archive Mode);2.就是自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。

二、 如何查看数据库的现行日志和自动归档模式的设置
可用archive log list 命令来查看。
运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境):
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /backup/archivelog
Oldest online log sequence 2131
Next log sequence to archive 2133
Current log sequence 2133
没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境):
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/8.1.7/dbs/arch
Oldest online log sequence 194
Current log sequence 196

三. 数据库日志模式的设置
在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志模式。假如没有指明,则缺省为NOARCHIVELOG 模式。由于如果在创建数据库时指明是Archive Mode的话,会增加约20%的创建时间,而在以后启动INSTANCE 时再设置的话,一般只用去几秒的时间,所以一般在创建数据库时是不设置为ARCHIVE MODE 的。
将数据库的日志模式设置切换(Archive Mode 和No Archive Mode 之间的切换)的步骤和操作如下:
1. 关闭运行的数据库实例
SQL> shutdown
在进行日志模式切换之前,必须将运行的数据库正常关闭。
2. 备份数据库
该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。
3. 启动数据库实例到mount 状态,但不要打开。
SQL> startup mount
4. 切换数据库日志模式。
SQL> alter database archivelog;(设置数据库为归档日志模式)或
SQL> alter database noarchivelog;(设置数据库为非归档日志模式)
5. 打开数据库
SQL> alter database open;
6. 确认数据库现在处于归档日志模式。
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination for example: $ORACLE_HOME/dbs/arch
Oldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
7. 将这个时间点的redo logs 归档
SQL> archive log all;
8. 确认新产生的日志文件已在相应的归档目录下面。

四. 自动归档模式设置(Automatic archival,可为Enabled 和Disabled)。
在该模式下,数据库启动一个arch 进程,专门负责将redo logs 写到系统归档设备的相应目录下。在数据库的参数文件中设置参数(一般是在$ORACLE_HOME/dbs/init*.ora 文件中):
LOG_ARCHIVE_START=
LOG_ARCHIVE_DEST=
LOG_ARCHIVE_FORMAT=
LOG_ARCHIVE_START:
如要求自动归档的话,则设为TRUE,如要求为非自动归档的话,则设为FALSE
LOG_ARCHIVE_DEST:
该参数设定了archive logs 归档存放的路径。
LOG_ARCHIVE_FORMAT:
该参数设定了archive logs 的命名格式。例如,如将格式设为: arch%s.arc
log 文件将为: arch1.arc, arch2.arc, arch3.arc
这几个参数设置只有在数据库实例启动前设置才能生效,如果在数据库运行中进行设置,要使其生效,必须重起数据库。
如果数据库正在运行中,不能即刻重起,要设置其为自动归档模式,则做如下操作:
SQL> ALTER SYSTEM ARCHIVE LOG START;
如要设置其为非自动归档模式(取消自动归档),则:
SQL> ALTER SYSTEM ARCHIVE LOG STOP;
但如果数据库重起后,给语句修改的结果就失效了,自动归档的设置还是按照系统参数文件中的LOG_ARCHIVE_START 的值来设置。

五. 几种设置情况:
1. Database log mode Archive Mode,Automatic archival Enabled
这是在大部分生产环境中的ORACLE 数据库日志及归档模式设置,这种情况下,做好数据库的定期备份(有热备和冷备)和归档日志备份,可有效的将数据库恢复到有归档日志的全部时间点。
2. Database log mode Archive Mode,Automatic archival Disabled
这种情况下,数据库不能自动归档,需要进行手工归档。如果所有在线日志都写满了,又没有的及时进行手工归档的话,由于LGWR 没有可用的在线日志可写,数据库将会挂在这儿,只有进行手工归档后,有可用的在线日志后才能继续。在生产环境中应该避免这种情况。
手工归档操作如下:
SQL> ALTER SYSTEM ARCHIVE LOG ALL;
数据库将会把在线日志进行归档处理
3. Database log mode NO Archive Mode,Automatic archival Enabled
有些情况下,数据库管理员只在数据库参数文件中设置了LOG_ARCHIVE_START=TRUE,然后在数据库起来后查看到ARCH 归档进程已经起来了,可是尽管ORACLE 已经作了几次日志切换,但还是没有归档日志,这时的设置就是这种情况,如果数据库不是处在ARVHIVELOG 模式,redolog 还是不会被归档。
4. Database log mode NO Archive Mode,Automatic archival Disabled
这种设置是刚安装的oracle 数据库的缺省设置,开发环境也大部分如此。即没有进行归档。

如何手工删除归档日志文件?(如果采用RMNA备份后则不用手工删除)
一、先手工删除归档日志文件 
二、用RMAN删除数据库记录的归档列表信息 
1) 进入本数据库的rman,在命令行模式输入"rman target /",进入rman,查看提示,确认连接的是否是本库? 
2) 查看归档日志文件的状态: 
RMAN> list archivelog all; 
3) 删除操作系统中的日志文件(到操作系统级进行手工删除,也可以是第一步; 
4) 将归档日志信息进行更新; 
RMAN> crosscheck archivelog all; 
RMAN> delete expired archivelog all; (确认时键入"yes") 
RMAN> exit

转载于:https://my.oschina.net/dyl226/blog/649214

查看oracle数据库是否归档和修改归档模式(转)相关推荐

  1. 一 如何检查oracle的归档日志及空间占用率,清除归档日志、Oracle归档日志使用情况查询、查看oracle数据库一周产生的归档日志

    一 如何解决"归档日志已满问题" 问题描述:所用数据库为 Oracle 10g ,模式为归档模式,oracle 系统默认的归档空间为2G,由于日志过多,空间写满,数据库的redo文 ...

  2. 查看mysql是否归档的命令_查看oracle数据库是否为归档模式

    查看oracle数据库是否为归档模式 [1] 1.select name,log_mode from v$database; NAME LOG_MODE ------------------ ---- ...

  3. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  4. oracle表结构修改回滚,87.Oracle数据库SQL开发之 修改表内存——数据库事务的提交和回滚...

    87.Oracle数据库SQL开发之 修改表内存--数据库事务的提交和回滚 数据库事务(transaction)就是一组SQL语句,这组SQL语句时一个逻辑工作单元. 要永久性的记录事务中SQL语句的 ...

  5. 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

    http://suan2046.iteye.com/blog/379539 标题:查看Oracle数据库表空间大小,是否需要增加表空间的数据文件 在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问 ...

  6. oracle 查询表里信息_查看ORACLE 数据库及表信息

    -- 查看ORACLE 数据库中本用户下的所有表SELECT table_name FROM user_tables; -- 查看ORACLE 数据库中所有用户下的所有表select user,tab ...

  7. linux怎么查看oracle数据库版本,CentOS下查看Oracle数据库版本

    CentOS下查看Oracle数据库版本 方法一:v$version数据库培训 SQL> select * from v$version; BANNER -------------------- ...

  8. 查看oracle数据库的启动时间

    --查看oracle数据库的启动时间 select * from sys.v_$instance 视图可查看如实例名,机器名,数据库版本,启动时间等等.

  9. oracle查看服务器名字,查看oracle数据库服务器的名字

    查看oracle数据库服务器的名字 windows 中 1. select name from v$database ; 直接运行就可以查看了, 2.查看tnsnames.ora 的连接,有个SID, ...

  10. Oracle数据库:创建、修改、删除、使用同义词synonym和索引index

    Oracle数据库:创建.修改.删除.使用同义词synonym和索引index 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得 ...

最新文章

  1. C语言中%c与%s的区别与划分
  2. 顺序容器STL::list用法
  3. wpf开源ui引用步骤_吸引开源社区的5个步骤
  4. magento 架构原理
  5. Android应用开发之使用Socket进行大文件断点上传续传
  6. poj 2823 Sliding Window 双向队列,学习
  7. NGUI的输入框制作(attach- input filed script的使用)
  8. 解决IIS 下ASP程序错误只显示500,不显示具体错误描述的问题!
  9. 一、「下载JDK」「配置JDK」「下载JDK文档」
  10. 618|Python购书攻略
  11. c语言 分数通分,如何用C语言,实现简单的分数化简
  12. linux系统的drm配置mipi,Linux 进阶 DRM等.....
  13. python爬取豆瓣读书界面的书名、作者、价格、导入数据库_python爬虫:利用正则表达式爬取豆瓣读书首页的book...
  14. Vue--搭建个人博客
  15. C1 驾驶证考试科目二考试心得
  16. PL2303GT USB to RS232 Serial Bridge Controller (Built in RS232 XCVR)驱动地址
  17. 为什么要阅读——兼分享《首先,打破一切常规》[中译文]:世界顶级管理者的成功秘诀/(美)马库斯#183;白金汉,(美)柯特#183;科夫曼 著...
  18. 数字图像处理之特征提取及常用方法
  19. python-实现保留3位有效数字(四舍六入五成双规则)
  20. JAVA大数据后台管理系统

热门文章

  1. atitit.ajax 最佳实践跟框架选型 o99
  2. paip.互联网产品要成功的要素
  3. 酒后谈IT,那些术语大妈都能秒懂!
  4. 全球十大数据治理解决方案提供商
  5. 中国电子技术标准化研究院与Linux基金会战略合作签约仪式圆满落幕
  6. 【物理应用】基于matlab Q学习无线体域网路由方法【含Matlab源码 264期】
  7. button执行onclick函数_可能你的react函数组件从来没有优化过
  8. nosql第二章课后习题
  9. 话费充值 php,话费充值示例代码
  10. mysql join与where_mysql中left join设置条件在on与where时的用法区别分析