FILE_NAME TABLESPACE_NAME
------------------------------------------------------------ ------------------------------
/u01/app/oradata/ORA11G/datafile/o1_mf_temp_9mnjxpk4_.tmp TEMP
/u01/app/oradata/ORA11G/datafile/o1_mf_temp_9pm3ct62_.tmp TEMP
SQL> alter system switch logfile;
System altered
切换之后,正常redo log信息应该已经传递到standby端。Standby端启动redo apply过程,查看临时文件是否创建。
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered
SQL> select name, file# from v$tempfile;
NAME FILE#
-------------------------------------------------------------------------------- ----------
/u01/app/oradata/ORA11GSY/datafile/o1_mf_temp_9pcqbdd6_.tmp 1
启动redo apply之后,standby端依然只有一个临时文件,也就是说明临时文件没有联动的传递过来。至此,Primary和Standby文件结构出现差异。
此时是否可以在standby端直接添加文件呢?mount状态下,是拒绝的。
SQL> alter tablespace temp add tempfile size 100m autoextend off;
altertablespace temp add tempfile size 100m autoextend off
ORA-01109: 数据库未打开
与数据文件对应的临时表空间,如果我们在Primary端进行创建时,会不会联动创建呢?
(主库)
SQL> create temporary tablespace temp1 tempfile size 10m autoextend off
2 extent management local uniform size 1m;
Tablespace created
SQL> select file_name, tablespace_name from dba_temp_files;
FILE_NAME TABLESPACE_NAME
------------------------------------------------------------ ------------------------------
/u01/app/oradata/ORA11G/datafile/o1_mf_temp_9mnjxpk4_.tmp TEMP
/u01/app/oradata/ORA11G/datafile/o1_mf_temp_9pm3ct62_.tmp TEMP
/u01/app/oradata/ORA11G/datafile/o1_mf_temp1_9pm3mv8b_.tmp TEMP1
此时再观察Standby端,TEMP1表空间也没有连带的传导到standby端。
SQL> select name, file# from v$tempfile;
NAME FILE#
-------------------------------------------------------------------------------- ----------
/u01/app/oradata/ORA11GSY/datafile/o1_mf_temp_9pcqbdd6_.tmp 1
结论:当我们Standby端处在mount状态(Read Only也相同),Primary端涉及到的临时表空间创建维护、临时文件创建的操作是不会传导到standby端的。处在mount状态的standby端也不能进行文件手工创建动作。