OS환경 : Oracle Linux 8.1 (64bit)
DB 환경 : Oracle Database 19.9.0.0
에러 : ORA-43853: SECUREFILE lobs cannot be used in non-ASSM tablespace "SYSTEM"
xml type 테이블 및 컬럼을 생성하려던 중 발생한 메세지
1 2 3 4 5 | SQL> create table gaga (xml xmltype) XMLTYPE COLUMN "XML"STORE AS SECUREFILE BINARY XML; create table gaga (xml xmltype) XMLTYPE COLUMN "XML"STORE AS SECUREFILE BINARY XML * ERROR at line 1: ORA-43853: SECUREFILE lobs cannot be used in non-ASSM tablespace "SYSTEM" |
해결 방법 : 파라미터 수정 또는 다른 테이블스페이스에 생성
방법1. 다른 테이블 스페이스에 테이블 생성
1 2 3 | SQL> create table gaga (xml xmltype) XMLTYPE COLUMN "XML"STORE AS SECUREFILE BINARY XML tablespace users; Table created. |
정상적으로 생성됨
방법2. db_securefile 파라미터 ignore 처리
현재 파라미터 값 확인
1 2 3 4 5 | SQL> show parameter DB_SECUREFILE NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_securefile string PREFERRED |
PREFERRED 임
db_securefile 파라미터 변경 및 확인
1 2 3 4 5 6 7 8 9 | SQL> alter system set db_securefile='ignore'; System altered. SQL> show parameter DB_SECUREFILE NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_securefile string ignore |
정상적으로 변경됨
테이블 생성 테스트
1 2 3 | SQL> create table gaga2 (xml xmltype) XMLTYPE COLUMN "XML"STORE AS SECUREFILE BINARY XML; Table created. |
정상적으로 생성됨
db_securefile 파라미터 값 설명
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | NEVER SecureFiles로 지정된 모든 LOB는 BasicFiles LOB로 생성됨 모든 SecureFiles 관련 스토리지 옵션 및 기능 (예 : 압축, 암호화, 중복 제거)은 예외를 발생시킴 BasicFiles LOB 기본값은 지정되지 않은 스토리지 옵션에 사용됨 PERMITTED LOB는 SecureFile로 생성 할 수 있음 PREFERRED 모든 LOB는 BASICFILELOB 스토리지 절에 명시 적으로 지정되거나 테이블 스페이스가 수동 세그먼트 공간 관리 테이블 스페이스가 아닌 경우 SecureFile로 생성됨 PREFERRED이 설정 되면 BASICFILE파티션 또는 열 레벨 LOB 스토리지에서 상속되는 경우는 무시됨 LOB은 대신 SecureFile로 생성됨 ALWAYS 모든 LOB를 SecureFiles LOB로 생성하려고 시도하지만 SECUREFILE명시 적으로 지정 되지 않는 한 ASSM (Automatic Segment Space Managed) 테이블 스페이스에없는 LOB를 BasicFiles LOB로 생성함 지정된 모든 BasicFiles LOB 스토리지 옵션은 무시되며 지정되지 않은 모든 스토리지 옵션에 대해 SecureFiles LOB 기본값이 사용됨 IGNORE SECUREFILE 키워드 및 모든 SecureFiles 옵션은 무시됨 |
원문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | NEVER Any LOBs that are specified as SecureFiles are created as BasicFiles LOBs. All SecureFiles-specific storage options and features (for example, compress, encrypt, deduplicate) will cause an exception. The BasicFiles LOB defaults will be used for storage options not specified. PERMITTED LOBs are allowed to be created as SecureFiles. PREFERRED All LOBs are created as SecureFiles unless BASICFILE is explicitly specified in the LOB storage clause or the tablespace is a Manual Segment Space Management tablespace. When PREFERRED is set, cases where BASICFILE would otherwise be inherited from the partition or column level LOB storage are ignored; the LOBs will be created as SecureFiles instead. ALWAYS Attempts to create all LOBs as SecureFiles LOBs but creates any LOBs not in an Automatic Segment Space Managed (ASSM) tablespace as BasicFiles LOBs, unless SECUREFILE is explicitly specified. Any BasicFiles LOB storage options that are specified will be ignored and the SecureFiles LOB defaults will be used for all storage options not specified. IGNORE The SECUREFILE keyword and all SecureFiles options are ignored. |
원인 : SECUREFILE LOB은 ASSM 이 아닌 테이블스페이스에서 사용불가함
SECUREFILE LOB은 ASSM 이 아닌 테이블스페이스에서 사용불가함
db_securefile 파라미터를 ignore 하거나 다른 테이블스페이스에 생성해야함
참조 : https://positivemh.tistory.com/687
https://answers.sap.com/questions/9499660/ora-43853-securefile-lobs-cannot-be-used-in-non-as.html
2220472.1