Oracle tablespace (表空间)的创建、删除、修改、扩展及检查等

合集下载

oracle数据库基本语句

oracle数据库基本语句

oracle数据库基本语句oracle 数据库是一种常用的关系型数据库管理系统,常用的oracle数据库包括oracle10g、oracle11g和oracle12c。

要掌握oracle的基本用法,必须掌握其基本的语句。

oracle的常用基本语句有:一、数据定义语言(DDL)1、创建数据表:CREATE TABLE 表名(字段名数据类型[完整性约束条件],字段名数据类型[完整性约束条件],……);2、修改数据表: ALTER TABLE 表名 ADD(字段名数据类型[完整性约束条件],字段名数据类型[完整性约束条件],……);3、删除数据表: DROP TABLE 表名;4、创建索引:CREATE [UNIQUE] INDEX 索引名ON 表名[字段名[,字段名];5、删除索引: DROP INDEX 索引名;三、数据控制语言(DCL)1、建立用户: CREATE USER 用户名 IDENTIFIED BY 密码;2、删除用户: DROP USER 用户名;3、授权:GRANT 权限 ON 对象 TO 用户[WITH GRANT OPTION];4、回收授权: REVOKR 权限 ON 对象 FROM 用户;5、控制事务: COMMIT/ROLLBACK;四、数据库控制语言(DBCL)1、创建数据库:CREATE DATABASE 数据库名;2、删除数据库: DROP DATABASE 数据库名;3、创建表空间:CREATE TABLESPACE 表空间名 SEGMENT SPACE MANAGEMENT 自动;4、删除表空间: DROP TABLESPACE 表空间名;5、管理会话: ALTER SYSTEM KILL SESSION ['会话号'];。

Oracle 11g表空间——创建和扩展(永久)表空间

Oracle 11g表空间——创建和扩展(永久)表空间

Oracle 11g表空间——创建和扩展(永久)表空间本文内容创建(永久)表空间查看表空间扩展表空间创建(永久)表空间Oracle 按照区和段空间进行管理表空间。

区管理方式 - 针对区的分配方式的不同,有两种方式:字典管理方式(dictionary-managed tablespace,DMT)和本地管理方式(local-managed tablespace,LMT)。

Oracle 10g 开始强烈建议使用 LMT 方式。

从 Oracle 9i 开始,创建表空间时默认使用 LMT。

其中,LMT 区的分配方式:统一(UNIFORM)- 统一分配。

指定表空间中所有区的大小都相同。

默认值是 1MB。

自动(AUTOALLOCATE 或 SYSTEM)- 自动分配。

指定有 Oracle 系统来自动管理区的大小。

这是默认设置。

段管理方式– LMT 方式,除了可以指定区的分配方式外,还可以指定段的管理方式。

段空间管理方式主要是指 Oracle 用来管理段中已用数据块和空闲数据块的机制。

分为两种:手动(MANUAL)- Oracle 将使用空闲列表(free list)管理段的已用数据块和空闲数据块。

这是传统的段空间管理方式,为了与以前的版本兼容。

自动(AUTO)- Oracle 将使用位图(bitmap)来管理段的已用数据块和空闲数据块。

通过位图中单元的取值判断段中的数据块是否可用。

字典管理方式没有段管理。

下面示例演示用本地管理方式创建表空间。

这是 Oracle 推荐的方式。

示例 1:使用 AUTOALLOCATE 区分配方式。

创建表空间 mytbs01,数据文件是D:\oracledata\mytbs01_1.dbf,大小为 2M,并指定区分配方式为 AUTOALLOCATE。

create tablespace mytbs01datafile 'D:\oracledata\mytbs01_1.dbf' size 2Mautoallocate;示例 2:使用 UNIFORM 区分配方式。

表空间(TABLESPACE)

表空间(TABLESPACE)

表空间(TABLESPACE)表空间(TABLESPACE)是ORACLE数据库中最大的逻辑结构。

ORACLE数据库是由一个或多个表空间组成的。

它在物理上与磁盘上的数据文件相对应(一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间)。

从物理上说数据库的数据被存放在数据文件中,而从逻辑上说是被存放在表空间中的。

数据库的逻辑配置实际上就是指表空间的配置。

一、表空间概述表空间是ORACLE数据库中最大的逻辑结构。

数据库的所有对象和方案都被逻辑的保存在表空间中。

(一)表空间的特性与作用数据库管理系统(DBMS)是建立在操作系统(OS)基础上的,它的数据也必须存储在各个文件中,如数据文件、重做日志文件、归档日志文件等。

表不是文件,表不是空间。

表空间是组织结构和分配空间的逻辑结构。

除了数据文件之外,控制文件、重做日志文件、归档日志文件等其他文件都不属于任何表空间。

表空间的特性如下:1.一个数据库可以有多个表空间。

可以在数据库中创建、删除表空间;2.一个表空间只属于一个数据库;3.一个表空间必须要有一个数据文件;4.一个表空间的大小等于其中所有数据文件的大小之和。

数据库的大小等于其中所有表空间的大小之和;5.表空间可以被联机和脱机。

SYSTEM表空间不能被脱机;6.表空间可以在读写、只读状态之间切换;7.每个表空间由一个或多个物理存在的操作系统的数据文件组成。

这种数据文件可以具有固定的大小,或允许其自动变大。

可以在表空间中添加、删除数据文件;8.方案对象、表、索引的数据都被存储在表空间的数据文件中。

一个数据文件存储不下,就存储在另一个数据文件中,只要该数据文件是本表空间中的就可以;9.一个用户默认使用一个表空间,但他的不同方案对象的数据可以被存储在不同表空间中;10.一个用户使用的表空间的数量是有一定配额的,不能超出这个配额;11.可以根据使用目的,创建不同类型的表空间,如永久表空间、临时表空间、撤销表空间、大表空间等。

常用oracle数据库命令

常用oracle数据库命令

常用oracle数据库命令
1. 启动Oracle数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
3. 创建表空间
创建表空间的命令是:
SQL> create tablespace 表空间名 datafile '路径名' size 大小;
6. 创建用户
7. 删除用户
删除用户的命令是:
8. 授权用户
SQL> grant 权限 to 用户名;
9. 撤销用户的权限
11. 查看表结构
查看表结构的命令是:
SQL> desc 表名;
SQL> create table 表名 (列名数据类型, 列名数据类型, …);
13. 删除表
14. 插入数据
插入数据的命令是:
SQL> update 表名 set 列名=新值 where 某条件;
18. 创建索引
20. 查看索引
21. 查询相关信息
查询相关信息的命令是:
SQL> select * from v$session; -- 查看会话 22. 查看数据库版本
24. 备份数据库
$ exp 用户名/密码 file=备份文件路径备注:以上命令均需要在Oracle登录后进行。

oracle数据库表空间扩容方法

oracle数据库表空间扩容方法

一、概述数据库管理是企业信息系统中极为重要的一环,而Oracle数据库作为业界优秀的关系型数据库管理系统,通常被广泛应用于企业级应用中。

在数据库管理中,表空间是一个很重要的概念,它用于管理数据库中的数据存储。

随着数据量的增加,表空间可能会出现空间不足的情况,因此扩容表空间变得至关重要。

本文将介绍几种扩容Oracle数据库表空间的方法。

二、从数据文件角度扩容表空间1. 增加数据文件当表空间中的数据文件即将满的时候,可以通过增加数据文件的方式来扩容表空间。

具体操作步骤如下:1) 在Oracle数据库中使用“alter tablespace 表空间名 add datafile 新数据文件名 size 新数据文件大小”命令来增加数据文件;2) 通过以上操作,可以为表空间增加数据文件,并使表空间的空间得到扩容。

2. 自动扩展在表空间创建的时候,可以选择启用自动扩展功能。

当表空间中的数据文件空间不足时,可以自动扩展表空间的空间大小。

具体操作步骤如下:1) 在创建表空间的时候,使用“autoextend on”选项来启用自动扩展功能;2) 当表空间中的数据文件空间不足时,系统会自动扩展表空间的空间大小。

三、从段角度扩容表空间1. 移动段移动段是一种有效的扩容表空间的方法。

通过移动段,可以将表或索引从原有的表空间移动到具有足够空间的表空间中,从而实现表空间的扩容。

具体操作步骤如下:1) 使用“alter table 表名 move tablespace 新表空间名”命令来将表移动到新的表空间;2) 使用“alter index 索引名 rebuild tablespace 新表空间名”命令来将索引移动到新的表空间。

2. 压缩段通过压缩段的方式,可以释放表空间中的空闲空间,从而实现表空间的扩容。

具体操作步骤如下:1) 使用“alter table 表名enable row movement”命令来启用行移动功能;2) 使用“alter table 表名shrink spacepact”命令来压缩表,释放表空间中的空闲空间。

oracle创建和删除表空间

oracle创建和删除表空间

oracle创建和删除表空间(本⽂章内容仅在windows10下经测试能够运⾏,不能保证其他环境下的可靠性)--创建表空间create tablespace oracleTS1--指定表空间逻辑名称datafile 'D:/oracle_ts1.dbf'--指定表空间物理存储的⽂件路径size 100m--指定表空间⼤⼩autoextend on--设置⾃动扩容next 10m;--设置每次扩展容量⼤⼩关键字功能阐述create tablespace指定表空间逻辑名称,该关键字后需给定表空间逻辑名称,逻辑名称不区分⼤⼩写,不需要使⽤单引号包裹datafile指定表空间的物理存储⽂件路径,该关键字后需给定⼀个⽂件路径,⽂件后缀为.dbf ,路径可以是多级⽬录下的⽂件,但是所有的⽗⽬录必须⾃⼰创建好,否则创建不成功。

⽂件路径需使⽤单引号包裹size指定表空间⼤⼩,该关键字后需给定⼀个⽂件容量,可以使⽤m作为单位,不区分⼤⼩写,即兆,如100m,不需要使⽤单引号包裹autoextend on指定⾃动扩展表空间容量next⾃动每次扩展表空间容量的⼤⼩,该关键字后需给定⼀个⽂件容量,可以使⽤m作为单位,不区分⼤⼩写,如10m, 不需要使⽤单引号包裹删除表空间代码如下:--删除表空间逻辑单位,需⼿动删除⽂件drop tablespace oracleTS1;关键字功能阐述drop tablespace删除表空间,该关键字后需给定表空间逻辑名称,该逻辑名称对应的⽂件必须存在,否则会报错,使⽤该语句只能删除oracle数据库的表空间逻辑单位,需⼿动删除.dbf后缀的⽂件才能彻底删除。

【总结】Oracle数据库查看表空间和增加表空间

【总结】Oracle数据库查看表空间和增加表空间

【总结】Oracle数据库查看表空间和增加表空间⼀、Oracle查看表空间的名称及其⼤⼩查看表空间的名称及其⼤⼩的SQL语句:select t1.tablespace_name,round(sum(bytes/(1024*1024)),0) tablespace_Size_MBfrom dba_tablespaces t1, dba_data_files t2where t1.tablespace_name = t2.tablespace_namegroup by t1.tablespace_name;查询结果:TABLESPACE_NAME TABLESPACE_SIZE_MB------------------------------ ------------------DLOTTEY 276480SYSAUX 48450UNDOTBS1 20000INDEXMT 10240USERS 1041SYSTEM 10240UNDOTBS2 20000MMLOTTERY 2150408 rows selected.⼆、Oracle查看表空间的具体使⽤情况⽅法1:(未排序)select a.tablespace_name "tablespace_name",totalspace "totalspaceM",freespace "freespaceM",round((1-freespace/totalspace)*100,2) "round%"from(select tablespace_name,round(sum(bytes)/1024/1024) totalspace from dba_data_files group by tablespace_name) a,(select tablespace_name,round(sum(bytes)/1024/1024) freespace from dba_free_space group by tablespace_name) bwhere a.tablespace_name=b.tablespace_name;查询结果:tablespace_name totalspaceM freespaceM round%------------------------ ----------- ---------- ----------DLOTTEY 276480 232415 15.94SYSAUX 48450 9683 80.01UNDOTBS1 20000 19741 1.3INDEXMT 10240 10024 2.11USERS 1041 138 86.74SYSTEM 10240 4344 57.58UNDOTBS2 20000 19601 2MMLOTTERY 215040 36279 83.138 rows selected.⽅法⼆:(查询结果排序) select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"from(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) bwhere a.tablespace_name=b.tablespace_nameorder by ((a.bytes-b.bytes)/a.bytes) desc;查询结果:TABLESPACE_NAME Sum MB used MB free MB percent_used---------------------- ---------- ---------- ---------- ------------USERS 1041.25 903.375 137.875 86.76MMLOTTERY 215040 178761 36279 83.13SYSAUX 48450 38767 9683 80.01SYSTEM 10240 5896.125 4343.875 57.58DLOTTEY 276480 44065.4375 232414.563 15.94INDEXMT 10240 215.625 10024.375 2.11UNDOTBS2 20000 399.3125 19600.6875 2UNDOTBS1 20000 257.5 19742.5 1.298 rows selected.三、Oracle查看表空间物理⽂件的名称及⼤⼩set lines 150;col tablespace_name for a20;col file_name for a60;1、查询所有的表空间SQL语句:select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space_MBfrom dba_data_filesorder by tablespace_name;2、查询指定的表空间SQL语句:select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space_MBfrom dba_data_fileswhere tablespace_name = 'MMLOTTERY'order by tablespace_name;查询结果:TABLESPACE_NAME FILE_ID FILE_NAME TOTAL_SPACE_MB------------------- ---------- ------------------------------------------- --------------MMLOTTERY 18 +DATA/ora11g/datafile/mmlottery01.dbf 30720MMLOTTERY 19 +DATA/ora11g/datafile/mmlottery02.dbf 30720MMLOTTERY 20 +DATA/ora11g/datafile/mmlottery03.dbf 30720MMLOTTERY 22 +DATA/ora11g/datafile/mmlottery04.dbf 30720MMLOTTERY 23 +DATA/ora11g/datafile/mmlottery05.dbf 30720MMLOTTERY 26 +DATA/ora11g/datafile/mmlottery06.dbf 30720MMLOTTERY 27 +DATA/ora11g/datafile/mmlottery07.dbf 307207 rows selected.四、Oracle查看表真实占⽤的空间SQL语句:select t.owner,t.segment_name,t.segment_type,sum(t.bytes/1024/1024) used_MBfrom dba_segments twhere owner = 'MMLOTTERY'group by owner,segment_name,segment_typeorder by used_MB desc;查询结果:OWNER SEGMENT_NAME SEGMENT_TYPE USED_MB------------------- -------------------------------- ------------------ ----------MMLOTTERY TB_ORIGINAL_ORDERDETAILS TABLE 1792MMLOTTERY TB_LOTTERY_SALEDETAIL TABLE 1472MMLOTTERY TB_LOTTERYSCHEMEINFO_ADD TABLE 1280MMLOTTERY TEST_007 TABLE 1152MMLOTTERY TB_ACCOUNT_OPERATE_DETAIL TABLE 808MMLOTTERY PK14 INDEX 377MMLOTTERY PK14_11 INDEX 312MMLOTTERY PK14_13 INDEX 200MMLOTTERY PK14_12 INDEX 160MMLOTTERY TB_BONUS_ORDERDETAILS TABLE 160MMLOTTERY TB_WINBONUS_DETAIL TABLE 14411 rows selected.五、Oracle 增加表空间语法:alter tablespace {表空间名字} add datafile '物理数据⽂件路径' SIZE 『初始⼤⼩M』 AUTOEXTEND ON NEXT 『⾃动扩展⼤⼩M』例⼦:alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m;注意:如果添加表空间的⽂件名重复,那么会报错,如下:SQL> alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m;alter tablespace MMLOTTERY add datafile '+DATA/ora11g/datafile/mmlottery08.dbf' size 30720m autoextend on next 200m*ERROR at line 1:ORA-01537: cannot add file'+DATA/ora11g/datafile/mmlottery08.dbf' - file already part of database若 datafile 加错到表空间,则执⾏删除操作。

oracle创建表空间和用户授权及删除表空间和删除用户命令

oracle创建表空间和用户授权及删除表空间和删除用户命令

imp pobaoa/oa@orcl file=f:\zyoa0916.dmp full=y ignore=y
imp sjsoa/oa@orcl file=f:/bigoatemp.dmp full=y
2、将d:daochu.dmp中的表table1导入
imp system/manager@TEST file=d:daochu.dmp tables=(table1)
select INSTANCEID,NID,TITLE,NODENAME,ASSIGNER,NODEBEGIN,initiatorname,'办理状态'As blzt from view_wf_todo where actor='%USERID%' order by nodebegin desc
sqlplus / as sysdba
default tablespace bigoa
temporary tablespace temp;
//给用户授予权限
grant connect,resource,dba,CTXAPP,create view to swoa;
以后以该用户登录,创建的任何数据库对象都属于user_temp和user_data表空间,这就不用在每创建一个对象给其指定表空间了
oracle创建表空间和用户授权
SYS用户在CMD下以DBA身份登录:
在CMD中打sqlplus/nolog //匿名登录
然后再conn/as sysdba //以dba身份登录
//创建临时表空间
create temporary tablespace bigoa_temp

oracle基本操作

oracle基本操作

oracle基本操作Oracle是一种关系数据库管理系统,它是世界上最受欢迎的企业级数据库。

它被各种企业广泛使用,它的功能非常强大,包括数据安全、访问控制、事务处理、性能优化、数据备份和恢复等。

本文将介绍Oracle的基本操作,包括如何创建、修改和删除表,如何插入、更新和删除数据,以及如何查询和导出数据。

这些操作对于初学者来说非常重要,也是使用Oracle的基础。

1.创建表格在Oracle中,创建表的语法如下:CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, .... );其中,table_name是要创建的表的名称,column1、column2等是列名,datatype是列的数据类型。

例如,创建一个名为“employees”的表格,并添加列“id”、“name”和“salary”,则可以使用以下命令:CREATE TABLE employees ( id NUMBER(4) NOT NULL, name VARCHAR2(15) NOT NULL, salary NUMBER(7,2), PRIMARY KEY (id) );注意,id和name列设置为NOT NULL,这表示这两列不能为空。

salary列的数据类型为NUMBER,并设置了精度和小数位数。

2.修改表格如果需要修改表格,可以使用ALTER TABLE命令。

例如,如果想向employees表格添加新的列“address”,可以使用以下命令:ALTER TABLE employees ADD address VARCHAR2(50);如果需要删除表格中的列,可以使用以下命令:ALTER TABLE employees DROP COLUMN address;3.删除表格如果需要删除一个表格,可以使用以下命令:DROP TABLE table_name;例如,删除名为“employees”的表格:DROP TABLE employees;如果不小心使用了错误的命令或者删除的表格不是自己想要的,则可以使用RECOVER命令来找回删除的表格。

oracle表空间创建步骤

oracle表空间创建步骤

oracle表空间创建步骤Oracle表空间是Oracle数据库存储数据的重要单位,它主要用来存储表、视图、索引等对象,是保证Oracle数据质量和性能的关键。

因此,建立Oracle表空间是日常管理Oracle数据库的重要任务之一。

在本文中,我们将阐述建立Oracle表空间的步骤。

一、登陆系统账户建立Oracle表空间需要使用SYSDBA权限,因此首先需要以SYSDBA权限登陆Oracle数据库,例如:sqlplus / as sysdba。

二、初始化表空间在命令行输入CREATE TABLESPACE space_name DATAFILE'path/file_name.dbf' SIZE 500M AUTOEXTEND ON; 命令即可初始化空间,其中space_name是表空间名,path是文件路径,file_name.dbf为文件名,500M为表空间大小,AUTOEXTEND ON表示表空间可以自动扩展。

三、设置表空间的引擎类型可以设置表空间的引擎类型为本地文件系统引擎或ASM引擎两种。

本地文件系统引擎是把数据直接存储到磁盘中,而ASM引擎则是一个虚拟文件系统,利用Oracle自身的算法对数据块进行划分和管理。

使用DBCA工具创建表空间时,可以在设置的时候选择引擎类型。

而手动建立表空间,需要指定表空间的引擎类型,例如:CREATE TABLESPACE space_name DATAFILE 'path/file_name.dbf' SIZE 500M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL;四、设置表空间的块大小Oracle数据库默认的块大小是8KB,但在某些情况下可以修改该值,例如:CREATE TABLESPACE space_name DATAFILE'path/file_name.dbf' SIZE 500M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL DEFAULT STORAGE (BLOCKSIZE 32K);五、设置表空间的默认存储参数在建立表空间时,可以通过DEFAULT STORAGE子句设置表空间的默认存储参数,包括初始块大小、最大块数量、最小块数量、块增长率等等。

oracle临时表空间的增删改查操作

oracle临时表空间的增删改查操作

操作oracle 临时表空间的增删改查1、查看临时表空间dba_temp_files视图v_$tempfile视图select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;select status,enabled, name, bytes/1024/1024 file_size from v_$tempfile;--sys用户查看2、缩小临时表空间大小alter database tempfile 'D:\ORACLE\PRODUCT\' resize 100M;3、扩展临时表空间:方法一、增大临时文件大小:SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/’ resize 100m;方法二、将临时数据文件设为自动扩展:SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/’ autoextend on next 5m maxsize unlimited;方法三、向临时表空间中添加数据文件:SQL> alter tablespace temp add tempfile ‘/u01/app/oracle/oradata/orcl/’ size100m;4、创建临时表空间:SQL> create temporary tablespace temp1 tempfile ‘/u01/app/oracle/oradata/orcl/’ size 10M;5、更改系统的默认临时表空间:--查询默认临时表空间select from database_properties whereproperty_name='DEFAULT_TEMP_TABLESPACE';--修改默认临时表空间alter database default temporary tablespace temp1;所有用户的默认临时表空间都将切换为新的临时表空间:select username,temporary_tablespace,default_ from dba_users;--更改某一用户的临时表空间:alter user scott temporary tablespace temp;6、删除临时表空间删除临时表空间的一个数据文件:SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/’ drop;删除临时表空间彻底删除:SQL> drop tablespace temp1 including contents and datafiles cascade constraints;7、查看临时表空间的使用情况GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小dba_temp_files视图的bytes字段记录的是临时表空间的总大小SELECT ,total - used as "Free",total as "Total",roundnvltotal - used, 0 100 / total, 3 "Free percent"FROM SELECT tablespace_name, SUMbytes_used / 1024 / 1024 usedFROM GV_$TEMP_SPACE_HEADERGROUP BY tablespace_name temp_used,SELECT tablespace_name, SUMbytes / 1024 / 1024 totalFROM dba_temp_filesGROUP BY tablespace_name temp_totalWHERE =8、查找消耗资源比较的sql语句Select ,,,to_numberrtrim as Space,tablespace,segtype,sql_textfrom v$sort_usage su, v$parameter p, v$session se, v$sql swhere = 'db_block_size'and =and =and =order by ,9、查看当前临时表空间使用大小与正在占用临时表空间的sql语句select , segtype, blocks 8 / 1000 "MB", sql_textfrom v$sort_usage sort, v$session sess, v$sql sqlwhere =and =order by blocks desc;10、临时表空间组介绍1创建临时表空间组:create temporary tablespace tempts1 tempfile '/home/oracle/' size 2M tablespace group group1;create temporary tablespace tempts2 tempfile '/home/oracle/' size 2M tablespace group group2;2查询临时表空间组:dba_tablespace_groups视图select from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME------------------------------ ------------------------------GROUP1 TEMPTS1GROUP2 TEMPTS23将表空间从一个临时表空间组移动到另外一个临时表空间组:alter tablespace tempts1 tablespace group GROUP2 ;select from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME------------------------------ ------------------------------GROUP2 TEMPTS1GROUP2 TEMPTS24把临时表空间组指定给用户alter user scott temporary tablespace GROUP2;5在数据库级设置临时表空间alter database <db_name> default temporary tablespace GROUP2;6删除临时表空间组删除组成临时表空间组的所有临时表空间drop tablespace tempts1 including contents and datafiles;select from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME------------------------------ ------------------------------GROUP2 TEMPTS2drop tablespace tempts2 including contents and datafiles;select from dba_tablespace_groups;GROUP_NAME TABLESPACE_NAME11、对临时表空间进行shrink11g新增的功能--将temp表空间收缩为20Malter tablespace temp shrink space keep 20M;--自动将表空间的临时文件缩小到最小可能的大小ALTER TABLESPACE temp SHRINK TEMPFILE ’/u02/oracle/data/’;临时表空间作用Oracle临时表空间主要用来做查询和存放一些缓冲区数据;临时表空间消耗的主要原因是需要对查询的中间结果进行排序;重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长;直到耗尽硬盘空间;网上有人猜测在磁盘空间的分配上,oracle使用的是贪心算法,如果上次磁盘空间消耗达到1GB,那么临时表空间就是1GB;也就是说当前临时表空间文件的大小是历史上使用临时表空间最大的大小;临时表空间的主要作用:索引create或rebuild;Order by 或group by;Distinct 操作;Union 或intersect 或minus;Sort-merge joins;analyze.。

oracle扩展表空间的三种方法

oracle扩展表空间的三种方法

oracle扩展表空间的三种方法在Oracle数据库中,扩展表空间是一种常见的管理数据库空间的操作。

当表空间的容量不足时,需要扩展表空间以满足数据库的需求。

以下将介绍三种常见的Oracle扩展表空间的方法。

1.增加数据文件增加数据文件是扩展表空间最直接和常见的方法。

数据文件是Oracle数据库中存储数据的基本单位,通过增加数据文件可以扩展表空间的容量。

以下是增加数据文件的步骤:步骤1:选择要扩展的表空间使用如下语句选择要扩展的表空间:```sqlSELECT tablespace_name FROM dba_tablespaces;```步骤2:创建数据文件使用如下语句创建数据文件:```sqlALTER TABLESPACE tablespace_name ADD DATAFILE 'file_name' SIZE size [AUTOEXTEND ON NEXT size NEXT size ...];```其中,tablespace_name是要扩展的表空间名称,file_name是新数据文件的名称,size是数据文件初始大小。

AUTOEXTEND关键字用于设置数据文件的自动增长。

可以通过NEXT关键字设置数据文件的自动增长的大小。

2.增加临时表空间临时表空间用于存储排序、连接和其他需要临时存储空间的操作。

当临时表空间的空间不足时,需要扩展临时表空间。

以下是增加临时表空间的步骤:步骤1:选择要扩展的临时表空间使用如下语句选择要扩展的临时表空间:```sqlSELECT tablespace_name FROM dba_temp_files;```步骤2:创建临时文件使用如下语句创建临时文件:```sqlALTER TABLESPACE tablespace_name ADD TEMPFILE 'file_name' SIZE size [AUTOEXTEND ON NEXT size NEXT size ...];```其中,tablespace_name是要扩展的临时表空间名称,file_name是新临时文件的名称,size是临时文件初始大小。

oracle扩展表空间的三种方法

oracle扩展表空间的三种方法

oracle扩展表空间的三种方法一、Oracle扩展表空间的三种方法1、使用SQL语句ALTER TABLESPACE来扩展表空间当表空间上的数据文件已经被使用完毕,而且还需要更多的存储空间,我们就需要对表空间进行扩展,此时可以使用SQL语句ALTER TABLESPACE来扩展表空间。

使用ALTER TABLESPACE 扩展表空间的具体步骤如下:A. 增加一个新的数据文件:CREATE DATAFILE 'C:\oradata\data02.dbf' SIZE 500M;B. 将新建立的数据文件添加到表空间中:ALTER TABLESPACE USERS ADD DATAFILE'C:\oradata\data02.dbf';C. 重新启动数据库:SHUTDOWN IMMEDIATE;STARTUP;2、使用SQL语句ALTER DATABASE来扩展表空间在使用ALTER TABLESPACE 来扩展表空间的过程中,有时可能会出现报错,比如文件系统空间不够等情况,此时就可以使用SQL语句ALTER DATABASE来扩展表空间。

使用ALTER DATABASE 扩展表空间的具体步骤如下:A. 增加一个新的数据文件:CREATE DATAFILE 'C:\oradata\data02.dbf' SIZE 500M;B. 将新建立的数据文件添加到表空间中:ALTER DATABASE ADD DATAFILE'C:\oradata\data02.dbf' TO TABLESPACE USERS;C. 重新启动数据库:SHUTDOWN IMMEDIATE;STARTUP;3、使用Oracle Enterprise Manager来扩展表空间Oracle Enterprise Manager是一个功能强大的管理工具,可以帮助用户管理Oracle数据库。

oracle数据库表空间扩容步骤

oracle数据库表空间扩容步骤

oracle数据库表空间扩容步骤扩容Oracle数据库表空间的步骤如下:1. 检查表空间的当前使用情况:使用以下查询语句可以查看表空间的当前使用情况。

```SELECTtablespace_name,round((1 - (sum(bytes) / (maxbytes))) * 100, 2)"Used_percentage"FROMdba_data_filesGROUP BYtablespace_name,maxbytes;```2. 确定需要扩容的表空间:根据查询结果,确定需要扩容的表空间。

3. 确定扩容的方式:有两种扩容方式,分别是自动扩容和手动扩容。

- 自动扩容:在表空间的数据文件达到其最大容量时,Oracle 会自动增加数据文件的大小。

如果使用自动扩容方式,需要确认表空间的自动扩容设置是否已开启。

- 手动扩容:手动扩容需要手动添加一个新的数据文件到表空间中。

4. 自动扩容:如果使用自动扩容方式,可以通过以下命令检查自动扩容设置是否已开启。

```SELECTautoextensibleFROMdba_data_filesWHEREtablespace_name = '<表空间名称>';```如果自动扩容设置为“YES”,则表示已开启自动扩容。

如果自动扩容设置为“NO”,则需要使用手动扩容方式。

5. 手动扩容:如果使用手动扩容方式,可以通过以下命令向表空间添加一个新的数据文件。

```ALTER TABLESPACE <表空间名称> ADD DATAFILE '<数据文件路径>' SIZE <新数据文件大小>;```其中,<表空间名称>是需要扩容的表空间的名称,<数据文件路径>是新的数据文件的路径,<新数据文件大小>是新的数据文件的大小。

6. 检查扩容结果:可以使用之前的查询语句再次检查表空间的使用情况,确认扩容是否成功。

linux 下删除oracle表空间的步骤

linux 下删除oracle表空间的步骤

L i nux 环境下删除O r acle 表空间的步骤在Linux 环境下删除Oracle 表空间的步骤如下:1. 登录数据库以具有⾜够权限(如SYSDBA )的⽤户身份登录SQL*PLUS ,例如:2. 检查表空间使⽤情况在删除表空间之前,确保该表空间没有被任何⽤户或对象使⽤。

可以通过查询数据字典来确认这⼀点。

如果结果返回有仍在使⽤的段,请先解除依赖关系并移除相关对象。

3. 禁⽤表空间上的所有活动如果表空间中仍有数据⽂件,且不打算保留数据,则可以执⾏以下操作(假设表空间名为you r_tablespace_name ):4. 删除表空间确保所有数据⽂件都已离线后,可以安全地删除表空间,包括其内容和数据⽂件,并级联删除相关的约束条件:○○○○sqlplus / as sysdba1BashSELECT * FROM DBA_SEGMENTS WHERE TABLESPACE_NAME = 'your_tablespace_name';1SQLALTER TABLESPACE your_tablespace_name OFFLINE;1SQL5. 验证表空间已被删除可以通过查看DBA_TABLESPACES 视图来验证表空间是否已经被成功删除。

6. (可选)清理未删除的数据⽂件如果在删除表空间时指定了INCLUDING CONTENTS AND DATAFILES ,那么数据⽂件应该已经被⾃动删除。

如果系统出于某种原因未能删除物理⽂件,您需要⼿动从操作系统层⾯删除这些不再关联到任何表空间的数据⽂件。

请注意,在进⾏上述操作前,务必做好充分的数据备份⼯作,并确保对即将执⾏的操作有清晰的理解,因为这些操作往往是不可逆的。

○○DROP TABLESPACE your_tablespace_name INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;1SQL。

Oracle删除、查看表空间及数据文件方法

Oracle删除、查看表空间及数据文件方法

Oracle删除、查看表空间及数据⽂件⽅法1、查找⼯作空间的路径select * from dba_data_files;2、删除⽤户,及级联关系也删除掉drop user ⽤户名 cascade;3、删除表空间,及对应的表空间⽂件也删除掉drop tablespace 表空间名including contents and datafiles cascade constraint;4、删除表空间--删除空的表空间,但是不包含物理⽂件drop tablespace tablespace_name;--删除⾮空表空间,但是不包含物理⽂件drop tablespace tablespace_name including contents;--删除空表空间,包含物理⽂件drop tablespace tablespace_name including datafiles;--删除⾮空表空间,包含物理⽂件drop tablespace tablespace_name including contents and datafiles;--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTSdrop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;5、删除⽆任何数据对象的表空间(1)、登录⽤户,确认当前⽤户是否有删除表空间的权限,如果没有使⽤更⾼级的⽤户登录drop tablespace xxx ,删除需要删除的表空间。

6、删除有任何数据对象的表空间drop tablespace xxx including contents and datafiles;注意事项:如果drop tablespace语句中含有datafiles,那datafiles之前必须有contents关键字,不然会提⽰ora-01911错误7、查看表空间容量SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_sizeFROM dba_tablespaces t, dba_data_files dWHERE t.tablespace_name = d.tablespace_nameGROUP BY t.tablespace_name;8、查看表空间物理⽂件的名称及⼤⼩SELECT tablespace_name,file_id,file_name,round(bytes / (1024 * 1024), 0) total_spaceFROM dba_data_filesORDER BY tablespace_name;9、查看回滚段名称及⼤⼩SELECT segment_name,tablespace_name,r.status,(initial_extent / 1024) initialextent,(next_extent / 1024) nextextent,max_extents,v.curext curextentFROM dba_rollback_segs r, v$rollstat vWHERE r.segment_id = n(+)ORDER BY segment_name;10、查看控制⽂件SELECT NAME FROM v$controlfile;11、查看⽇志⽂件SELECT MEMBER FROM v$logfile;12、查看表空间的使⽤情况SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_nameFROM dba_free_spaceGROUP BY tablespace_name;SELECT a.tablespace_name,a.bytes total,b.bytes used,c.bytes free,(b.bytes * 100) / a.bytes "% USED ",(c.bytes * 100) / a.bytes "% FREE "FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c WHERE a.tablespace_name = b.tablespace_nameAND a.tablespace_name = c.tablespace_name;13、查看数据库库对象SELECT owner, object_type, status, COUNT(*) count# FROM all_objectsGROUP BY owner, object_type, status;14、查看数据库的版本SELECT versionFROM product_component_versionWHERE substr(product, 1, 6) = 'Oracle';15、查看数据库的创建⽇期和归档⽅式SELECT created, log_mode, log_mode FROM v$database; --1G=1024MB--1M=1024KB--1K=1024Bytes--1M=11048576Bytes--1G=1024*11048576Bytes=11313741824BytesSELECT a.tablespace_name "表空间名",total "表空间⼤⼩",free "表空间剩余⼤⼩",(total - free) "表空间使⽤⼤⼩",total / (1024 * 1024 * 1024) "表空间⼤⼩(G)",free / (1024 * 1024 * 1024) "表空间剩余⼤⼩(G)",(total - free) / (1024 * 1024 * 1024) "表空间使⽤⼤⼩(G)", round((total - free) / total, 4) * 100 "使⽤率 %"FROM (SELECT tablespace_name, SUM(bytes) freeFROM dba_free_spaceGROUP BY tablespace_name) a,(SELECT tablespace_name, SUM(bytes) totalFROM dba_data_filesGROUP BY tablespace_name) bWHERE a.tablespace_name = b.tablespace_name。

Oracle创建表空间

Oracle创建表空间

设置和修改表空间属性
2.增加数据文件
【例】在ALTER TABLESPACE语句中使用 ADD DATAFILE子句,可以在本地管理表空 间中增加数据文件,代码如下: SQL> ALTER TABLESPACE OrclTBS01 ADD DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\OrclTB S011.dbf' SIZE 10M; 表空间已更改。
表空间已创建。
创建表空间

创建表空间页面
单击此按钮 保存 输入名称
创建大文件表空 间
设置和修改表空间属性
1.重命名表空间
【例】将表空间OrclTBS02修改为OrclTBS03, 可以使用下面的语句: SQL> ALTER TABLESPACE OrclTBS02 RENAME TO OrclTBS03; 表空间已更改。
SPACE MANAGEMENT子句可定义段
【例】创建手动段管理方式的表空间MyTBS01:
段和数据块管理
数据块是Oracle数据库的最小存储单元,在初始化参数
DB_BLOCK_SIZE中定义了标准数据块的大小。 在创建表空间时,如果不特殊指定,将使用 DB_BLOCK_SIZE中定义的数据作为数据块的大小。 【例】可以在CREATE TABLESPACE语句中使用 BLOCKSIZE子句指定非标准数据块的大小:
表空间已创建。
创建表空间
【例】在创建表空间OrclTBS02时,指定其最小区 间为128KB,代码如下:
SQL> CREATE TABLESPACE OrclTBS02 DATAFILE 'C:\oracle\product\10.2.0\oradata\orcl\OrclTBS02.dbf' SIZE 30M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K; 表空间已创建。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle tablespace (表空间)的创建、删除、修改、扩展及检查等oracle 数据库表空间的作用1.决定数据库实体的空间分配;2.设置数据库用户的空间份额;3.控制数据库部分数据的可用性;4.分布数据于不同的设备之间以改善性能;5.备份和恢复数据。

--oracle 可以创建的表空间有三种类型:1.temporary: 临时表空间,用于临时数据的存放;create temporary tablespace "sample"......2.undo : 还原表空间. 用于存入重做日志文件.create undo tablespace "sample"......3.用户表空间: 最重要,也是用于存放用户数据表空间create tablespace "sample"......--注:temporary 和undo 表空间是oracle 管理的特殊的表空间.只用于存放系统相关数据.--oracle 创建表空间应该授予的权限1.被授予关于一个或多个表空间中的resource特权;2.被指定缺省表空间;3.被分配指定表空间的存储空间使用份额;4.被指定缺省临时段表空间。

select tablespace_name "表空间名称",status "状态",extent_management "区管理方式",allocation_type "磁盘扩展管理方式",segment_space_management "段管理方式" from dba_tablespaces;--查询各个表空间的区、段管理方式--1、建立表空间--语法格式:create tablespace 表空间名datafile '文件标识符' 存储参数[...]|[minimum extent n] --设置表空间中创建的最小范围大小|[logging|nologging]|[default storage(存储配置参数)]|[online|offline]; --表空间联机\脱机|[permanent|temporary] --指定该表空间是用于保存永久的对象还是只保存临时对象 |[...]--其中:文件标识符=’文件名’[size整数[k\m][reuse]--实例create tablespace data01datafile '/oracle/oradata/db/data01.dbf' size 500muniform size 128k; --指定区尺寸为128k,如不指定,区尺寸默认为64kcreate tablespace "test"loggingdatafile 'd:\oracle\oradata\oracle\sample.ora' size 5m,'d:\oracle\oradata\oracle\dd.ora' size 5mextent management localuniform segment space managementauto;--详解/*第一: create tablespace "sample"创建一个名为"sample" 的表空间.对表空间的命名,遵守oracle 的命名规范就可了. 第二: logging 有nologging 和logging 两个选项,nologging: 创建表空间时,不创建重做日志.logging 和nologging正好相反, 就是在创建表空间时生成重做日志.用nologging时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复;但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表空间,并导入数据后,是要对数据做备份的;所以通常不需要表空间的创建日志,因此,在创建表空间时,选择nologging,以加快表空间的创建速度.第三: datafile 用于指定数据文件的具体位置和大小.datafile 的文件是建立表空间后创建的,不过文件路径必须存在才是合法的datafile设置如: datafile 'd:\oracle\oradata\ora92\luntan.ora' size 5m说明文件的存放位置是'd:\oracle\oradata\ora92\luntan.ora' , 文件的大小为5m.如果有多个文件,可以用逗号隔开:如:datafile 'd:\oracle\oradata\ora92\luntan.ora' size 5m, 'd:\oracle\oradata\ora92\ dd.ora' size 5m但是每个文件都需要指明大小.单位以指定的单位为准如5m 或500k.对具体的文件,可以根据不同的需要,存放大不同的介质上,如磁盘阵列,以减少io竟争. 指定文件名时,必须为绝对地址,不能使用相对地址.第四: extent management local 存储区管理方法在字典中管理(dictionary):将数据文件中的每一个存储单元做为一条记录,所以在做dm操作时,就会产生大量的对这个管理表的delete和update操作.做大量数据管理时,将会产生很多的dm操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片.本地管理(local):用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘.同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。

第五: segment space management磁盘扩展管理方法:segment space management: 使用该选项时区大小由系统自动确定。

由于oracle 可确定各区的最佳大小,所以区大小是可变的。

uniform segment space management:指定区大小,也可使用默认值(1 mb)。

第六: 段空间的管理方式:auto: 只能使用在本地管理的表空间中.使用local管理表空间时,数据块中的空闲空间增加或减少后,其新状态都会在位图中反映出来。

位图使oracle 管理空闲空间的行为更加自动化,并为管理空闲空间提供了更好的性,但对含有lob字段的表不能自动管理.manual: 目前已不用,主要是为向后兼容.*/--2、修改表空间配置--语法格式:alter tablespce 表空间名(add datafile 文件标识符[,文件标识符]...|rename datafile ’文件名’[,’文件名’]...to ’文件名’[,’文件名’]...|default storage(存储配置参数)|online|offline[normal|immediate]|(begin|end)backup);--实例A、改变表空间状态--1.使表空间脱机alter tablespace game offline;--如果是意外删除了数据文件,则必须带有recover选项alter tablespace game offline for recover;--2.使表空间联机alter tablespace game online;--3.使数据文件脱机alter database datafile 3 offline;--4.使数据文件联机alter database datafile 3 online;--5.使表空间只读alter tablespace game read only;--6.使表空间可读写alter tablespace game read write;B、扩展表空间--首先查看表空间的名字和所属文件select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_spacefrom dba_data_filesorder by tablespace_name;--1.增加数据文件alter tablespace gameadd datafile '/oracle/oradata/db/game02.dbf' size 1000m;--2.手动增加数据文件尺寸alter database datafile '/oracle/oradata/db/game.dbf'resize 4000m;--3.设定数据文件自动扩展alter database datafile '/oracle/oradata/db/game.dbf'autoextend on next 100m maxsize 10000m;--4.设定后查看表空间信息select a.tablespace_name,a.bytes total,b.bytes used, c.bytes free,(b.bytes*100)/a.bytes "% used",(c.bytes*100)/a.bytes "% free"from sys.sm$ts_avail a,sys.sm$ts_used b,sys.sm$ts_free cwhere a.tablespace_name=b.tablespace_name and a.tablespace_name=c.table space_name;3、删除表空间语法格式:drop tablespace表空间名[including contents [and datafile]];4、检查表空间使用情况(1)检查当前用户空间分配情况select tablespace_name,sum(extents),sum(blocks),sum(bytes)from user_segmentsgroup by tablespace_name(2)a.检查各用户空间分配情况select owner,tablespace_;select owner,tablespace_name,sum(extents),sum(blocks),sum(bytes) from dba_segmentsgroup by owner,tablespace_name;(3) 检查当前用户数据库实体空间使用情况select tablespace_name,segment_name,segment_type,count(extent_id),sum(blocks),sum(bytes)from user_extentsgroup by tablespace_name,segment_name,segment_type;(4)检查各用户空间使用情况select owner,tablespace_name,count(extent_id),sum(blocks),sum(bytes) from user_extentsgroup by owner,tablespace_name;(5)检查数据库空间使用情况select tablespace_name,count(extent_id),sum(blocks),sum(bytes)from user_extentsgroup by tablespace_name;(6)检查当前用户自由空间情况select tablespace_name,count(block_id),sum(blocks),sum(bytes)from user_free_spacegroup by tablespace_name;(7)检查数据库自由空间情况select tablespace_name,count(block_id),sum(blocks),sum(bytes)from dba_free_spacegroup by tablespace_name;。

相关文档
最新文档