| Gzu521.com我的学习网 |
|
表空间管理得到了重大的改进,这可以归因于一个 sparser system、为用户定义一个默认表空间的支持、新的 sysaux、甚至重命名 您曾经多少次因用户在 system 表空间中创建了非 sys 和 system 的段而伤透脑筋? 在 Oracle9i database 之前,如果在创建用户时没有指定默认表空间,那么它将默认为 system 表空间。如果用户在创建一个段时没有显式地指定一个表空间,那么这个段将在 system 中创建—前提是用户在 system 表空间中拥有配额(要么显式地授予,要么通过系统权限 unlimited tablespace 来授予)。oracle9i 允许 dba 为所有未用显式的临时表空间子句创建的用户指定一个默认的临时表空间,从而减少了这个问题。 在 oracle database 10g 中,您可以类似地为用户指定一个默认表空间。在数据库创建期间,create database 命令可以包含子句 default tablespace 。在创建之后,您可以通过发出以下命令来使一个表空间变成默认表空间:
未用 default tablespace 子句创建的所有用户将以 作为它们的默认表空间。您可以在任何时候通过这个 alter 命令来改变默认表空间,从而允许您在不同的节点上将不同的表空间指定为默认表空间。 重要注意事项:拥有旧的表空间的所有用户的默认表空间都被修改为 ,即使有些表空间是为某些用户显式指定的。例如,假定用户 user1 和 user2 的表空间分别是 ts1 和 ts2 — 它们是在用户创建期间显式指定的。数据库当前的默认表空间是 ts2,但之后,数据库的默认表空间变为 ts1。即使 user2 的默认表空间是显式指定为 ts2 的,它也将变为 ts1。小心这种边界效应! 如果在数据库创建期间没有指定默认表空间,它将默认为 system。但您如何才能知道现有的数据库的默认表空间是哪一个?发出以下查询:
database_properties 视图显示默认表空间之外,还显示一些非常重要的信息 — 例如默认临时表空间、全局数据库名、时区等。 |
责任编辑:gzu521