03-2 表空间管理
数据库管理系统的表空间管理技巧(二)
数据库管理系统(Database Management System,简称DBMS)是用于管理和操作数据库的软件系统。
在DBMS中,表空间管理是数据库管理的重要组成部分,也是保证数据库高效运行的关键之一。
本文将探讨数据库管理系统的表空间管理技巧。
一、表空间的概念和作用表空间是DBMS中用于存储数据表、索引和其他数据库对象的逻辑容器。
它将物理存储细节与逻辑结构分离,提供了更高层次的抽象,简化了数据管理并提高了数据库的灵活性和性能。
表空间的作用主要有以下几点:1. 组织数据:表空间可以根据不同的业务需求将数据组织到不同的存储区域,提高数据的管理效率。
2. 管理空间:表空间可以管理数据库中的空间分配和释放,避免碎片化和空间浪费。
3. 控制访问权限:表空间可以根据不同用户或用户组的权限设置访问控制,确保数据的安全性。
4. 提供数据恢复能力:表空间可以通过备份和恢复操作,保证数据的可靠性和可恢复性。
二、表空间管理技巧1. 合理规划表空间大小在创建数据库时,要根据预期的数据量和业务需求合理规划表空间大小。
如果表空间过小,可能会导致频繁的扩展操作,影响数据库的性能;而过大的表空间又会浪费存储资源。
根据历史数据增长率、数据分析和预测,合理估计表空间大小,并根据需要进行动态调整。
2. 分配合理的存储空间在为表空间分配存储空间时,应根据数据的特点和访问模式进行合理的规划。
对于频繁访问的热点数据,可以将其分配到更快速的存储设备上,提高访问性能;对于不常用或历史数据,可以将其分配到较慢或容量较大的存储设备上,实现资源的合理分配。
3. 注意表空间的均衡性均衡性是指在多表空间的情况下,各表空间的使用率相对均衡,避免某个表空间过度使用而导致性能瓶颈。
可以通过定期监控和管理来实现表空间的均衡性,例如定期检查表空间使用情况,对使用率较高的表空间进行扩展或重新分配。
4. 对大表进行分区对于较大的数据表,可以考虑使用分区技术将其分成多个逻辑区域,每个区域存储一部分数据。
oracle表空间段管理方式
一、概述Oracle是一种流行的关系型数据库管理系统,表空间是Oracle中用于管理存储空间的重要概念。
表空间段管理方式是指Oracle数据库中用来管理表空间中的数据段的方法。
在Oracle中,数据段是用来存储表数据或索引数据的逻辑结构,而表空间则是用来管理和存储这些数据段的物理存储空间。
表空间段管理方式的选择对于数据库的性能和管理都有着重要的影响。
二、Oracle的表空间段管理方式在Oracle数据库中,有两种主要的表空间段管理方式,分别是自动段管理和手动段管理。
这两种管理方式有着不同的特点和适用场景,具体如下:1. 自动段管理自动段管理是指使用Oracle提供的自动分配和调整空间的机制来管理表空间中的数据段。
这种管理方式下,数据库管理员无需手动管理数据段的分配和释放,而是由数据库系统自动进行管理。
在自动段管理模式下,数据库系统会自动为每个新创建的表或索引分配存储空间,并在表或索引数据增加时自动扩展存储空间。
系统还会自动回收不再使用的存储空间,以便能够重新利用。
2. 手动段管理手动段管理是指由数据库管理员手动管理表空间中的数据段。
在这种管理方式下,数据库管理员需要手动为每个表或索引分配存储空间,并在需要时手动扩展存储空间。
数据库管理员还需要手动释放不再使用的存储空间,以便能够重新利用。
手动段管理通常需要更多的管理工作,但也可以更精确地控制存储空间的分配和使用。
三、自动段管理的优缺点自动段管理方式具有以下优点和缺点:1. 优点(1)减少管理工作量:自动段管理能够减少数据库管理员的管理工作量,提高工作效率。
(2)动态调整存储空间:自动段管理能够动态调整存储空间,根据实际需要自动分配和释放存储空间。
(3)避免空间浪费:自动段管理能够避免由于手动管理而导致的存储空间的浪费。
2. 缺点(1)性能开销:自动段管理需要定期进行空间管理任务,可能对数据库的性能产生一定的影响。
(2)可控性差:自动段管理对于存储空间的分配和使用没有手动段管理那样的精确控制。
oracle表空间区的管理方式
Oracle表空间区的管理方式1. 什么是Oracle表空间区在Oracle数据库中,表空间是用来存储和管理数据的逻辑结构,它是由一个或多个数据文件组成的,而数据文件则是物理存储数据的文件。
表空间是Oracle数据库中最高层次的存储结构,它可以包含多个段,而段则可以包含多个数据块。
表空间的管理是数据库管理的重要组成部分,它决定了数据库存储的灵活性、性能和安全性。
Oracle提供了多种管理表空间的方式,以满足不同的需求和场景。
2. Oracle表空间的创建和管理2.1 创建表空间在Oracle数据库中,可以使用CREATE TABLESPACE语句来创建表空间。
创建表空间时需要指定表空间的名称、数据文件的位置和大小等参数。
下面是一个创建表空间的示例:CREATE TABLESPACE my_tablespaceDATAFILE '/path/to/datafile.dbf'SIZE 100M;这个例子创建了一个名为my_tablespace的表空间,使用/path/to/datafile.dbf作为数据文件,并设置数据文件的大小为100MB。
2.2 管理表空间在Oracle数据库中,可以通过以下方式来管理表空间:2.2.1 表空间的扩展和缩小当表空间使用的空间不足时,可以通过扩展表空间来增加可用空间。
可以使用ALTER TABLESPACE语句来扩展表空间的大小。
下面是一个扩展表空间的示例:ALTER TABLESPACE my_tablespaceADD DATAFILE '/path/to/new_datafile.dbf'SIZE 100M;这个例子向my_tablespace表空间添加了一个新的数据文件/path/to/new_datafile.dbf,并设置数据文件的大小为100MB。
当表空间中的数据不再需要时,可以通过缩小表空间来释放空间。
可以使用ALTER TABLESPACE语句来缩小表空间的大小。
表空间管理——精选推荐
表空间管理表空间(TABLESPACE)管理1 定义表空间是⼀个逻辑概念,物理上对应⼀个或多个数据⽂件datafile或临时⽂件tempfiles,逻辑上表空间时存储段的容器(段也是逻辑概念,是数据库中的对象如表、索引等)2 类型和管理⽅式表空间类型:① PERMANENT 永久表空间② UNDO 撤销表空间③ TEMPORARY 临时表空间管理⽅式重点是段的管理⽅式和区的管理⽅式,是建⽴在表空间时确定的。
段管理⽅式有AUTO和MANUAL两种,区管理⽅式有本地管理和字典管理(已淘汰)两种。
2.1 查看表空间类型、段和区的管理⽅式select tablespace_name,contents,segment_space_management,extent_management from dba_tablespaces;查看所有的表空间select*from v$tablespace;2.2 查看表空间(数据⽂件)⼤⼩、是否⾃动扩展col file_name for a45col tablespace_name for a10select file_id,file_name,tablespace_name,bytes/1024/1024 M,status,AUTOEXTENSIBLE from dba_data_files order by1;2.3 查看表空间总⼤⼩⼀个表空间可能会对应多个数据⽂件select tablespace_name,sum(bytes)/1024/1024 M from dba_data_files group by tablespace_name;2.4 查看表空间空闲⼤⼩select tablespace_name,sum(bytes)/1024/1024 M from dba_free_space group by tablespace_name;3 基本操作3.1 small表空间扩展表空间的⼤⼩等同于它的所有数据⽂件件⼤⼩之和,默认使⽤small表空间,当发⽣表空间不⾜的问题时常⽤的3个解决⽅法:①增加原有的数据⽂件⼤⼩(resize)②增加数据⽂件(add datafile)③设置表空间⾃动增长(autoextend on)3.1.1 创建small表空间语法:create tablespace 表空间名 datafile '路径/数据⽂件名.dbf' size ⼤⼩(M);create tablespace demo datafile '/u01/oradata/orcl/demo01.dbf' size 5M;3.1.2 创建表并指定所要使⽤的表空间语法:create table 表名(字段1 数据类型,字段2 数据类型) tablespace 表空间名;create table demo_f(id number,name varchar2(10)) tablespace demo;3.1.3 resize 增加原有的数据⽂件⼤⼩语法:alter database datafile 数据⽂件的file_id resize ⼤⼩(M);alter database datafile 5 resize 10M;3.1.4 add datafile增加数据⽂件语法:alter tablespace 表空间名 add datafile '路径/数据⽂件名.dbf' size ⼤⼩(M);alter tablespace demo add datafile '/u01/oradata/orcl/demo02.dbf' size 10M;3.1.5 autoextend on设置表空间⾃动增长语法:alter database datafile 数据⽂件的file_id autoextend on next 下次⾃动增长多少M maxsize 最⼤多少M; alter database datafile 5 autoextend on next 10M maxsize 500M;3.1.6 数据⽂件移动或改名可以将⼀个在线呢数据⽂件从⼀种存储系统移动或改名到另⼀个存储系统⽐如:本地系统⽂件--->ASM共享存储ASM共享存储--->本地系统⽂件当⼀个数据⽂件正在进⾏移动的时候,可以执⾏查询、DML、DDL操作,包括如下:查询语句,创建表和索引,重建索引。
03管理表空间和数据文件
• ALTER TABLESPACE … ADD DATAFILE 例如:
CREATE TABLESPACE user_data DATAFILE
'/u01/oradata/userdata01.dbf' SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/temp01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;
10/18/2019
13
默认的临时表空间
指定一个数据库的默认临时表空间 消除使用系统表空间做数据排序 能用下列语句创建:
10/18/2019
10
数据字典管理表空间
数据字典管理范围. 在表空间中的每个段都有一个不同的存储子句. 需要合并连续空闲区. DMT技术已经被放弃
CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE (initial 1M NEXT 1M PCTINCREASE 0);
10/18/2019
22
改变一个表空间大小
一个表空间可以使用以下方法改变大小:
改变数据文件的大小:
• 自动就使用AUTOEXTEND • 手工使用ALTER DATABASE命令
使用ALTER TABLESPACE命令增加一个数 据文件
管理表空间和数据文件
‘datafilename’ [size integer[k|m]] [reuse] [autoextend off|on[next integer[k|m]] [maxsize unlimited|integer[k|m]]
CREATE TABLESPACE DATA01 DATAFILE ‘d:\oracle\oradata\db01\data01.dbf’ SIZE
管理表空间和数据文 件
1-1
1.各种表空间的创建 2.表空间的可用表空间)大小的方法 5.数据文件的可用性 6.表空间和数据文件的删除 7.数据文件的移动和重命名方法
1-2
表空间的存储管理方式
Oracle9i中表空间存储管理方式分为两种:字典管理方式表 空间;本地管理方式表空间。 在创建表空间时选择其中一种空间管理方法,在以后将无法 改变该方法。 在Orade8i之前,所有表空间都是基于数据字典进行管理的; 从Oracle8i开始,允许使用本地管理表空间 ,默认为字典 管理表空间。 但是从Orade9i开始,默认为本地管理方式表空间。如果要 建立字典管理表空间,则必须指定extent management dictionary子句。
ALTER DATABASE DATAFILE ‘d:\oracle\oradata\db01\data01.dbf’ OFFLINE ALTER DATABASE DATAFILE ‘d:\oracle\oradata\db01\data01.dbf’ ONLINE
1-28
在不归档模式中改变数据文件的可用性
1-15
immediate:这时Oracle不保证表空间文件可用,也不执行 检查点,而是直接将该表空间的数据文件设置为脱机状态。 在使此表空间重新联机之前,必须对脱机文件执行介质恢复 操作。 for recover:如果要对表空间进行基于时间的恢复,可以 使用该参数将表空间切换到脱机状态。随后DBA可以使用 备份的数据文件覆盖原有的数据文件,然后再为数据文件应 用归档重做日志文件,将表空间恢复为某个时间点的状态。 Oracle9i不赞成使用这个选项,它是为向后兼容保留的。
管理表空间和数据文件
管理表空间和数据文件表空间是数据库的逻辑组成部分。
物理上讲,数据库数据存放在数据文件中。
从逻辑上讲,数据库则是存放在表空间中的,表空间由一个或多个数据文件组成。
数据库的逻辑结构表空间-段-区-块表空间用于从逻辑上组织数据库的数据。
数据库逻辑上是由一个或多个表空间组成的。
通过表空间可以控制数据库占用的磁盘空间;dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时有利于备份和恢复等管理操作。
建立表空间,特权用户或者dba执行,具有create tablespace的系统权限create tablespace data01datafile ‘d:\test\data01.dbf’ size 20m uniform size 128k建立名为data01的表空间,为该表空间建立data01.dbf的数据文件,区大小为128kcreate table mytest(deptno number(4),dname varchar2(20),loc varchar2(20))tablespace data01;改变表空间的状态建立表空间时,表空间是联机状态,此时该表空间可以访问,可读写,可查询该表空间的数据,而且还可以在表空间执行各种语句,但是进行系统维护时,需要改变表空间的状态,一般是特权用户或dba操作。
使表空间脱机alter tablespace 表空间名offline;使表空间联机alter tablespace 表空间名online;只读表空间如果不希望表空间进行update|delete|insert,可将其修改为只读alter tablespace表空间名read only;可读表空间alter tablespace表空间名read write;显示表空间下所有表select * from all_table where tablespace_name=’表空间名’显示表所属表空间select tablespace,table_name from user_tables where table_name=’表名’删除表空间特权用户或dba操作或具有drop tablespace系统权限drop tablespace 表空间名including contents and datafiles;including contents 删除表空间时,删除该空间的所有数据库对象datafiles表示将数据库文件也删除扩展表空间表空间由数据文件组成,表空间大小实际就是数据文件大小的总和。
管理表空间
• SYSTEM表空间
– 自动建立 – 存放数据字典 – 包含SYSTEM回滚段
• 非SYSTEM表空间
– 分离回滚段、临时段、数据段和索引段 – 易于备份和恢复 – 分离静态和动态数据 – 易于空间管理
wanghailiang
3
建立表空间
应用表空间 索引表空间 回滚段表空间 临时表空间
wanghailiang
4. 使表空间联机
ALTER TABLESPACE users ONLINE;
wanghailiang
18
移动数据文件: ALTER DATABASE
1. 关闭数据库:SHUTDOWN IMMEDIATE; 2. 复制或移动文件:copy 3. 安装数据库:STARTUP MOUNT 4. 执行ALTER DATABASE命令
• 会话二:
SELECT tablespace_name FROM v$sort_segment;
wanghailiang
26
练习五
7. 在会话一和会话二中分别执行以下语句 • 会话一:
@c:\labs\lab06_2.sql ALTER SESSION SET SORT_AREA_SIZE=2048; @c:\labs\lab06_1.sql
作业标准记得牢,驾轻就熟除烦恼。2020年10月23日星期 五11时39分56秒11:39:5623 October 2020
好的事情马上就会到来,一切都是最 好的安 排。上 午11时39分56秒上午11时39分11:39:5620.10.23
一马当先,全员举绩,梅开二度,业 绩保底 。20.10.2320.10.2311:3911:39:5611:39:56Oc t-20
数据库表空间管理与扩展
数据库表空间管理与扩展数据库是现代应用程序不可或缺的组成部分,它存储着海量的数据,并提供了快速的数据访问和可靠的数据保护。
数据库表空间管理是数据库管理员的核心职责之一,它涉及到对数据库空间的分配,使用和扩展。
数据库表空间是数据库中逻辑存储单元的集合,它由一个或多个数据文件组成。
每个数据文件有固定的大小,并在物理存储介质上占据一定的空间。
在数据库运行期间,数据文件会随着数据的增长而填满,此时需要进行表空间的增加和扩展。
表空间的管理需要考虑以下几个方面:1. 表空间的创建和分配:在数据库初始化或者需要新的表空间时,管理员会使用数据库管理系统提供的命令来创建一个新的表空间,并为该表空间分配必要的数据文件。
创建表空间时需要指定各种参数,如表空间的名称、大小、初始大小等。
2. 数据文件的增加和分配:数据文件是物理存储实现表空间的关键组成部分。
当数据文件不足以支持新增数据时,管理员需要考虑增加数据文件的数量和大小,并将其分配给相应的表空间。
这可以通过数据库管理系统提供的命令或者图形界面来完成。
3. 表空间的监控和维护:管理员需要定期监控表空间的使用情况,以确保表空间的容量足够支持数据库的正常运行。
如果发现某个表空间快要用完,管理员需要采取相应的扩展措施,以防止数据库的无法写入新数据。
表空间的维护也包括删除不再使用的表空间或数据文件,以释放磁盘空间。
4. 表空间的性能和优化:表空间对数据库的性能有着重要的影响。
过大的表空间容易导致资源浪费,而过小的表空间则可能影响数据库的性能和扩展能力。
管理员需要对表空间进行适当的调整和优化,如合并多个小表空间、重新分配数据文件大小等。
5. 表空间的备份和恢复:表空间中存储着重要的数据,管理员需要定期进行数据备份,以防止数据丢失。
数据库的备份策略和恢复方案需要考虑表空间的大小和内容,以确保备份的完整性和恢复的可行性。
在数据库表空间管理中,扩展表空间是一项经常需要进行的操作。
当数据库的数据越来越多时,表空间会逐渐被占满,数据库性能会受到影响。
数据库管理系统的表空间管理技巧(三)
数据库管理系统的表空间管理技巧在数据库管理系统中,表空间是用来存储表、索引、视图等数据库对象的逻辑结构。
合理有效地管理表空间是数据库管理员的一项重要任务。
下面将从不同角度讨论数据库管理系统的表空间管理技巧,包括空间分配、空间管理、性能优化等方面。
1. 表空间的空间分配在建立新的表空间时,合理的空间分配非常重要。
一般来说,应该根据业务需求和数据量的预估来确定表空间的大小。
如果表空间过大,会浪费存储空间;如果表空间过小,可能导致数据库运行时出现空间不足的问题。
建议根据历史数据增长的趋势和业务需求进行合理的预估,避免频繁的扩容操作。
2. 表空间的空间管理表空间的空间管理是指对表空间中的空闲空间进行有效管理,以确保空间使用效率。
管理空间的主要方法包括以下几点:a. 定期监控表空间的空间使用情况,及时进行空间整理和回收。
数据库管理系统提供了诸如压缩、重建等功能,可以帮助管理员进行空间整理和回收,并提高表空间的利用率。
b. 确保数据库中没有过多的碎片,碎片会占用宝贵的存储空间,影响数据库的性能。
可以使用数据库管理系统的碎片整理功能,或定期进行表重建等操作来清除碎片。
c. 使用合理的存储参数配置,并根据不同表的特点进行存储参数的调优。
如对于大量读写的表,可以设置适当的缓存大小以提高性能。
3. 表空间的性能优化表空间的性能对整个数据库的性能具有重要影响。
为了提高性能,可以采取以下措施:a. 合理划分数据表和索引表所在的表空间。
对于频繁被访问的表,应将其放在性能较好的磁盘或存储设备上,以提高访问速度。
b. 使用合适的索引策略。
合理的索引可以提高查询性能,减少表的全表扫描。
但过多或过少的索引都会对性能产生不利的影响,因此需要根据实际情况进行调整。
c. 定期进行数据库性能分析和调优。
通过分析数据库性能指标,如响应时间、并发连接数等,可以找出性能瓶颈,并采取相应措施进行优化。
综上所述,合理有效地管理数据库管理系统的表空间是保证数据库稳定运行和高性能的关键。
oracle表空间区的管理方式
Oracle表空间区的管理方式Oracle数据库中的表空间是用来存储和管理数据库对象的逻辑结构的一种方式。
表空间由一个或多个数据文件组成,而数据文件是实际存储数据的物理文件。
在Oracle数据库中,表空间区的管理方式包括以下几个方面:1. 创建表空间通过使用CREATE TABLESPACE语句可以创建一个新的表空间。
创建表空间时需要指定表空间的名称、数据文件的位置和大小等信息。
可以选择将表空间设置为自动扩展,这样当表空间中的空间不足时,Oracle会自动增加数据文件的大小。
2. 分配空间在Oracle数据库中,表空间可以被分割为多个段,每个段都用来存储特定类型的数据库对象,如表、索引等。
在创建表时,可以指定该表所使用的表空间,Oracle会自动分配适当的空间给该表。
也可以手动分配空间给表或索引,通过ALTER TABLE或ALTER INDEX语句来实现。
3. 管理空间在使用表空间的过程中,可能会出现空间不足的情况。
为了解决这个问题,Oracle提供了一些管理空间的方法:•扩展表空间:可以通过增加新的数据文件或扩展已有数据文件的大小来扩展表空间。
可以使用ALTER TABLESPACE语句来完成这个操作。
•压缩表空间:如果表空间中存在大量未使用的空间,可以使用ALTER TABLESPACE语句中的SHRINK SPACE选项来压缩表空间,回收未使用的空间。
•移动表空间:可以将表空间中的数据文件移动到其他磁盘位置,以避免某个磁盘空间不足的问题。
可以使用ALTER TABLESPACE语句中的RENAMEDATAFILE选项来完成这个操作。
4. 监控空间使用情况为了更好地管理表空间,需要监控表空间的使用情况。
可以使用以下方法来监控表空间的空间使用情况:•查看表空间使用情况:可以使用DBA_TABLESPACES视图来查看当前数据库中所有表空间的使用情况。
该视图包含了表空间的名称、总空间、已使用空间、剩余空间等信息。
Oracle表空间管理和用户管理介绍
Oracle表空间管理和⽤户管理介绍⽬录Oracle介绍1. Oracle表空间2. Oracle⽤户权限管理3. 查看⽤户及权限信息总结Oracle介绍Oracle(甲⾻⽂)公司1977年,三⼈合伙创办(Software Development Laboratories,SDL)1979年,更名为Relational Software Inc.,RSI1983年,为了突出核⼼产品,RSI更名为Oracle2002年04⽉26⽇,启⽤“甲⾻⽂”作为中⽂注册商标1. Oracle表空间表空间是Orcale数据库逻辑解构的⼀个重要组件,表空间可以存放各种应⽤对象,如表、索引等。
每⼀个表空间由⼀个或多个数据⽂件组成。
1.1:表空间的分类表空间可分为三类类别说明永久性表空间⼀般保存表、视图、过程和索引等的数据。
Oracle会默认安装⼀些永久性表空间,如:SYSTEM、USERS等临时性表空间只⽤于保存系统中短期活动的数据,如排序数据等撤销表空间⽤来帮助回退未提交的事务数据,已提交的数据在这⾥是不可以恢复的。
1.2:表空间的⽬的(1)对不同⽤户分配不同的表空间,对不同的模式对象分配不同的表空间,⽅便对⽤户数据的操作,对模式对象的管理。
(2)可以将不同数据⽂件创建到不同的磁盘中,有利于管理磁盘空间,有利于提⾼I/O性能,有利于备份和恢复数据等。
1.3:创建表空间创建表空间,语法如下。
CREATE TABLESPACE tbs1 --表空间名称DATAFILE 'E:\TeachCase\OracleDB\tbs1.DBF' -- 数据⽂件存放的位置SIZE 1M -- 初始⼤⼩AUTOEXTEND ON; -- ⾃动增长(开,关的话就是 OFF)1.4:删除表空间Drop TABLESPACE tbs1 --表空间名称;注意:当表空间没有被 DROP 时,不能从磁盘上删除,只有执⾏了 DROP TABLESPACE 命令之后才可以删除数据⽂件,不然的话Oracle会⽆法执⾏。
oracle表空间管理及操作实用案例
Oracle表空间管理及操作详解(附带案例)一:表空间概述表空间是数据库的逻辑组成部分,从物理上讲,数据库数据存放在数据文件中;数据库逻辑上讲是由一个或者多个表空间组成,数据文件则是存放在表空间中,表空间有一个或者多个数据文件组成即表空间有数据文件构成的。
数据库,表空间,段,区,块,按大小排列依次是:数据库---》表空间-----》段-----》区----》块。
1.建立表空间的作用:(1.)控制数据库占用的磁盘空间。
(2).dba可以将不同的数据类型部署到不同的位置,这样有利于提高i/o性能,同时有利与备份和恢复等管理操作。
二:管理表空间和数据文件。
(1)建立表空间create tablespace;一般情况下建立表空间是特权用户或者dba来执行的,如果其他用户来创建表空间,则用户建必须要具有create tablespace的系统权限。
(2)建立数据表空间在建立数据库后,为便于管理表,最好建立自己的表空间。
create tablespace sp02 datafile 'd:\test\sp02.dbf' size 20m uniform size 128k说明:执行完上述命令后,会建立名称为sp02的表空间,并为该表空间建立名称为sp02.dbf的数据文件,区的大小为128k。
(3.)在表空间建表create table tablesp02(ID number(5),name varchar2(20)) tablespace sp02(4)显示当前用户拥有哪些表。
select * from tab;(5).知道表空间名,显示该表空间包括的所有表。
select * from all_tables where tablespace_name='表空间名'。
注:拥有权限不同的用户在进行以上操作得到的结果可能不同。
System可以查看得到某空间的所拥有表。
(比如users表空间)(6)知道表名,查看该表属于那个表空间。
管理表空间
一表空间概述表空间的作用1、控制数据库所占用的磁盘空间2、控制用户占有表空间的配额(空间配额)3、不同数据放置到不同的表空间,利于I/O优化和备份恢复表空间的类型系统表空间参考“逻辑体系结构”临时表空间执行排序(order by)、分组汇总(group by)、索引功能(create index)等会产生大量临时数据。
服务器进程首先把临时数据放在PGA中,如果PGA区不够用,服务器建立临时段存放数据。
如果没有专门的临时表空间,会采用system表空间。
一般建议采用专门的临时表空间,临时表空间对应临时文件。
临时文件可以不预分配磁盘空间,只有当使用到临时文件的时候才分配相应的磁盘空间,如果磁盘空间不足则会存在问题。
临时表空间可以被用户共享,当创建用户的时候会指定相应的临时表空间(default temporary table space子句)。
在临时表空间中,同一个例程的所有SQL语句的排序操作共享使用一个排序段(sort segment)。
排序段在执行第一条排序操作的SQL语句时被创建,在例程关闭时被释放。
通过V$SORT_SEGMENT查看排序段的会话和用户信息。
撤消表空间9i之前使用回退段(rollback segment),9i或以后使用自动撤消管理(automatic undo management),它实际上是将回退段(撤消段)放入了撤消表空间,由例程自动处理撤消表空间的回退段。
通过查询数据字典视图DBA_ROLLBACK_SEGS可以得到撤消表空间中回退段的信息。
撤消表空间的作用:1、用一条ROLLBACK语句明显地回退一个事物2、隐含的回退一个事务(恢复一个故障事物)3、重构数据的一个读一致图像4、从逻辑错误中恢复在Oracle中可以创建多个撤销表空间,但同一时刻只能激活一个撤销标空间,在初始化参数UNDO_TABLESPACE指出要激活的撤消表空间。
撤销表空间自动管理,回退段不足时会使用多个。
03管理表空间和数据文件
2021/1/27
30
获取表空间信息
▪ 获取表空间和数据文件的信息:
▪ 表空间信息:
• DBA_TABLESPACES
• V$TABLESPACE
▪ 数据文件信息:
• DBA_DATA_FILES
CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/temp01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;
2021/1/27
13
默认的临时表空间
▪ 指定一个数据库的默认临时表空间 ▪ 消除使用系统表空间做数据排序 ▪ 能用下列语句创建:
管理表空间和数据文件
2021/1/27
1
数据存储
2021/1/27
2
表空间和数据文件
Oracle存储数据逻辑上在表空间,物理上存储在数据文件中.
▪ 表空间:
• 只能属于一个数据库
• 能存在一个或多个数据文件 • 被分成逻辑的单元
Database
▪ 数据文件:
Tablespace
• 只能属于一个表空间和一个数据库
2021/1/27
15
创建一个默认的临时表空间
▪ 在数据库创建后:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE default_temp2;
▪ 查询DATABASE_PROPERTIES可以找到默认 的临时表空间:
SELECT * FROM DATABASE_PROPERTIES;
0302表空间的概念及其主要作用
4
将Oracle数据库划分为多个表空间,有效提高数据库 操作的灵活性,其主要作用如下所示。 ( 1)将用户数据与数据库系统数据分开存放,避免 由于用户数据和数据字典保存在一个数据文件中而产生 I/O冲突。 ( 2)将不同应用程序的数据分开存放,避免多个应
空间至少有一个数据文件与之关联。
表空间是 Oracle 数据库恢复的最小单位,
容纳着许多数据库实体,如数据表、视图、
索引、聚簇、回退段和临时段等。
3
表 空 间 是 Oracle 内 部 定 义 的 一 个 概 念 , 是 为 了 统 一 Oracle物理和逻辑上的结构而专门建立的,从物理上来说,一
个表空间是由具体的一个或多个磁盘上数据文件构成的,从逻
辑上来说一个表空间是由具体的一个或多个用户模式下的数据 表、索引等里面的数据所构成的。 Oracle 中的数据表不可能单独存在,一定隶属于某一个 用户,而某一用户的数据必定存在于某个表空间中。从用户的
角度来看从小到大的视角是这样的关系:字段值 →记录值→数
用之间的相互干扰。
( 3)便于在不同磁盘上保存不同表空间的数据文件,
可以提高数据库的 I/O 性能,有利于进行数据备份和恢复。
5
(4)将回退数据与用户数据分开存放,防止由于硬盘 损坏而导致永久性的数据丢失。 (5)在其他表空间保持联机状态时,将某个表空间单 独进行脱机,以便对数据库的一部分进行备份或者恢复。
(6)便于对某个表空间单独进行数据备份与数据恢复,
表空间是Oracle数据库恢复的最小单位。 (7)能够为某种特殊用途专门设置一个表空间,例如 临时表空间,可以优化表空间的使用效率。 (8)能够更加灵活地为用户设置表空间配额,控制用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
22
3.2 改变数据文件大小
改变存储空间的方法 为表空间添加文件 改变文件的大小(自动增长/手工改变大小) 设置数据文件自动增长 在语句CREATE DATABASE/ ALTER DATABASE/ CREATE TABLESPACE/ ALTER TABLESPACE中指定数据文件的 autoextend on选项。 ALTER TABLESPACE users
6
1.3 临时表空间创建 字典管理 临时表空间创建(字典管理 字典管理)
create tablespace usertemp datafile ‘d:\oracle\oradata\sort01.dbf’ size 50M extent management dictionary default storage(initial 192k next 192k minextents 1 pctincrease 0) temporary ;
默认情况
创建的非System表空间都默认为本地管理方式。
3
创建表空间的语法
语法 CREATE
{ permanent_tablespace_clause | temporary_tablespace_clause };
创建一般表空间 create tablespace 创建临时表空间 create temporary tablespace 权限 create tablespace,alter tablespace,alterdatabase
20
3.1 为表空间添加数据文件
பைடு நூலகம்21
实例
alter tablespace users
add datafile ‘d:\oracle\oradata\users02.dbf’ size 50M
alter tablespace tbstemp
add tempfile ‘d:\oracle\oradata\tbstemp02.dbf’ size 50M reuse;
置表空间联机:alter tablespace users online; 备份数据库
多表空间中的文件改名或改位置的步骤
关闭数据库:shutdown normal 在操作系统下复制数据文件并改名 启动实例,加载数据库但不打开它:startup mount 使用带有rename file的alter database语句改名
ALTER DATABASE
RENAME FILE '/u02/oracle/rbdb1/sort01.dbf','/u02/oracle/rbdb1/user3.dbf' TO '/u02/oracle/rbdb1/temp01.dbf','/u02/oracle/rbdb1/users03.dbf;
数据库在NOARCHIVELOG模式下 更改单个datafile 数据库在 模式下,更改单个 模式下 更改单个
ALTER DATABASE DATAFILE '/u02/oracle/rbdb1/users03.dbf' OFFLINE FOR DROP;
更改表空间中所有datafile或tempfile的可用性 或 更改表空间中所有 的可用性
13
2.4 设置只读表空间
设置只读
alter tablespace <tbsname> read only;
设置读写
alter tablespace <tbsname> read write;
14
2.5 表空间改名
ALTER TABLESPACE users RENAME TO usersts;
4
1.2 永久表空间创建 字典管理 永久表空间创建(字典管理 字典管理)
create tablespace dmusertbs datafile ‘d:\oracle\oradata\dmusertbs01.dbf’ size 50M,’d:\oracle\oradata\dmusertbs02.dbf’ size 50M default storage(initial 256k next 256k minextents 2 pctincrease 0 maxextents 4096) minimum extent 128k logging online permanent extent management dictionary;
2.7 表空间相关的系统视图(1) 表空间相关的系统视图( )
17
2.7 表空间相关的系统视图(2) 表空间相关的系统视图( )
18
例:列出表空间及缺省存储参数
19
3 管理数据文件
3.1 为表空间添加数据文件 3.2 改变数据文件大小 3.3 改变数据文件可用性 3.4 改变数据文件名称和位置 3.5 删除数据文件 3.6 数据文件相关的系统视图
8
2 管理表空间
2.1 设置默认存储参数 2.2 合并存储碎片 2.3 改变表空间可用性 2.4 设置只读表空间 2.5 表空间改名 2.6 删除表空间 2.7 表空间相关的系统视图
9
语法
ALTER TABLESPACE tablespace { DEFAULT storage_clause | MINIMUM EXTENT size_clause | RESIZE size_clause | COALESCE | RENAME TO new_tablespace_name | datafile_tempfile_clauses | tablespace_state_clauses };
ADD DATAFILE ‘d:\oracle\rbdb1\users03.dbf' SIZE 10M AUTOEXTEND ON NEXT 512K MAXSIZE 250M;
ALTER DATABASE
DATAFILE ‘d:\oracle\rbdb1\users03.dbf‘ AUTOEXTEND OFF
ALTER TABLESPACE users
RENAME DATAFILE '/u02/oracle/rbdb1/user1.dbf','/u02/oracle/rbdb1/user2.dbf' TO '/u02/oracle/rbdb1/users01.dbf','/u02/oracle/rbdb1/users02.dbf';
打开数据库:alter database open; 备份数据库
25
3.5 删除数据文件
方法 alter tablespace语句中使用drop datafile或drop tempfile;也可以 使用alter database语句。 例:ALTER TABLESPACE lmtemp DROP TEMPFILE '/u02/oracle/data/lmtemp02.dbf'; 也可以用:ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' DROP INCLUDING DATAFILES; 限制 数据库应处于打开状态 datafile必须是空的。 表空间的第一个文件不可以删除。 read only表空间的文件不可以删除。 system表空间的文件不可以删除。 本地管理的表空间中离线数据文件不可以删除。
ALTER TABLESPACE <tbsname> DATAFILE {ONLINE|OFFLINE} ALTER TABLESPACE <tbsname>TEMPFILE {ONLINE|OFFLINE}
24
3.4 改变数据文件名称和位置
单表空间中的文件改名或改位置的步骤
表空间脱机状态:alter tablespace offline normal; 在操作系统下复制数据文件并改名 使用带有rename datafile的alter tablespace语句改名
26
3.6 数据文件相关的系统视图
27
查询数据文件信息的实例
28
7
1.3 临时表空间创建 本地管理 临时表空间创建(本地管理 本地管理)
create temporary tablespace usertemp tempfile ‘d:\oracle\oradata\sort01.dbf’ size 50M reuse extent management local uniform size 136k; alter tablespace usertemp add tempfile ‘d:\oracle\oradata\sort02.dbf’ size 50M reuse;
例
alter tablespace <tbname> offline normal; alter tablespace <tbname> offline temporary; alter tablespace <tbname> offline immediate; alter tablespace <tbname> offline for recover; alter tablespace <tbname> online;
11
2.2 合并存储碎片
自动合并存储碎片
分配新区,当空闲块不足; 表空间pctincrease<>0,SMON定期合并; 删除一个段,合并。
手工合并存储碎片
alter tablespace users coalesce;
12
2.3 改变表空间可用性
设置脱机/联机状态
normal:正常切换,oracle执行检查点。 temporary:临时切换,执行检查点但不检查各文件状态; 联机时可能需要恢复。 immediate:立即切换,不执行检查点,不检查文件,必须 恢复。 for recover:用于恢复方式切换。