본문 바로가기
Server/Oracle

[Oracle] Cause: java.sql.SQLException: ORA-00372: 파일 5는 지금 수정될 수 없습니다

by 뒹굴거리는프로도 2018. 1. 12.
반응형
 
 

파일에 접근할 수 없기 때문에,

또는 파일이 offline 상태이기 때문에 종종 이러한 에러가 발생한다.

READ ONLY 상태를 READ WRITE 로 바꿔줌으로써 해결할 수 있다.

 


에러 발생

2018-01-12 14:14:42,871 ERROR [com.noise.dateLog.dao.DateLogDAO] Error Message =>   
--- The error occurred in com/noise/dateLog/query/dateLog.xml.  
--- The error occurred while applying a parameter map.  
--- Check the dateLog.insertVisitrHist-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: java.sql.SQLException: ORA-00372: 파일 5는 지금 수정될 수 없습니다
ORA-01110: 5 데이터 파일: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\NMSDEV.DBF'

 

에러 발생 후 dataLog.xml 검색

--> dataLog.xml 검색
    <insert id="insertVisitrHist" parameterClass="hashMap">
        <selectKey keyProperty="histNo" resultClass="int" type="pre">
           SELECT  NVL(MAX(HIST_NO),0)+1 as histNo FROM WNMS_LOGIN_HIST
        </selectKey>
        INSERT INTO WNMS_LOGIN_HIST(
            HIST_NO,HIST_LOGIN_DT,USER_IP
        ) VALUES (
            #histNo#,
            sysdate,
            #userIp#
        )
    </insert>
--> 이후  sql 명령문을 토드에서 실행. 똑같은 에러메세지가 토드에서도 나옴.
Color

dataLog.xml 검색이후 SQL 명령문을 Toad 에서도 실행했는데, 똑같은 에러메시지 발생

 

해결 방법은 아래 절차를 따름

You notice that you have following errors in SAP R/3, Database Alert.log file, or BR*Tools log:



ORA-00372: file cannot be modified at this time

Short dump: ABAP runtime error DBIF_RSQL_SQL_ERROR
                     SQL error 372 occurred in statement

ORA-00372: file xx cannot be modified at this time
ORA-01110: data file xx: <data file full path>
BR0324W Insertion of database log header failed



Firstly please check and follow note 328785 – ORA-00376: File cannot be read at this time.



If after you executed the calls in steps 2, 4, and 6 of note 328785, they do not return any lines. But you still have the problem. This is caused by tablespace is with status READ ONLY. In this mode, you can not modify the data files under this tablespace.


###########################################

Please carry out following steps:


1. Start SQLPLUS:
sqlplus “/as sysdba”


2. Check whether tablespaces are set READ ONLY (now the database is in OPEN state):
SELECT TABLESPACE_NAME FROM DBA_TABLESPACES WHERE STATUS = ‘READ ONLY’;


3. If tablespaces are returned, reset them to ONLINE:
ALTER TABLESPACE <Tablespace_Name> READ WRITE;   <- 명령문으로 상태 바꿔줌


4. If the call in step 2 does not return lines anymore, the problem is corrected.

 

 

 


 

반응형