Oracle笔记之表空间
Oracle中有一个表空间的概念,一个数据库可以有好几个表空间,表放在表空间下。
1. 创建表空间
创建表空间使用create tablespace命令:
CREATE TABLESPACE foo_tablespace
DATAFILE 'E:/oracle/data/foo_tablespace.dbf'
SIZE 20M
AUTOEXTEND ON NEXT 5M
MAXSIZE 500M;
DATAFILE 'E:/oracle/data/foo_tablespace.dbf' 指定逻辑上的表空间在磁盘上的物理存储文件。
SIZE 20M 指定表空间的初始大小,创建完成后到磁盘上查看:

不管里面有多少数据,初始化的时候会先分配20M。
AUTOEXTEND ON NEXT 5M 当之前分配的那20M空间用完了之后怎么办,这个时候就需要能够动态扩展,这里指定每次扩展的时候扩展5M的空间。
MAXSIZE 500M 动态扩展也总会有有一个上限的吧,这里指定动态扩展最大扩展到多少就不再继续扩展了。
创建完成后查看其相关信息:
SQL> SELECT * FROM dba_data_files;
FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_STATUS
-------------------------------------------------------------------------------- ---------- ------------------------------ ---------- ---------- --------- ------------ -------------- ---------- ---------- ------------ ---------- ----------- -------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF 4 USERS 5242880 640 AVAILABLE 4 YES 3435972198 4194302 160 5177344 632 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF 3 SYSAUX 262144000 32000 AVAILABLE 3 YES 3435972198 4194302 1280 262078464 31992 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF 2 UNDOTBS1 26214400 3200 AVAILABLE 2 YES 3435972198 4194302 640 26148864 3192 ONLINE
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF 1 SYSTEM 503316480 61440 AVAILABLE 1 YES 3435972198 4194302 1280 503250944 61432 SYSTEM
E:\ORACLE\DATA\FOO_TABLESPACE.DBF 5 FOO_TABLESPACE 20971520 2560 AVAILABLE 5 YES 524288000 64000 640 20905984 2552 ONLINE
2. 使用表空间
查看用户的默认表空间:
SQL> SELECT username, default_tablespace FROM dba_users;
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
MGMT_VIEW SYSTEM
SYS SYSTEM
SYSTEM SYSTEM
DBSNMP SYSAUX
SYSMAN SYSAUX
FOO USERS
SCOTT USERS
SAM USERS
TOM USERS
OUTLN SYSTEM
MDSYS SYSAUX
ORDSYS SYSAUX
CTXSYS SYSAUX
ANONYMOUS SYSAUX
EXFSYS SYSAUX
DMSYS SYSAUX
WMSYS SYSAUX
XDB SYSAUX
ORDPLUGINS SYSAUX
SI_INFORMTN_SCHEMA SYSAUX
USERNAME DEFAULT_TABLESPACE
------------------------------ ------------------------------
OLAPSYS SYSAUX
MDDATA USERS
DIP USERS
TSMSYS USERS
24 rows selected
一些特殊用户的默认表空间是SYSTEM,普通用户的默认表空间是USERS。
修改用户的默认表空间(只对一个用户生效):
ALTER USER SCOTT DEFAULT TABLESPACE foo_tablespace;
修改数据库级别的默认表空间(对整个数据库都生效):
ALTER DATABASE DEFAULT TABLESPACE foo_tablespace;
关于表空间:
在Oracle9i中,如果没有用DEFAULT TABLESPACE子句指定用户默认表空间的话其默认表空间就是SYSTEM,而且也不能为数据库指定默认表空间。
在Oracle10g中定义数据库级别的默认表空间是USERS,在创建用户时如果没有指定默认表空间就会使用数据库级别默认表空间。
在创建表的时候指定使用哪一个表空间:
CREATE TABLE t_user(
id INT NOT NULL ,
username VARCHAR2(20) NOT NULL ,
passwd CHAR(32) NOT NULL ,
CONSTRAINT PK_T_USER PRIMARY KEY (id)
) TABLESPACE foo_tablespace;
查看t_user表所属的表空间:
SQL> SELECT TABLE_NAME, TABLESPACE_NAME FROM user_tables WHERE table_name='T_USER';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T_USER FOO_TABLESPACE
对于已经创建了的表可以将其从一个表空间下移动到另一个表空间下:
ALTER TABLE t_user MOVE TABLESPACE users;
再查看,会发现之前的t_user已经到了默认的users表空间下:
SQL> SELECT TABLE_NAME, TABLESPACE_NAME FROM user_tables WHERE table_name='T_USER';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T_USER USERS
3. 重命名表空间
重命名表空间,修改表名类似:
ALTER TABLESPACE foo_tablespace RENAME TO foobar_tablespace;
4. 删除表空间
删掉表空间,连同其内已有的数据对象和磁盘上之前指定的数据文件都一并删掉:
DROP TABLESPACE foo_tablespace INCLUDING CONTENTS AND DATAFILES;
需要注意删除表空间的时候表空间必须不在使用状态。即没有哪个数据库用其作为默认表空间。
.
Oracle笔记之表空间的更多相关文章
- 记一次ORACLE的UNDO表空间爆满分析过程
这篇文章是记录一次ORACLE数据库UNDO表空间爆满的分析过程,主要整理.梳理了同事分析的思路.具体过程如下所示: 早上收到一数据库服务器的UNDO表空间的告警邮件,最早一封是7:55发出的(监控作 ...
- Oracle 10g bigfile表空间、smallfile 表空间
smallfile tablespace设置不同大小的db_block_size时数据文件允许的最大大小 db_block_size=2KB,2KB*4M=8192M 8Gdb_block_ ...
- Oracle 10g创建表空间的完整步骤详解
本文我们主要介绍了Oracle 10g创建表空间的完整步骤,包括表空间的创建与删除.为应用创建用户以及权限的授予等操作,希望能够对您有所帮助. AD:WOT2014:用户标签系统与用户数据化运营培训专 ...
- 如何让Oracle释放undo表空间
如何让Oracle释放undo表空间 最佳答案 在日常的数据库维护和数据库编程中经常会遇到犹豫对大数据量做DML操作后是得ORACLE的undo表空间扩展到十几个G或者几十个G 但是这些表空间 ...
- [Oracle]理解undo表空间
一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中,而多个并行事物可以使用同一个回退段. ...
- oracle用户与表空间操作
oracle系统用户sys,system , sysman, scott 使用system用户登录[username/password][@server][as sysdba|sysoper]eg: ...
- 删除Oracle用户及表空间
--转载自 https://blog.csdn.net/sunny05296/article/details/81126548--以sysdba用户登录,查找需要删除的用户conn / as sysd ...
- Oracle 删除用户和表空间////Oracle创建删除用户、角色、表空间、导入导出、...命令总结/////Oracle数据库创建表空间及为用户指定表空间
Oracle 使用时间长了, 新增了许多user 和tablespace. 需要清理一下 对于单个user和tablespace 来说, 可以使用如下命令来完成. 步骤一: 删除user drop ...
- Oracle笔记 多表查询
Oracle笔记 多表查询 本次预计讲解的知识点 1. 多表查询的操作.限制.笛卡尔积的问题: 2. 统计函数及分组统计的操作: 3. 子查询的操作,并且结合限定查询.数据排序.多表查询.统计查 ...
随机推荐
- paoding rose controller包及文件名命名规则
1.包命名规则:xxx.xxx.controllers(否则扫描不到)
- 如何在Eclipse配置PyDev插件
如何在Eclipse配置PyDev插件 | 浏览:1733 | 更新:2014-04-21 11:36 1 2 3 4 5 分步阅读 Eclipse配置PyDev插件 方法/步骤 从 Eclips ...
- jumpserver的安装部署
废话不说直接安装 1:安装数据库 这里是提前安装,也可以不安装,在安装jumpserver主程序的时候,他会询问你是否安装 yum -y install ncurses-devel cmake ech ...
- Spring事务管理Transaction【转】
Spring提供了许多内置事务管理器实现(原文链接:https://www.cnblogs.com/qiqiweige/p/5000086.html): DataSourceTransactionMa ...
- 【vim】vim常用命令
移动: h 或 向左箭头键(←) #光标向左移劢一个字符 j 或 下箭头键(↓) #光标向下移劢一个字符 k 或 向上箭头键(↑) #光标向上移劢一个字符 l 或 向右箭头键(→) ...
- POJ2374_Fence Obstacle Course
题意是描述是这样的,给你n个围栏,对于每个围栏你必须走到其边上才可以往下跳,现在问你从初始最高位置的n个围栏,到原点,水平走过的路程最少是多少? 其实我可可以这样来考虑问题.由于每次都是从板子的左右两 ...
- 部分NodeJs
一.cnmp的操作: 1.cnmp info jquery查询jquery的版本: 2.cnmp install jquery@1.11.1:安装: 3.cnmp list查询所有下载的内容: 4.c ...
- (转)【Java FTP及FTP服务器搭建】
转至 http://blog.csdn.net/studyvcmfc/article/details/8147052 目录(?)[+] -[Java FTP及FTP服务器搭建] 一:本文采用apach ...
- BZOJ4974 字符串大师(kmp)
显然最短循环节长度=i-next[i],则相当于给定next数组构造字符串.然后按照kmp的过程模拟即可.虽然这看起来是一个染色问题,但是由图的特殊性,如果next=0只要贪心地选最小的就可以了,稍微 ...
- BZOJ3717 PA2014Pakowanie(状压dp)
显然贪心地有尽量先往容量大的背包里放.设f[i]为i子集物品最小占用背包数,g[i]为该情况下最后一个背包的剩余容量,转移显然. #include<iostream> #include&l ...