1. Tablespace表空间
1.1 TBS的分类
TBS(Tablespace)是Oracle数据库中用于存储数据和索引的逻辑存储单元,可以将不同的数据和索引存储在不同的TBS中,以便于管理和维护。根据不同的管理和维护需求,TBS可以分为以下几类:
系统表空间(System Tablespace):系统表空间是Oracle数据库中的一个特殊表空间,用于存储系统表、数据字典和其他系统对象。系统表空间是数据库的核心组成部分,不能被删除或更改。
用户表空间(User Tablespace):用户表空间是用于存储用户数据和索引的表空间,可以根据不同的用户和应用需求创建多个用户表空间。用户表空间可以通过ALTER TABLESPACE语句进行管理和维护。
临时表空间(Temporary Tablespace):临时表空间是用于存储临时数据和排序结果的表空间,可以根据不同的应用需求创建多个临时表空间。临时表空间可以通过ALTER TABLESPACE语句进行管理和维护。
回滚表空间(Undo Tablespace):回滚表空间是用于存储事务回滚信息的表空间,可以根据不同的应用需求创建多个回滚表空间。回滚表空间可以通过ALTER TABLESPACE语句进行管理和维护。
索引表空间(Index Tablespace):索引表空间是用于存储索引数据的表空间,可以根据不同的应用需求创建多个索引表空间。索引表空间可以通过ALTER TABLESPACE语句进行管理和维护。
LOB表空间(LOB Tablespace):LOB表空间是用于存储大型对象(LOB)数据的表空间,可以根据不同的应用需求创建多个LOB表空间。LOB表空间可以通过ALTER TABLESPACE语句进行管理和维护。
1.2 TBS的管理方式
TBS(Tablespace)是Oracle数据库中用于存储数据和索引的逻辑存储单元,可以根据不同的管理和维护需求进行管理。以下是TBS的管理方式:
创建表空间:可以使用CREATE TABLESPACE语句创建新的表空间,指定表空间的名称、数据文件的位置和大小、块大小等参数。
修改表空间:可以使用ALTER TABLESPACE语句修改表空间的属性,包括表空间的大小、块大小、数据文件的位置等。
删除表空间:可以使用DROP TABLESPACE语句删除不需要的表空间,删除表空间时需要注意表空间中是否还有数据和索引,需要先将数据和索引移动到其他表空间中。
扩展表空间:可以使用ALTER TABLESPACE语句扩展表空间的大小,增加表空间的数据文件或增加数据文件的大小。
移动表空间:可以使用ALTER TABLESPACE语句将表空间中的数据文件移动到其他位置,可以用于数据文件的备份和恢复。
管理表空间中的数据文件:可以使用ALTER DATABASE DATAFILE语句管理表空间中的数据文件,包括添加、删除、重命名、移动数据文件等操作。
监控表空间:可以使用Oracle提供的监控工具来监控表空间的使用情况,包括表空间的大小、使用率、空间碎片等。
总之,TBS的管理方式包括创建、修改、删除、扩展、移动表空间、管理表空间中的数据文件和监控表空间等多种操作,可以根据不同的需求和情况进行管理和维护。
在Oracle数据库中,段(Segment)是指表、索引、簇、视图等对象所占用的存储空间,而区(Extent)是段中的一个连续的物理存储单元。段的管理方式和区的管理方式如下:
段的管理方式:
(1)创建段:可以使用CREATE TABLE、CREATE INDEX等语句创建新的段。
(2)修改段:可以使用ALTER TABLE、ALTER INDEX等语句修改段的属性,包括段的大小、存储位置、存储参数等。
(3)删除段:可以使用DROP TABLE、DROP INDEX等语句删除不需要的段。
(4)移动段:可以使用ALTER TABLE、ALTER INDEX等语句将段移动到其他表空间或数据文件中。
(5)重建段:可以使用ALTER TABLE、ALTER INDEX等语句重建段,以优化段的性能和空间利用率。
(6)监控段:可以使用Oracle提供的监控工具来监控段的使用情况,包括段的大小、使用率、空间碎片等。
区的管理方式:
(1)创建区:当段中没有足够的区可用时,Oracle会自动创建新的区。
(2)管理区:可以使用ALTER TABLE、ALTER INDEX等语句管理区的大小和位置,包括添加、删除、重命名、移动区等操作。
(3)监控区:可以使用Oracle提供的监控工具来监控区的使用情况,包括区的大小、使用率、空间碎片等。
总之,段和区的管理方式都是通过SQL语句来实现的,可以根据不同的需求和情况进行管理和维护。段的管理方式主要包括创建、修改、删除、移动、重建段和监控段等多种操作,而区的管理方式主要包括创建、管理和监控区等操作。
在Oracle数据库中,TBS(Tablespace)是用于存储数据和索引的逻辑存储单元,而段(Segment)是指表、索引、簇、视图等对象所占用的存储空间,区(Extent)是段中的一个连续的物理存储单元。段的管理方式和区的管理方式是在建立TBS时确定的,这是因为TBS是段和区的容器,不同的TBS可以有不同的管理方式。
在创建TBS时,可以指定TBS的类型和属性,例如系统表空间、用户表空间、临时表空间、回滚表空间、索引表空间和LOB表空间等。不同类型的TBS可以有不同的管理方式,例如系统表空间是Oracle数据库中的一个特殊表空间,用于存储系统表、数据字典和其他系统对象,不能被删除或更改;用户表空间是用于存储用户数据和索引的表空间,可以根据不同的用户和应用需求创建多个用户表空间;临时表空间是用于存储临时数据和排序结果的表空间,可以根据不同的应用需求创建多个临时表空间;回滚表空间是用于存储事务回滚信息的表空间,可以根据不同的应用需求创建多个回滚表空间;索引表空间是用于存储索引数据的表空间,可以根据不同的应用需求创建多个索引表空间;LOB表空间是用于存储大型对象(LOB)数据的表空间,可以根据不同的应用需求创建多个LOB表空间。
因此,TBS的类型和属性决定了段和区的管理方式,例如用户表空间可以有多个段和区,可以使用CREATE TABLE、CREATE INDEX等语句创建新的段,使用ALTER TABLE、ALTER INDEX等语句修改段的属性,使用DROP TABLE、DROP INDEX等语句删除不需要的段,使用ALTER TABLE、ALTER INDEX等语句将段移动到其他表空间或数据文件中,使用Oracle提供的监控工具来监控段的使用情况。而区的管理方式包括创建区、管理区和监控区等操作,可以使用ALTER TABLESPACE语句管理区的大小和位置,包括添加、删除、重命名、移动区等操作,使用Oracle提供的监控工具来监控区的使用情况。
因此,可以理解段的管理方式和区的管理方式是在建立TBS时确定的,不同类型的TBS可以有不同的管理方式,这些管理方式可以通过SQL语句来实现,可以根据不同的需求和情况进行管理和维护。
1.2.1 段管理方式
在Oracle数据库中,段(Segment)是指表、索引、簇、视图等对象所占用的存储空间,段的管理方式可以分为自动管理和手动管理两种方式。
自动管理:
自动管理是指Oracle数据库自动管理段的空间分配和释放,以及段的存储参数的调整。自动管理可以通过设置表空间的存储参数来实现,包括表空间的初始大小、下一个增长大小、最大大小、自动扩展等参数。当表空间中的段需要更多的空间时,Oracle会自动分配更多的空间,当段不再需要空间时,Oracle会自动释放空间。自动管理可以减少管理员的工作量,但也可能导致表空间的空间利用率不高,需要定期进行空间整理和优化。
手动管理:
手动管理是指管理员手动管理段的空间分配和释放,以及段的存储参数的调整。手动管理可以通过使用ALTER TABLE、ALTER INDEX等语句来实现,包括修改段的存储参数、移动段到其他表空间、重建段等操作。手动管理可以更加精细地控制段的空间利用和性能,但也需要管理员花费更多的时间和精力来管理。
总之,段的管理方式可以分为自动管理和手动管理两种方式,可以根据不同的需求和情况选择合适的管理方式。自动管理可以减少管理员的工作量,但也可能导致表空间的空间利用率不高;手动管理可以更加精细地控制段的空间利用和性能,但需要管理员花费更多的时间和精力来管理。
1.2.2 区管理方式
有本地管理(locally managed)和字典管理(dictionary managed ) (已淘汰)两种.
在Oracle数据库中,区(Extent)是段中的一个连续的物理存储单元,区的管理方式可以分为本地管理和字典管理两种方式。
本地管理(Locally Managed):
本地管理是指使用位图或自由列表等方式来管理区的分配和释放。在本地管理方式下,每个表空间都有一个位图或自由列表来记录区的使用情况,当需要分配新的区时,Oracle会在位图或自由列表中查找可用的区,当区不再需要时,Oracle会将其标记为空闲状态。本地管理方式可以提高区的分配和释放的效率,减少空间碎片,但需要更多的内存来存储位图或自由列表。
字典管理(Dictionary Managed):
字典管理是指使用数据字典来管理区的分配和释放。在字典管理方式下,Oracle会将区的使用情况记录在数据字典中,当需要分配新的区时,Oracle会在数据字典中查找可用的区,当区不再需要时,Oracle会将其标记为空闲状态。字典管理方式可以减少内存的使用,但需要更多的I/O操作来访问数据字典,可能会影响性能。
总之,区的管理方式可以分为本地管理和字典管理两种方式,可以根据不同的需求和情况选择合适的管理方式。本地管理方式可以提高区的分配和释放的效率,减少空间碎片,但需要更多的内存来存储位图或自由列表;字典管理方式可以减少内存的使用,但需要更多的I/O操作来访问数据字典,可能会影响性能。