Oracle-12c

如何使用 ASM 增加 Oracle 12C RAC 中臨時表空間的大小?

  • October 15, 2020

我有一個由兩個節點 (OL6) 和 ASM 組成的 Oracle 12c RAC。我用它來學習。出於某種原因,我想增加它的臨時表空間大小。現在大約50M。我已經考慮過使用SELECT * FROM dba_temp_free_space;命令。我想把它增加到2048M。

我知道,如何在通常的配置中增加它:

ALTER DATABASE TEMPFILE '/u02/oradata/my_sid/temp01.dbf' RESIZE 2048M;

知道臨時表空間文件的路徑。

我試圖獲取有關數據庫文件的資訊,以查看是否有一些文件名稱中包含“temp”一詞:

select * from dba_data_files;

但我只有下一個文件的名稱:

+DATA/ORCL/DATAFILE/system.287.970304491
+DATA/ORCL/DATAFILE/sysaux.288.970304523
+DATA/ORCL/DATAFILE/users.290.970304549
+DATA/ORCL/DATAFILE/undotbs1.289.970304547
+DATA/ORCL/DATAFILE/undotbs2.295.970304621

那麼,如何獲取tempXX.dbf文件的正確路徑並調整其大小呢?

我使用命令創建了一個新的臨時文件:

ALTER TABLESPACE temp
  ADD TEMPFILE '+DATA/ORCL/DATAFILE/temp02.dbf' SIZE 2048M REUSE;

在該SELECT * FROM dba_temp_free_space;命令向我顯示更多可用空間之後。但是我不知道舊臨時文件的位置以及它的名稱是什麼。

我找到了舊的臨時文件名並調整了它的大小:

SQL> SELECT * FROM dba_temp_files;

SQL> ALTER DATABASE TEMPFILE '+DATA/ORCL/TEMPFILE/temp.XYZ.XXXXXXXXX' RESIZE 500M;

dba_temp_files視圖將顯示數據庫中的任何臨時表空間。

column name format a55
column info format a65
select t.TABLESPACE_NAME,t.FILE_NAME,  to_char(t.BYTES,'999,999,999,999')||' Bytes, '||t.STATUS||' '||d.STATUS||' '|| d.CONTENTS Info
 from dba_temp_files t, dba_tablespaces d
 where t.TABLESPACE_NAME = d.TABLESPACE_NAME ;

然後,您可以“離線”表空間(如果您有另一個臨時線上)並刪除它並刪除數據文件。

引用自:https://dba.stackexchange.com/questions/240774