当前位置: 首页 > news >正文

维护表空间和数据文件(一)

学习目标

  • 定义表空间和数据文件的用途
  • 创建表空间管理表空间
  • 使用Oracle管理文件(OMF)创建和管理表空间
  • 获取表空间信息

表空间和数据文件

Oracle逻辑上将数据存储在表空间中,物理上将数据存储在数据文件中。

  • Tablespaces:

    • 一次只能属于一个数据库
    • 包含一个或多个数据文件
    • 是否进一步划分为逻辑存储单元
  • 数据文件:

    • 只能属于一个表空间和一个数据库
    • 是模式对象数据的存储库

数据库、表空间和数据文件密切相关,但它们之间有重要的区别:Oracle数据库由一个或多个称为表空间的逻辑存储单元组成,这些存储单元共同存储数据库的所有数据。

  • Oracle数据库中的每个表空间由一个或多个称为数据文件的文件组成,这些文件是与Oracle运行的操作系统一致的物理结构
  • 数据库的数据集中存储在构成数据库的每个表空间的数据文件中。例如,最简单的Oracle数据库将有一个表空间和一个数据文件。另一个数据库可以有三个表空间,每个表空间由两个数据文件组成(总共6个数据文件)。

表空间的类型

  • 系统表空间
    • 使用数据库创建
    • 包含数据字典。
    • 包含SYSTEM undo段的
  • 非系统表空间
    • 单独的部分
    • 简化空间管理
    • 控制分配给用户的空间量

补充的:

在 Oracle 数据库中,表空间是存储数据的逻辑结构。根据用途和功能的不同,表空间可以分为以下几种类型:


1. 永久表空间(Permanent Tablespace)

定义
  • 用于存储永久性数据库对象(如表、索引等)的数据。
  • 默认的用户表空间类型。
特点
  • 数据会持续保存在磁盘上,直到用户删除数据。
  • 每个数据库必须至少有一个永久表空间,通常是 SYSTEM 表空间
主要表空间
  1. SYSTEM 表空间

    • 每个数据库必须有一个 SYSTEM 表空间。
    • 存储数据字典视图和数据库核心信息。
    • 必须始终在线。
  2. SYSAUX 表空间

    • 用于辅助 SYSTEM 表空间,存储额外的数据库元数据(如 AWR 报告、Statspack 数据等)。
  3. 用户定义的永久表空间

    • 存储用户的应用数据和索引。

2. 临时表空间(Temporary Tablespace)

定义
  • 用于存储 SQL 语句执行过程中生成的临时数据,例如排序操作或哈希连接。
特点
  • 数据只在会话期间存在,会话结束后数据被清除。
  • 不需要进行备份。
  • 每个用户都需要分配一个默认的临时表空间。
用途
  • 排序操作(如 ORDER BYGROUP BY)。
  • 创建临时索引。
  • 大型查询的中间结果存储。

3. 解读表空间(Undo Tablespace)

定义
  • 专门用于存储事务回滚所需的撤销信息(Undo 信息)。
特点
  • 支持事务回滚和一致性读。
  • 用于维护事务的原始数据版本。
  • 数据在事务提交后自动释放。
用途
  • 回滚未提交事务。
  • 支持读一致性(如快照读)。
  • 间接支持闪回查询(Flashback Query)。

4. 临时表空间组(Temporary Tablespace Group)

定义
  • 一组临时表空间的集合,用于分担临时数据的存储负载。
特点
  • 支持多个临时表空间的并行使用。
  • 增加了查询排序和临时操作的 I/O 性能。

5. 大文件表空间(Bigfile Tablespace)

定义
  • 一个特殊的表空间类型,支持单个非常大的数据文件。
特点
  • 数据文件大小限制为 128 TB(而普通表空间的限制为 32 GB)。
  • 适用于需要管理大规模数据的场景。
  • 减少数据文件数量,但一个表空间只有一个数据文件。
用途
  • 在数据量巨大且表空间增长频繁的场景下,减少管理复杂性。

6. 小文件表空间(Smallfile Tablespace)

定义
  • 默认的表空间类型,支持多个较小的数据文件。
特点
  • 每个数据文件的大小限制为 32 GB。
  • 一个表空间可以包含多个数据文件。
用途
  • 普通数据库场景下使用。

7. 表外表空间(Tablespace for External Tables)

定义
  • 用于存储外部表的元数据信息,外部表可以从外部文件(如 CSV、文本文件)中直接读取数据。
特点
  • 数据本身不存储在数据库中,而存储在外部文件系统中。
  • 数据定义和元数据保存在数据库中。
用途
  • 大量外部数据的快速加载和访问。

8. 快照表空间(Read-Only Tablespace)

定义
  • 表空间设置为只读模式,不允许修改其中的数据。
特点
  • 常用于存储历史数据或只读应用场景。
  • 便于备份和节省存储资源。
用途
  • 数据仓库场景。
  • 存储归档数据。

总结

表空间类型用途特点
永久表空间存储表、索引等永久性对象持久保存,适合日常数据存储。
临时表空间存储排序和中间结果数据数据会话结束后清除。
撤销表空间(UNDO)存储事务撤销信息,支持一致性读和回滚用于事务管理,提交后数据自动清除。
大文件表空间支持单个大数据文件,减少数据文件管理复杂性最大支持 128 TB。
小文件表空间默认表空间类型,支持多个较小数据文件一个表空间可包含多个文件,每个文件最大 32 GB。
快照表空间只读表空间,存储历史数据或归档数据不允许修改,提高安全性和节省存储资源。
表外表空间存储外部表的元数据数据存储在外部文件系统,适合批量加载。
临时表空间组一组临时表空间提高排序和临时操作性能,支持并行 I/O。

根据具体业务需求选择合适的表空间类型,可以有效优化数据库性能和管理复杂性。

表空间和数据文件
  • 数据库、表空间和数据文件密切相关,但它们之间有重要的区别:Oracle数据库由一个或多个称为表空间的逻辑存储单元组成,这些存储单元共同存储数据库的所有数据。Oracle数据库中的每个表空间由一个或多个称为数据文件的文件组成,这些文件是与Oracle运行的操作系统一致的物理结构。
  • 数据库的数据集中存储在构成数据库的每个表空间的数据文件中。例如,最简单的Oracle数据库将有一个表空间和一个数据文件。另一个数据库可以有三个表空间,每个表空间由两个数据文件组成(总共6个数据文件)。

三种表空间permanent,undo,temporary

是的,从广义上来看,Oracle 数据库中的表空间可以简化为三种主要类型,它们是基于表空间的用途进行分类的。这种分类方式强调了核心功能,具体如下:


1. Permanent Tablespace(永久表空间)

定义
  • 存储永久性数据,如表、索引和视图等,数据会一直保存在磁盘上,直到被显式删除。
特点
  • 数据的持久性:即使数据库关闭或重新启动,数据仍然存在。
  • 存储日常业务数据。
  • 包括以下具体表空间:
    • SYSTEM 表空间:存储数据库的核心数据字典和系统元数据。
    • SYSAUX 表空间:辅助 SYSTEM 表空间,存储元数据的支持性数据(如 AWR、Statspack 等)。
    • 用户定义的表空间:用于存储应用程序的业务数据,如用户的表、索引等。
典型用途
  • 存储应用程序的持久性数据(如用户表、索引)。
  • 存储数据库的核心元数据(如 SYSTEM 表空间)。

2. Undo Tablespace(撤销表空间)

定义
  • 专门用于存储事务的撤销信息(Undo Records),支持事务回滚和一致性读。
特点
  • 数据是临时的,通常在事务提交后会被自动清除。
  • 在事务回滚或读一致性(如快照读)中起到关键作用。
  • 通常数据库会为实例分配一个默认的 Undo 表空间。
典型用途
  • 支持事务回滚:当事务需要撤销时,Oracle 使用撤销表空间中的数据还原更改。
  • 支持一致性读:查询时,提供快照数据以避免 “脏读”。

3. Temporary Tablespace(临时表空间)

定义
  • 用于存储 SQL 查询和操作(如排序、哈希连接等)产生的临时数据。
  • 数据仅在会话期间存在,随着会话结束会被清除。
特点
  • 数据的短暂性:临时表空间中的数据不会长期保留。
  • 为用户分配一个默认的临时表空间,用于排序和其他操作的中间结果存储。
  • 不会参与数据库备份。
典型用途
  • 排序操作(如 ORDER BYGROUP BY)。
  • 哈希连接或合并连接操作。
  • 查询或 DML 操作的中间结果存储。

总结

从功能的核心分类来看,表空间可以被归类为以下三种类型:

类型用途特点
Permanent存储持久性数据(表、索引、视图、系统元数据等)。数据持久化存储,即使数据库关闭也存在,适合业务数据和系统元数据。
Undo存储事务的撤销信息,支持回滚和一致性读。数据是临时的,在事务提交后自动清除。
Temporary存储排序、哈希连接等操作的中间结果。数据短暂存在,只在会话期间保留,不会参与备份。

这种三种类型的划分方式将表空间的核心功能抽象出来。

查询表空间

select * from v$tablespace;
desc dba_data_files;
select file_name, tablespace_name from dba_data_files;

.
.

本地管理表空间和字典管理表空间

  1. 本地管理表空间 : Locally managed tablespace
  • 空间管理方式:在本地管理表空间中,空闲区段的管理是在表空间级别进行的。每个表空间维护一个位图,用于记录表空间中每个块的空闲状态。每个位对应一个或一组块,位值表示该块是空闲还是已使用。
  • 优点:本地管理表空间的管理效率高,因为空闲区段的状态可以直接在位图中进行快速查找和更新,减少了对数据字典的访问和更新。
  • 适用场景:适用于大型数据库,能够提高空间管理的效率和性能。
  1. 字典管理表空间 : Dictionary-managed tablespace
  • 空间管理方式:在字典管理表空间中,空闲区段的管理是由数据字典(Oracle系统表)来管理的。当需要分配或释放区段时,Oracle会更新相应的数据字典表,以记录表空间中的空闲区段信息。
  • 优点:字典管理表空间相对较为简单,适用于小型数据库或早期版本的Oracle数据库。
  • 缺点:字典管理表空间的管理效率较低,因为每次分配或释放空间都需要更新数据字典表,可能会导致性能下降。

总的来说,本地管理表空间通过位图管理空闲区段,管理效率更高,适用于大型数据库;而字典管理表空间通过数据字典管理空闲区段,管理相对较慢,适用于小型数据库或早期版本的Oracle数据库。在实际应用中,推荐使用本地管理表空间来提高数据库的性能和管理效率。

在继续讨论之前,我们将查看与表空间相关的另一个主题:如何在表空间中管理区段。在Oracle8.1.5之前,只有一种方法可以管理表空间内的区分配:字典管理的表空间。也就是说,表空间中的空间是在数据字典表中管理的,与管理会计数据的方式大致相同,可能使用DEBIT和CREDIT表。在借方,我们有分配给对象的所有区段。在信用方面,我们有所有的免费区可供使用。当一个对象需要另一个范围时,它会要求系统获得一个。然后,Oracle会去它的数据字典表,运行一些查询,找到空间(或不),然后更新一个表中的一行(或全部删除),并将一行插入到另一个表中。Oracle管理空间的方式与您编写应用程序的方式非常相似:通过修改数据和移动数据。

这个SQL在后台以您的名义执行以获得额外的空间,它被称为递归SQL。您的SQL INSERT语句导致执行其他递归SQL以获得更多空间。如果频繁地执行这种递归SQL,可能会非常昂贵。这种对数据字典的更新必须序列化;两者不能同时进行。它们是要避免的。

表空间的创建、查询、删除

创建Oracle数据库表空间的详细步骤如下:

  1. 创建表空间
CREATE TABLESPACE tablespace_name
DATAFILE 'path_to_datafile.dbf' SIZE size_in_MB
AUTOEXTEND ON NEXT 10M MAXSIZE unlimited;

其中,tablespace_name为表空间的名称,path_to_datafile.dbf为数据文件的路径,size_in_MB为表空间的初始大小(单位为MB),AUTOEXTEND ON表示自动扩展表空间,NEXT 10M表示每次扩展的大小为10MB,MAXSIZE unlimited表示表空间的最大大小为无限制。

  1. 查看表空间
SELECT tablespace_name FROM dba_tablespaces;

这条SQL语句将列出数据库中所有的表空间名称。

  1. 删除表空间
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

在删除表空间时,需要谨慎操作。INCLUDING CONTENTS AND DATAFILES表示删除表空间的同时删除其中的所有对象和数据文件。

对于本地管理的表空间,存储在每个数据文件中的位图用于管理区段。现在要获得一个范围,系统所需要做的就是在位图中设置一个位为1。为了释放空间,系统将位设置回0。与使用字典管理的表空间相比,这是令人难以置信的快。我们不再在数据库级别为跨所有表空间的空间请求序列化长时间运行的操作。相反,我们在表空间级别进行序列化,以实现非常快的操作。本地管理的表空间还有其他很好的属性,比如强制统一的区段大小,但这开始成为DBA的重要角色。
接下来,您应该使用的唯一存储管理方法是本地管理的表空间。实际上,在Oracle9i及以上版本中,如果使用数据库配置助手(DBCA)创建数据库,它会将SYSTEM创建为本地管理的表空间,如果SYSTEM是本地管理的,则该数据库中的所有其他表空间也将被本地管理,并且传统的字典管理方法将不起作用。这并不是说在SYSTEM是本地管理的数据库中不支持字典管理的表空间,而是它们根本无法创建:

Dictionary-Managed TS
  • 区段在数据字典中进行管理。
  • 存储在表空间中的每个段可以有不同的存储子句。
  • 需要合并。
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M 
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

本地管理表空间是通过在CREATE TABLESPACE语句中使用EXTENT MANAGEMENT子句的LOCAL选项来指定的。默认情况下,表空间是本地管理的。

EXTENT MANAGEMENT子句的语法如下:
EXTENT MANAGEMENT [ DICTIONARY | LOCAL [ AUTOALLOCATE | UNIFORM [SIZE integer[K|M]] ] ]

其中:

  • DICTIONARY:指定表空间使用数据字典表进行管理。
  • LOCAL:指定表空间通过位图进行本地管理。如果指定了LOCAL,就不能再指定DEFAULT storage_clause、MINIMUM EXTENT或TEMPORARY。
  • AUTOALLOCATE:指定表空间由系统自动管理,用户无法指定扩展大小。这是默认选项。
  • UNIFORM:指定表空间使用固定大小的块进行管理,SIZE参数用于指定块的大小,单位为字节。可以使用K或M来指定块大小的单位为千字节或兆字节。默认大小为1MB。

本地管理表空间:
EXTENT MANAGEMENT子句可用于各种CREATE命令:

  • 对于永久表空间,可以在CREATE tablespace命令中指定EXTENT MANAGEMENT LOCAL。注意:在Oracle9i Database Release 2之前,SYSTEM表空间不是本地管理的。
  • 对于临时表空间,可以在目录中指定EXTENT MANAGEMENT LOCAL创建临时表空间命令。

本地管理表空间的优点:
与字典管理的表空间相比,本地管理的表空间具有以下优点:

  • 本地管理避免了递归的空间管理操作。这可能发生在消耗或释放撤消段或数据字典表中的空间的另一个操作中。
  • 由于本地管理的表空间不会在数据字典表中记录空闲空间,因此它们可以减少这些表上的争用。
  • 区段的本地管理自动跟踪相邻的空闲空间,从而消除了这种需要合并空闲的区段
  • 本地管理的区段的大小可以由系统自动确定。
  • 区段位图的更改不会生成撤消信息,因为它们不会更新数据字典中的表(表空间配额等特殊情况除外)。
Dictionary-Managed TS
  • 区段在数据字典中进行管理。
  • 存储在表空间中的每个段可以有不同的存储子句。
  • 需要合并。
CREATE TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' 
SIZE 500M EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE 
(initial 1M NEXT 1M PCTINCREASE 0);

字典管理的表空间中的段可以具有自定义存储。这种存储比本地管理的表空间更灵活,但效率要低得多。

迁移字典管理的系统表空间
将字典管理的SYSTEM表空间迁移到本地管理:

DBMS_SPACE_ADMIN.
TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');
使用以下步骤将SYSTEM表空间从字典管理转换为本地管理:
  1. 对数据库进行完整备份

    • 使用Oracle提供的备份工具(如RMAN)或者其他备份工具对数据库进行完整备份,确保备份数据的完整性和可恢复性。
  2. 确保数据库有一个默认的临时表空间

    • 使用CREATE TEMPORARY TABLESPACE命令创建一个默认的临时表空间,例如:
      CREATE TEMPORARY TABLESPACE temp_ts TEMPFILE 'temp01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M;
      
  3. 在字典管理的表空间中消除任何撤消(回滚)段

    • 使用ALTER TABLESPACE命令将字典管理的表空间中的回滚段设置为OFFLINE并删除,例如:
      ALTER TABLESPACE undo_ts OFFLINE;
      
  4. 在本地管理的表空间中设置在线undo段

    • 使用CREATE UNDO TABLESPACE命令创建一个在线undo表空间,或者将现有的undo表空间设置为在线状态,例如:
      ALTER TABLESPACE undo_ts ONLINE;
      
  5. 将除undo空间和默认临时表空间外的所有表空间设置为READ ONLY模式

    • 使用ALTER TABLESPACE命令将需要设置为READ ONLY模式的表空间设置为只读,例如:
      ALTER TABLESPACE data_ts READ ONLY;
      
  6. 以受限模式启动实例

    • 在启动数据库实例时,使用RESTRICT选项以受限模式启动数据库实例,例如:
      STARTUP RESTRICT;
      
  7. 迁移SYSTEM表空间到本地管理表空间

    • 使用DBMS_SPACE_ADMIN包中的TABLESPACE_MIGRATE_TO_LOCAL过程将SYSTEM表空间迁移为本地管理表空间,例如:
      EXEC DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');
      

以上是每个步骤的基本操作示例,具体操作时请根据实际情况和数据库环境进行调整和执行。在执行这些操作之前,请务必做好充分的备份以防意外情况发生。

撤销表空间 :undo Tablespace

  • 用于存储undo段
  • 不能包含任何其他对象
  • 区段是本地管理的
  • 只能使用DATAFILE和EXTENT管理子句
CREATE UNDO TABLESPACE undo1
DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M;

临时表空间

  • 用于排序操作
  • 能被多个用户共享吗
  • 不能包含任何永久对象
  • 建议使用本地管理的区段
CREATE TEMPORARY TABLESPACE temp
TEMPFILE '/u01/oradata/temp01.dbf' SIZE 20M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;

临时表空间
通过专门为排序段指定临时表空间,可以更有效地管理排序操作的空间。永久模式对象不能驻留在临时表空间中。
当一个段被多个排序操作共享时,使用排序段或临时段。当多个排序太大而无法装入内存时,临时表空间可以提供性能改进。给定临时表空间的排序段是在实例的第一次排序操作时创建的。排序段通过分配区段进行扩展,直到段大小等于或大于该实例上运行的所有活动排序的总存储需求。
注意:在创建临时表空间时不能指定非标准块大小。

本地管理的临时表空间具有临时数据文件(temp文件),它与普通数据文件类似,除了:

  • 临时文件总是被设置为NOLOGGING模式。
  • 不能将tempfile设置为只读。
  • 不能重命名临时文件。
  • 不能使用ALTER DATABASE命令创建tempfile。
  • 只读数据库需要临时文件。媒体恢复不能恢复临时文件。
    为了优化临时表空间中排序的性能,可以将UNIFORM SIZE设置为SORT_AREA_SIZE的倍数。
在Oracle数据库中关于SYSTEM表空间和临时表空间的管理规则。
  1. 当SYSTEM表空间是本地管理时,在创建数据库时必须至少定义一个默认的临时表空间

    • 如果SYSTEM表空间被设置为本地管理(使用位图管理),则在创建数据库时,必须定义一个默认的临时表空间,以便处理排序和其他临时操作。
  2. 本地管理的SYSTEM表空间不能用于默认的临时存储

    • 本地管理的SYSTEM表空间不能被用作默认的临时存储,这意味着必须有一个单独的临时表空间来处理临时数据。
  3. 如果SYSTEM是字典管理的,并且在创建数据库时没有定义默认的临时表空间,那么SYSTEM仍然用于默认的临时存储

    • 如果SYSTEM表空间是字典管理的(使用数据字典进行管理),并且在创建数据库时没有指定默认的临时表空间,那么SYSTEM表空间将被用作临时存储。
  4. 但是,您将在ALERT.LOG中收到一条警告,指出建议使用默认的临时表空间,并且在将来的版本中是必需的

    • 在这种情况下,数据库会在ALERT.LOG日志文件中记录一条警告,建议用户定义一个默认的临时表空间,并提示在未来的版本中,这将成为一个强制要求。

总结来说,当SYSTEM表空间为本地管理时,必须定义一个默认的临时表空间,而字典管理的SYSTEM表空间在没有定义临时表空间时可以作为临时存储,但会收到警告。

默认临时表空间 : Default Temp Table space

  • 指定数据库范围的默认临时表空间
  • 避免使用SYSTEM表空间存储临时数据
  • 可以使用以下命令创建:
    • 创建数据库
    • 修改数据库

默认临时表空间
默认的临时表空间可以通过以下方式创建和设置:

  • 使用CREATE TABLESPACE命令创建临时表空间
  • 使用ALTER DATABASE命令
    当创建一个没有默认临时表空间的数据库时,SYSTEM表空间被分配给任何没有临时表空间子句创建的用户。此外,在alert_sid.log中还会放置一个警告,指出SYSTEM表空间是默认的临时表空间。在创建数据库时创建默认的临时表空间,可以防止SYSTEM表空间被用作临时空间。数据库创建后,可以通过创建临时表空间,然后修改数据库来设置默认的临时表空间修改数据库默认临时表空间
    定义后,未显式分配给临时表空间的用户将分配给默认临时表空间。
    可以通过ALTER DATABASE default temporary tablespace命令随时修改默认的临时表空间。当默认临时表空间发生变化时,所有分配给默认临时表空间的用户将被重新分配给新的默认表空间。

创建默认临时表空间

1. 在数据库创建时:

使用以下命令创建数据库并定义默认临时表空间:

CREATE DATABASE DBA01
LOGFILE
GROUP 1 ('/$HOME/ORADATA/u01/redo01.log') SIZE 100M,
GROUP 2 ('/$HOME/ORADATA/u02/redo02.log') SIZE 100M,
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXLOGHISTORY 1
MAXDATAFILES 100
MAXINSTANCES 1
DATAFILE '/$HOME/ORADATA/u01/system01.dbf' SIZE 325M 
UNDO TABLESPACE undotbs 
DATAFILE '/$HOME/ORADATA/u02/undotbs01.dbf' SIZE 200M
DEFAULT TEMPORARY TABLESPACE temp 
TEMPFILE '/$HOME/ORADATA/u03/temp01.dbf' SIZE 4M 
CHARACTER SET US7ASCII;
2. 在数据库创建后:
  • 要查找数据库的默认临时表空间,可以查询DATABASE_PROPERTIES视图。
  • 使用以下命令修改默认临时表空间:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE default_temp2;
  • 查询当前的数据库属性:
SELECT * FROM DATABASE_PROPERTIES;
创建和管理临时表空间
  1. 查看数据库属性

    DESC DATABASE_PROPERTIES;
    COL PROPERTY_NAME FORMAT A40;
    COL PROPERTY_VALUE FORMAT A40;
    COL DESCRIPTION FORMAT A40;
    SELECT * FROM DATABASE_PROPERTIES;
    
  2. 查看当前表空间

    SELECT * FROM V$TABLESPACE;
    DESC DBA_TABLESPACES;
    
  3. 创建临时表空间
    创建一个名为mytemp的临时表空间,并指定为默认临时表空间:

    CREATE TEMPORARY TABLESPACE mytemp 
    TEMPFILE '/ora/oracle/oradata/orcl/mytemp01.dbf' SIZE 100M 
    EXTENT MANAGEMENT LOCAL;
    
  4. 设置默认临时表空间

    ALTER DATABASE DEFAULT TEMPORARY TABLESPACE mytemp;
    
注意事项
  • 数据库可以有多个临时表空间,但只能有一个默认的临时表空间。
  • 默认临时表空间是全局的,不能被删除(DROPPED),因为它用于处理所有未指定临时表空间的用户的临时数据。

在创建数据库时,可以通过CREATE DATABASE命令定义默认临时表空间。创建后,可以使用ALTER DATABASE命令修改默认临时表空间,并通过查询DATABASE_PROPERTIES视图来查看当前的默认临时表空间设置。

默认临时表空间有以下限制:
在新的默认临时表空间可用之前,不能删除默认临时表空间。
不能将默认临时表空间设置为离线状态。
不能将默认临时表空间更改为永久表空间。

相关文章:

维护表空间和数据文件(一)

学习目标 定义表空间和数据文件的用途创建表空间管理表空间使用Oracle管理文件(OMF)创建和管理表空间获取表空间信息 表空间和数据文件 Oracle逻辑上将数据存储在表空间中,物理上将数据存储在数据文件中。 Tablespaces: 一次只…...

H.265流媒体播放器EasyPlayer.js H5流媒体播放器关于如何查看手机端的日志信息并保存下来

现今流媒体播放器的发展趋势将更加多元化和个性化。人工智能的应用将深入内容创作、用户体验优化等多个方面,带来前所未有的个性化体验。 EasyPlayer.js H.265流媒体播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放&#…...

Apple Vision Pro开发003-PolySpatial2.0新建项目

unity6.0下载链接:Unity 实时开发平台 | 3D、2D、VR 和 AR 引擎 一、新建项目 二、导入开发包 com.unity.polyspatial.visionos 输入版本号 2.0.4 com.unity.polyspatial(单独导入),或者直接安装 三、对应设置 其他的操作与之前的版本相同…...

解决 npm xxx was blocked, reason: xx bad guy, steal env and delete files

问题复现 今天一位朋友说,vue2的老项目安装不老依赖,报错内容如下: npm install 451 Unavailable For Legal Reasons - GET https://registry.npmmirror.com/vab-count - [UNAVAILABLE_FOR_LEGAL_REASONS] vab-count was blocked, reas…...

leetcode 面试150之 156.LUR 缓存

请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -…...

Vue 动态给 data 添加新属性深度解析:问题、原理与解决方案

在 Vue 中,动态地向 data 中添加新的属性是一个常见的需求,但它也可能引发一些问题,尤其是关于 响应式更新 和 数据绑定 的问题。Vue 的响应式系统通过 getter 和 setter 来追踪和更新数据,但 动态添加新属性 时,Vue 并不会自动为这些新属性创建响应式链接。 1. 直接向 V…...

Unity类银河战士恶魔城学习总结(P141 Finalising ToolTip优化UI显示)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址:https://www.udemy.com/course/2d-rpg-alexdev/ UI部分暂时完结!!! 本章节优化了UI中物品描述的显示效果,技能描述的显示效果 并且可以批…...

面试:请阐述MySQL配置文件my.cnf中参数log-bin和binlog-do-db的作用

大家好,我是袁庭新。星球里的小伙伴去面试,面试官问:MySQL配置文件my.cnf中参数log-bin和binlog-do-db的作用?一脸懵逼~不知道该如何回答。 在MySQL的配置文件my.cnf中,log-bin和binlog-do-db是与二进制日志…...

监控报警系统的指标、规则与执行闭环

随笔 从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条? 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 java 老矣,尚能饭否? 一骑红尘妃子笑,无人知是荔枝来! 有所依 我们如何知道系统交易…...

玩转数字与运算:用C语言实现24点游戏的扑克牌魅力

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...

动态反馈控制器(DFC)和 服务率控制器(SRC);服务率和到达率简单理解

目录 服务率和到达率简单理解 服务率 到达率 排队论中的应用 论文解析:队列等待成本动态感知控制模型 动态反馈和队列等待成本意识: 服务速率调整算法: 动态反馈控制器(DFC)和 服务率控制器(SRC) SRC公式4的原理 算力资源分配系统中的调整消耗 举例说明 服务…...

Flutter-Web首次加载时添加动画

前言 现在web上线后首次加载会很慢&#xff0c;要5秒以上&#xff0c;并且在加载的过程中界面是白屏。因此想在白屏的时候放一个加载动画 实现步骤 1.找到web/index.html文件 2.添加以下<style>标签内容到<head>标签中 <style>.loading {display: flex;…...

stl 实现非容器类型元素和容器元素比较

在 C 标准模板库&#xff08;STL&#xff09;中&#xff0c;有许多算法可以接受自定义的比较函数&#xff08;Compare&#xff09;。这些算法通常涉及排序、查找、合并、集合操作等场景&#xff0c;允许用户通过 Compare 函数指定如何比较两个元素。 自定义compare的算法 排序…...

ChatGPT 桌面版发布了,如何安装?

本章教程教大家如何进行安装。 一、下载安装包 官网地址地址&#xff1a;https://openai.com/chatgpt/desktop/ 支持Windows和MacOS操作系统 二、安装步骤 Windows用户下载之后&#xff0c;会有一个exe安装包&#xff0c;点击运行安装即可。 注意事项&#xff0c;如果Windows操…...

【动手学电机驱动】STM32-FOC(8)MCSDK Profiler 电机参数辨识

STM32-FOC&#xff08;1&#xff09;STM32 电机控制的软件开发环境 STM32-FOC&#xff08;2&#xff09;STM32 导入和创建项目 STM32-FOC&#xff08;3&#xff09;STM32 三路互补 PWM 输出 STM32-FOC&#xff08;4&#xff09;IHM03 电机控制套件介绍 STM32-FOC&#xff08;5&…...

JavaWeb后端开发知识储备2

目录 1.HttpClient 2.微信小程序开发 3.Spring Cache 4.Spring Task 4.1cron表达式 4.2入门案例 1.HttpClient 简单来说&#xff0c;HttpClient可以通过编码的方式在Java中发送Http请求 2.微信小程序开发 微信小程序的开发本质上是前端开发&#xff0c;对于后端程序员来…...

Java Stream API - 高效数据处理的核心工具_01

文章目录 概述&#xff1a;高效数据处理的核心工具1. 流的创建1.1 从集合创建流1.2 从数组创建流1.3 直接创建流 2. 中间操作&#xff1a;流的转换和处理2.1 map()&#xff1a;映射操作2.2 filter()&#xff1a;过滤操作2.3 flatMap()&#xff1a;扁平化映射操作2.4 sorted()&a…...

【计算机网络】网段划分

一、为什么有网段划分 IP地址 网络号(目标网络) 主机号(目标主机) 网络号: 保证相互连接的两个网段具有不同的标识 主机号: 同一网段内&#xff0c;主机之间具有相同的网络号&#xff0c;但是必须有不同的主机号 互联网中的每一台主机&#xff0c;都要隶属于某一个子网 -&…...

HTML和CSS 表单、表格练习

HTML和CSS 表格练习 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>HTML表格练习</title>…...

ByteBuffer模拟拆包输出消息字符串

以下代码模拟网络编程中的粘包现象&#xff0c;用\n进行分割消息块 源码 public static void main(String[] args) {ByteBuffer byteBuffer1 ByteBuffer.allocate(60) ;byteBuffer1.put("Hello World\nWhat is you name?\nI am Licky!\nHo".getBytes());splice(byt…...

Java FastJson 踩坑记录

newtonsoft.json 第一次用。java 转的json给newtonsoft.json解析&#xff0c;一直解析不出来。 直到写这个文章的时候&#xff0c;我都还觉得是newtonsoft.json和fastjson都有问题。 先看java JSONField(name"Rank​Value") public long Rank1​1000; JSONField(na…...

深入理解 Java 阻塞队列:使用场景、原理与性能优化

在并发编程中&#xff0c;线程安全的队列是解决线程间任务传递和调度的关键工具之一。阻塞队列&#xff08;BlockingQueue&#xff09;作为一种线程安全的队列&#xff0c;实现了在并发环境下对共享数据的安全访问&#xff0c;广泛应用于生产者-消费者模型、任务调度和多线程计…...

Python常用高阶函数:map()、filter()、reduce()

Python常用高阶函数&#xff1a;map()、filter()、reduce() 高阶函数是一类以函数作为参数或者返回值的函数&#xff0c;能够显著提高代码的简洁性和灵活性。在Python中&#xff0c;map()、filter()和reduce()是三种非常常用的高阶函数&#xff0c;它们常被用来对列表或其他可…...

多目标优化算法:多目标极光优化算法(MOPLO)求解ZDT1、ZDT2、ZDT3、ZDT4、ZDT6,提供完整MATLAB代码

一、极光优化算法 极光优化算法&#xff08;Polar Lights Optimization, PLO&#xff09;是2024年提出的一种新型的元启发式优化算法&#xff0c;它从极光这一自然现象中汲取灵感。极光是由太阳风中的带电粒子在地球磁场的作用下&#xff0c;与地球大气层中的气体分子碰撞而产…...

【大数据学习 | Spark-Core】关于distinct算子

只有shuffle类的算子能够修改分区数量&#xff0c;这些算子不仅仅存在自己的功能&#xff0c;比如分组算子groupBy&#xff0c;它的功能是分组但是却可以修改分区。 而这里我们要讲的distinct算子也是一个shuffle类的算子。即可以修改分区。 scala> val arr Array(1,1,2,…...

ShuffleNet:一种为移动设备设计的极致高效的卷积神经网络

摘要 https://arxiv.org/pdf/1707.01083 我们介绍了一种名为ShuffleNet的计算效率极高的卷积神经网络&#xff08;CNN&#xff09;架构&#xff0c;该架构专为计算能力非常有限的移动设备&#xff08;例如10-150 MFLOPs&#xff09;而设计。新架构利用两种新操作&#xff1a;逐…...

AIGC-------AIGC在社交媒体内容生成中的应用

AIGC在社交媒体内容生成中的应用 引言 随着人工智能生成内容&#xff08;AIGC&#xff09;的快速发展&#xff0c;社交媒体平台上的内容创作方式发生了巨大变化。AIGC使得内容创作的门槛大大降低&#xff0c;从而让更多的人能够参与到社交媒体内容的创作中&#xff0c;同时也使…...

提取图像中的高频信息

三种方法 1. 傅里叶变换提取高频和低频【有损】2. 傅里叶变换提取振幅和相位【无损】3. 小波变换【不涉及恢复代码】代码1.代码2代码3 1. 傅里叶变换提取高频和低频【有损】 环境&#xff1a;集群210.30.98.11效果: 2. 傅里叶变换提取振幅和相位【无损】 环境&#xff1a;集…...

js函数声明

在 JavaScript 中&#xff0c;函数是一等公民&#xff08;first-class citizen&#xff09;&#xff0c;这意味着函数可以作为变量、参数和返回值使用。JavaScript 提供了多种定义函数的方式&#xff0c;以下是几种常见的方法&#xff1a; 1. 函数声明&#xff08;Function De…...

语言模型中的多模态链式推理

神经网络的公式推导 简介摘要引言多模态思维链推理的挑战多模态CoT框架多模态CoT模型架构细节编码模块融合模块解码模块 实验结果运行代码补充细节安装包下载Flan-T5数据集准备rougenltkall-MiniLM-L6-v2运行 简介 本文主要对2023一篇论文《Multimodal Chain-of-Thought Reason…...

【Java 解释器模式】实现高扩展性的医学专家诊断规则引擎

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

CTF之密码学(Polybius密码)

棋盘密码&#xff0c;也称为Polybius密码或方格密码&#xff0c;是一种基于替换的加密方法。以下是对棋盘密码的详细解析&#xff1a; 一、加密原理 棋盘密码使用一个5x5的方格棋盘&#xff0c;其中填充了26个英文字母&#xff08;通常i和j被视为同一个字母并放在同一个格子中…...

java excel 导入各种踩坑

在 Java 中处理 Excel 导入时&#xff0c;常见的问题&#xff08;即“踩坑”&#xff09;很多&#xff0c;下面列举了处理 Excel 导入时可能遇到的一些问题&#xff0c;并给出了解决方案和优化技巧。 1. POI 库与版本问题 Apache POI 是处理 Excel 的常用库&#xff0c;但是不…...

优化表单交互:在 el-select 组件中嵌入表格显示选项

介绍了一种通过 el-select 插槽实现表格样式数据展示的方案&#xff0c;可更直观地辅助用户选择。支持列配置、行数据绑定及自定义搜索&#xff0c;简洁高效&#xff0c;适用于复杂选择场景。完整代码见GitHub 仓库。 背景 在进行业务开发选择订单时&#xff0c;如果单纯的根…...

js版本之ES5特性简述【String、Function、JSON、其他】(二)

目录 String相关方法 string.charAt() string.charCodeAt() string.concat() string.match() string.search() string.replace() string.split() string.trim() string.slice() string.substr() string.substring() Function相关方法 arguments.length function…...

【redis】哈希类型详解

哈希类型详解 一、哈希类型的介绍二、哈希类型的常用命令2.1 HSET2.2 HGET2.3 HEXISTS2.4 HDEL2.5 HKEYS2.6 HAVLS2.7 HGETALL2.8 HMGET2.9 HLEN2.10 HSETNX2.11 HINCRBY2.12 HINCRBYFLOAT 三、哈希类型命令小结四、哈希类型内部编码五、哈希类型应用场景 一、哈希类型的介绍 …...

每日练题之动态规划(子序列问题讲解 1.最长递增子序列 2.摆动序列)

前言&#xff1a; 需要对「子序列」和「子数组」这两个概念进行区分&#xff1b; 子序列&#xff08;subsequence&#xff09;&#xff1a;子序列并不要求连续&#xff0c;但是我们调出来的顺序必须和原数组的顺序相同。例如&#xff1a;序列 [4, 6, 5] 是 [1, 2, 4, 3, 7, 6,…...

JSON 性能测试 - WastJson 性能也很快

WAST 是一个高性能 Java 工具集库包&#xff0c;包括 JSON、YAML、CSV、HttpClient、JDBC 和 EL 引擎. WastJson 无论是小中大文本各种数据类型等性能都没有明显的短板&#xff0c;除了推广外可以说是六边形战士&#xff0c;更多测试参考 wast-jmh-test: wast性能测试 (并非所…...

Windows 软件之 FFmpeg

文章目录 前言1 FFmpeg 视频处理1.1 编解码1.2 其它视频编辑命令1.3 视频抽帧 2 FFmpeg 音频处理3 FFmpeg 图片处理3.1 编解码3.2 拼接图片3.3 图片合成视频 附录1&#xff1a;mediainfo.ps1 前言 FFmpeg 是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的…...

接口的扩展

1. 接口中新增的方法 JDK7之前接口中只能定义抽象方法。 JDK8的新特性&#xff1a;接口中可以定义有方法体的方法。&#xff08;默认、静态&#xff09; JDK9的新特性&#xff1a;接口中可以定义有私有方法体的方法。 有方法体的方法&#xff1a;接口升级时&#xff0c;为了兼容…...

Vue ECharts 基本数据图表绘制详解:让数据飞起来

1. 引言 1.1 什么是数据可视化 大家好&#xff0c;欢迎来到数据可视化的世界&#xff01;如果你以为数据就是冷冰冰的数字&#xff0c;那你就大错特错了。数据&#xff0c;可是有灵魂的&#xff01;只要给它一副好看的外衣&#xff0c;比如我们今天要聊的图表&#xff0c;它们…...

目录遍历漏洞-CVE-2021-41773

目录 简介 原理 例子 Apache路径穿越漏洞 环境搭建 漏洞原理 漏洞利用 简介 目录遍历漏洞&#xff08;也称为路径遍历漏洞&#xff09;是一种由于Web服务器或Web应用程序对用户输入的文件名称的安全性验证不足而导致的安全漏洞。 原理 目录遍历漏洞允许攻击者在未授权…...

ajax (一)

什么是 AJAX [ˈeɪdʒks] &#xff1f; 概念&#xff1a;AJAX是浏览器与服务器进行 数据通信 的技术&#xff0c;动态数据交互 怎么用AJAX? 1. 先使用 axios [k‘sio ʊ s] 库&#xff0c; 与服务器进行 数据通信 ⚫ 基于 XMLHttpRequest 封装、代码简单、月下载量在 1…...

cocos creator 3.8 物理碰撞器Collider+刚体RigidBody 8

遇到一个朋友&#xff0c;你来就行的朋友&#xff0c;我过去了&#xff0c;管吃管住&#xff0c;这样的朋友真的很难求。 最近离职了&#xff0c;很难想象&#xff0c;一份策划书一天能给你改n次&#xff0c;一周能郁闷&#xff0c;上一个功能没搞完&#xff0c;让你搞下一个功…...

[Python3学习笔记-基础语法] Python3 基础语法

本篇文章详细介绍Python3的基础语法&#xff0c;主要包括编码、标识符、Python保留字、注释、行缩进、多行语句、Number类型、字符串、空行、print打印等。 这些是Python最基础的东西&#xff0c;掌握好了才能更好的学习后续的内容。 有兴趣共同结伴学习Python的朋友&#xff0…...

自制游戏:监狱逃亡

第一个游戏&#xff0c;不喜勿喷&#xff1a; ​ #include<bits/stdc.h> #include<windows.h> using namespace std; int xz; int ruond_1(int n){if(xz1){printf("撬开了&#xff0c;但站在你面前的是俄罗斯内务部特种部队的奥摩大帝&#xff0c;你被九把加…...

Linux的开发工具(三)

条件编译 预处理本质&#xff1a;对代码进行裁剪 像网易云音乐有vip和普通用户&#xff0c;可以通过条件编译来&#xff0c;这样只用写一份代码&#xff0c;也只用维护一份代码&#xff0c;是vip就走vip代码&#xff0c;不是就普通用户代码&#xff0c;条件编译来动态裁剪。 …...

飞书会话消息左右排列

飞书会话消息左右排列 1. 飞书登录后&#xff0c;点击头像&#xff0c;弹出菜单有个按钮设置 2. 3....

【数据结构-表达式解析】力扣227. 基本计算器 II

给你一个字符串表达式 s &#xff0c;请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 你可以假设给定的表达式总是有效的。所有中间结果将在 [-231, 231 - 1] 的范围内。 注意&#xff1a;不允许使用任何将字符串作为数学表达式计算的内置函数&#…...

vue2面试题10|[2024-11-24]

问题1&#xff1a;vue设置代理 如果你的前端应用和后端API服务器没有运行在同一个主机上&#xff0c;你需要在开发环境下将API请求代理到API服务器。这个问题可以通过vue.config.js中的devServer.proxy选项来配置。 1.devServer.proxy可以是一个指向开发环境API服务器的字符串&…...