




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
资源与环境科学学院 第4章表空间的管理 1 资源与环境科学学院 表空间的管理 主要内容 4 1 表空间概述4 2 表空间类型4 3 表空间的区 段管理方式4 4 表空间的状态4 5 管理表空间的准则4 6 创建各种类型的表空间4 7 扩展表空间及修改表空间的属性和状态4 8 删除表空间4 9 查询表空间信息 2 资源与环境科学学院 表空间的管理 4 1 表空间概述 4 1 1 表空间特性与作用 表空间是Oracle数据库中最大的逻辑存储结构 Oracle数据库就是由一个或多个表空间组成的 数据库的逻辑配置实际上就是指表空间的配置 从物理上说 数据库的数据被存放在数据文件中 而从逻辑上说数据是被存储在表空间中的 Oracle通过表空间的概念提供了一套专门的有效组织数据 正确的数据 临时的数据和回退的数据 的方法 3 资源与环境科学学院 表空间的管理 表空间具有如下特性 一个数据库可以有多个表空间 可创建 删除表空间 一个表空间只属于一个数据库 一个表空间至少要有一个数据文件 一个表空间的大小等于其中所有数据文件的大小之和 数据库的大小等于其中所有表空间的大小之和 表空间可以被联机和脱机 SYSTEM表空间不能脱机 表空间可以在读写 只读状态之间切换 每个表空间中的数据文件可以具有固定的大小 这与普通操作系统文件不同 或允许其自动变大 可在表空间中添加 删除文件 方案对象 表 索引的数据都被存储在表空间的数据文件中 一个数据文件存储不下 就存储在另一个数据文件中 只要该数据文件是本表空间的就行 4 资源与环境科学学院 表空间的管理 一个用户默认使用一个表空间 但他的不同方案对象的数据可以被存储在不同表空间中 一个用户使用的表空间的数量是有一定配额的 不能超出配额 可以根据使用的目的 创建不同类型的表空间 如永久表空间 临时表空间 撤销表空间 大表空间等 表空间具有如下作用 控制数据库所占用的磁盘空间 控制用户所占用的表空间配额 也就是控制用户所占用的空间配额 通过将不同表的数据 分区表中不同分区的数据放置到不同的表空间 或其中的数据文件 中 可以提高数据库I O性能 并有利于进行部分备份和恢复等管理工作 能够将一个表的数据和这个表的索引数据分别放置到不同的表空间 或其中的数据文件 中 同样可以提高数据库的I O性能 可以将表空间设置成只读状态而保持大量静态数据 5 资源与环境科学学院 表空间的管理 4 2 表空间类型 数据库安装完毕后 通常有SYSTEM SYSAUX TEMP EXAMPLE UNDOTBS1 USERS六个默认表空间 4 2 1系统表空间 包括system和sysaux表空间 在所有数据库中都是必须的 一般存放Oracle的数据字典及其数据 4 2 2临时表空间 当执行具有排序 orderby 索引 createindex 等功能的SQL语句时 会产生大量的临时数据 服务器进程首先将临时数据存放到PGA的排序区中 当排序区不够用时 服务器进程就会在临时表空间中建立临时段 存放这些临时数据 注意 当关闭数据库后 临时表空间中所有数据将全部被清除 6 资源与环境科学学院 表空间的管理 通常我们在创建用户时都指定一个临时表空间 若没有指定 则会使用SYSTEM表空间来创建临时段 存放临时数据 但这样做的结果是 占用了SYSTEM表空间的存储空间 使可用的存储空间下降 频繁地分配和释放临时段 会在SYSTEM表空间产生大量的存储碎片 使磁盘的读取效率下降 从而影响数据库的性能 临时表空间对应的是临时文件 它与数据文件是有区别的 数据文件在创建时就被完全分配和初始化 而临时文件不一定保证被分配到指定的磁盘空间 临时表空间可以被所有用户共享使用 在临时表空间中 同一个例程的所有SQL语句的排序操作将共享使用一个排序段 sortsegment 排序段在执行第一条排序操作的SQL语句时被创建 在例程关闭时被释放 可以通过动态视图V SORT SEGMENT来查询排序段的使用情况 通过动态视图V USAGE来查询使用排序段的会话和用户信息 7 资源与环境科学学院 表空间的管理 4 2 3撤销表空间 撤销表空间取代了已经使用了20年的回退段 实际上是将回退段 撤销段 放入了撤销表空间 由例程自动处理撤销表空间中的回退段 查询数据字典视图DBA ROLLBACK SEGS 可以得到撤销表空间中回退段的信息 撤销段主要用于如下目的 用一条ROLLBACK语句明确地回退一个事务 隐含地回退一个事务 如恢复一个故障事务 重构数据的一个读一致图像 从逻辑错误中恢复 8 资源与环境科学学院 表空间的管理 4 2 4example表空间 在产品环境中 EXAMPLE表空间应该被删除 它占用磁盘空间 并且具有所有Oracle段类型和数据结构类型的示例 如果需要应该创建单独的数据库 使其包含这些示例模式 对于已有的练习数据库 可以使用 ORACLE HOME demo schema中的脚本将这些示例模式安装到所选的表空间中 4 2 5users表空间 供一般用户使用 是数据库管理员许可用户存放数据库对象的地方 9 资源与环境科学学院 表空间的管理 4 2 6大文件表空间 大文件 bigfile 表空间是Oracle10g新引进的表空间 只能放置一个数据文件 或临时文件 但其数据文件可以包括4G个数据块 如果每个数据块的大小为8KB 那么 大文件表空间可达到32TB 千吉字节 是为超大型数据库设计的 10 资源与环境科学学院 表空间的管理 4 3 表空间的区 段管理方式 4 3 1区管理方式 字典管理方式 使用数据字典来管理存储空间的分配 当在表空间中分配新的区 或回收已分配的区时 Oracle将对数据字典中的相关 基础表 进行查询 更新 并在这一过程中 使用单线程搜索方法 速度较慢 另外 对表的更新操作会产生回退信息和重做信息 这是字典管理方式的特点也是其缺点 从Oracle9i开始不再支持这种方式 本地管理方式 从9i开始 创建表空间时默认使用本地管理方式 表空间中区分配与区回收的管理信息都被存储在表空间的数据文件中 而与数据字典无关 具体是在每个数据文件中维护一个 位图 bitmap 结构 用于记录表空间中所有区的分配情况 Oracle10g的表空间是按照区和段空间进行管理的 11 资源与环境科学学院 表空间的管理 位图为1或0时 表示该区正在使用或空闲 可以用如下两个选项来指定表空间的区的分配方式 统一 UNIFORM 统一分配 指定表空间中所有区的大小都相同 默认为1MB 但不能在撤销表空间中使用这个选项 自动 AUTOALLOCATE或SYSTEM 自动分配 指定由Oracle系统来自动管理区的大小 这是默认的设置 4 3 2段管理方式 在本地管理方式的表空间中 除了可以用UNIFORM和AUTOALLOCATE来指定区的分配方式外 还可以指定段空间的管理方式 是Oracle用来管理段中已用数据块和空闲数据块的机制 可以用如下两个关键字来指定表空间的段空间管理方式 12 资源与环境科学学院 表空间的管理 手动 MANUAL 使用空闲列表管理段的空闲数据块 为了与以前版本兼容而保留的 自动 AUTO 使用位图 bitmap 来管理段的已用数据块和空闲数据块 相对于使用空闲列表 位图的自动方式能够提供更好的存储利用率 并且简化用户的工作 通过dba tablespaces数据字典视图可以查询当前数据库中各个表空间的区 段空间管理方式 如图4 1 13 资源与环境科学学院 表空间的管理 图4 1通过数据字典视图查询表空间的各种信息 14 资源与环境科学学院 表空间的管理 4 4 表空间的状态 不同状态的表空间 其使用方式有所不同 人为改变表空间状态可以控制表空间的可用性 安全性 也为备份恢复等工作提供准备和保证 4 4 1读写状态 读写 R W 默认状态 任何具有表空间配额且具有适当权限的用户都可以读写该表空间的数据 只读 R Only 该状态下任何用户 包括DBA 都无法向表空间中写入数据 也无法改变其中已有数据 该限制与用户权限无关 15 资源与环境科学学院 表空间的管理 4 4 1脱机状态 在有多个应用表空间的数据库中 DBA可以通过将某个应用表空间设置为脱机状态 以使该表空间暂时不让用户访问 从而改变表空间的可用性 4 5 管理表空间的准则 表空间的管理主要包括确定表空间的大小 安排表空间 创建 修改 删除表空间 选择修改表空间的区 段管理方式 设置表空间的状态等几个方面 如果表空间是本地管理方式 则在创建表空间时不能指定区分配的默认存储参数 只能将它设置为自动 autoallocate 或统一 uniform 方式 且以后不能修改 16 资源与环境科学学院 表空间的管理 4 5 1确定表空间的大小 要确定表空间的大小需要了解 1 表的每行大约有多少字节 2 该表最初或至少要包含多少行 3 每个时间段该表中的行的增长情况 4 在该表上进行的操作的类型 5 哪种操作类型比较多 以表为例介绍如何确定表空间的大小 确定表的大小例 一家公司的customer表 当前至少要存储1万个客户的信息 且预计每月会增长1 对这个表的操作主要是insert 插入 update 更新 很少delete其中的记录 于是 可按下面公式确定该表的大小 表的大小 最大行长 行数 1 PCTFREE 100 预留的百分比 17 资源与环境科学学院 表空间的管理 按下面步骤使用上述公式 获得最大行长 假设创建该表的语句如图4 1所示 图4 2创建customers表的语句 18 资源与环境科学学院 表空间的管理 查询数据字典视图USER TAB COLUMNS 可以根据该表的各个列的数据类型来确定各列的最大长度 如图4 2所示 图4 3customers表各列的最大长度 19 资源与环境科学学院 表空间的管理 customers表的最大行长就是图4 2中DATA LENGTH列的数字之和 即65个字节 获得行数 初始行的数目是10000行 即1万个客户 获得PCTFREE Pctfree 空闲百分比 是用于设置块中现有行的可能的update 更新 而需要保留的百分比 另一个与块管理相关的参数是PCTUSED 已用百分比 关于其详细介绍可查阅相关资料 不恰当地设置PCTFREE可能会降低性能或浪费存储空间 可以用一些公式来计算PCTFREE的值 也可以用图4 3的指导性原则来确定PCTFREE的值 根据插入 更新的操作比较多 删除操作比较少的情况 选择PCTFREE 50 PCTUSED 30 获得预留的百分比 由于每月会增长1 那么 确定1年的预留空间就会需要如下的预留百分比 1 0 01 12 1 1268 计算表的大小 表的大小 最大行长 行数 1 PCTFREE 100 预留的百分比 65 10000 1 50 100 1 1268 1098630B 1072 9KB 1 05MB 20 资源与环境科学学院 表空间的管理 开始 事务活动 插入 更新 是 否 PCTFREE 5 小 中 大 PCTFREE 10 PCTFREE 30 PCTFREE 50 删除 小 中 大 PCTUSED 50 PCTUSED 40 PCTUSED 30 PCTUSED 80 结束 图4 4确定PCTFREE与PCTUSED的指导原则 21 资源与环境科学学院 表空间的管理 确定表空间的大小例 假设为公司的应用程序的表创建存储其数据的表空间 即数据文件 共有4个表 其中3个表 customers balances options 是相互关联的 属于一个应用程序 应将其放入一个表空间 第四个表 record calls 比较大又没有关联的表 属于另一个应用程序 应将其放入另一个表空间 从管理上看 把相关的表放入同一表空间时 就可以隔离应用程序中各个模块之间的依赖性 例如 一个模块需要维护 就可以将该模块涉及的表空间脱机 而不影响其他模块的运行 从性能上看 这会集中将不同的事务分配给不同的表空间 或其中的数据文件 以减少争用 按上述方法 分别计算各个表的大小 存储3个表 customers balances options 的表空间的大小是三个表的大小之和 当创建表空间时 这些估计值可以用作初始大小 一旦创建了表空间并使用后 就应该监控其使用情况 已确定是否需要更多的空间 可在OEM中查看表空间的使用情况 22 资源与环境科学学院 表空间的管理 对于撤销 UNDO 表来说 其中保留的信息受UNDO RETENTION参数的限制 该参数表示将在UNDO表空间中保留多长时间 默认值是900秒 的撤销信息 如果UNDO表空间中的空间不足以支持所有的事务 尚未完成或撤销的事务就有可能会被新事物的信息覆盖 而将导致一个ORA 1555错误 即Snapshottooold 快照太旧 计算UNDO表空间大小的公式是 UNDO表空间大小 undo RETENTION参数的值 每秒需要的撤销块 DB BLOCK SIZE DB BLOCK SIZE如 UNDO RETENTION参数被设置成900秒 每秒需要的撤销块个数是2 块大小DB BLOCK SIZE是8KB 则总的undo表空间大小就是 undo表空间大小 900 2 8192 8192 14MB 23 资源与环境科学学院 表空间的管理 一个表空间是由一个或多个数据文件组成的 表 索引 分区 大对象数据被创建在一个特定的表空间中 因此数据也就存储在这个表空间的数据文件中 在创建数据库时会自动建立系统表空间 SYSTEM表空间和SYSAUX Oracle仅在SYSTEM表空间中存储数据字典等Oracle自身的对象和数据 并建议将所有的用户对象和数据保存在其他表空间中 因此需要为数据库创建其他的非系统表空间 使用多个表空间允许用户在执行数据库操作时具有更大的灵活性 Oracle的灵活体系结构 OracleFlexibleArchitechure OFA 的目标之一就是通过把每个类型的数据放入不同的磁盘 对应于数据文件 即对应于表空间 中 来分隔应用程序数据和系统数据 例如 数据字典应放在系统表空间中 撤销数据应存放在撤销表空间中 临时数据应存放在临时表空间中 用户数据应存放在为该数据创建的表空间中 其目的就是减少竞争 因为当查询或更新数据时 很可能将同步访问存放在表空间的所有类型的数据 用户数据 索引数据 临时数据 系统数据 撤销数据 如果所有数据都存储在一个或少数几个表空间中 则多个进程就可能竞争访问数据 4 5 2表空间的配置 24 资源与环境科学学院 表空间的管理 图4 5能够避免竞争的表空间结构 注意 表空间的命名应该在系统内部有一个约定的格式 通常用于应用程序的表空间名称应该反映该应用程序的名称和该表空间所存储的数据的类型 如APP1 DATA表示APP1应用程序的存储数据的表空间 25 资源与环境科学学院 表空间的管理 能够在某个表空间创建方案对象的用户必须满足两个条件 一是具有CREATETABLE等创建方案对象的系统权限 二是在该方案对象使用的表空间具有配额 配额 是指用户在某个指定的表空间中允许使用的存储空间的大小 当用户创建表 索引 簇等具有独立段结构的数据库方案对象时 都必须在表空间中为这些方案对象分配存储空间 一旦该用户用完了在某个表空间中为他分配的配额 他将不能再在这个表空间中创建方案对象了 如果DBA需要将资源限制作为自己安全策略中的一部分 那么可以考虑为每个用户都设置表空间配额 另外 创建用户时还需给用户指定要使用的临时表空间 如图4 5所示 创建一个表空间和一个用户 并将该表空间作为用户的默认表空间 给该用户在该表空间分配一定配额 并将temp表空间作为该用户的临时表空间 4 5 3为用户设置表空间配额和临时表空间 26 资源与环境科学学院 表空间的管理 图4 6给用户分配表空间配额 27 资源与环境科学学院 表空间的管理 4 6 创建表空间 所有的表空间都应该由sys用户 数据字典的所有者 来创建 以避免出现管理问题 与表空间对应的物理结构是数据文件 在表空间的创建中 Oracle会完成如下几个工作 在数据字典和控制文件中记录该新创建的表空间 在操作系统中按指定的位置和文件名创建指定大小的操作系统文件 作为该表空间对应的数据文件 在预警文件中记录创建表空间的信息 表4 1创建不同类型表空间的SQL语句 28 资源与环境科学学院 表空间的管理 用户必须拥有CREATETABLESPACE系统权限才能创建表空间 临时表空间和撤销表空间都是特殊表空间 用户并不能在其中创建方案对象 因此 需要在CREATE语句中添加TEMPORARY和UNDO关键词 29 资源与环境科学学院 表空间的管理 创建表空间的语法是 CREATE SMALLFILE BIGFILE PERMANENT TEMPORARY UNDO TABLESPACEDATAFILE TEMPFILEdatafile clause datafile clause EXTENTMANAGEMENTLOCAL 本地管理表空间 AUTOALLOCATE UNIFORMSIZEinteger K M SEGMENTSPACEMANAGEMENTAUTO MANUAL 使用自动 手动段管理方式 BLOCKSIZEinteger K M 创建有不同于初始化参数DB BLOCK SIZE指定的标准的Oracle块大小的表空间 可以使用该选项 大表的数据存放在大块的表空间上更有效 MINIMUMEXTENTinteger K M 定义分配给一个新建对象的最小范围 LOGGING NOLOGGING ONLINE OFFLINE NORMAL TEMPORARY IMMEDIATE 30 资源与环境科学学院 表空间的管理 其中 datafile clause子句 数据文件子句 的语法是 path filename suffix SIZEinteger K M REUSE reuse表示此文件已存在 现在是重新利用 AUTOEXTENDOFF ON NEXTinteger K M MAXSIZEUNLIMITED integer K M 31 资源与环境科学学院 表空间的管理 可以通过dba tablespaces视图来查询当前数据库中各个表空间的区 段管理方式 以及状态 内容 块的大小信息 如图4 7所示 图4 7通过dba tablespaces数据字典视图查询表空间的各种信息 区大小统一 撤销表空间 区大小自动 临时表空间 标准的块大小8KB 本地管理方式 用位图管理段 永久表空间 32 资源与环境科学学院 表空间的管理 在OracleSQL PLUS窗口中 以dba身份登录 创建一个表空间 如下 SQL CREATETABLESPACETEST DBDATAFILE d oracle product 10 2 0 oradata Testdb TEST DB 01 dbf SIZE100M注释 创建表空间名为TEST DB路径为 大小100MAUTOEXTENDONNEXT100MMAXSIZE1024M 增长速度为100M最大限度大小为1GDEFAULTSTORAGE INITIAL10MNEXT1M 是给你一个通过该表空间创建的数据文件的默认值 假如没有指定大小 就按照初始10M以1M增长PERMANENTONLINELOGGING 表空间已创建 33 资源与环境科学学院 表空间的管理 创建 永久 表空间如果不指定PERMANENT TEMPORARY UNDO选项 或指定了PERMANENT选项 则创建的是永久表空间 即永久保存其中的数据库对象的数据 有三种创建 永久 表空间的方法 1 使用AUTOALLOCATE区分配方式Oracle自动按表空间中不同对象的大小分配相应大小的区 可以减少DBA的工作量 缺点是在表空间中可能会造成一些磁盘空间的浪费 例如 SQL CREATETABLESPACEmytbs01DATAFILE e mytbs01 1 dbf SIZE2MAUTOALLOCATE 2 使用UNIFORM区分配方式Oracle为表空间中所有对象都分配指定的相同大小的区 默认大小是1MB 优点是在表空间中不会产生磁盘碎片 节约磁盘空间 例如 SQL CREATETABLESPACEmytbs02DATAFILE e mytbs02 1 dbf SIZE1M e mytbs02 2 dbf SIZE2MUNIFORMSIZE128K 34 资源与环境科学学院 表空间的管理 3 在数据文件子句中指定数据文件的扩展方式例如 SQL CREATETABLESPACEmytbs03DATAFILE e mytbs03 1 dbf SIZE1MAUTOEXTENDONNEXT2MMAXSIZE11M 一般地 DBA当使用AUTOEXTENDON选项允许数据文件自动扩展时 也应该使用MAXSIZE选项来限制数据文件的最大大小 以免数据文件无限制地扩展 给数据库管理带来困难 但是 此时就不能再指定表空间的区分配方式了 否则会有错误提示 创建大文件表空间大文件表空间是Oracle10g的新特性 且仅在本地管理的表空间中才支持大文件表空间 这种表空间只能包括一个数据文件 该数据文件可以包含4G个块 如果块的大小是8KB 那么该数据文件的大小就是32T个字节 能显著提高数据库的存储能力并减少数据文件的个数 如 sql connectsys passwordassysdbacreatebigfiletablespacemybigtbs01datafile e mybigtbs01 01 dbf SIZE2Msegmentspacemanagementauto 35 资源与环境科学学院 表空间的管理 执行上述命令后 就完成了指定的大文件表空间的建立 管理方式为本地管理 且区大小由系统自动分配 也可以指定区分配方式 但不能将段管理方式指定为MANUAL方式 创建临时表空间指定了TEMPORARY 则为临时表空间 oracle会为这种表空间创建临时段 以便排序操作时使用 这个临时段是全体用户共享的 即使操作结束 也不释该临时段 这可以提高排序操作较多的应用系统的执行性能 sql connectsys passwordassysdbacreatesmallfiletemporarytablespacemytmptbs01TEMPFILE e mytmptbs01 01 dbf SIZE4Muniformsize64K 必须用关键字TEMPFILE代替DATAFILE 临时表空间使用临时文件而不是数据文件来创建 临时文件只能与临时表空间一起使用 不需备份 也不会把数据修改记录到重做日志中 另外 区分配方式不能指定为AUTOALLOCATE方式 否则会出现错误提示 36 资源与环境科学学院 表空间的管理 创建大文件临时表空间指定了TEMPORARY 则为临时表空间 oracle会为这种表空间创建临时段 以便排序操作时使用 这个临时段是全体用户共享的 即使操作结束 也不释该临时段 这可以提高排序操作较多的应用系统的执行性能 sql connectsys passwordassysdbacreatebigfiletemporarytablespacemybigtmptbs01TEMPFILE e mybigtmptbs01 01 dbf SIZE4Muniformsize64K 段管理方式也不能指定为auto方式 37 资源与环境科学学院 表空间的管理 创建撤销表空间撤销 UNDO 表空间用于存储撤销段 该表空间只能使用本地管理方式 和临时表空间一样 不能创建永久方案对象 如表 索引 簇等 sql connectsys passwordassysdbacreateUNDOtablespacemyundotbs01DATAFILE e myundotbs01 01 dbf SIZE4MAUTOALLOCATE 和临时表空间不同 创建undo表空间时不能指定统一区大小的选项 否则会有错误提示 尽管可以创建多个undo表空间 但一次只能使用一个undo表空间 可以用如下语句修改初始化参数文件 将当前使用的UNDO表空间切换到另一个undo表空间 sql connectsys passwordassysdbaALTERsystemsetundo tablespace new undo tablespace SCOPE SPFILE scope是有效范围当从一个undo表空间切换到另一个undo表空间后 就可以在前一个undo表空间中的活跃事务全部完成后删除旧的表空间 38 资源与环境科学学院 表空间的管理 可以修改undo表空间 如增加一个数据文件 重新命名表空间 联机 脱机数据文件 备份表空间等 与其他表空间一样 正在使用的undo表空间是不允许删除的 只有在其中没有未提交的事务时才能删除 可以用V TRANSACTION视图来检查其中是否还有未提交的事务 4 7 修改表空间 不论是字典管理表空间还是本地管理表空间 在表空间创建后都可以进行修改 其内容包括用各种方式扩展表空间的存储空间 修改表空间的属性 如位置 名称 和状态 如是否只读 联机 脱机 等 可以用ALTERTABLESPACE来修改表空间 相应地 用户必须拥有ALTERTABLESPACE或ALTERDATABASE系统权限才能修改表空间 4 7 1扩展表空间 表空间是有大小的 为了使用户在表空间用完后能继续增加数据 就必须能够扩展表空间 以增加更多存储空间 通常有三种扩展表空间的方法 39 资源与环境科学学院 表空间的管理 添加数据文件 不能为大文件表空间添加第2个数据文件 sql connectsys passwordassysdbaALTERTABLESPACEmytbs01ADDDATAFILE e mytbs01 02 dbf SIZE3M 与普通表空间不同 为临时表空间添加新的临时数据文件 必须使用ALTERTABLESPACE ADDTEMPFILE语句 改变数据文件大小sql ALTERDATABASEDATAFILE e mytbs01 02 dbf RESIZE3M 与普通表空间不同 改变临时表空间的临时数据文件大小 必须使用ALTERDATABASETEMPFILE RESIZE语句 当数据文件中的可用空间未使用完时 允许减少它的大小 即进行压缩 但调整后的大小应能存放得下其中的数据 否则会有错误提示 40 资源与环境科学学院 表空间的管理 允许数据文件自动扩展只有在数据文件子句中指定AUTOEXTEND选项后 才会自动扩展或增加存储空间 下面将表空间中的数据文件设置为自动扩展 sql ALTERDATABASEDATAFILE e mytbs01 02 dbf AUTOEXTENDONNEXT1MMAXSIZE20M 4 7 2修改属性 状态 对于DBA来说 规划和创建表空间之后 还要对其进行管理 除了对其进行扩展外 还要在数据库运行过程中经常修改表空间属性 状态等 41 资源与环境科学学院 表空间的管理 修改表空间的可用性表空间联机 ONLINE 状态可用 否则不可用 system表空间 sysaux表空间 temp表空间 undotbs1表空间不能脱机 sql ALTERTABLESPACEmytbs01offline ALTERTABLESPACEmytbs01online 当表空间处于online状态时 可以访问该表空间 比如建表 修改表空间的可读写性包括使表空间只读和使表空间可读写 SYSTEM表空间 SYSAUX表空间 TEMP表空间和UNDOTBS1表空间是不能被只读的 因为oracle要随时向这几个表空间写入数据 当将表空间修改为只读状态后 与其相关的数据文件中的SCN值 系统改变号 SystemChangeNumber 它是数据库中非常重要的一个数据结构 SCN提供了Oracle的内部时钟机制 可被看作逻辑时钟 这对于恢复操作是至关重要 和内容都不会发生任何变化 sql ALTERTABLESPACEmytbs01readonly 这样更改后就不能访问 但仍然允许执行DROP操作删除该表空间上的对象 42 资源与环境科学学院 表空间的管理 sql ALTERTABLESPACEmytbs01readwrite 修改表空间的备份模式如果执行联机备份 即在ARCHIVELOG模式下的热备份 则需要修改表空间的备份模式 首先 执行ALTERTABLESPACEtablespace nameBEGINBACKUP语句 将表空间设置成备份模式 类似于系统给需要备份的表空间加锁 防止在备份的过程中用户对此表空间进行操作 然后使用一些操作系统的命令或程序将该表空间的各个数据文件都备份到某些文件夹中或存储设备上 最后执行ALTERTABLESPACEtablespace nameENDBACKUP语句 将表空间tablespace name设置成结束备份模式 类似于系统给正在备份的表空间解锁 以便用户对此表空间进行操作 上述过程如图4 8所示 43 资源与环境科学学院 表空间的管理 图4 8将NOARCHIVELOG模式修改为ARCHIVELOG模式 44 资源与环境科学学院 表空间的管理 图4 9在ARCHIVELOG模式下修改表空间的备份模式 45 资源与环境科学学院 表空间的管理 修改表空间的名称首先注意system表空间 sysaux表空间的名称不能修改 例 将表空间mytbs01转变为mytbs01 new 修改表空间名称 sql ALTERTABLESPACEmytbs01RENAMETOmytbs01 new 当表空间或其任何数据文件处于offline状态时 不能修改表空间名称 设置默认表空间在oracle10g中 初始的默认临时表空间是temp 而默认表空间随用户的不同而不同 如system用户是system表空间 scott用户是users表空间 sql ALTERDATABASEDEFAULTTABLESPACEmytbs01 sql ALTERDATABASEDEFAULTTEMPORARYTABLESPACEmytbs01 46 资源与环境科学学院 表空间的管理 查询数据库的默认表空间sql selectusername default tablespace temporary tablespacefromdba users 永久表空间不能设置为临时表空间 反之亦然 4 7 3删除表空间 注意 一旦表空间被删除 该表空间的数据就不能恢复 因此 一定要确认表空间的数据不再需要后再删除 建议在删除表空间的前后 对数据库进行完全备份 以便遇到问题后能够恢复数据库 不能删除包含任何活动段的表空间 在删除表空间前应使其脱机 用户必须拥有DROPTABLESPACE系统权限才能删除一个表空间 图4 10显示了删除表空间的步骤 47 资源与环境科学学院 表空间的管理 图4 10删除表空间的sql语句 48 资源与环境科学学院 表空间的管理 注 如果要删除一个非空的表空间 就要使用includingcontents选项 即 DROPTABLESPACETS1INCLUDINGCONTENTS 否则会有错误提示 图4 11删除非空表空间出现错误提示 49 资源与环境科学学院 表空间的管理 上面的语句只会从数据字典 控制文件中删除表空间信息 而与其相关的数据文件仍然存在于磁盘上 但是 当表空间一旦删除 无论它所包含的数据文件是否被删除 这些数据文件都会失去作用 如果在删除表空间的同时 没有指示删除数据文件 就必须在以后使用合适的操作系统命令来删除 要在删除一个表空间的同时删除与它相关的数据文件 就必须使用includingcontentsanddatafiles选项 当含有参照性约束时 删除包含目录内容和数据文件在内的表空间 Droptablespaceincludingcontentsanddatafilescascadeconstraints 注意 如果不是在脱机状态下删除表空间 则即使使用了includingcontentsanddatafiles选项 也不会删除数据文件 并且在手动删除数据文件时会出现 无法删除 文件正在被另一个人或程序使用 的错误提示 50 资源与环境科学学院 表空间的管理 4 8 查询表空间信息 通过数据字典视图可查询表空间信息 表4 2为与表空间相关的数据字典视图 表4 2与表空间相关的数据字典视图和动态性能视图 51 资源与环境科学学院 表空间的管理 52 资源与环境科学学院 表空间的管理 4 8 1查询表空间基本信息 要获得数据库中各个表空间的名称 区管理方式 区分配方式 段管理方式 类型等基本信息 可查询DBA TABLESPACES视图 如图4 12所示 图4 12查询表空间的基本信息 区管理方式 本地管理 区分配方式 system表示自动分配 段管理方式 区管理方式 本地管理 表空间类型 53 资源与环境科学学院 表空间的管理 要查询数据库中所有表空间的名称和默认的存储参数 如INITIAL EXTENT和NEXT EXTENT等 可查询DBA TABLESPACES视图 如图4 13所示 4 8 2查询表空间及其默认存储参数 图4 13查询表空间和默认的存储参数 54 资源与环境科学学院 表空间的管理 4 8 3查询表空间中数据文件信息 要查询数据库中所有表空间中数据文件的信息 如位置 名称 大小 是否可自动扩展 可扩展的最大大小等信息 可查询DBA DATA FILES视图 如图4 14所示 55 资源与环境科学学院 表空间的管理 图4 14查询表空间中数据文件信息 56 资源与环境科学学院 表空间的管理 4 8 4统计每个表空间的空闲空间 盘区 信息 可查询DBA FREE SPACE视图 如图4 15所示 图4 15统计每个表空间的空闲空间 盘区 信息 57 资源与环境科学学院 表空间的管理 其中 pieces列显示该表空间文件中的空闲空间盘区数 MAX BLOCKS列和MIN BLOCKS列显示数据库块中最大和最小的空间区域 AVG BLOCKS列显示一个空闲空间盘区以块计的平均大小 SUM BLOCKS列显示每个表空间文件中空闲空间以块计的数量 4 8 5查询表空间的空闲空间大小 如果想要获得表空间空闲空间的大小 可以查询DBA FREE SPACE视图 当要创建新的对象或想要确保在相应的表空间中有足够的空间时 就可以利用这条查询 如图4 16所示 58 资源与环境科学学院 表空间的管理 图4 16查询表空间的空闲空间大小 59 资源与环境科学学院 表空间的管理 4 8 5查询临时表空间组信息 当为临时表空间组增加了临时表空间后 Oracle会将临时表空间组的名称和其中的临时表空间的信息增加到数据字典中 通过查询数据字典视图dba tablespace g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论