實施目標:由於磁盤空間不足,將主庫的臨時表空間修改位置
standby_file_management 管理方式:AUTO
SQL> show parameter standby_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string AUTO
在primary上創建一個臨時表空間,而物理standby中的只是修改了數據字典而沒有創建數據文件,即:
master:
數據庫的默認臨時表空間為TEMP
SQL>select * from database_properties where property_name ='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_VALUE DESCRIPTION
DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace
創建新的臨時表空間
SQL>create temporary tablespace TEMP1 TEMPFILE '/data/app/oracle/oradata/prod/temp01.dbf' size 512M autoextend on ;
修改數據庫的默認臨時表空間
SQL>alter database default temporary tablespace TEMP1;
standby:
物理standby中的只是修改了數據字典而沒有創建數據文件
SQL>SELECT TABLESPACE_NAME FROM DBA_TABLESPACES;
TABLESPACE_NAME
------------------------------
TEMP1
SQL>SELECT NAME FROM V$TEMPFILE;
no rows selected
此時,連接備庫的應用報錯:

alert.log
Thu Dec 06 19:01:14 2018
Errors in file /data/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_3045.trc:
ORA-25153: Temporary Tablespace is Empty
因此:standby_file_management參數設置auto時,對於臨時表空間的創建,standby庫還是需要手動在物理standby上創建一次;手動創建可以通過主備切換的方式來完成。否則不能新增臨時表空間。
因為備庫為read only,如果保證db_file_name_convert參數設置完整的話,可以通過新增臨時表空間數據文件的方式,進行擴容
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/zetian/tempfile/temp01.dbf' size 1g autoextend on;
