프린트 하기

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

https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DB_SECUREFILE.html#GUID-6F7C5E21-3929-4AB1-9C72-1BB9BDDB011F