oracle使用(五)表空间创建、删除以及删除后数据文件还存在的问题

目录

  • 概述
    • 一、表空间创建
    • 二、表空间删除
    • 三、表空间及数据文件删除后数据文件还存在
    • 其他有空再补充

概述

待补充

一、表空间创建

--表空间
create tablespace space_name
--数据文件的位置及大小
datafile 'D:\name.dbf' size 20m
--是否自动扩展,默认 autoextent off 不扩展,每次扩展5m,最大50m,可以根据需要更改
autoextend on next 5m maxsize 50m
--是否产生日志,否为nologging
logging
-- 段空间自动管理,默认 'auto' 推荐
segment space management auto        
-- 表空间管理方式,dictionary | local(默认,推荐)              
extent management local

extent management 有两种方式:
1、extent management local(本地管理);
2、extent management dictionary(数据字典管理)
本地管理表空间是自己管理分配,字典管理表空间需要系统管理空间分配

二、表空间删除

--1、单纯删除表空间
drop tablespace 表空间名称 ;

--2、删除表空间及内容(表空间名称要大写)
drop tablespace "表空间名称" including contents;

-- 3 完全删除(表空间 + 数据文件)
drop tablespace "表空间名称" including contents and datafiles;
-- 若存在约束,则追加下列子句即可
cascade constraints;

三、表空间及数据文件删除后数据文件还存在

1、问题:执行该语句后发对应的数据文件(.dbf)还存在,手工删除提示OracleServiceORCL服务已打开

drop tablespace "表空间名称" including contents and datafiles;

oracle使用(五)表空间创建、删除以及删除后数据文件还存在的问题_第1张图片

注意:删除前可以先查看数据文件存放路径

--查询现有表空间文件存放目录,file_name 就是文件存放路径
select b.file_id,b.file_name 物理文件名,
       b.tablespace_name 表空间,
       b.bytes / 1024 / 1024 大小M,
       (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
       substr((b.bytes - sum(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率
from dba_free_space a, dba_data_files b
where a.file_id = b.file_id
group by b.file_id,b.tablespace_name, b.file_name, b.bytes
order by b.file_id;

2、解决方法:(暂停OracleServiceORCL服务,再手工删除.dbf文件)
运行cmd-输入services.msc --然后下图

oracle使用(五)表空间创建、删除以及删除后数据文件还存在的问题_第2张图片
暂停后就可以手工删除了

oracle使用(五)表空间创建、删除以及删除后数据文件还存在的问题_第3张图片

其他有空再补充

你可能感兴趣的:(数据库,oracle,oracle)