博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle归档日志--
阅读量:6671 次
发布时间:2019-06-25

本文共 3541 字,大约阅读时间需要 11 分钟。

hot3.png

Oracle归档模式 :Oracle数据库有联机重做日志,这个日志是记录对数据库所做的修改,比如插入,删除,更新数据等,对这些操作都会记录在联机重做日志里。一般数据库至少要有2个联机重做日志组。当一个联机重做日志组被写满的时候,就会发生日志切换,这时联机重做日志组2成为当前使用的日志,当联机重做日志组2写满的时候,又会发生日志切换,去写联机重做日志组1,就这样反复进行。如果数据库处于非归档模式,联机日志在切换时就会丢弃. 而在归档模式下,当发生日志切换的时候,被切换的日志会进行归档。比如,当前在使用联机重做日志1,当1写满的时候,发生日志切换,开始写联机重做日志 2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志。数据库使用归档方式运行时才可以进行灾难性恢复。

归档日志模式和非归档日志模式的区别:非归档模式只能做冷备份,并且恢复时只能做完全备份.最近一次完全备份到系统出错期间的数据不能恢复.归档模式可以做热备份,并且可以做增量备份,可以做部分恢复.

查看当前模式状态是归档模式还是非归档模式.

SQL> archive log list

数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     1229
当前日志序列           1231

SQL> select name,log_mode from v$database;

NAME      LOG_MODE

--------- ------------
ORCL      NOARCHIVELOG

配置数据库归档

1.改变非归档模式到归档模式:

1)SQL> conn / as sysdba (以DBA身份连接数据库)

2)SQL> shutdown immediate; (立即关闭数据库)

3)SQL> startup mount (启动实例并加载数据库,但不打开)

4)SQL> alter database archivelog; (更改数据库为归档模式)

5)SQL> alter database open; (打开数据库)

6)SQL> alter system archive log start; (启用自动归档)

2.改变归档模式到非归档模式:

1)SQL>SHUTDOWN NORMAL/IMMEDIATE;

2)SQL>STARTUP MOUNT;

3)SQL>ALTER DATABASE NOARCHIVELOG;

4)SQL>ALTER DATABASE OPEN;

3.查看是否自动归档

SQL> show parameter LOG_ARCHIVE_START;

NAME                                 TYPE        VALUE

------------------------------------ ----------- -------
log_archive_start                    boolean     FALSE

4.手动归档

归档当前日志文件

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';

如果归档过程会消耗大量的时间,那么可以启动多个归档进程,这是个动态参数,可以用ALTER SYSTEM动态修改.

SQL> show parameter LOG_ARCHIVE_MAX_PROCESSES;

NAME                                 TYPE        VALUE

------------------------------------ ----------- -------
log_archive_max_processes            integer     4

SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;

 

与归档进程有关的动态性能视图

v$bgprocess,v$archive_processes

 

5.配置归档目标,多归档目标,远程归档目标,归档日志格式

归档目标 LOG_ARCHIVE_DEST_n

本地归档目标:

SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG";

远程归档目标:

SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";

强制的归档目标,如果出错,600秒后重试:

SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600";

可选的归档目标,如果出错,放弃归档:

SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL";

归档目标状态:关闭归档目标和打开归档目标

关闭归档目标1

SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER

打开归档目标2

SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE

归档日志格式:LOG_ARCHIVE_FORMAT

SQL> show parameter LOG_ARCHIVE_FORMAT

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------
log_archive_format                   string      arch_%t_%s_%r.arc

6.获取归档日志信息

V$ARCHIVED_LOG

V$ARCHIVE_DEST

V$LOG_HISTORY

V$DATABASE

V$ARCHIVE_PROCESSES

ARCHIVE LOG LIST;

 

oracle归档日志删除

当ORACLE 归档日志满了后,将无法正常登入ORACLE,需要删除一部分归档日志才能正常登入ORACLE。

利用rman对归档日志进行删除

登录 rman

C:\Users\Administrator>RMAN TARGET SYS/ADMIN@ORCL12C

恢复管理器: Release 12.1.0.1.0 - Production on 星期五 12月 13 17:06:33 2013

Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: ORCL (DBID=1359352064)

RMAN>

查看归档日志的状态

RMAN> list archivelog all;

手工删除归档日志文件

RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

说明:

SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。

同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库

DELETE ARCHIVELOG from TIME 'SYSDATE-7'; 删除从7天前到现在的全部日志,慎用

UNIX/LINUX下也可以通过FIND找到7天前的归档数据,使用EXEC子操作删除

find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;

这样做仍然会在RMAN里留下未管理的归档文件

仍需要在RMAN里执行下面2条命令

crosscheck archivelog all;

delete expired archivelog all;

所以还不如上面的方法好用,不过用FIND的好处就是,可以在条件上,和EXEC子项上做很多操作,实现更复杂的功能

退出rman

RMAN> exit

转载于:https://my.oschina.net/feng1029/blog/184280

你可能感兴趣的文章
是时候学习真正的 spark 技术了
查看>>
android开发怎么少的了后端(上)
查看>>
android应用检测更新
查看>>
从硅谷到杭州:一个海归的阿里故事
查看>>
Objective-C 之Block(1)
查看>>
Android MP3录制,波形显示,音频权限兼容与播放
查看>>
那些年我造的轮子之RPC
查看>>
构建Spring Cloud微服务分布式云架构详细步骤
查看>>
三次握手与四次挥手
查看>>
Spring Task定时任务的配置和使用
查看>>
逆向中使用weak
查看>>
CoordinatorLayout、AppBarLayout实现上滑隐藏图片,下滑显示图片
查看>>
React-Router底层原理分析与实现
查看>>
十五、Android性能优化之提升应用的启动速度和Splash页面的设计
查看>>
09-封装
查看>>
在小程序中使用 React with Hooks
查看>>
Re:从零开始的机器学习 - Titanic: Machine Learning from Disaster
查看>>
Android 面试开源框架篇
查看>>
前端调试:记Iscroll4 疑难杂症之z-index失效
查看>>
【译】Android Architecture - ViewModel 与 View 的通信
查看>>