oracle表空间管理Ⅱ

一、大文件表空间
1.概述

bigfile表空间可以显著增强Oracle数据库的存储容量,减少数据库所需的数据文件数量,简化了数据库管理。可以调整CREATE DATABASE和CREATE CONTROLFILE语句的DB_FILES初始化参数和MAXDATAFILES参数,以减少数据文件信息所需的SGA空间量和控制文件的大小。

需要注意的是:
Bigfile表空间旨在与自动存储管理(Oracle ASM)或其他支持条带化或RAID的逻辑卷管理器以及动态可扩展逻辑卷一起使用。

避免在不支持条带化的系统上创建bigfile表空间,因为这会对并行查询执行和RMAN备份并行化产生负面影响。

不建议在不支持大文件大小的平台上使用bigfile表空间,这样会限制表空间容量

2.创建Bigfile表空间

语法:

SYS@cdb1> create bigfile tablespace bigdatatb01
  2  datafile '/u01/app/oracle/oradata/CDB1/datafile/bigdata.dbf' size 4G;

二、加密表空间
1.作用

加密的表空间主要保护您的数据,使其不会通过数据库以外的方式被未经授权的访问。例如,当将加密的表空间写入备份介质,以便从一个Oracle数据库传输到另一个Oracle数据库或传输到非现场设施进行存储时,这些表空间将保持加密。

此外,加密的表空间保护数据不受试图绕过数据库安全功能并直接通过操作系统文件系统访问数据库文件的用户的攻击。表空间加密对应用程序完全透明,因此无需修改应用程序。

表空间加密并不能解决所有的安全问题。例如,它不提供数据库内部的访问控制。任何被授予对存储在加密表空间中的对象的权限的用户都可以访问这些对象,而无需提供任何类型的额外密码或密钥。

加密表空间时,所有表空间块都会加密。加密支持所有段类型,包括表、集群、索引、LOB(基本文件和安全文件)、表和索引分区等。

透明数据加密支持行业标准加密算法,包括以下高级加密标准(AES)和三重数据加密标准(3DES)算法:

AES256

AES192

AES128

3DES168

2.创建encrypt tablespace
CREATE TABLESPACE securespace
DATAFILE '/u01/app/oracle/oradata/orcl/secure01.dbf' SIZE 100M
ENCRYPTION USING 'AES256'
DEFAULT STORAGE(ENCRYPT);
三、表空间属性设置
1.更改只读

在将表空间设置为只读之前,必须满足以下条件。

表空间必须联机(Online)。这对于确保没有必须应用于表空间的撤消信息是必要的。

表空间不能是活动的撤消表空间或系统表空间。

表空间当前不能参与在线备份,因为备份结束时会更新表空间中所有数据文件的头文件。

表空间不能是临时表空间。

SYS@cdb1> alter tablespace scott_tbl read only;

Tablespace altered.

2.更改读写
SYS@cdb1> alter tablespace scott_tbl read write;

Tablespace altered.

3.重命名
alter tablespace scott_tbl rename to scott_tb;

Tablespace altered.

4. 离线表空间

在这里插入图片描述

alter tablespace scott_tbl offline normal;

Tablespace altered.

5.在线表空间
alter tablespace scott_tbl online;

Tablespace altered.

6.设置Bigfile表空间

1.RESIZE将 bigfile 表空间中的单个数据文件调整为绝对大小,而无需参考数据文件

ALTER TABLESPACE bigtbs RESIZE 80G;

2.AUTOEXTEND(在 ADD DATAFILE 子句之外使用):

ALTER TABLESPACE bigtbs AUTOEXTEND ON NEXT 20G;
7.调整临时文件大小
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' RESIZE 18M;
8.删除临时文件
ALTER DATABASE TEMPFILE '/u02/oracle/data/lmtemp02.dbf' DROP
    INCLUDING DATAFILES;
9.收缩表空间

数据库执行的大型排序操作可能会导致临时表空间增长并占用大量磁盘空间。 排序操作完成后,不会释放多余的空间; 它只是标记为免费并可重复使用。 因此,单个大型排序操作可能会导致大量已分配的临时空间在排序操作完成后仍未使用。 因此,该数据库使您能够缩小本地管理的临时表空间并释放未使用的空间。

收缩是一种在线操作,这意味着用户会话可以在需要时继续分配排序范围,并且已经运行的查询不受影响。

以下示例缩小本地管理的临时表空间 lmtmp1,同时确保最小大小为 20M。

ALTER TABLESPACE lmtemp1 SHRINK SPACE KEEP 20M;

以下示例收缩本地管理的临时表空间 lmtmp2 的临时文件 lmtemp02.dbf。 由于省略了 KEEP 子句,数据库会尝试将临时文件缩小到可能的最小大小。

ALTER TABLESPACE lmtemp2 SHRINK TEMPFILE '/u02/oracle/data/lmtemp02.dbf';
10.删除表空间

一旦删除了表空间,表空间中的数据就无法恢复。因此,确保将来不需要删除表空间中包含的所有数据。另外,在从数据库中删除表空间之前和之后,立即对数据库进行完全备份

SYS@cdb1> drop tablespace scott_tbl_m including contents and datafiles cascade constraints;

Tablespace dropped.

including contents:删除表空间的数据文件
including datafiles:删除表空间关联的数据文件
cascade constraints:删除表空间关联的主键和唯一键的所有引用完整性约束
11.监控SYSAUX表空间

SYSAUX表空间由多个数据库组件占用,其总大小由这些组件占用的空间决定。组件所消耗的空间又取决于所使用的特性或功能以及数据库工作负载的性质。

SYSAUX表空间的最大部分由自动工作负载存储库(AWR)占用。AWR占用的空间由多个因素决定,包括任何给定时间系统中活动会话的数量、快照间隔和历史数据保留期。平均具有10个并发活动会话的典型系统可能需要大约200到300 MB的空间来存储其AWR数据。

下表提供了根据系统配置和预期负载调整SYSAUX表空间大小的指导原则。
1.视图

select * from v$sysaux_occupants;

在这里插入图片描述
在这里插入图片描述

四、表空间修复
1.表空间管理包

DBMS_SPACE_ADMIN

在这里插入图片描述

2.当分配的块标记为空闲时修复位图
  1. Call the SEGMENT_DUMP procedure to dump the ranges that the administrator allocated to the segment.
  2. For each range, call the TABLESPACE_FIX_BITMAPS procedure with the TABLESPACE_EXTENT_MAKE_USED option to mark the space as used.
  3. Call TABLESPACE_REBUILD_QUOTAS to rebuild quotas.
3.删除损坏的段
  1. Call the SEGMENT_VERIFY procedure with the SEGMENT_VERIFY_EXTENTS_GLOBAL option. If no overlaps are reported, then proceed with steps 2 through 5.
  2. Call the SEGMENT_DUMP procedure to dump the DBA ranges allocated to the segment.
  3. For each range, call TABLESPACE_FIX_BITMAPS with the TABLESPACE_EXTENT_MAKE_FREE option to mark the space as free.
  4. Call SEGMENT_DROP_CORRUPT to drop the SEG$ entry.
  5. Call TABLESPACE_REBUILD_QUOTAS to rebuild quotas.
4.修复报告重叠的位图
  1. Make a list of all objects that t1 overlaps.
  2. Drop table t1. If necessary, follow up by calling the SEGMENT_DROP_CORRUPT procedure.
  3. Call the SEGMENT_VERIFY procedure on all objects that t1 overlapped. If necessary, call the TABLESPACE_FIX_BITMAPS procedure to mark appropriate bitmap blocks as used.
  4. Rerun the TABLESPACE_VERIFY procedure to verify that the problem is resolved.
5. 修复位图块的介质损坏
  1. Call the TABLESPACE_REBUILD_BITMAPS procedure, either on all bitmap blocks, or on a single block if only one is corrupt.
  2. Call the TABLESPACE_REBUILD_QUOTAS procedure to rebuild quotas.
  3. Call the TABLESPACE_VERIFY procedure to verify that the bitmaps are consistent.
6. 从字典管理的表空间迁移到本地管理的表空间
EXEC DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL ('tbs_1');
7.将系统表空间迁移到本地管理的表空间

Before performing the migration the following conditions must be met:

The database has a default temporary tablespace that is not SYSTEM.

There are no rollback segments in the dictionary-managed tablespace.

There is at least one online rollback segment in a locally managed tablespace, or if using automatic undo management, an undo tablespace is online.

All tablespaces other than the tablespace containing the undo space (that is, the tablespace containing the rollback segment or the undo tablespace) are in read-only mode.

The SYSAUX tablespace is offline.

The system is in restricted mode.

There is a cold backup of the database.

All of these conditions, except for the cold backup, are enforced by the TABLESPACE_MIGRATE_TO_LOCAL procedure.

The following statement performs the migration:

SQL> EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');
五、相关视图

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值