[SQL] ORA-01652 : 테이블 스페이스 시스템 128에 의해 임시 세그먼트를 확장 할 수 없습니다 : 어떻게 확장하려면?
SQLORA-01652 : 테이블 스페이스 시스템 128에 의해 임시 세그먼트를 확장 할 수 없습니다 : 어떻게 확장하려면?
나는 542512 개 행이 큰 Oracle 테이블을 가지고있다. 나는 다음과 같은 명령으로 대한 인덱스를 만들려고 할 때 세 개의 열을 가지고 :
CREATE INDEX FTS_INDEX ON FILTERED_TEKLI_IIS_TABLOSU (ilAdi,ilceAdi,caddeAdi)
오라클은 다음과 같은 오류를 제공합니다 :
SQL Error: ORA-01652: unable to extend temp segment by 128 in tablespace SYSTEM
01652. 00000 - "unable to extend temp segment by %s in tablespace %s"
*Cause: Failed to allocate an extent of the required number of blocks for
a temporary segment in the tablespace indicated.
*Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more
files to the tablespace indicated.
이 오류 검색 및 Oracle 큰 테이블 등 인덱스 생성 접합 테이블 등의 작업을 수행 할 때 중간 데이터를 저장하기 위해 충분한 공간을 갖는 경우가 생성되는 것으로 나타났다. 그러나 나는이에 대한 명확한 해결책을 발견하지 않았다. 이 ALTER TABLESPACE 및 ADD DATAFILE 명령은 일을 할 것 같다,하지만 확실이하고있는 매개 변수를 호출하는 방법을 모르겠습니다. 어떤 도움을 주시면 감사하겠습니다.
해결법
-
==============================
1.각 테이블 스페이스는 데이터를 저장하는 데 사용하는 하나 이상의 데이터 파일을 가지고있다.
각 테이블 스페이스는 데이터를 저장하는 데 사용하는 하나 이상의 데이터 파일을 가지고있다.
데이터 파일의 최대 크기는 데이터베이스의 블록 크기에 따라 달라집니다. 나는 32기가바이트 당 데이터 파일의 최대에 당신과 함께 그 잎, 기본적으로 그렇게 생각합니다.
실제 제한이 32기가바이트 경우 다음을 실행 찾으려면 :
select value from v$parameter where name = 'db_block_size';
아래의 첫 번째 열로 얻을 결과를 비교, 그것은 당신의 최대 데이터 파일 크기가 무엇인지 표시됩니다.
나는 오라클 개인 버전 11g R2를 가지고 기본에가 8192 블록 크기 (데이터 파일 당 32기가바이트)을 가지고 설치합니다.
Block Sz Max Datafile Sz (Gb) Max DB Sz (Tb) -------- -------------------- -------------- 2,048 8,192 524,264 4,096 16,384 1,048,528 8,192 32,768 2,097,056 16,384 65,536 4,194,112 32,768 131,072 8,388,224
당신은 당신이 가지고있는 데이터 파일을 손쉽게 찾을 수이 쿼리를 실행할 수 있습니다, 그들은과 관련된 어떤 테이블, 당신은 currrently (상기 32기가바이트를 초과 할 수 없습니다)로 최대 파일 크기를 설정 한 것 :
select bytes/1024/1024 as mb_size, maxbytes/1024/1024 as maxsize_set, x.* from dba_data_files x
MAXSIZE_SET는 당신이 데이터 파일을 설정 한 최대 크기입니다. 또한 관련은 (그 이름이 무엇을 의미하는지 않습니다) ON에 AUTOEXTEND 옵션을 설정 한 여부입니다.
당신의 데이터 파일은 낮은 최대 크기를 가지고 또는 자동 확장은 간단하게 실행할 수에없는 경우 :
alter database datafile 'path_to_your_file\that_file.DBF' autoextend on maxsize unlimited;
크기가에서 / 근처 32기가바이트 인 경우 자동 확장이 켜진 다음, 그래, 당신은 테이블에 대한 또 다른 데이터 파일이 필요합니까 :
alter tablespace system add datafile 'path_to_your_datafiles_folder\name_of_df_you_want.dbf' size 10m autoextend on maxsize unlimited;
from https://stackoverflow.com/questions/25350703/ora-01652-unable-to-extend-temp-segment-by-128-in-tablespace-system-how-to-ext by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 나는 오라클의 외래 키에 인덱스를 생성해야합니까? (0) | 2020.06.02 |
---|---|
[SQL] 어떻게 R에서 SQL 순위 기능을 시뮬레이션? (0) | 2020.06.02 |
[SQL] 는 SQL Server 2008의 테이블에 Excel 스프레드 시트에서 데이터를 내보내는 방법 (0) | 2020.06.02 |
[SQL] SQLite는 :으로 선택? (0) | 2020.06.02 |
[SQL] 나는 커밋 또는 읽기 트랜잭션을 롤백해야 하는가? (0) | 2020.06.02 |