Oracle tablespace创建参数
- 格式:docx
- 大小:17.15 KB
- 文档页数:3
表空间(TableSpace)我们知道Oracle数据库真正存放数据的是数据⽂件(Data File),oracle表空间(tablespace)实际上是⼀个逻辑的概念,在物理上是并不存在的,那么把⼀组data files捻在⼀起就成为⼀个表空间。
表空间属性:⼀个数据库可以包含多个表空间,⼀个表空间只能属于⼀个数据库⼀个表空间包含多个数据⽂件,⼀个数据⽂件只能属于⼀个表空间表空间可以划分成更细的逻辑存储单元:Oracle数据库的存储空间结构:从逻辑的⾓度来看,⼀个数据库(database)下⾯可以分多个表空间(tablespace);⼀个表空间下⾯有可以分多个段(segment);⼀个数据表要占⼀个段(segment),⼀个索引也要占⼀个段(segment)。
⼀个段(segment)由多个区间(extent)组成,那么⼀个区间⼜由⼀组连续的数据块(data block)组成,这连续的数据块是在逻辑上是连续的,有可能是物理逻辑上是分散那么从物理的⾓度上看,⼀个表空间由多个数据⽂件组成,数据⽂件是实实在在存在的磁盘⽂件,这些⽂件是由oracle数据库操作系统的block组成的Segment(段):段是指占⽤数据⽂件空间的通称,或数据库对象使⽤的空间的稽核;段可以由表段、索引段、回滚段、临时段、和⾼速缓存段等。
Extent(区间):分配给对象的任何连续块就叫区间;区间也叫扩展,因为当它⽤完已经分配的区间后,再有新的记录插⼊就必须在分配新的区间(即扩展⼀些块);⼀旦区间分配某个对象(表,索引或簇),则该区间就不能再分配给其它的对象1,查看表空间的名称及⼤⼩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_name2、查看表空间物理⽂件的名称及⼤⼩select tablespace_name,file_id,file_name,round(bytes / (1024*1024), 0) total_spacefrom dba_data_filesorder by tablespace_name;select tablespace_name,file_id,file_name,round(bytes / (1024*1024), 0) total_spacefrom dba_temp_filesorder by tablespace_name;3、查看表空间的使⽤情况select sum(bytes) / (1024 * 1024) as free_space, tablespace_namefrom dba_free_spacegroup by tablespace_name;SELECT * from DBA_TEMP_FREE_SPACE;SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间⼤⼩(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使⽤空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使⽤⽐",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最⼤块(M)"FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDER BY 4 DESC;4、查看/修改Database的Default Temporary TablespaceSELECT PROPERTY_NAME, PROPERTY_VALUEFROM DATABASE_PROPERTIESWHEREPROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE';ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tablespace_name;5,--查看表空间是否具有⾃动扩展的能⼒SELECT T.TABLESPACE_NAME,D.FILE_NAMED.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUSFROM DBA_TABLESPACES T, DBA_DATA_FILES DWHERE T.TABLESPACE_NAME = D.TABLESPACE_NAMEORDER BY TABLESPACE_NAME, FILE_NAME;当数据库刚建⽴起来,系统会建⽴⼀个叫做SYSTEM的系统的TableSpace,存放SYS,SYSTEM等User重要的系统数据(ex:数据字典与预存储程序等)建⽴oracle User时,不指定预设的TableSpace,则此User则会以System TableSpace 作为预设的TableSpace,这造成管理上的混乱与严重的效能问题,这是必须注意的TableSpace的类型:Permanent、Undo、TemporaryPermanent TableSpace:创建给AP使⽤的都是。
oracle 中create table 多线程的方法-回复在Oracle数据库中,可以通过多种方法创建表。
本文将详细介绍在Oracle中创建表的多线程方法,包括使用并行度和并行创建表。
1. 并行度(Parallel Degree)的概念在Oracle数据库中,可以使用并行度来提高查询和操作的性能。
并行度是指在一个查询或操作中同时使用多个进程或线程来处理数据的能力。
通过并行度,可以将一个任务分成多个子任务,并且在多个CPU或多个核心上并行执行。
这样可以显著提高数据处理的速度。
并行度在Oracle数据库中使用PCTFREE参数来表示,取值范围为0到下载。
PCTFREE参数指示在一个表或索引块中保留的可用空间百分比。
当PCTFREE设为100时,表示该表中的所有块都可以用于存储数据。
当PCTFREE设为0时,表示该表中的所有块都作为可用空间保留。
通常情况下,建议将PCTFREE设置为较小的值,以提高空间利用率。
2. 并行度的应用场景并行度在以下情况下特别有用:- 大量数据的加载或导入:通过并行度,可以将数据分成多个块并行加载或导入,提高加载或导入的速度。
- 大规模数据的查询或分析:通过并行度,可以将查询或分析任务分成多个子任务并行执行,提高查询或分析的速度。
- 多个并发用户的查询或操作:通过并行度,可以同时处理多个并发用户的查询或操作,提高系统的响应速度。
3. 并行创建表的方法Oracle数据库提供了多种方法来实现并行创建表。
下面介绍两种常用的方法:- 方法1:使用并行度指令可以在创建表的语句中使用PARALLEL关键字来指定表的并行度。
例如,创建一个并行度为4的表:CREATE TABLE my_table(column1 NUMBER,column2 VARCHAR2(100))PARALLEL 4;在这个例子中,创建的表my_table将使用4个并行进程来处理数据。
- 方法2:使用表空间的并行度在创建表的语句中,可以使用TABLESPACE关键字来指定表的表空间,并指定并行度。
Oracle导出表空间的创建语句、导⼊、导出dmp⽂件beginfor c in (select , as name2 from v$tablespace tinner join v$datafile don t."TS#"=d."TS#"where t."TS#">4)loopdbms_output.put_line( 'create tablespace '|| ||' DATAFILE '||''''||2||''''||' size 20MAUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;' );end loop;end;结果如:create tablespace EXAMPLE DATAFILE 'D:\ORACLE\ORADATA\ORCL\EXAMPLE01.DBF' size 20MAUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;create tablespace HCZZ_WEB_DATA DATAFILE 'D:\ORACLE\ORADATA\ORCL\DBF_HCZZ_WEB_DATA.DBF' size 20MAUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;create tablespace HCZZ_WEB_INDEX DATAFILE 'D:\ORACLE\ORADATA\ORCL\DBF_HCZZ_WEB_INDEX.DBF' size 20MAUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;数据库导出:--第⼀次新建数据库导⼊使⽤impdp hczz_web/password@localhost/orcl dumpfile=HCZZ_WEB_20170706.dmpimpdp hczz_web/password@221.234.25.77/orcl dumpfile=HCZZ_WEB_20180502.dmpimpdp hczz_web/password dumpfile=HCZZ_WEB_20170706.dmp--第⼆次导⼊使⽤impdp hczz_web/password dumpfile=HCZZ_WEB_20170706.dmp table_exists_action=replace--如果有替换还原新的数据库命,则执⾏----------------------impdp hczz_web_test1/password@localhost/orcl dumpfile=HCZZ_WEB_20170628.DMP table_exists_action=replace remap_schema=hczz_web:hczz_web_test1 impdp hczz_web_test1/password@localhost/orcl dumpfile=HCZZ_WEB_20170628.DMP table_exists_action=replace remap_schema=hczz_web:hczz_web_test1 impdp hczz_web_test1/password@localhost/orcl dumpfile=备份库.DMP table_exists_action=replace remap_schema=原库名:现库名创建表空间/*分为四步 *//*第1步:创建临时表空间 */create temporary tablespace yuhang_temptempfile 'D:\oracledata\yuhang_temp.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;/*第2步:创建数据表空间 */create tablespace yuhang_dataloggingdatafile 'D:\oracledata\yuhang_data.dbf'size 50mautoextend onnext 50m maxsize 20480mextent management local;/*第3步:创建⽤户并指定表空间 */create user yuhang identified by yuhangdefault tablespace yuhang_datatemporary tablespace yuhang_temp;/*第4步:给⽤户授予权限 */grant connect,resource,dba to yuhang;创建⽤户DECLAREuser_name CONSTANT VARCHAR2 (64) :='hczz_web';user_password CONSTANT VARCHAR2 (64) :='password';data_tablespace_name CONSTANT VARCHAR2 (64) :='hczz_web_data';temp_tablespace_name CONSTANT VARCHAR2 (64) :='hczz_web_temp';PROCEDURE p_execcmd (v_cmd IN VARCHAR2)ASv_cursorid INTEGER;BEGINv_cursorid := DBMS_SQL.open_cursor;DBMS_SQL.parse (v_cursorid, v_cmd, DBMS_SQL.native);DBMS_SQL.close_cursor (v_cursorid);EXCEPTIONWHEN OTHERSTHENDBMS_SQL.close_cursor (v_cursorid);RAISE;END p_execcmd;BEGIN-------------------1.创建⽤户-----------------------------------------------p_execcmd ( 'CREATE USER '||user_name||' PROFILE DEFAULT IDENTIFIED BY '|| user_password||' DEFAULT TABLESPACE '|| data_tablespace_name||' TEMPORARY TABLESPACE '|| temp_tablespace_name||' ACCOUNT UNLOCK');-------------------2.授权---------------------------------------------------p_execcmd( 'GRANT CONNECT TO '||user_name||' WITH ADMIN OPTION' ); p_execcmd( 'GRANT RESOURCE TO '||user_name||' WITH ADMIN OPTION' ); ---以下慎⽤,权限过⼤p_execcmd( 'GRANT DBA TO '||user_name||' WITH ADMIN OPTION' ); END;。
表空间(TABLESPACE)表空间(TABLESPACE)是ORACLE数据库中最大的逻辑结构。
ORACLE数据库是由一个或多个表空间组成的。
它在物理上与磁盘上的数据文件相对应(一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间)。
从物理上说数据库的数据被存放在数据文件中,而从逻辑上说是被存放在表空间中的。
数据库的逻辑配置实际上就是指表空间的配置。
一、表空间概述表空间是ORACLE数据库中最大的逻辑结构。
数据库的所有对象和方案都被逻辑的保存在表空间中。
(一)表空间的特性与作用数据库管理系统(DBMS)是建立在操作系统(OS)基础上的,它的数据也必须存储在各个文件中,如数据文件、重做日志文件、归档日志文件等。
表不是文件,表不是空间。
表空间是组织结构和分配空间的逻辑结构。
除了数据文件之外,控制文件、重做日志文件、归档日志文件等其他文件都不属于任何表空间。
表空间的特性如下:1.一个数据库可以有多个表空间。
可以在数据库中创建、删除表空间;2.一个表空间只属于一个数据库;3.一个表空间必须要有一个数据文件;4.一个表空间的大小等于其中所有数据文件的大小之和。
数据库的大小等于其中所有表空间的大小之和;5.表空间可以被联机和脱机。
SYSTEM表空间不能被脱机;6.表空间可以在读写、只读状态之间切换;7.每个表空间由一个或多个物理存在的操作系统的数据文件组成。
这种数据文件可以具有固定的大小,或允许其自动变大。
可以在表空间中添加、删除数据文件;8.方案对象、表、索引的数据都被存储在表空间的数据文件中。
一个数据文件存储不下,就存储在另一个数据文件中,只要该数据文件是本表空间中的就可以;9.一个用户默认使用一个表空间,但他的不同方案对象的数据可以被存储在不同表空间中;10.一个用户使用的表空间的数量是有一定配额的,不能超出这个配额;11.可以根据使用目的,创建不同类型的表空间,如永久表空间、临时表空间、撤销表空间、大表空间等。
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):用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘.同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
create table oracle语句
嘿,朋友们!今天咱就来好好唠唠这个“create table oracle 语句”。
就好像盖房子得先有个设计图一样,这语句就是在数据库里搭建“房子”的关键呀!
比如说,你想在数据库里建个表来存你的宝贝数据,那这“create table”语句就派上大用场啦!就像你打算给自己建个秘密基地,得先规
划好怎么建呀。
“create table 表名 (列名数据类型, 列名数据类型……)”,看,这就
是它的基本模样。
这就好比你给基地划分不同的区域,这个区域放玩具,那个区域放零食。
咱来举个具体例子哈。
比如说你要建个学生表,里面有学生的学号、姓名、年龄这些信息。
那你就可以这样写:create table students (id number, name varchar2(50), age number)。
哇塞,是不是感觉很神奇?就
这么简单的几行语句,一个能存学生信息的“小房子”就建起来啦!
这“create table oracle 语句”多重要啊,没有它,你的数据就像没家
的孩子一样到处流浪呢!它就像一个超级建筑师,能按照你的要求把
表建得稳稳当当的。
再想想,要是没有它,那数据不就乱套啦?那可不行呀!它可不就
是我们管理数据的得力小助手嘛!所以呀,咱可得好好掌握这个语句,让它为我们服务呀!
我的观点就是,“create table oracle 语句”真的是数据库世界里超级重要的存在呀,我们必须得好好学它、用它!。
oracle建立表空间的方法Oracle数据库中建立表空间的方法主要有两种:一种是通过SQL命令的方式,另一种是通过Oracle客户端Enterprise Manager Console来创建。
通过SQL命令的方式创建表空间,需要先创建临时表空间和数据表空间,然后创建用户并指定表空间。
具体步骤如下:1. 创建临时表空间。
可以通过以下命令创建:```sqlcreate temporary tablespace user_temptempfile 'D:\oracle\oradata\Oracle9i\user_'size 50m autoextend on next 50mmaxsize 20480mextent management local;```2. 创建数据表空间。
可以通过以下命令创建:```sqlcreate tablespace user_dataloggingdatafile 'D:\oracle\oradata\Oracle9i\user_'size 50m autoextend on next 50mmaxsize 20480mextent management local;```3. 创建用户并指定表空间。
可以通过以下命令创建用户并将表空间指定给该用户:```sqlcreate user username identified by password;grant create session, create tablespace to username;alter user username default tablespace user_data temporary tablespace user_temp;```通过Oracle客户端Enterprise Manager Console来创建表空间,可以通过以下步骤完成:1. 打开Oracle客户端Enterprise Manager Console。
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 建立非标准块表空间在前面所创建的表空间中,所有的数据块大小都时相同的。
数据块的大小由参数DB_BLOCK_SIZE决定,并且在创建数据库后不能再进行修改。
为了优化I/O性能,Oracle 系统允许不同的表空间使用不同大小的数据块,这样可以实现将大规模的表存储在由大数据块构成的表空间,而小规模的表则存储在由小数据块构成的表空间中。
在创建非标准数据块的表空间时,用户需要显式使用BLOCKSIZE选项。
当在数据库中使用多种数据块尺寸时,必须为每种数据块分配相应的数据高速缓存,并且数据高速缓存的尺寸可以动态修改。
具体而言,参数BLOCKSIZE必须与数据缓冲区参数DB_nk_CACHE_SIZE相对应,BLOCKSIZE与数据缓冲区参数DB_nk_CACHE_SIZE的对应关系如表12-1所示。
表12-1 BLOCKSIZE与DB_nk_CACHE_SIZE对应关系BLOCKSIZE DB_nK_CACHE_SIZE2KB DB_2K_CACHE_SIZE4KB DB_4K_CACHE_SIZE8KB DB_8K_CACHE_SIZE16KB DB_16K_CACHE_SIZE32KB DB_32K_CACHE_SIZE例如,下面的语句为16K数据块设置20M的高速缓冲区:SQL> alter system set db_16k_cache_size=20m;系统已更改。
分配了非标准数据高速缓存后,就可以建立非标准表空间了。
建立非标准表空间时,必须指定BLOCKSIZE参数。
例如,下面的语句创建了数据块大小为16K的非标准表空间:SQL> create tablespace bigblock_tbs2 datafile 'd:\oracledata\big_blick_tbs01.dbf' size 2m3 blocksize 16k;表空间已创建。
查询数据字典视图DBA_TABLESPACES,可以显示表空间的数据块大小,如下所示:SQL> select tablespace_name,block_size2 from user_tablespaces3 where tablespace_name='BIGBLOCK_TBS';TABLESPACE_NAME BLOCK_SIZE------------------------------ ----------BIGBLOCK_TBS 16384。
oracle增加表空间的四种方法Meathod1:给表空间增加数据文件ALTER TABLESPACE app_data ADD DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;Meathod2:新增数据文件,并且允许数据文件自动增长ALTER TABLESPACE app_data ADD DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50MAUTOEXTEND ON NEXT 5M MAXSIZE 100M;Meathod3:允许已存在的数据文件自动增长ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' AUTOEXTEND ON NEXT 5M MAXSIZE 100M;Meathod4:手工改变已存在数据文件的大小ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF' RESIZE 100M;实例1:在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见。
--1查看表空间已经使用的百分比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“Sum MB”表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB”就是700MB“userd MB”表示表空间已经使用了多少“free MB”表示表空间剩余多少“percent_user”表示已经使用的百分比--2比如从1中查看到MLOG_NORM_SPACE表空间已使用百分比达到90%以上,可以查看该表空间总共有几个数据文件,每个数据文件是否自动扩展,可以自动扩展的最大值。
在创建用户之前,先要创建表空间:其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小;如:SQL> create tablespace news_tablespace datafile'F:\oracle\product\10.1.0\oradata\news\news_data.dbf' size 500M;其中'news_tablespace'是你自定义的表空间名称,可以任意取名;'F:\oracle\product\10.1.0\oradata\news\news_data.dbf'是数据文件的存放位置,'news_data.dbf'文件名也是任意取;'size 500M'是指定该数据文件的大小,也就是表空间的大小。
现在建好了名为'news_tablespace'的表空间,下面就可以创建用户了:其格式为:格式: create user 用户名 identified by 密码 default tablespace 表空间表;如:SQL> create user news identified by news default tablespace news_tablespace;默认表空间'default tablespace'使用上面创建的表空间。
接着授权给新建的用户:SQL> grant connect,resource to news; --表示把 connect,resource权限授予news用户SQL> grant dba to news; --表示把 dba权限授予给news用户授权成功。
ok! 数据库用户创建完成,现在你就可以使用该用户创建数据表了!1.建表空间create tablespace hoteldata datafile'D:\java\Oracle\product\10.1.0\oradata\zznorcl\hoteldata.dbf'size200m autoextend on next 10m maxsize unlimited;2.建用户create user hotel identified by hotel default tablespace hoteldata account unlock;//identified by 后面的是密码,前面的是用户名3.用户授权grant resource,connect,RECOVERY_CATALOG_OWNER to hotel ;grant create table to hotel;alter user hotel quota unlimited ON OSDB;alter user hotel default tablespace hoteldata;4.删除表空间DROP TABLESPACE hoteldata INCLUDING CONTENTS AND DATAFILES;5.删除用户DROP USER hotel CASCADE6.删除表的注意事项在删除一个表中的全部数据时,须使用TRUNCATE TABLE 表名;因为用DROP TABLE,DELETE * FROM 表名时,TABLESPACE表空间该表的占用空间并未释放,反复几次DROP,DELETE操作后,该TABLESPACE上百兆的空间就被耗光了。
Oracle创建表空间在SQL*Plus环境下创建各种表空间,以及操作表空间的状态。
(1)创建一个表空间EXER_TABSPACE,该表空间采用本地化管理方式,分配的初始空间为10M,使用空间配额不受限制,对应的数据文件名为TEST_TBS01.DBF。
create tablespace exer_tabspacedatafile 'd:\oracle_data\test_tbs01.dbf' size 10mautoextend onextent management local;(2)查看创建的表空间信息。
select tablespace_name,initial_extent,next_extent,extent_management,allocation_typefrom dba_tablespaces(3)创建本地化管理的临时表空间TEMP02,分配的初始大小为20M,对应的临时文件名为TEMP_TBS02.DBF,表空间的最大配额为100M。
create temporary tablespace temp02tempfile 'd:\oracle_data\temp_tbs02.dbf'size 20m reuseautoextend onmaxsize 100mextent management local;(4)查看创建的临时表空间参数信息。
select * from v$tempfile;(5)创建大文件表空间,表空间名为BIGFILE_TBS,数据文件名为BIG_FILE_TBS01.DBF,数据文件的初始大小为5M。
create bigfile tablespace bigfile_tbsdatafile 'd:\oracle_data\big_file_tbs01.dbf' size 5m;(6)创建撤销表空间UNDO2,数据文件为UNDO02.DBF。
Oracle create tablespace语法详解CREATE [UNDO] TABLESPACE tablespace_name[DATAFILE datefile_spec1 [,datefile_spec2] ......[{MININUM EXTENT integer [k|m]|BLOCKSIZE integer [k]|logging clause | FORCE LOGGING|DEFAULT {data_segment_compression} storage_clause|[online|offline]|[PERMANENT|TEMPORARY]|extent_manager_clause|segment_manager_clause}]1、undo说明系统将创建一个回滚表空间。
在9i中数据库管理员可以不必管理回滚段,只有建立了undo表空间,系统就会自动管理回滚段的分配,回收的工作。
当然,也可以创建一般的表空间,在上面创建回滚段.不过对于用户来说,系统管理比自己管理要好很多.如果需要自己管理,请参见回滚段管理的命令详解.当没有为系统指定回滚表空间时,系统将使用system系统回滚段来进行事务管理。
//2、tablespace_name指出表空间的名称。
//3、datafile datefile_spec1指出表空间包含什么空间文件。
datefile_spec1是形如:['filename'] [SIZE integer [ K | M ]] [REUSE] [autoextend_clause][autoextend_clause]是形如:AUTOEXTEND { OFF | ON [ NEXT integer [ K | M ] ] [maxsize_clause] }其中filename是数据文件的路径名,可以是相对路径,也可以是绝对路径。
size是文件的大小,REUSE表示文件是否被重用.AUTOEXTEND表明是否自动扩展.OFF | ON 表示自动扩展是否被关闭.NEXT 表示数据文件满了以后,扩展的大小.maxsize_clause表示数据文件的最大大小.形如MAXSIZE { UNLIMITED | integer [ K | M ] }. UNLIMITED 表示无限的表空间.integer是数据文件的最大大小.DATAFILE 'D:"oracle"oradata"IMAGEDATA01.dbf' SIZE 2000M,'D:"oracle"oradata"IMAGEDATA02.dbf' SIZE 2000M//4、MININUM EXTENT integer [k|m]指出在表空间中范围的最小值。
Oracle create tablespace语法详解CREATE [UNDO] TABLESPACE tablespace_name[DATAFILE datefile_spec1 [,datefile_spec2] ......[{MININUM EXTENT integer [k|m]|BLOCKSIZE integer [k]|logging clause | FORCE LOGGING|DEFAULT {data_segment_compression} storage_clause|[online|offline]|[PERMANENT|TEMPORARY]|extent_manager_clause|segment_manager_clause}]1、undo说明系统将创建一个回滚表空间。
在9i中数据库管理员可以不必管理回滚段,只有建立了undo表空间,系统就会自动管理回滚段的分配,回收的工作。
当然,也可以创建一般的表空间,在上面创建回滚段.不过对于用户来说,系统管理比自己管理要好很多.如果需要自己管理,请参见回滚段管理的命令详解.当没有为系统指定回滚表空间时,系统将使用system系统回滚段来进行事务管理。
//2、tablespace_name指出表空间的名称。
//3、datafile datefile_spec1指出表空间包含什么空间文件。
datefile_spec1是形如:['filename'] [SIZE integer [ K | M ]] [REUSE] [autoextend_clause][autoextend_clause]是形如:AUTOEXTEND { OFF | ON [ NEXT integer [ K | M ] ] [maxsize_clause] }其中filename是数据文件的路径名,可以是相对路径,也可以是绝对路径。
size是文件的大小,REUSE表示文件是否被重用.AUTOEXTEND表明是否自动扩展.OFF | ON 表示自动扩展是否被关闭.NEXT 表示数据文件满了以后,扩展的大小.maxsize_clause表示数据文件的最大大小.形如MAXSIZE { UNLIMITED | integer [ K | M ] }. UNLIMITED 表示无限的表空间.integer是数据文件的最大大小.DATAFILE 'D:"oracle"oradata"IMAGEDATA01.dbf' SIZE 2000M,'D:"oracle"oradata"IMAGEDATA02.dbf' SIZE 2000M//4、MININUM EXTENT integer [k|m]指出在表空间中范围的最小值。
Oracle表空间路径配置文件1. 简介Oracle数据库是一种关系型数据库管理系统,它使用表空间来存储数据。
表空间是逻辑存储结构,用于组织和管理数据库中的数据。
在Oracle数据库中,表空间路径配置文件是用来指定表空间的物理存储路径的配置文件。
2. 表空间路径配置文件的作用表空间路径配置文件用于告诉Oracle数据库在哪个位置创建表空间的数据文件。
通过配置文件,可以将表空间的数据文件存储在不同的磁盘分区或存储设备上,以实现数据的分布式存储和管理。
3. 表空间路径配置文件的格式表空间路径配置文件是一个文本文件,使用特定的格式来描述表空间的路径信息。
配置文件的每一行对应一个表空间的路径配置,包括表空间名称和对应的路径。
下面是一个示例的表空间路径配置文件:# 表空间路径配置文件示例# 表空间1的路径配置TABLESPACE1 /path/to/tablespace1# 表空间2的路径配置TABLESPACE2 /path/to/tablespace2在配置文件中,使用#符号来表示注释,可以在配置文件中添加注释以提供说明和解释。
每一行的格式为表空间名称路径,用空格分隔。
4. 配置表空间路径的步骤配置表空间路径需要以下步骤:1.创建一个文本文件,用于存储表空间路径配置信息。
2.在配置文件中按照指定的格式添加表空间的路径配置。
3.将配置文件保存,并确保文件的路径和名称正确。
4.在Oracle数据库中加载配置文件,使配置文件生效。
5. 加载配置文件的方法加载表空间路径配置文件有多种方法,可以根据具体的需求选择适合的方法。
下面介绍两种常用的方法:5.1 使用ALTER SYSTEM语句加载配置文件可以使用ALTER SYSTEM语句来加载表空间路径配置文件。
具体步骤如下:1.使用文本编辑器打开Oracle数据库的初始化参数文件(通常为init.ora或spfile.ora)。
2.在文件中添加以下语句:ALTER SYSTEM SET FILE_NAME_CONVERT = 'OLD_PATH', 'NEW_PATH' SCOPE=SPFILE;其中,OLD_PATH为原始路径,NEW_PATH为新的路径。
Oracle tablespace创建参数
ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方存放,Oracle会提示:没有存储配额.因此,在创建对象之前,首先要分配存储空间.
分配存储,就要创建表空间:
创建表空间示例如下:
CREATE TABLESPACE "SAMPLE"
LOGGING
DATAFILE 'D:\ORACLE\ORADATA\ORA92\LUNTAN.ora' SIZE 5M EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
上面的语句分以下几部分:
第一: CREATE TABLESPACE "SAMPLE" 创建一个名为 "SAMPLE" 的表空间.
对表空间的命名,遵守Oracle 的命名规范就可了.
ORACLE可以创建的表空间有三种类型:
(1)TEMPORARY: 临时表空间,用于临时数据的存放;
创建临时表空间的语法如下:
CREATE TEMPORARY TABLESPACE "SAMPLE"......
(2)UNDO : 还原表空间. 用于存入重做日志文件.
创建还原表空间的语法如下:
CREATE UNDO TABLESPACE "SAMPLE"......
(3)用户表空间: 最重要,也是用于存放用户数据表空间
可以直接写成: CREATE TABLESPACE "SAMPLE"
TEMPORARY 和 UNDO 表空间是ORACLE 管理的特殊的表空间.只用于存放系统相关数据.
第二: LOGGING
有 NOLOGGING 和 LOGGING 两个选项,
NOLOGGING: 创建表空间时,不创建重做日志.
LOGGING 和NOLOGGING正好相反, 就是在创建表空间时生成重做日志.
用NOLOGGING时,好处在于创建时不用生成日志,这样表空间的创建较快,但是没能日志,数据丢失后,不能恢复,但是一般我们在创建表空间时,是没有数据的,按通常的做法,是建完表空间,并导入数据后,是要对数据做备份的,所以通常不需要表空间的创建日志,因此,在创建表空间时,选择NOLOGGING,以加快表空间的创建速度.
第三: 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 存储区管理方法
在Oracle 8i以前,可以有两种选择,一种是在字典中管理(DICTIONARY),另一种是本地管理(LOCAL ),从9I开始,只能是本地管理方式.因为LOCAL 管理方式有很多优点.
在字典中管理(DICTIONARY): 将数据文件中的每一个存储单元做为一条记录,所以在做D M操作时,就会产生大量的对这个管理表的Delete和Update操作.做大量数据管理时,将会产生很多的DM操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片,这就是为什么要做磁盘整理的原因.
本地管理(LOCAL): 用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁
盘. 同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
第五: SEGMENT SPACE MANAGEMENT
磁盘扩展管理方法:
SEGMENT SPACE MANAGEMENT: 使用该选项时区大小由系统自动确定。
由于 Oracl e 可确定各区的最佳大小,所以区大小是可变的。
UNIFORM SEGMENT SPACE MANAGEMENT:指定区大小,也可使用默认值 (1 MB)。
第六: 段空间的管理方式:
AUTO: 只能使用在本地管理的表空间中. 使用LOCAL管理表空间时,数据块中的空闲空间增加或减少后,其新状态都会在位图中反映出来。
位图使 Oracle 管理空闲空间的行为更加自动化,并为管理空闲空间提供了更好的性,但对含有LOB字段的表不能自动管理. MANUAL: 目前已不用,主要是为向后兼容.
第七: 指定块大小. 可以具体指定表空间数据块的大小.
创建例子如下:
1 CREATE TABLESPACE "SAMPLE"
2 LOGGING
3 DATAFILE 'D:\ORACLE\ORADATA\ORA92\SAMPLE.ora' SIZE 5M,
4 'D:\ORACLE\ORADATA\ORA92\dd.ora' SIZE 5M
5 EXTENT MANAGEMENT LOCAL
6 UNIFORM SEGMENT SPACE MANAGEMENT
7* AUTO
SQL> /
表空间已创建。
要删除表空间进,可以
SQL> DROP TABLESPACE SAMPLE; 表空间已丢弃。