欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Data Guard环境下Temp表空间和Temp文件管理概述

程序员文章站 2024-01-19 17:29:34
...

Oracle表空间和数据文件里面,Temp表空间和文件是比较特殊的。除了Temp表空间对应的临时段(temp segment)是由Oracle自动进行管

Oracle表空间和数据文件里面,Temp表空间和文件是比较特殊的。除了Temp表空间对应的临时段(temp segment)是由Oracle自动进行管理之外,稀疏文件的特性也是我们需要注意的一个方面。

常规情况下,我们创建一个数据文件,即使使用OMF特性,也需要指定初始文件大小。创建数据文件之后,磁盘空间被明确的占用,我们从操作系统层面是可以看到空间的。但是,对于临时表空间文件而言,新创建出的文件也许只能看到操作系统层面的文件大小,但是却没有空间占用。我们称这个特性为“稀疏文件”。

从实现层面,稀疏文件意味着更少的redo log生成。那么,在DG环境下,Temp文件的特性和普通文件有什么差异呢?下面我们通过一系列的实验来证明。

--------------------------------------分割线 --------------------------------------

相关参考:

Oracle Data Guard 重要配置参数

基于同一主机配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

Oracle Data Guard (RAC+DG) 归档删除策略及脚本

Oracle Data Guard 的角色转换

Oracle Data Guard的日志FAL gap问题

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法

--------------------------------------分割线 --------------------------------------

1、实验环境介绍

我们在Oracle 11gR2环境下的Dataguard中进行测试。具体版本为11.2.0.4。当前Primary情况如下:

--Primary名称ora11g

SQL> select DATABASE_ROLE, open_mode from v$database;

DATABASE_ROLE OPEN_MODE

---------------- --------------------

PRIMARY READ WRITE

当前数据库中只有一个临时文件,对应表空间TEMP。

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

对Dataguard而言,最重要的文件管理参数为standby_file_management。如果保持为AUTO,就可以保证数据文件同步创建。

SQL> show parameter standby_file

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

standby_file_management string AUTO

Standby端情况也比较简单,处在mount状态。文件自动创建管理。

SQL> select DATABASE_ROLE, open_mode from v$database;

DATABASE_ROLE OPEN_MODE

---------------- --------------------

PHYSICAL STANDBY MOUNTED

SQL> select name, file# from v$tempfile;

NAME FILE#

-------------------------------------------------------------------------------- ----------

/u01/app/oradata/ORA11GSY/datafile/o1_mf_temp_9pcqbdd6_.tmp 1

SQL> show parameter standby_file

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

standby_file_management string AUTO

2、Primary端临时表空间操作

我们首先实验在Primary端进行表空间操作。

(primary)

SQL> alter tablespace temp add tempfile size 100m autoextend off;

Tablespace altered

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

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;