실수로 sys의 패키지를 삭제하여 아래와 같은 에러가 발생할 수 있다.
삭제한 패키지를 재생성하면 간단히 처리되는 문제이나, 삭제를 하였기 때문에 어떻게 선언이 되어 있는지 알수가 없다.
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'DBMS_APPLICATION_INFO' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored


/product/버전/rdbms/admin/ 하위에 sys에 생성되어 있는 패키지등의 sql 파일이 존재하며,

DBMS_APPLICATION_INFO 패키지가 삭제되었다면 dbmsapin.sql, prvtapin.plb 파일을 실행해 주면 된다.




SQL> @dbmsapin.sql

Package created.

create public synonym dbms_application_info for sys.dbms_application_info
                      *
ERROR at line 1:
ORA-00955: name is already used by an existing object
Grant succeeded.

SQL> @prvtapin.plb

Package body created.

SQL> show user
USER is "TESTUSER"

SQL> exec DBMS_APPLICATION_INFO.SET_MODULE('SQL*plus', 'Testing DBMS_APPLICATION_INFO');

PL/SQL procedure successfully completed.
2013/09/16 14:36 2013/09/16 14:36

temp tablespace 는 sort 작업과 글로벌 임시테이블을 저장하는데에 사용된다.

ex) 인덱스 생성, analyze, select distinct , order by , group by , union, intersect, minus,Sort-Merge joins등

temp tablespace 가 부족할 경우 아래와 같은 에러가 발생한다.
ORA-1652: unable to extend temp segment by 8 in tablespace

1. temp tablespace 용량 및 파일 확인

col NAME format a60
col TOTAL format a10
col USED format a10
col FREE format a10
col USAGE format a10

SELECT B.NAME ,B.BYTES/1024/1024 || ' M' TOTAL ,A.BYTES_USED/1024/1024 || ' M' USED,(B.BYTES-A.BYTES_USED)/1024/1024 || ' M' "FREE", ROUND(A.BYTES_USED/B.BYTES * 100) || '%' "USAGE" FROM
(SELECT BYTES_USED,FILE_ID FROM V$TEMP_EXTENT_POOL)A,
(SELECT BYTES,FILE#,NAME FROM V$TEMPFILE)B
WHERE A.FILE_ID = B.FILE#

2. temp tablespace 사용중인 아이디 및 쿼리 확인.
SELECT su.USERNAME,su.TABLESPACE,su.SEGTYPE,su.SEGFILE#, su.SEGBLK#, su.BLOCKS, st.SQL_TEXT
FROM v$sort_usage su, v$sql st
WHERE su.TABLESPACE='TEMP' and su.SEGTYPE='LOB_DATA' and su.sql_id = st.sql_id  order by BLOCKS;
2013/07/03 09:24 2013/07/03 09:24

SQL> select * from dba_profiles where resource_name = 'IDLE_TIME';


PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT                        IDLE_TIME                        KERNEL   UNLIMITED
2012/12/07 16:29 2012/12/07 16:29

set line 200
col sid format a10
col machine format a20
SELECT TO_CHAR (SID) sid, serial# serialNumber,
SUBSTR (TO_CHAR (last_call_et), 1, 6) executeSeconds, userName, machine,
b.sql_text sqlText
FROM v$session a, v$sqltext b
WHERE username NOT IN ('SYSTEM', 'SYS')
AND a.TYPE != 'BACKGROUND'
AND a.status = 'ACTIVE'
AND a.sql_address = b.address(+)
AND a.sql_hash_value = b.hash_value(+)
ORDER BY a.last_call_et DESC,
a.SID,
a.serial#,
b.address,
b.hash_value,
b.piece;
2012/10/23 19:06 2012/10/23 19:06
select SQL_TEXT,LAST_LOAD_TIME from v_$sql where sql_text like '%table%';
2012/10/22 11:29 2012/10/22 11:29
IMP-00041: Warning: object created with compilation warnings

오라클 import 시 발생하는 에러로 트리거또는 뷰테이블 생성시 발생할 수 있으며,
참조하려는 테이블이 잘못 설정되었거나 없을 경우 발생할 수 있다.
2012/07/14 13:18 2012/07/14 13:18

1. 권한 확인
select * from dba_sys_privs where grantee=upper('ID');

2. 접속 권한 부여
grant connect,resource to ID;


3. 접속 권한 제거
revoke connect,resource from ID;

2012/06/16 18:04 2012/06/16 18:04

오라클 9i 이전과 이후에 temporary tablespace 설정이 다르며, 아래 사항은 9i 이후 설정방법 입니다.

temp tablespace 관련 테이블 : V$TEMPFILE, dba_temp_files, V$TEMP_EXTENT_POOL


1. temp tablespace 설정 상태 확인
SQL> select * from dba_temp_files;

FILE_NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS    RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
---------- ------------------------------ ---------- ---------- --------- ------------ --- ---------- ---------- ------------ ---------- -----------
/data/ORCL/datafile/o1_mf_temp_3vsro6sw_.tmp
         1 TEMP                           1066401792     130176 AVAILABLE            1 YES 3.4360E+10    4194302           80 1065353216      130048


2. temp tablespace 사용량 및 용량 확인
SED,(B.BYTES-A.BYTES_USED)/1024/1024 || ' M' "FREE", ROUND(A.BYTES_USED/B.BYTES SQL> SELECT B.NAME ,B.BYTES/1024/1024 || ' M' TOTAL SELECT B.NAME ,B.BYTES/1024/1024 || ' M' TOTAL ,A.BYTES_USED/1024/1024 || ' M' USED,(B.BYTES-A.BYTES_USED)/1024/1024 || ' M' "FREE", ROUND(A.BYTES_USED/B.BYTES * 100) || '%' "USAGE" FROM
(SELECT BYTES_USED,FILE_ID FROM V$TEMP_EXTENT_POOL)A, (SELECT BYTES,FILE#,NAME FROM V$TEMPFILE)B WHERE A.FILE_ID = B.FILE#;


3. temp tablespace 사용중인 세션 확인
set line 150
col username format a10
col osuser format a10
col tablespace format a15
SELECT b.tablespace,
b.segfile#,
b.segblk#,
b.blocks,
a.sid,
a.serial#,
c.spid,
a.username,
a.osuser,
a.status
FROM v$session a,
v$sort_usage b,
v$process c
WHERE a.saddr = b.session_addr and a.paddr=c.addr
ORDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks;



[참고 사이트]
http://blog.naver.com/PostView.nhn?blogId=dangtong76&logNo=140042613114
http://dbrang.tistory.com/564
http://blog.daum.net/liberalis/12917306
https://forums.oracle.com/forums/thread.jspa?threadID=427050

2011/09/09 16:41 2011/09/09 16:41

import 시 아래와 같은 에러가 발생한다면 파일이 깨진 것일수도 있고 FTP 업로드시 바이너리로 업로드 되지 않아
에러가 발생할 수도 있다.

이번 경우는 디스크장애로 인하여 복구업체에서 데이터 복구시 파일이깨져 아래와 같이 오류가 발생하였다.

illegal lob length marker 48373
 bytesread = 00000000000
 TABLE = KI_SADAYLSISE
IMP-00098: INTERNAL ERROR: impgst2
IMP-00028: partial import of previous table rolled back: 14490 rows rolled back
IMP-00008: unrecognized statement in the export file:
IMP-00008: unrecognized statement in the export file:
2011/06/20 13:15 2011/06/20 13:15
우선 imp-0008 에러의 정의에 대해서 말씀드리겠습니다.
아래와 같이 export file이 corrupted 되거나 import의 인터널버그일 경우에
발생합니다. 경험으로는 export file을 다른서버로 옮길 때에 ftp를
사용하는데 default는 ASCII mode인데 그대로 ftp로 옮겼을 경우에는
export dump file이 corrupted됩니다. binary file로 dump file을 옮겨야하겠습니다

IMP-00008: "unrecognized statement in the export file: \n %s"
Cause: Unrecognized statement in export file. This could be due to
corrupted export file or Import internal bug.
Action: If the export file is corrupted, retry with a new export file.
Else report this as Import internal error.

이외에 나오는 에러는 없는지요?
검색을 해보기에는 imp-0008이 발생하는 버그 및 problem으로 등록된 것이
아래의 경우에 나와있습니다.

1) You may have hit Bug 257475.

This bug only occurs if you are exporting snapshots that contain references
to database links. Performing a 'strings' command on the export file will
confirm this.

2) export dump file을 분할했는데 import시 순서에 맞지 않게 지정했을 경우
IMP-00047: unexpected file sequence number; expected 2 but found 3
IMP-00132: first file in the multi-file export is exp_f1.dmp
IMP-00008: unrecognized statement in the export file:
...
IMP-00047: unexpected file sequence number; expected 3 but found 2
IMP-00132: first file in the multi-file export is exp_f1.dmp
IMP-00008: unrecognized statement in the export file:
...

3) export dump file을 분할했는데 import시에 잘못된 이름을 넣었을 경우
- specifying a non existing filename results in:
IMP-00002: failed to open [name_of_file] for read
- specifying a wrong filename results in:
IMP-00048: mismatched file header
IMP-00008: unrecognized statement in the export file:
or import will abort with:
IMP-00048: mismatched file header
IMP-00009: abnormal end of export file
Import terminated successfully with warnings.

3) 테이프 장치를 통해서 export file을 직접 direct로 export할 경우
테이프장치는 ANSI-labeled tapes만 지원됩니다.

" Export file created by via conventional path
. importing CE's objects into CE
IMP-00008: unrecognized statement in the export file:
00
"CREATE SEQUENCE "ASI_CE_ID_SEQ" MINVALUE 1 MAXVALUE
99999999999999999999999"
"9999 INCREMENT BY 1 START WITH 925520 CACHE 20 NOO"
IMP-00008: unrecognized statement in the export file:"

You can see this via the output of SHOW=Y on the import from the tape
directly
The Oracle Export utility is only supported for ANSI-labeled tapes.

4) license_max_users 파라미터에 지정된 값보다 많은 유저를 import하려
할 경우, default는 0으로 license limit을 안합니다.

In this case it was caused by the init.ora parameter license_max_users. The
parameter was set to 55. After increasing the parameter to the correct number
of users, the import was successful.

5) buffer부족시
만약 IMP-00032까지 나올 경우에는 buffer를 충분히 주고 import합니다.
ex) imp system/manager file=test.dmp full=y log=test.log buffer=
10000000

Export file created by EXPORT:V08.00.05 via conventional path
.
import done in US7ASCII character set and US7ASCII NCHAR character set
. importing OPS$ORACLE_CDR's objects into SYSTEM
IMP-00032: SQL statement exceeded buffer length
IMP-00032: SQL statement exceeded buffer length
IMP-00008: unrecognized statement in the export file

6) Bug 4656020 - Export / import of schema based XMLType table fails
10.2.0.2 버젼에서 XML을 사용시 IMPORT시에 문제발생
10.2.0.3에서 FIX됨

Import of XML based tables may fail processing ALTER TABLE statements
subsequent to the CREATE TABLE for the subject tables. Import may also
issue "IMP-00008: unrecognized statement in the export file" errors.

7) Bug 2750878 IMPORT does not work for Schema based XMLTable in multibyte
9.2버젼에서 XML데이터를 import시에 발생
IMPORT does not work for Schema based XMLTable with a multibyte database.
Import fails with errors like:

IMP-00017: following statement failed with ORACLE error 6550:
IMP-00003: ORACLE error 6550 encountered
ORA-06550: line 13, column 14:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the
IMP-00008: unrecognized statement in the export file:

글 수정:
민천사 (민연홍)

제가 도서관에서 공부중이라..;; 도서관pc실..
이제 공부하러 가야한답니다.~ 저녁때나 글 올릴 수 있겠네요.

2011/06/16 20:43 2011/06/16 20:43