ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORA-00257 : archiver error. Connect internal only, until freed案例之二

ORA-00257 : archiver error. Connect internal only, until freed案例之二

原创 Linux操作系统 作者:zerocool8888888 时间:2008-06-19 01:20:32 0 删除 编辑

〖环境(Environment)〗

OS:LINUX

DB:ORACLE 10G

 

〖现象(Symptom)〗

以普通用户登录数据库时,报告错误:ORA-00257 : archiver error. Connect internal only, until freed。

用ALTER SYSTEM ARCHIVE LOG CURRENT执行手工归档也不行。

 

〖原理(Cause)    〗

Step01:用ps -ef|grep oracle查看归档进程,归档进程运行正常。

oracle   524     1  1 15:50:30         0:14 ora_arc0_nbo

oracle   518     1  0 15:50:23         0:01 ora_arc1_nbo

。。。

 

Step02:查看归档路径。

SQL> show parameter LOG_ARCHIVE_DEST_

 

NAME                                 TYPE        VALUE

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

log_archive_dest_1                   string

log_archive_dest_10                  string

log_archive_dest_2                   string

log_archive_dest_3                   string

log_archive_dest_4                   string

log_archive_dest_5                   string

log_archive_dest_6                   string

log_archive_dest_7                   string

log_archive_dest_8                   string

log_archive_dest_9                   string

log_archive_dest_state_1             string      enable

。。。

从数据可以看出,归档路径LOG_ARCHIVE_DEST_n为空,没有设置归档路径。如果没有设置归档路径的时候,ORALCE默认会把归档文件(archived logs)放到闪回区( Flash Recovery Area)。

 

Step03:得到闪回区( flash recovery area)的路径。

SQL> show parameter DB_RECOVERY_FILE_DEST

 

NAME                             TYPE        VALUE

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

db_recovery_file_dest                string      /wxxrdata/flash_recovery_area

闪回区( flash recovery area)的路径是/wxxrdata/flash_recovery_area。

 

Step04:查看闪回区(Flash Recovery Area)的使用情况。

SQL> SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;

 

FILE_TYPE    PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES

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

CONTROLFILE                   0                         0               0

ONLINELOG                     0                         0               0

ARCHIVELOG                 74.05                        0              31

BACKUPPIECE                10.95                        0               8

IMAGECOPY                     15                        0              66

FLASHBACKLOG                  0                         0               0

 

从查询结果可以看出,在闪回区中,归档日志(ARCHIVELOG)占用74.05%的空间,备份(BACKUPPIECE)占用10.95%的空间,文件拷贝(IMAGECOPY)占用15%的空间。闪回区中已经没有空余的磁盘空间。

 

〖方法(Action)     〗

u       方法一:重新指定归档路径。

●如果使用SPFILE启动数据库,则可以动态改变归档路径。

SQL>alter system set log_archive_dest_1='location=/proddata' scope=both;

这里指定一个新的归档路径。

 

●如果使用PFILE启动数据库,则需要执行下面的过程。

Step01:进入初始化参数文件所在的目录

$ cd $ORACLE_HOME/dbs(这是默认路径)

本例中的PFILE是initnbo.ora。

 

Step02:编辑初始化参数文件

$vi initnbo.ora

添加参数:

log_archive_dest_1='location=/proddata'。

这里指定一个新的归档路径,这个路径要有足够的空间。

 

Step03:关闭数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

 

Step04:重启数据库。

SQL> startup PFILE='/oracle/app/oracle/product/10.1.0/Db_1/dbs/initnbo.ora';

ORACLE instance started.

Total System Global Area  289406976 bytes

Fixed Size                  1248600 bytes

Variable Size             100663976 bytes

Database Buffers          184549376 bytes

Redo Buffers                2945024 bytes

Database mounted.

Database opened.

从此以后,数据库的归档日志将被写到/proddata下。

 

u       方法二:增加闪回区(Flash Recovery Area)的大小。

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 20G SCOPE=BOTH SID='*';

System altered.

闪回区的大小被提到20G。

 

u       方法三:删除闪回区(Flash Recovery Area)中多余的归档日志文件。

 

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13804621/viewspace-351808/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-04-10

  • 博文量
    73
  • 访问量
    932593