首页主机资讯Ubuntu Oracle数据库如何进行空间管理

Ubuntu Oracle数据库如何进行空间管理

时间2025-11-19 11:14:03发布访客分类主机资讯浏览253
导读:Ubuntu 上 Oracle 数据库空间管理实操指南 一 操作系统层面的空间核查 检查挂载点与磁盘余量,优先确认数据库数据文件所在目录(常见如 /u01、/opt)是否有充足空间: 查看整体磁盘:df -h 查看具体目录占用:du -...

Ubuntu 上 Oracle 数据库空间管理实操指南

一 操作系统层面的空间核查

  • 检查挂载点与磁盘余量,优先确认数据库数据文件所在目录(常见如 /u01/opt)是否有充足空间:
    • 查看整体磁盘:df -h
    • 查看具体目录占用:du -sh /u01 /opt /var/lib/oracle(按实际 ORACLE_HOME/DATA 路径调整)
  • 若导入/导出或日志增长迅速,提前为 /u01 或归档、闪回区所在分区扩容,避免空间耗尽导致实例异常。

二 数据库表空间与数据文件的日常管理

  • 快速巡检
    • 查看表空间与总/可用空间(MB):
      • SELECT tablespace_name, sum(bytes)/1024/1024 “TOTAL_MB”, sum(decode(maxbytes,0,bytes,maxbytes))/1024/1024 “MAX_MB” FROM dba_data_files GROUP BY tablespace_name;
    • 查看已用与空闲(MB):
      • SELECT tablespace_name, sum(bytes)/1024/1024 “USED_MB” FROM dba_segments GROUP BY tablespace_name;
      • SELECT tablespace_name, sum(bytes)/1024/1024 “FREE_MB” FROM dba_free_space GROUP BY tablespace_name;
    • 查看数据文件路径、大小与上限:
      • SELECT file_name, bytes/1024/1024 “MB”, maxbytes/1024/1024 “MAX_MB” FROM dba_data_files WHERE tablespace_name=‘YOUR_TBS’;
  • 扩容与收缩
    • 为表空间新增数据文件(按需设置自动扩展):
      • CREATE TABLESPACE tbs_data DATAFILE ‘/u01/oradata/ORCL/tbs01.dbf’ SIZE 8G AUTOEXTEND ON NEXT 1G MAXSIZE 32G;
      • 或给已有表空间加文件:ALTER TABLESPACE tbs_data ADD DATAFILE ‘/u01/oradata/ORCL/tbs02.dbf’ SIZE 8G AUTOEXTEND ON NEXT 1G MAXSIZE 32G;
    • 调整现有数据文件大小(谨慎评估在线业务窗口):
      • ALTER DATABASE DATAFILE ‘/u01/oradata/ORCL/tbs01.dbf’ RESIZE 16G;
    • 收缩高水位(HWM)回收空间(对象需启用行迁移,且为 ASSM 段):
      • ALTER TABLE schema.tbl ENABLE ROW MOVEMENT;
      • ALTER TABLE schema.tbl SHRINK SPACE CASCADE;
  • 临时表空间
    • 查看临时文件与使用情况:
      • SELECT file_name, bytes/1024/1024 “MB” FROM dba_temp_files;
      • SELECT tablespace_name, current_users, used_blocks, free_blocks FROM v$sort_segment;
    • 扩容临时表空间(示例创建新的大文件临时表空间并设为默认,再迁移会话):
      • CREATE BIGFILE TEMPORARY TABLESPACE temp_big TEMPFILE ‘/u01/oradata/ORCL/temp_big.dbf’ SIZE 16G AUTOEXTEND ON NEXT 2G MAXSIZE UNLIMITED;
      • ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_big;
      • – 建议重启或让应用重连以逐步迁移会话,再考虑 DROP 旧临时表空间
  • 用户默认表空间
    • 查询与调整:
      • SELECT username, default_tablespace, temporary_tablespace FROM dba_users WHERE username=‘YOUR_USER’;
      • ALTER USER your_user DEFAULT TABLESPACE tbs_data;
      • ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_big;

三 空间告警与主动回收

  • 服务器内置表空间告警
    • Oracle 默认对全部表空间启用空间告警,阈值:警告 85%严重 97%;后台进程 MMON 约每 10 分钟评估一次,并写入 DBA_OUTSTANDING_ALERTS
    • 查询示例:
      • SELECT DECODE(MESSAGE_LEVEL,5,‘WARNING’,1,‘CRITICAL’) ALERT_LEVEL, REASON FROM DBA_OUTSTANDING_ALERTS WHERE OBJECT_NAME=‘YOUR_TBS’;
    • 也可通过 DBMS_SERVER_ALERTS 自定义阈值,或用 OEM/EM 配置与查看。
  • 使用 Segment Advisor 主动识别可回收对象
    • OEM/EM 的 Advisor Central 选择 Segment Advisor,对目标表空间或对象运行评估,查看建议并执行“收缩段”以回收 HWM 以下未用空间(联机、原地操作,通常无需额外空间)。
  • 最佳实践要点
    • 表空间建议使用本地管理(LMT)自动段空间管理(ASSM),可减少外部/内部碎片并提升并发表现;必要时使用 DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL 迁移至 LMT。

四 Undo 表空间管理

  • 基本配置与容量查看
    • 查看参数:SHOW PARAMETER undo; (确认 undo_management=AUTOundo_tablespace
    • 查看当前占用:SELECT SUM(bytes)/1024/1024 “CURRENT_UNDO_MB” FROM dba_data_files WHERE tablespace_name=‘UNDOTBS1’;
  • 扩容与优化
    • 增加数据文件:
      • ALTER TABLESPACE undotbs1 ADD DATAFILE ‘/u01/oradata/ORCL/undo02.dbf’ SIZE 10G AUTOEXTEND ON NEXT 1G MAXSIZE 32G;
    • 调整现有文件大小(视业务窗口与版本支持):
      • ALTER DATABASE DATAFILE ‘/u01/oradata/ORCL/undo02.dbf’ RESIZE 20G;
    • 合理设置 UNDO_RETENTION(如 900 秒或更高),并确保 DB_RECOVERY_FILE_DEST_SIZE 足够覆盖闪回与归档需求,避免 UNDO/归档空间相互挤占。

五 迁移数据文件与扩容存储的实操流程

  • 场景:将数据文件从空间紧张的目录迁移到新磁盘(如从 /opt 迁至 /u01
    1. 确认目标表空间为离线(仅数据文件离线,非整个实例):
      • ALTER TABLESPACE tbs_data OFFLINE NORMAL;
    2. 操作系统层面拷贝数据文件到新目录(建议使用 nohupscreen 防止中断):
      • nohup cp /opt/oracle/oradata/ORCL/tbs01.dbf /u01/oradata/ORCL/tbs01.dbf &
    3. 在数据库中重命名数据文件路径:
      • ALTER TABLESPACE tbs_data RENAME DATAFILE ‘/opt/oracle/oradata/ORCL/tbs01.dbf’ TO ‘/u01/oradata/ORCL/tbs01.dbf’;
    4. 将表空间置为在线
      • ALTER TABLESPACE tbs_data ONLINE;
    5. 校验:SELECT file_name, status FROM dba_data_files WHERE tablespace_name=‘TBS_DATA’;
    6. 确认无误后,可删除旧文件并监控空间回收情况。
  • 建议
    • 大文件拷贝在业务低峰期执行,必要时使用 RMAN BACKUP AS COPY + SWITCH 实现更稳妥的在线迁移(适用于 12c 及以上)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu Oracle数据库如何进行空间管理
本文地址: https://pptw.com/jishu/750981.html
Ubuntu Oracle数据库如何进行备份策略制定 Ubuntu Oracle数据库如何进行故障恢复

游客 回复需填写必要信息