热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

oracle表空间ManagingTablespace&DataFiles

oracle表空间ManagingTablespace&DataFiles[sql]一、ObjectivesDefinethepurposeoftablespacesanddatafiles(定义的表空间和数据文件的目的)Createtablespaceswww.2cto.comM...

oracle表空间Managing Tablespace & Data Files
 
[sql]
一、Objectives  
Define the purpose of tablespaces and data files(定义的表空间和数据文件的目的)  
Create tablespaces    www.2cto.com  
Manage tablespaces  
Create and manage tablespaces using Oracle Managed Files(OMF)  
Obtain tablespace information (获取表空间信息)  
二、Tablespaces & Data Files  
Oracle stores data logically in tablespaces and physically in data files  
Tablespaces  
--Can belong to only on database at a time  
--  
Data files  
  
三、Storage Hierarchy summary存储层次结构总结  
logical  
Database->Tablespace->segment->extent->oracle data block  
Database->Schema  
  
Physical  
Datafile->OS block  
  
一个Tablespace 对应多个Data file  
一个ORacle data block 对应多个 OS black 是os block的倍数  
  
四、Types of Tablespaces  
1、SYSTEM tablespace  
--Create with the database  
--Contains the data dicationary  
--Contains the SYSTEM undo segment   
2、Non-System tablespace  
--Separate segments  
--Eases space administration 简化空间管理  
--Controls amount of space allocated to a user   
    www.2cto.com  
另外三种划分(permanent,undo,temporary)  
  
五、查看表空间相关信息  
1、查看表空间  
select * from v$tablespace;  
2、查看表空间包含数据  
select file_name,tablespace_name from dba_data_files;  
 
六、Create Tablespaces  
  
 create tablespace paul datafile  
 '/u01/app/oracle/product/10.2.0/oradata/oamis/paul01.dbf' size 20m;  
  
七、两种方式  
dictionary-mangage tablespace   中央集中式  
a locally managed       独立式 (9版本都采用这种方式,但还是兼容以前的方式)  
9i以后如果system 表空间是 locally managed 管理,那新建的都是  
  
将Dictionary-mangage方式转换为locally managed  
  
DBMS_SPACE_ADMIN.TABLESPCAE_MIGRATE_TO_LOCAL('system')(共有7步工作)  
  
八、Undo Tablespace(用于回滚操作)  
1、Used to store undo segments  
2、Cannot contain any other objects  
3、Extents are locally managed  
4、Can only use the DataFile and Extent management clauses  
    www.2cto.com  
create undo tablespace undo1   
datafile '/u01/app/oracle/oradata/undo01.dbf' size 40M;  
  
九、Temporary Tablespace(最好单独指定)  
1、used for sort operation  
2、can be shared by multiple user  
3、cannot contain any permanent objects(不能包含永久信息)  
4、Locally managed extents recommended (推荐使用locally 方式)  
5、  
Create temporary tablespace temp  
tempfile '/u01/app/oracle/oradata/temp01.dbf' size 20M  
extent management local uniform size 4M  
  
1、创建数据库的时候指定Temporary tablespace  
2、创建临时表空间,然后修改  
①、创建  
create temporary tablespace mytemp1  
tempfile '/u01/app/oracle/product/10.2.0/oradata/oamis/mytemp01.dbf' size 100M  
extent management local;  
②、修改  
alter database default temporary tablespace mytemp1;  
  
Temporary Tablespace Restriction  
1、Dropped until after a new default is made available   不能删除  
2、Taken offline 不能离线  
3、Altered to a permanent tablespace 不能改变为永久表空间  
  
十、Read-only Tablespace  
1、Causes a checkpoint   (导致了一个检查点)  
2、Data available only for read operation  
3、Object can be dropped from tablespace  
(System Tablespace 不可能read-only,drop 的时候只是drop 数据字典的东西)  
4、测试上面三点    www.2cto.com  
①、创建表空间  
 create tablespace shanxi datafile  
 '/u01/app/oracle/product/10.2.0/oradata/oamis/shanxi.dbf' size 20m  
 extent management local uniform size 128k;  
②、创建用户,默认表空间是shanxi  
create user fc identified by fc default tablespace shanxi  
③、赋予权限  
grant connect,resource to fc;  
④、登录  
conn fc/fc@oamis;  
⑤、创建表并添加记录 提交  
create table t (id integer,name char(10));  
insert into t values(1,'yuncheng');  
commit;  
⑥、修改表空间只读  
alter tablespace shanxi read only;  
⑦、测试结果   
不能增删改 只能drop  
⑧、恢复表空间write  
alter table shanxi read write;  
  
十一、Taking a Tablespace Offline(使表空间离线)  
表空间状态(read ,write,offline ,online)  
1、Not avaliable for data access  
2、Tablespace that cannot be taken offline  
①、system tablespace    www.2cto.com  
②、Tablespaces whit active undo segment ()  
③、Default temporary tablespace (temporary tablespace 不是默认的可以离线)  
  
2、测试表空间离线  
①、创建表 添加数据  
create table t2 (id integer,name char(10));  
insert into t2 values(1,'aaa');  
insert into t2 values(2,'bbb');  
commit;  
insert into t2 values(3,'ccc');  
②、将表空间shanxi离线(sys用户)  
alter tablespace shanxi offline;(表空间离线)  
这个时候查询不行了  
alter tablespace shanxi online; (表空间在线)  
这个时候可以了  
  
十二、Changing Storage Settingg(改变存储设置)  
1、可以分为三个层次进行设置(数据库级,表空间级,segament级)  
2、Storage setting for locally managed tablespaces cannot be altered;  
  
十三、Resizing a TableSpace(调整表空间的大小)  
A tablespace can be resized by:  
1、Changing the size of a data file(改变数据文件的大小)  
①、Automatically using autoextend    (自动改变,一个步调,一个极限)  
    三种方式实现: create database ,create tablespace,alter tablespace ...add datafile  
Example:  
    Create Tablespace user_data  
    datafile='/u01/oradata/userdata01.dbf' size=200M  
    autoextend on next 10m maxsize 500M;    (可以应用于create database 或者 create tablespace)    www.2cto.com  
修改表空间(增加一个)  
   alter tablespace shanxi add datafile  
   '/u01/app/oracle/product/10.2.0/oradata/oamis/shanxi2.dbf' size 20m  
   autoextend on next 10M maxsize 100M;  
修改表空间(修改原来的)  
alter database datafile '/u01/app/oracle/product/10.2.0/oradata/oamis/shanxi.dbf'   
autoextend on next 10m maxsize 100M;  
  
查询tablespace是否自动增长  
select file_name,tablespace_name,autoextensible from dba_data_files;  
  
②、Manually using Alter Database (手工改变方式)  
  
(从小的往大变,如果从大的往小变则根据数据库文件实际的大小来定)  
Alter database datafile '/u01/app/oracle/product/10.2.0/oradata/oamis/shanxi.dbf' resize 20M;   
  
2、Add a data file using Alter Tablespace    (添加一个新的)  
    (这种方式好,例如一个100G跟10个10g,10个的这个会并发,速度快)  
alter tablespace shanxi add datafile '/u01/app/oracle/product/10.2.0/oradata/oamis/shanxi3.dbf' size 5M;  
  
3、查询表空间的使用情况(这个查询需要点时间)  
 主要是 DBA_DATA_FILES和dba_free_space  
  
 select f.tablespace_name,a.total,u.used,f.free,round((u.used/a.total)*100) "% used", round((f.free/a.total)*100) "% Free"   
  from  
      (select tablespace_name, sum(bytes/(1024*1024)) total   
           from dba_data_files group by tablespace_name) a,  
                (select tablespace_name, round(sum(bytes/(1024*1024))) used   
                      from dba_extents group by tablespace_name) u,  
                           (select tablespace_name, round(sum(bytes/(1024*1024))) free   
                                  from dba_free_space group by tablespace_name) f  
      WHERE a.tablespace_name = f.tablespace_name and a.tablespace_name = u.tablespace_name;   
    www.2cto.com  
临时表空间在DBA_TEMP_FILES中查找  
  
十四、Methods for moving data file(移动数据文件)  
1、Alter Tablespace  
前提  
①、Tablespace must be offline  
②、Targer data file must exist  
步骤  
①、alter tablespace shanxi offline;  
②、离线状态下dba_data_files 中bytes是空的  
③、将shanxi3.dbf更改到上一级  
 alter tablespace shanxi rename  datafile '/u01/app/oracle/product/10.2.0/oradata/oamis/shanxi3.dbf'  
     to '/u01/app/oracle/product/10.2.0/oradata/shanxi3.dbf';     
④、在通过dba_data_files查询发现路径变化了  
  
2、Alter Database  
前提:  
①、database must be mounted   
②、targer data file must exist;  
步骤  
①、关闭数据库  
shutdown immediate;  
②、移动数据文件或拷贝  
mv shanxi3.dbf  oamis/  
③、打开数据库到mount状态  
startup mount;  
④、执行下面命令  
alter database rename file '/u01/app/oracle/product/10.2.0/oradata/shanxi3.dbf' to  
'/u01/app/oracle/product/10.2.0/oradata/oamis/shanxi3.dbf';  
⑤、修改数据库为打开状态  
alter database open;  
⑥、查询dba_data_files文件看路径  
  
十五、Dropping Tablespace  
You cannot drop a tablespace if it:  
-Is the System tablespace  
-Has active segment  
including contents drops the segments  
including contexts and datafile deletes data files  
cascade constraints drops all referential integrity constraints  
  
命令:  
drop tablespace userdata including contents and datafiles  
    www.2cto.com  
删除表空间shanxi及文件  
drop tablespace shanxi including contents and datafiles;  
  
十六、Get Tablespace information  
1、Tablespace information  
--dba_tablespaces  
--v$tablespace  
2、Data file information  
dba_data_files  
v$datafile  
3、Temp file information  
dba_temp_files  
v$tempfile  
 
 
作者 liyangfd

推荐阅读
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 本文详细介绍了如何在 Linux 平台上安装和配置 PostgreSQL 数据库。通过访问官方资源并遵循特定的操作步骤,用户可以在不同发行版(如 Ubuntu 和 Red Hat)上顺利完成 PostgreSQL 的安装。 ... [详细]
  • 如何在PostgreSQL中查看数据表
    本文将指导您使用pgAdmin工具连接到PostgreSQL数据库,并展示如何浏览和查找其中的数据表。通过简单的步骤,您可以轻松访问所需的表结构和数据。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 在使用SQL Server进行动态SQL查询时,如果遇到LIKE语句无法正确返回预期结果的情况,通常是因为参数传递方式不当。本文将详细探讨这一问题,并提供解决方案及相关的技术背景。 ... [详细]
  • 本文介绍如何通过创建替代插入触发器,使对视图的插入操作能够正确更新相关的基本表。涉及的表包括:飞机(Aircraft)、员工(Employee)和认证(Certification)。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • SQLite 动态创建多个表的需求在网络上有不少讨论,但很少有详细的解决方案。本文将介绍如何在 Qt 环境中使用 QString 类轻松实现 SQLite 表的动态创建,并提供详细的步骤和示例代码。 ... [详细]
  • 精选30本C# ASP.NET SQL中文PDF电子书合集
    欢迎订阅我们的技术博客,获取更多关于C#、ASP.NET和SQL的最新资讯和资源。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
author-avatar
伊丽汇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有