Oracle数据库中灵活管理用户表空间配额
在我们为微软的NTFS分区格式中的用户磁盘配额鼓掌的时候,Oracle数据库中也已经实现了用户磁盘配额的技术。可以借助表空间,来对用户进行磁盘配额管理。利用表空间的用户磁盘配额,可以实现很多功能。 如可以利用用户磁盘配额,来管理用户创建数据库对象的能力。我们都知道,若用户想要在某个表空间中创建方案对象的话,必须同时满足两个对象。一是用户具有数据库系统中CREATE TABLE等相关的权限;二是在这个方案对象使用的表空间中具有配额。因为这两个条件必须同时满足,用户才能够成功的建立对象。所以,若我们可以不给用户某个表空间的配额,如此的话,就可以限制用户的相关操作。
另外,我们也可以利用磁盘配额来对用户进行数据大小的限制。因为有时候我们可能在同一台数据器重会运行多个应用服务。如笔者以前在同一台服务器里同时运行邮箱与Oracle数据库系统。为了让减少这个两个系统对硬盘空间的过渡应用,所以,有必要对他们进行磁盘配额的限定。故,如用数据库管理员需要将资源限制作为自己数据库安全策略的一部分的话,就可以考虑为每个用户设置表空间配额。
总之,笔者认为,表空间配额是一个很不错的辅助管理工具。笔者在这方面管理上,稍有心得,跟有识之士,讨论讨论。
一、给用户分配表空间。
在Oracle数据库中,对于用户的磁盘配额是通过表空间来实现的。给某个用户分配了多少的表空间,这个用户就有多少的磁盘配额。所以,对于用户进行磁盘配额的管理,就是对用户进行表空间的限制。
在创建用户的时候,若没有关联表空间,则其一般情况下,就属于默认的表空间。而其拥有表空间的大小,则是根据其所属角色的不同而有所区别。如其属于resource组的话,则其表空间是没有大小限制的。
一般情况下,若数据库管理员需要对表空间进行磁盘配额管理的话,则笔者建议,在用户建立的时候,为用户指定表空间,并设置表空间的大小。如我们可以利用如下这条命令配置用户的磁盘空间配额:ALTER USER user_name QUOTA ** ON tablespace 。其中参数User_name表示用户名,而参数Tablespace表示用户所属的表空间。若我们参数设置为UNLIMITED的话,表示这个用户的表空间没有限制,直到所有的空间用完为止。
所以,在一般情况下,两种情形下的用户具有无限制的磁盘配额。一是这个用户属于resource这个角色,因为这个角色默认情况下,其是没有磁盘限额限制的。二是在用户建立的时候,手工利用UNLIMITED指定该用户不具有磁盘限额。不过,为了提高Oracle数据库的安全性与灵活性,笔者是大力建议要对用户进行磁盘配额管理。
创建错误:
若在对用户进行磁盘限额后,数据库管理员最容易犯的错误,就是忘记给用户分配磁盘限额,导致对象创建失败。如笔者第一次接触Oracle数据库的时候,就犯过这方面的错误。我新建了一个用户,并且赋予了其相关的权限。可是,在建表的时候,系统提示错误信息,说“表空间权限不足”。笔者查了好久,最后查询表空间用户确认配额的时候,发现该用户的缺省配额没有分配。利用命令更改了默认配额之后,就可以创建表了。
二、如何拓展用户的表空间?
若对用户进行磁盘限额之后,有时候数据库管理员会发现用户的磁盘空间不足了,需要进行拓展。此时该如何处理呢?
若采用自动分配表空间大小的话,则Oracle数据库会自动调整表空间的大小,以满足用户的需要。但是,现在由于采用了磁盘配额管理,所以数据库管理员不得不进行手工的调整。不过在谈这个话题之前,数据库管理员有必要了解一下表空间区的分配方式。
若数据库管理员能够预测到表空间中存放的大部分对象都需要使用相同大小的区的话,那么就可以采用Uinform区的分配方式。采取这种方式的话,Oracle数据库将为这个表空间中的所有数据库对象分配数据库管理员指定大小的区。这种方式的优点是不会产生磁盘碎片,可以提高磁盘空间的利用率与数据库的性能。
若数据库管理员能够预测到表空间中存放的大部分对象需要使用的区的大小是不同的话(往往都是不同的),则需要采用AUTOALLOCAT的区分配方式。这种分配方式下,将由Oracle数据库自动为表空间的对象分配一定大小的区,而不是有用户指定。这种方式的优点就是可以节省数据库管理员的工作量。缺点是会产生比较多的磁盘碎片。不过总的来说,比起数据库管理员的工作量来说,这点磁盘碎片还是容易接受的。笔者在创建表空间的时候,基本上都是采用这个方式的。
故在拓展表空间的时候,其采用的是原先表空间的分配方式。也就是说,原先表空间采用的是什么区分配方式,则拓展空间也采用原先的分配方式。则是拓展表空间时必须要注意的问题。
当表空间不足,需要进行拓展的时候,笔者常用的方法是通过增加数据文件的方式来实现的。因为表空间是其相关数据文件大小的总和。所以,为表空间增加新的数据文件,是最常用的增加表空间的方式。
如当数据库管理员发现TEST1 表空间大小不足的时候,我们可以利用命令ALTER TABLESPACE TEST1 ADD DATEFILE ‘数据文件存放路径’ SIZE 500M。我们可以利用这个命令增加表空间的大小,然后再增加用户的磁盘配额。如此,就可以对用户的表空间进行拓展。
笔者建议:
虽然数据库管理员可以通过图形界面的方式对Oracle数据库进行类似的管理。但是,若在数据库管理专家面前,采用图形化的管理界面的话,则这个数据库管理员可能会被他们认为是菜鸟。这主要是因为图形管理化的界面效率并不是很高。一方面要从众多的菜单栏中找到相关的功能,会浪费数据库管理员一定的时间;而且,其语句执行的效率,也比命令行要低。故,笔者建议,Oralce数据库管理员还是需要学会命令行的管理方式。
三、磁盘配额管理的几个建议.
1、当在创建表空间对象的时候,出现“超出表空间的空间限量”错误提示的处理思路。这种情况一般是由很多种情况所造成的。笔者在遇到这种问题的时候,一般的处理思路是,先查看该用户的磁盘配额,看其是否满足空间上的需求。若该用户没有磁盘配额管理的话,或者磁盘配额大小符合既定需求的话,则建议查看表空间的大小,看是否是因为表空间不足所造成的。若前两步还是不能够解决问题的,则看看表空间的管理方式。若是数据字典管理模式的话,则把他改为本地管理模式,一般就可以解决问题了。
2、若数据库中存放着不同办事处或者不同分公司的数据时,笔者建议对Oracle数据库进行磁盘限额。这可以有效的防止因为硬盘空间的不足导致整个数据库的崩溃。而若对用户进行磁盘配额管理的话,那最多只是某个办事处(某个用户)数据库操作出现故障而已。这也是提高Oracle数据库可用性的一个有效手段。
分享到:
相关推荐
在Oracle数据库中,表空间迁移是一项重要的管理任务,特别是在数据管理、性能优化或系统扩展时。Oracle数据库提供了多种方法来实现在同平台或跨平台之间的表空间迁移。本文主要介绍了利用Oracle的数据导出工具Export...
- 它们不仅控制数据库占用的磁盘空间,还管理用户表空间配额,通过数据流向管理提高I/O性能,并作为备份和恢复的操作单位。 - 表空间分为系统表空间和非系统表空间,前者如SYSTEM和SYSAUX,存储Oracle的核心系统...
3. 表空间管理:DBA 使用表空间进行数据库对象的空间分配、设置空间配额、控制数据可用性、备份和恢复数据等操作。 Oracle 数据库是一个功能强大且灵活的数据库管理系统,它具有广泛的应用前景。本文对 Oracle ...
### Oracle表空间详解 ...随着企业对数据处理能力的需求日益增长,合理规划和管理表空间已经成为Oracle数据库管理中的一个关键环节。因此,作为Oracle数据库管理员,深入了解并掌握表空间的相关知识是非常必要的。
- **表空间配额**:可以为用户或角色设置表空间配额,限制他们在特定表空间中使用的存储量。 - **表空间的扩展和收缩**:根据需要,可以通过增加或减少数据文件的数量和大小来扩展或收缩表空间。 5. **表空间的...
总结起来,Oracle数据库的安全性涉及到用户管理、审计和闪回等多个方面。有效的安全管理不仅能保护数据免受未经授权的访问,还能确保业务连续性和法规遵从性。企业应根据自身需求,合理配置和利用这些安全特性,以...
之后,为用户“ouyang”分配无限制的表空间配额。 5. **数据库设计**: 创建了学生信息表,包含学号(主键)、姓名、性别、出生年月和专业名等字段。 在实际应用中,这样的学生管理系统可以帮助学校更有效地管理...
Oracle数据库的用户角色及权限管理是数据库管理员(DBA)日常工作中不可或缺的部分,它涉及到数据库的安全性和访问控制。本文将详细阐述Oracle中的用户、角色和权限的概念以及如何进行管理。 首先,Oracle数据库中...
Oracle数据库的账户管理和权限设置是确保数据库安全的关键环节。Oracle提供了强大的安全机制...通过精细的用户管理、权限控制和角色机制,Oracle提供了一个强大且灵活的安全框架,满足各种复杂的企业级数据库应用场景。
学习Oracle数据库安全管理,需要掌握用户创建、修改和删除的语法,理解各种权限和角色的概念,熟悉如何设置和调整表空间配额,以及如何利用审计功能监控数据库活动。同时,了解如何通过Oracle企业管理器(OEM)进行...
本文将深入探讨 Oracle 数据库中的本地管理表空间(Locally Managed Tablespace,简称 LMT)的概念、优势及其内部工作原理。LMT 是 Oracle 提供的一种高级表空间管理方式,它在数据文件级别管理存储空间,通过位图...
Oracle数据库安全管理是确保数据库安全的关键环节,特别是在Oracle9i版本中,它提供了多种机制来保护数据免受未经授权的访问、更改或破坏。本章主要涵盖了以下几个核心知识点: 1. **Oracle9i的安全保障机制**: -...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,以其强大的功能和灵活性著称。数据库的备份与恢复策略是保障数据安全的重要环节,尤其是在面临病毒攻击、黑客入侵或硬件故障等潜在风险时,有效的备份策略...
**知识点**: 在Oracle数据库中,有时我们需要了解一个特定对象(如表、视图等)与其他对象之间的依赖关系。这种依赖可以是直接的(例如,一个表通过外键引用另一个表),也可以是间接的(例如,一个存储过程可能调用...
### Oracle数据库中导入指定表空间的方法 在Oracle数据库管理中,有时我们需要将特定的数据或结构迁移到新的环境或恢复丢失的数据。其中一种常见的操作就是导入指定的表空间。本篇文章将详细探讨如何在Oracle环境中...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,其性能优化对于企业的数据处理效率至关重要。本研究将深入探讨Oracle数据库性能优化方案,旨在提升数据处理速度,减少资源消耗,提高系统响应时间,并...
- 表空间设置和定额:用户可以配置默认表空间、临时表空间,并设定表空间使用配额来控制存储使用。 - 用户资源限制和环境文件:通过环境文件管理资源限制,防止用户过度消耗系统资源。 3. **权限和角色** - 权限...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统之一,其在数据存储和管理方面的功能强大,其中表空间(Tablespace)是Oracle数据库中的一个重要概念。表空间是Oracle存储数据的逻辑单位,它由一个或多...
在本篇作业中,我们将深入探讨Oracle数据库系统管理和维护的相关知识,主要涵盖SQL语句的编写、表的创建与约束、用户及权限管理、索引与视图的创建以及数据库安全策略的设计。以下是对每个任务的详细解释: 1. 创建...