Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64745
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 189
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-06 17:00
文章分类

全部博文(11)

文章存档

2013年(11)

我的朋友

分类: Oracle

2013-08-19 15:26:19


一、非归档转为归档模式方法:
热备份:
先要把服务置为归档方式,查看当前是否采用了归档方式用:
SQL>archive log list;
SQL>
在数据库中系统文件夹下有日志文件:REDO01.LOG 等.
使用非归档方式时,三个REDO文件写满后会自动地去从第一个又开始写.
把第一个REDO里的内容都覆盖掉,不做备份.这就是非归档模式
在热备份的方式下,一定要设为归档方式,所谓归档方式就是在第一个被覆盖之前,把原来里面的所有的内容都备份到一个指定的路径下.以便于以后我们要恢复时,使用备份的归档日志进行恢复.所以日志文件分为两类,一类是实例名目录下的联机的REDO01.LOG等三个文件,再有就是我们选择归档后,形成的归档日志文件.
归档日志一定要处理归档方式,就是Archive Mode,而不是No Archive Mode
归档的路径默认在我们的数据库系统的USE_DR_RECOVERY_FILE_DEST路径下.
所以我们要进行热备份时,要选择归档,如下设置:
把归档方式改为启用,自动的.
SQL>ALTER system SET log_archive_start=true scope=spfile
SQL>shutdown immediate
SQL>startup mount 打开控制文件,不打开数据文件
SQL>alter database archivelog  将数据库切换到归档方式
SQL>ALTER database open;
SQL>archive log list;
二、归档日志爆满清理步骤
两种方法: 
1、配置RMAN自动管理ARCHIVELOG。也可在RMAN中将数据备份到磁带上,然后将过期的ARCHIVELOG删除; 
2、可以手工来处理,步骤如下 
  1)将/oracle下的相关ARCHIVELOG日志文件移到别的文件系统下(保留一段时间的ARCHIVELOG日志即可,其他的可移走,用系统命令 mv移走)。然后打包、压缩,备份到介质上,此时可将这些移出的文件删除。注意:别在原来的/oracle打包了,否则空间占满了就有些麻烦了。 
  2)以oracle用户登录,执行rman target /。如有多个实例此时执行rman target 用户名/密码@实例名,进入rman 
  3)在rman中执行 
  RMAN>list archivelog all; /*列出所有的归档日志文件 
  RMAN>crosscheck archivelog all; /*与物理归档日志文件保持同步,之前移走了一部分文件,因此执行此命令后会在/oracle目录下找不到的归档日志标记为expired 
  RMAN>list expired archivelog all; /*列出所有expired(过期)的归档日志文件,此时你就可看到移走的归档日志文件均被标记为expired 
  RMAN>delete expired archivelog all; /*在oracle中删除所有过期的expired文件 
  RMAN>list archivelog all; /*再列出所有的归档日志文件,就可发现移走的日志文件被删掉了 
  RMAN>exit /*退出

阅读(1983) | 评论(0) | 转发(0) |
0

上一篇:AIX问题诊断

下一篇:grep、egrep、fgrep区别

给主人留下些什么吧!~~