知识大全 改善的表空间管理

Posted 空间

篇首语:古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 改善的表空间管理相关的知识,希望对你有一定的参考价值。

Oracle 10G 最佳20位新特性:改善的表空间管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  表空间管理得到了重大的改进 这可以归因于一个 sparser SYSTEM 为用户定义一个默认表空间的支持 新的 SYSAUX 甚至重命名     您曾经多少次因用户在 SYSTEM 表空间中创建了非 SYS 和 SYSTEM 的段而伤透脑筋?     在 Oracle i Database 之前 如果在创建用户时没有指定默认表空间 那么它将默认为 SYSTEM 表空间 如果用户在创建一个段时没有显式地指定一个表空间 那么这个段将在 SYSTEM 中创建—前提是用户在 SYSTEM 表空间中拥有配额(要么显式地授予 要么通过系统权限 UNLIMITED TABLESPACE 来授予) Oracle i 允许 DBA 为所有未用显式的临时表空间子句创建的用户指定一个默认的临时表空间 从而减少了这个问题     在 Oracle Database g 中 您可以类似地为用户指定一个默认表空间 在数据库创建期间 CREATE DATABASE 命令可以包含子句 DEFAULT TABLESPACE 在创建之后 您可以通过发出以下命令来使一个表空间变成默认表空间     ALTER DATABASE DEFAULT TABLESPACE <tsname>;    未用 DEFAULT TABLESPACE 子句创建的所有用户将以 作为它们的默认表空间 您可以在任何时候通过这个 ALTER 命令来改变默认表空间 从而允许您在不同的节点上将不同的表空间指定为默认表空间     重要注意事项 拥有旧的表空间的所有用户的默认表空间都被修改为 即使有些表空间是为某些用户显式指定的 例如 假定用户 USER 和 USER 的表空间分别是 TS 和 TS — 它们是在用户创建期间显式指定的 数据库当前的默认表空间是 TS 但之后 数据库的默认表空间变为 TS 即使 USER 的默认表空间是显式指定为 TS 的 它也将变为 TS 小心这种边界效应!     如果在数据库创建期间没有指定默认表空间 它将默认为 SYSTEM 但您如何才能知道现有的数据库的默认表空间是哪一个?发出以下查询     SELECT PROPERTY_VALUE  FROM DATABASE_PROPERTIES  WHERE PROPERTY_NAME = DEFAULT_PERMANENT_TABLESPACE ;    DATABASE_PROPERTIES 视图显示默认表空间之外 还显示一些非常重要的信息 — 例如默认临时表空间 全局数据库名 时区等      非必要模式的默认表空间   几种模式(如智能代理用户 DBSNMP 数据挖掘用户 ODM)与用户操作不直接相关 但对数据库完整性仍很重要 这些模式中的一些曾经用 SYSTEM 作为它们的默认表空间 — 这是在 SYSTEM 表空间内对象增殖的又一个原因     Oracle Database g 引进了一个新的称为 SYSAUX 的表空间 它用来保存这些模式的对象 这个表空间是在数据库创建期间自动创建的 并在本地进行管理 唯一允许修改的是数据文件的名称     这种方法在 SYSTEM 损坏需要完整的数据库恢复时 为恢复提供支持 SYSAUX 中的对象可以被恢复为任意正常的用户对象 同时数据库本身保持运行     但如果您想将 SYSAUX 中的这些模式中的一些转移到一个不同的表空间中时 该怎么办?例如 考虑 LogMiner 使用的对象 这些对象的大小经常增长 直到最终填满表空间 出于可管理性的原因 您可能考虑将它们转移到它们自己的表空间中 但实现这一目的的最好的方法是什么?     作为一个数据库管理员 了解转移这些特殊对象的正确过程对您而言是很重要的 幸运的是 Oracle Database g 提供了一个新的视图使要凭猜测来做的工作形象化 这个视图 V$SYSAUX_OCCUPANTS 列出了表空间 SYSAUX 中的模式的名称 它们的说明 当前使用的空间 以及如何转移它们 (参见表 )     注意 LogMiner 如何被清楚地显示为占用 KB 的空间 它归模式 SYSTEM 所有 而要转移对象 您需要执行打包的过程 SYS DBMS_LOGMNR_D SET_TABLESPACE 不过 对于 STATSPACK 对象 这个视图推荐使用导入/导出方法 而对于流 没有转移过程 — 因而您不能容易地将它们从 SYSAUX 表空间中转移出来 列 MOVE_PROCEDURE 默认显示 SYSAUX 中存在的几乎所有工具的正确的转移过程 也可以逆向使用转移过程来使对象回到 SYSAUX 表空间中      重命名一个表空间  在数据仓库环境中(典型地 对于数据中心体系结构) 在数据库之间传输表空间是很常见的 但源数据库和目标数据库必须不存在拥有相同名称的表空间 如果存在两个拥有相同名称的表空间 则目标表空间中的段必须转移到一个不同的表空间中 然后重新创建这个表空间— 这个任务说起来容易做起来难     Oracle Database g 提供了一个方便的解决方案 您可以用以下命令来简单地重命名一个现有的表空间(SYSTEM 和 SYSAUX 除外) — 无论是永久表空间还是临时表空间     ALTER TABLESPACE <oldname> RENAME TO <newname>;    这个功能还将应用在存档过程中 假定您有一个按范围分区的表 用于记录销售历史数据 每个月的这个分区位于按这个月份命名的一个表空间中 — 例如 月份的分区命名为 JAN 并位于一个名称为 JAN 的表空间中 这样您就拥有了一个将信息保留 个月的策略 在 年 月 您将能够存档 年 月的数据 大致的操作流程类似于以下操作     利用 ALTER TABLE EXCHANGE PARTITION 从分区 JAN 中创建一个独立的表 JAN   将表空间重命名为 JAN   为表空间 JAN 创建一个可传输表空间集   将表空间 JAN 重新命名为 JAN   将空的分区交换回表中     第 和 步很简单 并且不会过度地消耗资源(如重做和撤消空间) 第 步只是拷贝文件并只为 JAN 输出数据字典信息 这也是个非常轻松的过程 如果您需要恢复之前存档的分区 这个过程也非常简单 您只需要将相同的过程反过来就行了     Oracle Database g 在处理这些重命名的方式上相当智能化 如果您重命名作为 UNDO 或默认临时表空间的表空间 这可能产生混淆 但数据库将自动调整必要的记录来反映这种变化 例如 将默认表空间的名称从 USERS 修改为 USER_DATA 将自动修改视图 DATABASE_PROPERTIES 在修改之前 查询     select property_value from database_properties  where property_name = DEFAULT_PERMANENT_TABLESPACE ;    返回 USERS 在运行下面的语句之后     alter tablespace users rename to user_data;    上述查询返回 USER_DATA 因为所有对 USERS 的引用都被修改为到 USER_DATA     修改默认临时表空间的情况一样 甚至修改 UNDO 表空间的名称也将触发 SPFILE 中的变化 如下所示     SQL> select value from v$spparameter where name = undo_tablespace ;    VALUE     UNDOTBS     SQL> alter tablespace undotbs rename to undotbs;    Tablespace altered     SQL> select value from v$spparameter where name = undo_tablespace ;    VALUE     UNDOTBS     结论   在最近的几个 Oracle 版本演变的过程中 对象处理得到了稳定的增强 Oracle i 引进了表从一个表空间到另一个表空间的转移 Oracle i Database R 引进了列重命名 现在 — 在最新的版本中 — 表空间自身的重命名成为可能 这些增强显著地减轻了数据库管理员的任务 — 特别是在数据仓库或数据中心环境中 cha138/Article/program/Oracle/201311/18085

相关参考

知识大全 如何把数据导入不同的表空间?

  很多人在进行数据迁移时希望把数据导入不同于原系统的表空间在导入之后却往往发现数据被导入了原表空间    本例举例说明解决这个问题:    如果缺省的用户具有DBA权限    那么导入时会按照原来的

知识大全 更改Oracle数据库表的表空间

更改Oracle数据库表的表空间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Oracle数

知识大全 Oracle中如何把表和索引放在不同的表空间里

Oracle中如何把表和索引放在不同的表空间里  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Ora

知识大全 将表空间升级为本地托管模式

  表空间有数据字典和本地托国两种管理模式如果采用数据字典来维护的话发生在数据库的段上并关系到盘区分配的操作(如扩展一个表)将会导致对数据字典的操作如果有很多带有盘区的表被操作时数据字典将会成这些操作

知识大全 ORACLE表空间设置问题

ORACLE表空间设置问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库的表很多总共加起

知识大全 oracle 基础入门

  一ORACLE的表的分类  REGULARTABLE普通表ORACLE推荐的表使用很方便人为控制少  PARTITIONEDTABLE分区表人为控制记录的分布将表的存储空间分为若干独立的分区记录按

知识大全 oracle建立的分区表数据问题

  建立一个用户使用默认表空间tablespace  建立一个分区表数据存放在不同的表空间tablespacetablespacetablespace  如果把此用户的数据导出来为dmp格式  在另外

有限空间作业的审批由()负责审批表的办理和管理

有限空间作业的审批由()负责审批表的办理和管理。A.作业单位的作业主管部门B.作业单位的安全主管部门C.管理单位的有限空间主管部门D.管理单位的安全主管部门【参考答案】B[拓展知识]封闭式的污水处理池

有限空间作业的审批由()负责审批表的办理和管理

有限空间作业的审批由()负责审批表的办理和管理。A.作业单位的作业主管部门B.作业单位的安全主管部门C.管理单位的有限空间主管部门D.管理单位的安全主管部门【参考答案】B[拓展知识]封闭式的污水处理池

如果本单位有限空间作业频次低,属于偶发作业,可不纳入企业安全管理体系进行统一管理

如果本单位有限空间作业频次低,属于偶发作业,可不纳入企业安全管理体系进行统一管理。A.对B.错【参考答案】错误[拓展知识]发包单位对作业安全承担主体责任,承包单位对其承包的有限空间作业安全承担直接责任