oracle归档文件是什么,oracle归档文件的创建和删除

产生归档日志的条件:

1.数据库必须运行在归档模式下,

2.归档进程必须启动.

--------------++归档常用命令指南++----------------

查看当前数据库是否是归档模式:

select name,log_mode from v$database;

查看当前数据库的归档进程是否启动:

select archiver from v$instance;  --started,stoped

禁止自动归档:

alter system archive log stop;

手动归档联机重做日志文件:

alter system archive log current;

指定多个归档日志目标:

alter system set log_archive_dest_1="location=C:\xx\归档目录名"  --本地磁盘

alter system set log_archive_dest_2="service=192.168.1.111:/Oracle/归档目录名" --远端备用数据库

将归档位置设置为 mandatory 或 optional (在出现故障之后、重试之前定义时间):

alter system set log_archive_dest_1="location=C:\xx归档目录名  mandatory reopen"  --发生故障后,经过300秒后必须重新尝试归档到目标(缺省300秒)

alter system set log_archive_dest_2="service=192.168.1.111:/Oracle/归档目录名 mandatory reopen=600"  --发生故障后,经过600秒后必须重新尝试归档到目标

alter system set log_archive_dest_3="location=C:\xx\目录名 optional" --即使联机重做日志文件尚未成功地归档到该目标,也可以重新使用(这是缺省设置).

控制归档到目标:

alter system set log_archive_dest_state_2=defer;  --禁用归档目标

alter system set log_archive_dest_state_3=enable;  --重新启动归档(默认)

获取归档日志信息:

v$archived_log  --归档日志

v$archive_dest  --归档目录

v$log_history  --归档历史

v$database   --数据库

v$archive_processes  --归档进程

SQL>archive log list;

手动归档: alter system archive log start;

停止归档: alter system archive log stop;

切换归档: alter system archive log current;

---------------------------------------------------

实验:

数据库非归档转化为归档模式:

1.SQL>shutdown immediate;    --关闭DB

2.找到pfile文件添加以下信息(先备份pfile): --E:\Oracle\product\10.2.0\db_1\database\initorcl.ora

*.log_archive_start=true  --在例程启动时启动自动归档 true/false(自动/手动归档)

--(动态参数)也可在DB mount时用 alter system archive log start; 来设置

*.log_archive_max_processes=2  --停止或启动附加归档进程(最多10个)

--(动态参数)也可用 alter system set log_archive_max_processes=2; 来设置

--在事务处理负载重或活动较多的时期,可临时启动更多归档进程以避免归档瓶颈.

*.log_archive_dest_1="LOCATION=E:\Oracle\product\10.2.0\test\archive1"

*.log_archive_dest_2="LOCATION=E:\Oracle\product\10.2.0\test\archive2"

*.log_archive_dest_3="LOCATION=E:\Oracle\product\10.2.0\test\archive3"

*.log_archive_min_succeed_dest=2  --指定本地目标的最小数量

*.log_archive_format=db01%s%t%r.arc  --指定归档文件名格式(%s:包括日志序列号;%t:包括线程号;)

3.SQL>startup monut;     --mount 数据库.

SQL>archiver log list   --检查归档进程的状态

SQL>alter system archive log start to 'c:\xx\xxx\归档目录名'; --手动启动归档进程

4.SQL>alter database archiverlog;  --修改成归档模式

5.SQL>alter database open;    --打开DB

SQL>select name from v$archived_log;

SQL>select desc_name,status from v$archived_log;

SQL>col dest_name format a30

SQL>archive log list;

SQL>alter system switch logfile;

SQL>alter system switch logfile;

6.删除归档日志:

(1).开始菜单--&gt运行--&gt cmd --&gt rman target/

(2).RMAN>delete archivelog all completed before 'sysdata-7'; --删除7天前的失效的归档日志

(3).RMAN>crosscheck archivelog all;

(4).RMAN>delete expired archivelog all;

------------------------------------------------------

Oracle 正确删除归档并回收空间的方法:

Oracle归档日志经常满,表现为/oraarchive 这个文件空间占用100%.Oracle有相应的归档维护工具,可以正确的删除归档和FLASHBACK,不过,Oracle归档日志对于Oracle的数据恢复和备份非常重要,不到万不得已是不能删除归档日志。

删除归档日志的。

过程:

以Oracle用户身份登录到数据库服务器主机或通过网络连接

进入Oracle数据备份工具

rman target/

或rman

在命令窗口里面执行

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

说明:

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

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

DELETE ARCHIVELOG FROM TIME 'SYSDATE-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子项上做很多操作,实现更复杂的功能

3.简要介绍一下report obsolete命令

使用report obsolete命令报告过期备份、

RMAN> report obsolete;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值