Oracle 默认表空间(default permanent tablespace) 说明

2024-04-04 02:18

本文主要是介绍Oracle 默认表空间(default permanent tablespace) 说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

一.默认表空间说明

在oracle9i中,如果未用 DEFAULT TABLESPACE 子句创建的所有用户将以SYSTEM表空间作为它们的默认表空间。同时也不能为数据库指定一个默认的表空间。

在Oracle 10g中定义了数据库级别的默认表空间USERS,在创建用户时没有定义默认表空间,就会把数据库级别的默认表空间当作自己的默认表空间。

在10g以前,是把系统表空间(SYSTEMS)当作默认表空间。这样很不合理。

 

            可以使用如下命令查看默认表空间:

/* Formatted on 2011/12/19 15:57:48(QP5 v5.185.11230.41888) */
SELECT PROPERTY_VALUEFROM database_propertiesWHERE PROPERTY_NAME = 'DEFAULT_PERMANENT_TABLESPACE'

可以使用如下命令修改默认表空间:

ALTER DATABASE DEFAULT TABLESPACE users;

 

这里有几个注意事项:

1.     如果我们在创建用户时指定了默认表空间,那么在修改默认表空间后,之前用户的默认表空间也会发生改变。

2.     如果我们在创建用户时没有指定用户表空间,那么默认也会使用DB的默认表空间,这时候如果我们修改了DB的默认表空间,用户的表空间也会发生改变。

3.     如果我们在创建用户指定用户的表空间是其他的表空间,那么我们修改DB的默认表空间不会影响用户的表空间。

4.     DB的默认表空间不能删除,除非将默认表空间指向其他表空间之后才可以删除。

5.     如果用户的默认表空间指向其他的表空间,当这个表空间被drop 之后,用户的默认表空间会自动指向DB的默认表空间。

 

二.示例

2.1查看DB 版本:

SQL> select * from v$version;

 

BANNER

-----------------------------------------------------------------------

Oracle Database 11g Enterprise EditionRelease 11.2.0.1.0 - Production

PL/SQL Release 11.2.0.1.0 - Production

CORE   11.2.0.1.0      Production

TNS for 32-bit Windows: Version 11.2.0.1.0- Production

NLSRTL Version 11.2.0.1.0 - Production

 

2.2查看当前的默认表空间

SQL> SELECT PROPERTY_VALUE

 2    FROM database_properties

 3   WHERE PROPERTY_NAME ='DEFAULT_PERMANENT_TABLESPACE';

 

PROPERTY_VALUE

-------------------------------------------------------------

USERS

 

2.3 创建用户,不指定默认表空间

SQL> create user dave1 identified bydave1;

User created.

SQL> select default_tablespace from dba_users where username ='DAVE1';

 

DEFAULT_TABLESPACE

------------------------------

USERS

--默认表空间为users。

 

2.4 创建用户指定默认表空间为DB的默认表空间

SQL> create user dave2 identified by dave2 default tablespace users;

User created.

 

SQL> select default_tablespace fromdba_users where username ='DAVE2';

DEFAULT_TABLESPACE

------------------------------

USERS

 

 

2.5 创建用户指定的默认表空间为其他表空间

 --创建表空间:

SQL> create tablespace dave3 datafile'D:\APP\ADMINISTRATOR\ORADATA\NEWCCS\dave3.dbf' size 10M;

Tablespace created.

 

--创建用户:

SQL> create user dave3 identified by dave3 default tablespace dave3;

User created.

 

SQL> select default_tablespace from dba_users where username ='DAVE3';

DEFAULT_TABLESPACE

------------------------------

DAVE3

 

2.6 修改DB的默认表空间

SQL> ALTER DATABASE DEFAULT TABLESPACEdave3;

Database altered.

 

2.7 查看之前创建用户的表空间

SQL> select default_tablespace from dba_users where username ='DAVE3';

DEFAULT_TABLESPACE

------------------------------

DAVE3

 

SQL> select default_tablespace fromdba_users where username ='DAVE2';

DEFAULT_TABLESPACE

------------------------------

DAVE3

 

SQL> select default_tablespace fromdba_users where username ='DAVE1';

DEFAULT_TABLESPACE

------------------------------

DAVE3

--注意这里Dave1,dave2用户的默认表空间都变成了dave3.

 

 

2.8 DB的默认表空间不能删除

--现在dave3是我们的默认表空间

SQL> SELECT PROPERTY_VALUE

 2    FROM database_properties

 3   WHERE PROPERTY_NAME ='DEFAULT_PERMANENT_TABLESPACE'

 4  ;

 

PROPERTY_VALUE

----------------------------------------------------------

DAVE3

 

--drop dave3 看看:

SQL> drop tablespace dave3 includingcontents and datafiles;

drop tablespace dave3 including contentsand datafiles

*

ERROR at line 1:

ORA-12919: Can not drop the defaultpermanent tablespace

这里报错ORA-12919.

 

我们把默认表空间改成USERS,在测试:

SQL> ALTER DATABASE DEFAULT TABLESPACEUSERS;

Database altered.

 

SQL> drop tablespace dave3 including contents and datafiles;

Tablespace dropped.

 

Dave3表空间成功drop。 注意,我们的dave3用户的表空间之间是指向dave3的,现在我们把dave3表空间drop了,我们看一下dave3 现在默认表空间:

 

SQL> select default_tablespace from dba_users where username ='DAVE3';

DEFAULT_TABLESPACE

------------------------------

USERS

--这里自动变成了我们的DB 默认的表空间。

 

 

 

 

 

 

-------------------------------------------------------------------------------------------------------

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!

QQ:492913789

Email:ahdba@qq.com

Blog:  http://www.cndba.cn/dave

Weibo:    http://weibo.com/tianlesoftware

Twitter:  http://twitter.com/tianlesoftware

Facebook: http://www.facebook.com/tianlesoftware

Linkedin: http://cn.linkedin.com/in/tianlesoftware


 

-------加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请----

DBA1 群:62697716(满);   DBA2 群:62697977(满)  DBA3 群:62697850(满)  

DBA 超级群:63306533(满);  DBA4 群:83829929   DBA5群: 142216823

DBA6 群:158654907    DBA7 群:172855474  

这篇关于Oracle 默认表空间(default permanent tablespace) 说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874561

相关文章

PyCharm如何设置新建文件默认为LF换行符

《PyCharm如何设置新建文件默认为LF换行符》:本文主要介绍PyCharm如何设置新建文件默认为LF换行符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm设置新建文件默认为LF换行符设置换行符修改换行符总结PyCharm设置新建文件默认为LF

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Oracle存储过程里操作BLOB的字节数据的办法

《Oracle存储过程里操作BLOB的字节数据的办法》该篇文章介绍了如何在Oracle存储过程中操作BLOB的字节数据,作者研究了如何获取BLOB的字节长度、如何使用DBMS_LOB包进行BLOB操作... 目录一、缘由二、办法2.1 基本操作2.2 DBMS_LOB包2.3 字节级操作与RAW数据类型2.

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.