[解決済み] ORA-01652: テーブルスペースSYSTEMでtempセグメントを128拡張できない: 拡張する方法は?
質問
私は542512行を含む大きなOracleテーブルを持っています。それは3つの列を持っており、私は次のコマンドでそれのためのインデックスを作成しようとしたとき。
CREATE INDEX FTS_INDEX ON FILTERED_TEKLI_IIS_TABLOSU (ilAdi,ilceAdi,caddeAdi)
Oracleは次のようなエラーを出します。
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つまたは複数のデータファイルを持っています。
データファイルの最大サイズは、データベースのブロックサイズに依存します。デフォルトでは、1つのデータファイルにつき最大32gbになると思います。
実際の上限が32gbかどうかを調べるには、以下を実行してください。
select value from v$parameter where name = 'db_block_size';
得られた結果を以下の最初の列と比較してください。それが、あなたの最大データファイルサイズを示します。
私はOracle Personal Edition 11g r2を持っていますが、デフォルトのインストールでは、ブロックサイズが8192でした(1データファイルあたり32gb)。
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
このクエリを実行すると、どのデータファイルがあるか、それらがどのテーブルスペースと関連付けられているか、現在の最大ファイルサイズ(前述の32GBを超えることはできません)を確認できます。
select bytes/1024/1024 as mb_size,
maxbytes/1024/1024 as maxsize_set,
x.*
from dba_data_files x
MAXSIZE_SETは、データファイルに設定した最大サイズです。また、AUTOEXTENDオプションをONに設定しているかどうかも関係します(その名前は、その意味するところを表しています)。
データファイルの最大サイズが小さいか、自動拡張がオンになっていない場合は、単純に実行することができます。
alter database datafile 'path_to_your_file\that_file.DBF' autoextend on maxsize unlimited;
ただし、サイズが 32gb またはそれに近い場合で、自動拡張がオンになっている場合は、はい、表領域用に別のデータファイルが必要です。
alter tablespace system add datafile 'path_to_your_datafiles_folder\name_of_df_you_want.dbf' size 10m autoextend on maxsize unlimited;
関連
-
[解決済み】BULK INSERTで「予期せぬファイルの終了」エラーが発生したROWを特定する?
-
[解決済み】一括読み込みデータ変換エラー(指定されたコードページに対して型の不一致または無効な文字)1行目4列目(年)について)
-
[解決済み】SQL Server: 無効なカラム名
-
[解決済み】単一のクエリで加重平均を計算する
-
[解決済み] ORA-01779: キーが保存されていないテーブルにマップされる列を変更できません。
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] ora-06553 pls-306 'ogc_x' の呼び出しで引数の数または種類が誤っている。
-
[解決済み] varchar 値の変換で int カラムがオーバーフローしました。
-
[解決済み] MySQLのON句の不明なカラム
-
[解決済み] 時間を時間単位や10分単位でグループ化する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】オペランド型の衝突:intはdateと互換性がない + INSERT文はFOREIGN KEY制約と衝突した
-
[解決済み] テスト
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] アンピボットの主キーを含む対象コードページで、テキストが切り捨てられたか、1つ以上の文字が一致しない。
-
[解決済み] SQL Server - 'RETURN'付近の、条件が想定されるコンテキストで指定された、非ブール型の式。
-
[解決済み] SQL Server サブクエリが 1 つ以上の値を返しました。これは、サブクエリが =, !=, <, <= , >, >= のように続く場合は許可されません。
-
[解決済み] ORA-01735: 無効な ALTER TABLE オプション - ヒキガエル
-
[解決済み] "このSqlTransactionは完了しました。もう使用できません。"...設定エラー?
-
[解決済み] nvarchar 値 ... をデータ型 int に変換する際に、変換に失敗しました。
-
[解決済み] ORA-00997: LONG データタイプの不正使用に対する回避策