数据库管理 -- 管理表空间和数据文件

表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,数据管理是以表空间管理的,表空间由一个或多个数据文件组成,而表是存在数据文件中,所以说表是在表空间中的。

数据库的逻辑结构:
oracle中逻辑结构包括表空间、段、区和块,(就像把国家划分为省,省划分为县,县划分为镇,镇划分为乡,乡划分为村)
说明一下数据库由表空间构成,而表空间又是由段构成,而段又是由区构成,而区又是由oracle块构成的这样的一种结构,可以提高数据库的效率。
Oracle有无数表空间,所有表空间构成了数据库,表空间是由数据文件构成的。
为了让大家明白,我们画图说明逻辑关系:看图:

表空间:
表空间用于从逻辑上组织数据库的数据。数据库逻辑上是由一个或是多个表空间组成的。通过表空间可以达到以下作用:
. 控制数据库占用的磁盘空间
. dba可以将不同数据类型部署到不同的位置(索引可以单独放在一个表空间),这样有利于提高i/o性能,同时利于备份和恢复等管理操作。 建立表空间
建立表空间是使用crate tablespace命令完成的,需要注意的是,一般情况下,建立表空间是特权用户或是dba来执行的,如果用其它用户来创建表空间,则用户必须要具有create tablespace的系统权限。
建立数据表空间
在建立数据库后,为便于管理表,最好建立自己的表空间
create tablespace data01 datafile 'd:\test\dada01.dbf' size 20m uniform size 128k;
说明:执行完上述命令后,会建立名称为data01的表空间,datafile 为数据文件,并为该表空间建立名称为data01.dbf的数据文件,将数据文件分配给表空间,区的大小为128k
使用数据表空间
create table mypart(deptno number(), dname varchar2(), loc varchar2()) tablespace data01; 改变表空间的状态
当建立表空间时,表空间处于联机的(online)状态,此时该表空间是可以访问的,并且该表空间是可以读写的,即可以查询该表空间的数据,而且还可以在表空间执行各种语句。但是在进行系统维护或是数据维护时,可能需要改变表空间的状态。一般情况下,由特权用户或是dba来操作。
. 使表空间脱机(表空间不可用)
alter tablespace 表空间名 offline;
. 使表空间联机
alter tablespace 表空间名 online;
. 只读表空间
当建立表空间时,表空间可以读写,如果不希望在该表空间上执行update,delete,insert操作,那么可以将表空间修改为只读
alter tablespace 表空间名 read only;
(修改为可写是 alter tablespace 表空间名 read write;) 改变表空间的状态
我们给大家举一个实例,说明只读特性:
. 知道表空间名,显示该表空间包括的所有表
select * from all_tables where tablespace_name=’表空间名’;
. 知道表名,查看该表属于那个表空间
select tablespace_name, table_name from user_tables where table_name=’emp’;
通过2.我们可以知道scott.emp是在system这个表空间上,现在我们可以将system改为只读的但是我们不会成功,因为system是系统表空间,如果是普通表空间,那么我们就可以将其设为只读的,给大家做一个演示,可以加强理解。 . . 使表空间可读写
alter tablespace 表空间名 read write; 删除表空间
一般情况下,由特权用户或是dba来操作,如果是其它用户操作,那么要求用户具有drop tablespace系统权限。
drop tablespace ‘表空间’ including contents and datafiles;
说明:including contents表示删除表空间时,删除该空间的所有数据库对象,而datafiles表示将数据库文件也删除。 扩展表空间
表空间是由数据文件组成的,表空间的大小实际上就是数据文件相加后的大小。那么我们可以想象,假定表employee存放到data01表空间上,初始大小就是2M,当数据满2M空间后,如果在向employee表插入数据,这样就会显示空间不足的错误。
案例说明:
. 建立一个表空间 sp01
. 在该表空间上建立一个普通表 mydment 其结构和dept一样
. 向该表中加入数据 insert into mydment select * from dept;
. 当一定时候就会出现无法扩展的问题,怎么办?
. 就扩展该表空间,为其增加更多的存储空间。有三种方法:
. 增加数据文件 (原先有3个文件,现在又加进去一个文件)
SQL> alter tablespace sp01 add datafile ‘d:\test\sp01.dbf’ size 20m;
. 增加数据文件的大小
SQL> alter tablespace 表空间名 ‘d:\test\sp01.dbf’ resize 20m;
这里需要注意的是数据文件的大小不要超过500m。
. 设置文件的自动增长。
SQL> alter tablespace 表空间名 ‘d:\test\sp01.dbf’ autoextend on next 10m maxsize 500m; 移动数据文件
有时,如果你的数据文件所在的磁盘损坏时,该数据文件将不能再使用,为了能够重新使用,需要将这些文件的副本移动到其它的磁盘,然后恢复。
下面以移动数据文件sp01.dbf为例来说明:
. 确定数据文件所在的表空间
select tablespace_name from dba_data_files where file_name=’d:\test\sp01.dbf’;
. 使表空间脱机
确保数据文件的一致性,将表空间转变为offline的状态。
alter tablespace sp01(表空间名) offline;
. 使用命令移动数据文件到指定的目标位置
host move d:\test\sp01.dbf c:\test\sp01.dbf
. 执行alter tablespace命令
在物理上移动了数据后,还必须执行alter tablespace命令对数据库文件进行逻辑修改,使得原先表空间的指向从d:\test\sp01.dbf变到c:\test\sp01.dbf:
alter tablespace sp01 rename datafile ‘d:\test\sp01.dbf’ to ‘c:\test\sp01.dbf’;
. 使得表空间联机
在移动了数据文件后,为了使用户可以访问该表空间,必须将其转变为online状态。
alter tablespace sp01(表空间名) online; 显示表空间信息
查询数据字典视图dba_tablespaces,显示表空间的信息:
select tablespace_name from  dba_tablespaces;
显示表空间所包含的数据文件
查询数据字典视图dba_data_files,可显示表空间所包含的数据文件,如下:
select file_name, bytes from dba_data_files where tablespce_name=’表空间’; 表空间小结
. 了解表空间和数据文件的作用
. 掌握常用表空间,undo表空间和临时表空间的建立方法
. 了解表空间的各个状态(online, offline, read write, read only)的作用,及如何改变表空间的状态的方法。
. 了解移动数据文件的原因,及使用alter tablespace 和alter datatable命令移动数据文件的方法。 其它表空间
除了最常用的数据表空间外,还有其它类型表空间:
. 索引表空间
. undo表空间
. 临时表空间
. 非标准块的表空间
这几种表空间,大家伙可以自己参考书籍研究,这里我就不讲。
其它说明
关于表空间的组成部分 段/区/块,我们在后面给大家讲解。

oracle8的更多相关文章

  1. ORACLE8.07客户端配置指南

    —本地机器网络连通配置 1.点击“开始”-〉“程序”菜单. 2.选择“Oracle-OracleHome81”-〉“Net Administrator”->“Net8 Configuration ...

  2. ORA 各种oraclesql错误

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出 ...

  3. Oracle 内置sql函数大全

    F.1字符函数--返回字符值 这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据 ...

  4. [转载】——故障排除:Shared Pool优化和Library Cache Latch冲突优化 (文档 ID 1523934.1)

    原文链接:https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrlstate=23w4l35u5_4&id=152393 ...

  5. Oracle常用命令大全(很有用,做笔记)

    一.ORACLE的启动和关闭 1.在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a.启动ORACLE系统 oracle>svrmgrl ...

  6. Java与各种数据库连接代码

    6.MySQL数据库Class.forName("org.gjt.mm.mysql.Driver").newInstance();String url ="jdbc:my ...

  7. Oracle的tnsnames.ora配置(PLSQL Developer)

    首先打开tnsnames.ora的存放目录,一般为D:\app\Administrator\product\11.2.0\client_1\network\admin,就看安装具体位置了. 步骤阅读 ...

  8. oracle函数大全(转载)

    F.1字符函数--返回字符值 这些函数全都接收的是字符族类型的参数(CHR除外)并且返回字符值.除了特别说明的之外,这些函数大部分返回VARCHAR2类型的数值.字符函数的返回类型所受的限制和基本数据 ...

  9. Oracle常用SQL查询(2)

    三.查看数据库的SQL 1 .查看表空间的名称及大小 select  t.tablespace_name,  round ( sum (bytes / ( 1024 * 1024 )), 0 ) ts ...

随机推荐

  1. JS简单仿QQ聊天工具的制作

    刚接触JS,对其充满了好奇,利用刚学到的一点知识,写了一个简单的仿QQ聊天的东西,其中还有很多的不足之处,有待慢慢提高. 功能:1.在输入框中输入内容,点击发送,即可在上方显示所输入内容. 2.点击‘ ...

  2. bzoj 2806: [Ctsc2012]Cheat 后缀自动机DP

    2806: [Ctsc2012]Cheat Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 583  Solved: 330[Submit][Statu ...

  3. maven 根据不同的环境打war包-->资源文件的处理方式

    发现犯的错误: 1. 指定了testResource 文件夹与resource 为同一个文件夹.导致不论在resource 里面如何过滤文件,都不起作用.资源文件本来就是共享的.不必这样指定. 2. ...

  4. 【网络流24题】No.9 方格取数问题 (二分图点权最大独立集)

    [题意] 在一个有 m*n 个方格的棋盘中, 每个方格中有一个正整数. 现要从方格中取数, 使任意 2 个数所在方格没有公共边,且取出的数的总和最大.试设计一个满足要求的取数算法. 输入文件示例inp ...

  5. 17.2.2.1 The Slave Relay Log Slave中继日志

    17.2.2.1 The Slave Relay Log Slave中继日志 中继日志, 像binary log,有一组文件组成包含events 描述数据库的修改,和一个index文件包含所有使用过的 ...

  6. ProcessStartInfo.UseShellExecute 属性

    获取或设置一个值,该值指示是否使用操作系统外壳程序启动进程. 命名空间:System.Diagnostics程序集:System(在 system.dll 中) 语法     C# C++ VB   ...

  7. Learning WCF Chapter2 WCF Contracts and Serialization

    So far I’ve talked about the standards behind it all,but in fact WCF hides most of this from the dev ...

  8. (转载)PHP数组传递是值传递而非引用传递

    (转载)http://www.fengfly.com/plus/view-212127-1.html 在调用函数时通过将PHP数组作为实参赋给形参,在函数中修改,并不会影响到数组本身. 说明此过程中的 ...

  9. PCB覆铜时的安全距离

    覆铜的安全间距(clearance)一般是布线的安全间距的二倍.但是在没有覆铜之前,为布线而设置好了布线的安全间距,那么在随后的覆铜过程中,覆铜的安全间距也会默认是布线的安全距离.这样与预期的结果不一 ...

  10. Bzoj 4034: [HAOI2015]T2 树链剖分,子树问题,dfs序

    4034: [HAOI2015]T2 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1841  Solved: 598[Submit][Status] ...