ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB TEMP表空间管理

YashanDB TEMP表空间管理

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-03-14 18:16:14 0 删除 编辑

TEMP临时表空间主要用于临时表的段分配以及与临时表相关undo空间分配,并存储临时表数据和临时表相关的undo。

临时表及其相关的undo记录被存储在数据库的临时表空间中,并且不生成redo信息,从而减少了UNDO表空间中存储的undo数量,也减少了数据库redo日志的大小;提升数据库性能。

分布式部署中,CREATE DATABASE时内置了TEMP临时表空间,不允许手动创建新的TEMP临时表空间。

在主备部署场景中,主库创建临时表空间时,备库会同步创建临时表空间和影子状态的同名临时文件,影子文件只会记录在ctrlfile中,不会在磁盘上生成实体物理文件,可查询V$DATAFILE的SHADOW字段获取其相关信息。若备库升主后因临时文件为影子状态无法使用,需手动添加新的临时文件供使用。如需通过DROP TEMPFILE删除影子文件,需确保创建该临时文件的数据库为当前主库(若不是,需先切换为主库)并在该主库上执行DROP TEMPFILE语句,其他备库收到DROP TEMPFILE的redo后才会清理影子记录。

创建TEMP表空间

示例(单机部署)

CREATE TEMPORARY TABLESPACE temp_shared TEMPFILE '?/dbfiles/temp_shared' SIZE 4M;
Copied!

示例(共享集群部署)

CREATE TEMPORARY TABLESPACE temp_shared TEMPFILE '+DG0/dbfiles/temp_shared' SIZE 4M;
Copied!

创建本地TEMP表空间

示例(共享集群部署)

CREATE LOCAL TEMPORARY TABLESPACE FOR ALL temp_local TEMPFILE '?/dbfiles/temp_local' SIZE 4M;
Copied!

为TEMP表空间添加数据文件

示例

ALTER TABLESPACE temp ADD TEMPFILE 'temp01' SIZE 10M AUTOEXTEND ON;
Copied!

示例(共享集群部署)

ALTER TABLESPACE temp_shared ADD TEMPFILE '+DG0/dbfiles/temp_shared01' SIZE 10M AUTOEXTEND ON;
Copied!

Note:

共享集群部署中,TEMP表空间与本地TEMP表空间均支持添加YFS路径的文件,但只有本地TEMP表空间可以添加本地磁盘路径的文件。

为TEMP表空间调整数据文件大小

分布式部署/共享集群部署中无法使用此功能。

示例(单机部署)

ALTER DATABASE TEMPFILE 'temp01' RESIZE 20M;
Copied!

为TEMP表空间删除数据文件

示例

ALTER TABLESPACE temp DROP TEMPFILE 'temp01';
Copied!

示例(共享集群部署)

ALTER TABLESPACE temp_shared DROP TEMPFILE '+DG0/dbfiles/temp_shared01';
Copied!

删除TEMP表空间

示例(单机、共享集群部署)

DROP TABLESPACE temp_shared INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
Copied!

查看tempfile信息

可以查询 DBA_TEMP_FILES视图获取临时表空间数据文件基本信息。

Note:

本文以单机部署为例,不同部署形态的查看方法相同但$YASDB_DATA/dbfiles/temp路径不同,具体请以实际返回结果为准。

示例

SELECT FILE_ID,FILE_NAME,STATUS,BYTES/1024/1024,AUTOEXTENSIBLE,TABLESPACE_NAME,MAXBYTES/1024/1024,INCREMENT_BY FROM DBA_TEMP_FILES;
     FILE_ID FILE_NAME                                         STATUS    BYTES/1024/1024 AUTOEXTENSIBLE TABLESPACE_NAME    MAXBYTES/1024/1024 INCREMENT_BY------------ ------------------------------------------------- --------- --------------- -------------- ------------------ ------------------ ------------
           3 /data/yashan/yasdb_data/db-1-1/dbfiles/temp     ONLINE                 64 ON             TEMP                           524288         8192
           4 /data/yashan/yasdb_data/db-1-1/dbfiles/swap     ONLINE                 64 ON             SWAP                           524288         8192
Copied!

此外,还可查询 V$TEMP_EXTENT_POOL动态视图获取当前TEMP表空间的EXTENT分配情况。

示例

SELECT TABLESPACE_NAME,FILE_ID,EXTENTS_CACHED,EXTENTS_USED,BLOCKS_CACHED,BLOCKS_USED,BYTES_CACHED,BYTES_USED,INTER_FNOFROM V$TEMP_EXTENT_POOLWHERE TABLESPACE_NAME='TEMP';TABLESPACE_NAME                                                       FILE_ID EXTENTS_CACHED EXTENTS_USED BLOCKS_CACHED BLOCKS_USED BYTES_CACHED  BYTES_USED    INTER_FNO---------------------------------------------------------------- ------------ -------------- ------------ ------------- ----------- ------------ ----------- ------------TEMP                                                                        2             64           64           512         512      4194304     4194304            0TEMP                                                                        3              0            0             0           0            0           0            1TEMP                                                                        4              0            0             0           0            0


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3077729/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    640225