实施目标:由于磁盘空间不足,将主库的临时表空间修改位置
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;