Oracle archivelog占用100%如何处理?

大家好我现在遇到了这样一个问题,我这里有个oracle11g的数据库,是一个通过shareplex同步的目标库


前段时间疏于管理,忘了查看目标库的状态,发现archivelog 占用100%,之后又报出控制文件问题,直接关闭了数据库,当我startup的时候,就会提示数据库的控制文件问题

控制文件有两个,替换之后还是有问题,initorcl.ora 直接指向第二个控制文件也还是不行


alter database mount
*
ERROR at line 1:
ORA-00227: corrupt block detected in control file: (block 1, # blocks 1)
ORA-00202: control file: '/oracle/app/oradata/zdfdb/control01.ctl'

一下为alert中的部分日志
Fri Jul 31 14:12:20 2015
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Initial number of CPU is 4
Number of processor cores in the system is 4
Number of processor sockets in the system is 1
CELL communication is configured to use 0 interface(s):
CELL IP affinity details:
    NUMA status: non-NUMA system
    cellaffinity.ora status: N/A
CELL communication will use 1 IP group(s):
    Grp 0:
Picked latch-free SCN scheme 3
Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
IMODE=BR
ILAT =249
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options.
ORACLE_HOME = /oracle/app/product/11.2.0/dbhome_1
System name:    Linux
Node name:      sp_server2
Release:        2.6.32-358.el6.x86_64
Version:        #1 SMP Fri Feb 22 00:31:26 UTC 2013
Machine:        x86_64
Using parameter settings in server-side pfile /oracle/app/product/11.2.0/dbhome_1/dbs/initorcl.ora
System parameters with non-default values:
  processes                = 1500
  sessions                 = 2272
  memory_target            = 16G
  control_files            = "/oracle/app/oradata/control01.ctl"
  control_files            = "/oracle/app/oradata/control02.ctl"
  db_block_size            = 8192
  compatible               = "11.2.0.0.0"
  db_recovery_file_dest    = "/oracle/app/flash_recovery_area"
  db_recovery_file_dest_size= 200G
  undo_tablespace          = "UNDOTBS1"
  remote_login_passwordfile= "EXCLUSIVE"
  db_domain                = ""
  dispatchers              = "(PROTOCOL=TCP) (SERVICE=zdfdbXDB)"
  audit_file_dest          = "/oracle/app/admin/adump"
  audit_trail              = "DB"
  db_name                  = "orcl"
  open_cursors             = 1000
  diagnostic_dest          = "/oracle/app"
Fri Jul 31 14:12:21 2015
PMON started with pid=2, OS id=46209
Fri Jul 31 14:12:21 2015
PSP0 started with pid=3, OS id=46211
Fri Jul 31 14:12:22 2015
VKTM started with pid=4, OS id=46213 at elevated priority
VKTM running at (1)millisec precision with DBRM quantum (100)ms
Fri Jul 31 14:12:22 2015
GEN0 started with pid=5, OS id=46217
Fri Jul 31 14:12:22 2015
DIAG started with pid=6, OS id=46219
Fri Jul 31 14:12:22 2015
DBRM started with pid=7, OS id=46221
Fri Jul 31 14:12:22 2015
DIA0 started with pid=8, OS id=46223
Fri Jul 31 14:12:22 2015
MMAN started with pid=9, OS id=46225
Fri Jul 31 14:12:22 2015
DBW0 started with pid=10, OS id=46227
Fri Jul 31 14:12:22 2015
LGWR started with pid=11, OS id=46229
Fri Jul 31 14:12:22 2015
CKPT started with pid=12, OS id=46231
Fri Jul 31 14:12:22 2015
SMON started with pid=13, OS id=46233
Fri Jul 31 14:12:22 2015
RECO started with pid=14, OS id=46235
Fri Jul 31 14:12:22 2015
MMON started with pid=15, OS id=46237
Fri Jul 31 14:12:22 2015
MMNL started with pid=16, OS id=46239
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
starting up 1 shared server(s) ...
ORACLE_BASE from environment = /oracle/app
Fri Jul 31 14:12:22 2015
ALTER DATABASE   MOUNT
Errors in file /oracle/app/diag/rdbms/trace/zdfdb_ora_46244.trc:
ORA-00202: control file: '/oracle/app/oradata/zdfdb/control01.ctl'
Errors in file /oracle/app/diag/rdbms/trace/zdfdb_ora_46244.trc  (incident=288169):
ORA-00227: corrupt block detected in control file: (block 1, # blocks 1)
ORA-00202: control file: '/oracle/app/oradata/control01.ctl'
Incident details in: /oracle/app/incident/incdir_288169/zdfdb_ora_46244_i288169.trc
ORA-227 signalled during: ALTER DATABASE   MOUNT...
Dumping diagnostic data in directory=[cdmp_20150731141224], requested by (instance=1, osid=46244), summary=[incident=288169].


有什么办法可以恢复吗?
参与13

7同行回答

lhrbestlhrbest数据库管理员外汇交易中心
先在spfile中把归档路径修改了,然后启动,若是还不能启动就得修复一下控制文件了,ORA-00227: corrupt block detected in control file: (block 1, # blocks 1),这个可以通过重建控制文件,或者从备份中还原,若是没有备份的话,看看控制文件的快照文件在不在...显示全部
先在spfile中把归档路径修改了,然后启动,若是还不能启动就得修复一下控制文件了,ORA-00227: corrupt block detected in control file: (block 1, # blocks 1),这个可以通过重建控制文件,或者从备份中还原,若是没有备份的话,看看控制文件的快照文件在不在收起
互联网服务 · 2015-08-13
浏览1723
yhd_myyhd_my数据库管理员北京信利恒丰科技发展有限公司
首选 你的数据库归档空间满了,不应该去重启动数据 ,解决归档空间问题,比如将归档目录中早期的归档移动到其他地方,保证归档有空间,后期再对此重新归化。 再来你的控制文件出现损坏,你怎么能确定哪个是好的,哪个是坏的。先要对控制文件进行backup才是,然后按照你的做法,选取某一个...显示全部
首选 你的数据库归档空间满了,不应该去重启动数据 ,解决归档空间问题,比如将归档目录中早期的归档移动到其他地方,保证归档有空间,后期再对此重新归化。 再来你的控制文件出现损坏,你怎么能确定哪个是好的,哪个是坏的。先要对控制文件进行backup才是,然后按照你的做法,选取某一个控制文件,如果错误仍在的话,再次选取另一个控制文件。找到好的后,正常关闭数据库,将好的控制文件复制替代坏的文件即可。当然如果都坏掉的话,就要使用你之前的备份控制文件进行恢复了。收起
保险 · 2015-08-13
浏览1671
静以致远静以致远数据库运维工程师汇通天下
Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST你的数据库开完归档 归档路径没改过,放在了闪回区,而闪回去是有大小限制的,默认的是2GB建议:1、更改归档路径,到其他目录alter system set log_archive_dest_1='location=/u01/app/oracle/arch...显示全部
Using LOG_ARCHIVE_DEST_1 parameter default value as USE_DB_RECOVERY_FILE_DEST

你的数据库开完归档 归档路径没改过,放在了闪回区,而闪回去是有大小限制的,默认的是2GB

建议:
1、更改归档路径,到其他目录
alter system set log_archive_dest_1='location=/u01/app/oracle/arch';
alter database open;
2、增大闪回区大小
show parameter db_recovery_file_dest_size;
alter system set db_recovery_file_dest_size=10G;
alter database open;
3、定期清理归档文件
这个就不写了,百度很多收起
互联网服务 · 2015-08-13
浏览1647
liulei_oracleliulei_oracle数据库管理员lgcns china
实在不行重新创建控制文件吧显示全部
实在不行重新创建控制文件吧收起
系统集成 · 2015-08-13
浏览1618
yhd_myyhd_my数据库管理员北京信利恒丰科技发展有限公司
对的,11g默认会把一路控制文件放在flashback recovery area里,扩大闪回区是可以的。致远兄弟V5显示全部
对的,11g默认会把一路控制文件放在flashback recovery area里,扩大闪回区是可以的。致远兄弟V5收起
保险 · 2015-08-13
浏览1609
静以致远静以致远数据库运维工程师汇通天下
回复 4# 静以致远 /u01/app/oracle/flash_recovery_area/ora11g/control02.ctl 默认的11g两个控制文件是有一个在闪回区下的显示全部
回复 4# 静以致远

/u01/app/oracl
e/flash_recovery_area/ora11g/control02.ctl 默认的11g两个控制文件是有一个在闪回区下的收起
互联网服务 · 2015-08-13
浏览1615
静以致远静以致远数据库运维工程师汇通天下
回复 3# yhd_my 他这个包crontrol file的错误,我怀疑很可能是11g有一个控制文件是放在闪回区的,归档日志撑满闪回区,导致控制文件无法写入,归档问题解决,数据库应该是可以启动的显示全部
回复 3# yhd_my

他这个包crontrol file的错误,我怀疑很可能是11g有一个控制文件是放在闪回区的,归档日志撑满闪回区,导致控制文件无法写入,归档问题解决,数据库应该是可以启动的收起
互联网服务 · 2015-08-13
浏览1660

提问者

zhangsharp20
数据库运维工程师外管
擅长领域: 数据库服务器系统管理

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-08-13
  • 关注会员:0 人
  • 问题浏览:4525
  • 最近回答:2015-08-13
  • X社区推广