Oracle表空间

表空间

物理结构上 : 数据信息存储在数据文件中
逻辑结构上: 数据信息存储在表空间中

一个数据库是由多个表空间构成,表空间和数据文件存在紧密的对应关系
每个表空间是由一个或多个数据文件组成

一个实例对应一个数据库
一个表空间可以对应多个用户, 一个用户只能属于一个表空间
数据库下可以创建多个表空间,一个java项目对应一个表空间

dba_tablespace_name ,存储Oracle数据库中的所有表空间信息

SQL> select tablespace_name, block_size,allocation_type from dba_tablespaces;

TABLESPACE_NAME BLOCK_SIZE ALLOCATIO


SYSTEM 8192 SYSTEM
SYSAUX 8192 SYSTEM
UNDOTBS1 8192 SYSTEM
TEMP 8192 UNIFORM
USERS 8192 SYSTEM
EXAMPLE 8192 SYSTEM

创建基本表空间

在创建表空间的时候: 
  1. 在数据字典和控件文件中添加新建的表空间信息
   2. 操作系统中,创建指定大小的操作系统文件,并作为与表空间对应的数据文件
使用脚本创建
  create [temporary|undo] tablespace tablespace_name
  datafile filepath
  blocksize number k
   autoallocate number [k|m]

SQL> create tablespace hnkj
2 datafile 'g:\DB_file\hnkj.dbf'
3 size 10m
4 autoextend on
5 maxsize unlimited;

表空间已创建。
修改表空间

  1. 为表空间增加新的数据文件
    SQL> alter tablespace hnkj
    2 add datafile 'd:\db_file\hnkj_02.dbf'
    3 size 10m;

     表空间已更改。
    
  2. 查询数据文件信息
    SQL> select file_id,file_name,bytes from dba_data_files;

    FILE_ID FILE_NAME                                               BYTES
    

          4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF                 5242880
          3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF             104857600
          2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF              534773760
          1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF              713031680
          5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF             104857600
          6 D:\DB_FILE\HNKJ.DBF                                  10485760
          7 D:\DB_FILE\HNKJ_02.DBF                               10485760
    

    已选择7行。

  3. 修改数据文件大小
    SQL> alter database datafile 'd:\db_file\hnkj_02.dbf' resize 5m;

    数据库已更改。

    SQL> select file_id,file_name,bytes from dba_data_files;

    FILE_ID FILE_NAME                                               BYTES
    

          4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF                 5242880
          3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF             104857600
          2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF              534773760
          1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF              713031680
          5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF             104857600
          6 D:\DB_FILE\HNKJ.DBF                                  10485760
          7 D:\DB_FILE\HNKJ_02.DBF                                5242880
    

    已选择7行。

  4. 修改数据文件是自动增长
    SQL> alter database datafile 'D:\DB_FILE\HNKJ_02.DBF' autoextend on;

数据库已更改。

SQL> select file_id,file_name,autoextensible from dba_data_files;

   FILE_ID FILE_NAME                                          AUT
---------- -------------------------------------------------- ---
         4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF              YES
         3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF            YES
         2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF             YES
         1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF             YES
         5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF            YES
         6 D:\DB_FILE\HNKJ.DBF                                YES
         7 D:\DB_FILE\HNKJ_02.DBF                             YES

已选择7行。

修改表空间状态
正常状态 : online(在线),read write(读写)
非正常状态 : offline(离线),read only(只读)
移动数据文件
1. 修改表空间状态为offline状态,防止其他用户操作
alter tablespace hnkj offline;
SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
UNDOTBS1                       ONLINE
TEMP                           ONLINE
USERS                          ONLINE
EXAMPLE                        ONLINE
HNKJ                           OFFLINE
  1. 复制数据文件到另一个磁盘

  2. 使用 alter tablespace rename 语句修改数据文件名称

     SQL> alter tablespace hnkj
     2  rename datafile 'd:\db_file\hnkj.dbf'
     3  to
     4  'd:\db\hnkj.dbf';
    

表空间已更改。

  SQL> alter tablespace hnkj
  2  rename datafile 'd:\db_file\hnkj_02.dbf'
  3  to
  4  'd:\db\hnkj_02.dbf';

  表空间已更改。

SQL> select file_id,file_name,bytes from dba_data_files;

   FILE_ID FILE_NAME                                               BYTES
---------- -------------------------------------------------- ----------
         4 D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF                 5242880
         3 D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF             104857600
         2 D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF              534773760
         1 D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF              713031680
         5 D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF             104857600
         6 D:\DB\HNKJ.DBF
         7 D:\DB\HNKJ_02.DBF

已选择7行。
  1. 将表空间的状态修改为onlin
    SQL> alter tablespace hnkj online;
表空间已更改。

SQL> select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                STATUS
------------------------------ ---------
SYSTEM                         ONLINE
SYSAUX                         ONLINE
UNDOTBS1                       ONLINE
TEMP                           ONLINE
USERS                          ONLINE
EXAMPLE                        ONLINE
HNKJ                           ONLINE

已选择7行。

删除表空间

drop tablespace tablespace_name [including contents] | [including contents and datafiles]

including contents : 表示删除表空间,但是保留该表空间的数据文件(即使保留其数据文件,这些文件也无法使用)

including contents and datafiles : 删除表空间,将内容全部和数据文件全部删除

SQL> drop tablespace hnkj including contents and datafiles;

表空间已删除。

filename 字段最多允许占用50个字符
SQL> column file_name format a50

临时表空间

临时表空间主要用来为排序或者汇总等操作提供的临时工作空间
create temporary tablespace temp
tempfile 'page.temp.dbf'
size 10m
autoentend on
next 10m maxsize 200m
临时表空间用于存储临时数据,不能够存储永久性数据

撤销表空间

控制文件和日志文件

控制文件 ,是一个很小的二进制文件, 用于描述数据块物理结构,包括数据库文件和日志文件的信息
1. 数据库名和标识
2. 数据库创建的时间戳
3. 表空间的名称
4. 数据文件和日志文件的位置
5. 当前日志文件的序列号

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\SYSTEM01.DBF
D:\APP\LINNE\ORADATA\ORCL\SYSAUX01.DBF
D:\APP\LINNE\ORADATA\ORCL\UNDOTBS01.DBF
D:\APP\LINNE\ORADATA\ORCL\USERS01.DBF
D:\APP\LINNE\ORADATA\ORCL\EXAMPLE01.DBF

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\REDO03.LOG
D:\APP\LINNE\ORADATA\ORCL\REDO02.LOG
D:\APP\LINNE\ORADATA\ORCL\REDO01.LOG

SQL> select name from v$controlfile
2 ;

NAME
--------------------------------------------------------------------------------
D:\APP\LINNE\ORADATA\ORCL\CONTROL01.CTL
D:\APP\LINNE\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,923评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,154评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,775评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,960评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,976评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,972评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,893评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,709评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,159评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,400评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,552评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,265评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,876评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,528评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,701评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,552评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,451评论 2 352

推荐阅读更多精彩内容