`
chengyue2007
  • 浏览: 1503109 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

ORA-00258: NOARCHIVELOG 模式下的人工存档必须标识日志

 
阅读更多

1.手工归档时报出如下错误
sys@orcl> alter system archive log current;
alter system archive log current
*
ERROR at line 1:
ORA-00258: manual archiving in NOARCHIVELOG mode must identify log

2.alert警告日志中同样记录了这个错误
Sun Apr 18 14:08:40 2010
Errors in file /oracle/admin/orcl/udump/orcl_ora_25744.trc:
ORA-00258: manual archiving in NOARCHIVELOG mode must identify log

3.关于ORA-00258错误的解释信息
1)使用oerr工具查看该错误描述
orcl@luckystardb /home/oracle$ oerr ora 258
00258, 00000, "manual archiving in NOARCHIVELOG mode must identify log"
// *Cause: The database is in NOARCHIVELOG mode and a command to manually
//          archive a log did not specify the log explicitly by sequence
//          number, group number or filename.
// *Action: Specify log by filename, by group number or by thread and
//          sequence number.

2)MOS中的描述信息
OERR: ORA 258 manual archiving in NOARCHIVELOG mode must identify log [ID 18327.1]

Error:  ORA 258
Text:   manual archiving in NOARCHIVELOG mode must identify log
-------------------------------------------------------------------------------
Cause:  An attempt was made to archive a redo log file manually without
        specifying the sequence number, group number, or filename while the
        database was in NOARCHIVELOG mode.
Action: The name, group number, or thread and sequence number of redo log
        files must be specified to archive redo log files manually while the
        database is in NOARCHIVELOG mode.


4.问题处理
1)第一种处理方法
问题原因是数据库没有处于归档模式,最根本的解决方法是修改数据库为归档模式,具体操作步骤请参见文章《【ARCHIVE】单机环境修改数据库为非归档模式》http://space.itpub.net/519536/viewspace-660184。

2)第二种处理方法(意义不大)
既然错误提示“ORA-00258: manual archiving in NOARCHIVELOG mode must identify log”,那我们就可以使用带有指定日志组的SQL命令完成归档操作。
(1)查看数据库的归档目录位置
sys@ora10g> show parameter log_archive_dest_1

NAME                  TYPE    VALUE
--------------------- ----------------------------------------
log_archive_dest_1    string  location=/oracle/arch/ora10g
log_archive_dest_10   string

(2)查看当前数据库日志情况
sys@ora10g> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS   FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- -------- ------------- -------------------
         1          1       1528  209715200          1 NO  CURRENT      476386158 2010-04-20 13:20:13
         2          1       1526  209715200          1 YES INACTIVE     476094078 2010-04-14 16:00:07
         3          1       1527  209715200          1 NO  INACTIVE     476248931 2010-04-17 22:00:54

(3)尝试归档第一组日志
sys@ora10g> alter system archive log group 1;
alter system archive log group 1
*
ERROR at line 1:
ORA-00259: log 1 of open instance ora10g (thread 1) is the current log, cannot archive

错误提示很显然,当前日志组不允许归档。

(4)尝试归档第二组日志
sys@ora10g> alter system archive log group 2;
alter system archive log group 2
*
ERROR at line 1:
ORA-16013: log 2 sequence# 1526 does not need archiving

因为归档状态是“YES”,因此该组日志无需归档。

(5)尝试归档第三组之日
sys@ora10g> alter system archive log group 3;

System altered.

归档成功。

(6)确认归档文件
sys@ora10g> !ls -l /oracle/arch/ora10g/
total 194652
-rw-r----- 1 oracle oinstall 199121920 Apr 21 06:38 1_1527_688786498.arch

(7)有关手工归档操作补充内容
以上我们使用的是数据库指定的路径存放手工归档生成的文件,我们还可以指定归档写入的路径
方法如下
sys@ora10g> alter system archive log group 3 to '/home/oracle';

System altered.

sys@ora10g> !ls -l /home/oracle/1_1527_688786498.arch
-rw-r----- 1 oracle oinstall 199121920 Apr 21 06:45 /home/oracle/1_1527_688786498.arch

5.有关“alter system archive log”命令的语法参考
Oracle 10gR2官方文档中有关归档命令用法的参考如下:
ARCHIVE LOG
   [  INSTANCE 'instance_name' ]
   { { SEQUENCE integer
     | CHANGE integer
     | CURRENT [ NOSWITCH ]
     | GROUP integer
     | LOGFILE 'filename'
          [ USING BACKUP CONTROLFILE ]
     | NEXT
     | ALL
     | START
     }
     [ TO 'location' ]
   | STOP
   }

参考链接:http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/img_text/archive_log_clause.htm

6.小结
本文描述的问题根本原因是数据库没有运行在归档模式下,强烈建议重要的数据库运行在归档模式,同时部署可行的备份恢复策略。

Good luck.

secooler
10.04.21

-- The End --

分享到:
评论

相关推荐

    ora-01033:oracle initialization or shutdown in progress 解决方法

    - 尝试打开数据库时,可能会遇到如“ORA-01157: 无法标识/锁定数据文件19 - 请参阅DBWR跟踪文件”这样的错误。此时,可以通过以下命令来解决: ``` SQL> alter database datafile 19 offline drop; ``` 其中,`...

    如何处理错误ORA-29275:部分多字节字符

    ### 如何处理错误ORA-29275:部分多字节字符 #### 问题背景与描述 在Oracle数据库操作过程中,用户可能会遇到一个特定的错误提示——ORA-29275:部分多字节字符。这一错误通常出现在执行查询`SELECT * FROM V$...

    Oracle 授权 ORA-00990: 权限缺失或无效

    在Oracle数据库管理中,"ORA-00990: 权限缺失或无效"是一个常见的错误代码,它表示用户尝试执行的操作没有足够的权限。这个错误通常发生在试图访问、修改或者管理数据库对象(如表、视图、索引等)时。在本篇文章中...

    ORA-04052p5731178_92080_WINNT.zip

    ORA-00604: 递归SQL层1出现错误 ORA-03106: 致命的双工通信协议错误 ORA-02063: 紧接着line(源于dblink) 以及 ORA-04052: 在查找远程对象时出错 ORA-00604: 递归SQL层1出现错误 ORA-03120: 双工转换例行程序:整数...

    ORA-12154: TNS: 无法解析指定的连接标识符的解决方法

    ORA-12154: TNS: 无法解析指定的连接标识符的解决方法

    ORA-32001:请求写入spfile,但没有使用spfile的解决方法

    ORA-32001:write to spfile requested but no spfile is in use请求写入spfile,但没有使用spfile的解决方法 在输入以下语句中报了这样的错误: SQL>alter system set control_files=’/u01/app/oracle/oradata/prod/...

    ORA-00060: 等待资源时检测到死锁--oracle 数据库表死锁异常

    在Oracle数据库系统中,"ORA-00060: 等待资源时检测到死锁" 是一个常见的错误提示,它表明两个或多个事务在执行过程中陷入了无法继续进行的状态,因为彼此都在等待对方释放资源。这种情况通常发生在并发操作中,比如...

    oracle错误代码大全(超详细)

    ORA-00001: 违反唯一约束条件 (.) ORA-...无法分离会话 ORA-00024: 单一进程模式下不允许从多个进程注册 ORA-00025: 无法分配 ORA-00026: 丢失或无效的会话 ID ORA-00027: 无法删去当前会话 ORA-00028: 您的会话己被删

    调整参数后引起,ORA-00838: Specified value of MEMORY_TARGET is too small

    调整参数后引起,ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 3 2768M 的解决方案

    ORA-00904: "WM_CONCAT": 标识符无效

    在Oracle数据库中,"ORA-00904"是一个常见的错误代码,它表示尝试引用一个不存在或无效的标识符。在这个场景下,错误信息提到的是"WM_CONCAT"函数,这表明在Oracle 19c数据库环境中,用户尝试使用WM_CONCAT函数,但...

    oracle报错大全(珍藏版)

    例如,尝试使用只读模式打开一个必须以读写模式打开的对象。 #### ORA-00025: Invalid Object Type 当尝试操作的对象类型无效时触发。这通常是因为对象类型不存在或已被删除。 #### ORA-00026: Invalid Lock ID ...

    oracle12c ORA-01017: 用户名/口令无效; 登录被拒绝 解决方案

    oracle12c程序连接时异常: ORA-01017: 用户名/口令无效; 登录被拒绝 的解决方案。

    ORA-01688:unable to extend table name(执行存储过程时的错误).pdf

    标题 "ORA-01688:unable to extend table name" 指的是在执行Oracle数据库存储过程时遇到的一个特定错误。这个错误通常发生在尝试扩展一个表或分区时,由于表空间已满,无法分配更多的空间。表空间是Oracle数据库中...

    oracle特有的错误:ORA-01036:非法的变量名/编号

    在Oracle数据库系统中,"ORA-01036:非法的变量名/编号"是一个常见的错误,通常出现在PL/SQL代码或者SQL查询语句中,当你尝试使用一个不正确或者未定义的变量时,Oracle数据库会抛出这个错误。这个错误可能是由于...

    Oracle错误码大全

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程;无法转换...

    CLOB 字段类型报错 ORA-01704: 文字字符串过长的解决

    然而,当你尝试向CLOB字段插入数据时,如果超过了Oracle规定的最大限制,就会遇到“ORA-01704: 文字字符串过长”的错误。这个错误通常意味着你试图插入的字符串超过了Oracle数据库允许的最大长度,对于VARCHAR2类型...

    使用工具IMPDP导入数据时ORA-39002、ORA-39070错误排查

    在使用Oracle Data Pump工具IMPDP(Import Data Pump)进行数据导入的过程中,可能会遇到ORA-39002和ORA-39070等错误。本文将针对这些错误的排查方法进行详细介绍,帮助用户理解问题的原因及解决策略。 ### 错误...

    WMSYS.zip解决ORA-00904:

    -- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... -- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... -- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... ...

    Oracle DBLINK查询时报 ORA-02085: 数据库链接XXX与XXX相连结

    NULL 博文链接:https://springlin.iteye.com/blog/1520668

    ORA-00031:标记要终止的会话

    在处理Oracle数据库时,我们经常遇到错误代码ORA-00031,它表明指定的会话已经被标记为终止。这个错误通常与数据库锁定和会话管理有关。本文将详细解析这一问题的解决方案,并提供一系列SQL语句和命令来处理和解决...

Global site tag (gtag.js) - Google Analytics