当前位置: 首页 > news >正文

Oracle-表空间与数据文件操作

目录

1、表空间创建

2、表空间修改

3、数据文件可用性切换操作

4、数据文件和表空间删除


1、表空间创建

(1)为 ORCL 数据库创建一个名为 BOOKTBS1 的永久表空间,数据文件为'd:\bt01.dbf' ,大小为100M,区采用自动扩展方式(即自动分配), 段采用自动管理方式;

SQL> create tablespace BOOKTBS1
          datafile 'd:\bt01.dbf' size 100M
          extent management  local autoallocate
          segment space management auto;

表空间已创建。

(2)为ORCL数据库创建一个名为BOOKTBS2的永久表空间,数据文件为'd:\bt02.dbf',大小为100M,区采用定制分配,每次分配大小(即每个区间)为1MB,段采用手动管理方式。

SQL> create tablespace BOOKTBS2
        datafile 'd:\bt02.dbf' size 100M
        extent management local uniform size 1M
        segment space management manual;

表空间已创建。

(3) 为 ORCL 数据库创建一个临时表空间 TEMP02,数据文件为'd:\tp02.dbf',大小为15M;

SQL> create tablespace TEMP02
        datafile 'd:\tp02.dbf' size 15M;

表空间已创建。

(4) 为 ORCL 数据库创建一个名为 UNDO02 的还原表空间,数据文件为'd:\un02.dbf',大小10M;

SQL> create temporary tablespace TEMP02
        tempfile 'd:\tp02.dbf' size 15M;

表空间已创建。

(5)查询DBA_TABLESPACES数据字典,查看创建出的表空间信息(表空间名、状态、区管理模式、段管理模式、类型)

SQL>select tablespace_name, status, extent_management, segment_space_management, contents
        from dba_tablespaces;

2、表空间修改

(1) 为 ORCL 数据库的表空间 BOOKTBS2 添加一个大小为 20M 的数据文件'd:\bt03.dbf',以改变该表空间的大小;

SQL> alter tablespace BOOKTBS2 add datafile 'd:\bt03.dbf' size 20M;

表空间已更改。

(2)创建一个名为 test 的表,其中包含id(number类型)和name(varchar类型)存储于 BOOKTBS1 表空间中,向表中插入一条记录,记录内容为自己的学号和姓名;

SQL> create table test
        (id number,name varchar(20))
        tablespace BOOKTBS1;

表已创建。

        

SQL> insert into test(id,name) values (XXXXXXXX,'XXX');

已创建 1 行。

        

SQL> select * from test;

(3)查看test表所属表空间信息

SQL> select tablespace_name from dba_tables where table_name = 'TEST';

(4) 将 ORCL 数据库的 BOOKTBS1 表空间设置为脱机状态,测试该表空间是否可以使用(查询表空间信息STATUS,尝试查询test表内容);

SQL> alter tablespace BOOKTBS1 offline;

SQL> select tablespace_name,status

          from dba_tablespaces

          where tablespace_name='BOOKTBS1';

SQL> select * from test;

(5) 将 ORCL 数据库的 BOOKTBS1 表空间设置为联机状态,测试该表空间是否可以使用(查询表空间信息STATUS,尝试查询test表内容);

SQL> alter tablespace BOOKTBS1 online;

SQL> select tablespace_name,status

          from dba_tablespaces

          where tablespace_name='BOOKTBS1';

SQL> select * from test;

(6) 将 ORCL 数据库的 BOOKTBS1 表空间设置为只读状态,测试该表空间是否可以进行数据读写操作(测试test表读写);

SQL> alter tablespace BOOKTBS1 read only;

SQL> select * from test;

SQL> insert into test(id,name) values(XXXXXXXX,'XXX');

(7) 将 ORCL 数据库的 BOOKTBS1 表空间设置为读写状态,测试该表空间是否可以进行数据读写操作(测试test表读写);

SQL> alter tablespace BOOKTBS1 read write;

SQL> select * from test;

SQL> insert into test(id,name) values(XXXXXXXX,'XXX');

3、数据文件可用性切换操作

(1)修改表空间BOOKTBS1中的bt01文件为脱机状态,然后验证数据文件是否能够使用

SQL> alter database datafile 'd:\bt01.dbf' offline;

       ①查询DBA_DATA_FILES数据字典,查看文件名和ONLINE_STATUS状态

SQL> SELECT file_name, online_status FROM dba_data_files WHERE file_name LIKE '%BT01%';

        ②查询test表中的数据,验证是否能够查询

SQL> select * from test;

(2)修改表空间BOOKTBS1中的bt01文件为联机状态。

SQL> recover datafile 'D:\BT01.DBF';
完成介质恢复。
SQL> alter database datafile 'd:\bt01.dbf' online;

数据库已更改。

4、数据文件和表空间删除

(1) 查看属于BOOKTBS2表空间的数据文件信息

SQL> select file_name from dba_data_files where tablespace_name like 'BOOKTBS2';

(2)删除BOOKTBS2表空间中的一个数据文件‘d:\bt03.dbf’

SQL> alter tablespace BOOKTBS2 drop datafile 'd:\bt03.dbf';

表空间已更改。

(3)尝试用上述语句删除BOOKTBS2表空间中最后一个数据文件‘d:\bt02.dbf’,观察是否能够删除,为什么?

SQL> alter tablespace BOOKTBS2 drop datafile 'd:\bt02.dbf';

        BOOKTBS2表空间中最后一个数据文件‘d:\bt02.dbf’不能够删除

        无法删除表空间中的最后一个数据文件,这是因为数据库系统为了防止数据丢失,不允许删除最后一个数据文件,如果尝试这样做,数据库将返回错误,提示你不能删除最后一个数据文件。

(4)删除表空间BOOKTBS2,要求同时将表空间中的数据文件一起删除,确认最后一个数据文件‘d:\bt02.dbf’在电脑硬盘上是否已经删除?DBA_TABLESPACES数据字典中是否还有表空间的信息?

SQL> drop tablespace BOOKTBS2 including contents and datafiles;

表空间已删除。

        最后一个数据文件‘d:\bt02.dbf’在电脑硬盘上已经删除

        DBA_TABLESPACES数据字典中没有表空间的信息;

http://www.lryc.cn/news/459977.html

相关文章:

  • C# WinForm实现画笔签名及解决MemoryBmp格式问题
  • GC1272替代APX9172/茂达中可应用于电脑散热风扇应用分析
  • 《Linux从小白到高手》综合应用篇:详解Linux系统调优之服务器硬件优化
  • PHP政务招商系统——高效连接共筑发展蓝图
  • Linux 命令行
  • 每日一题:单例模式
  • 前端_001_html扫盲
  • 49 | 桥接模式:如何实现支持不同类型和渠道的消息推送系统?
  • 使用js和canvas实现简单的网页贪吃蛇小游戏
  • Kafka SASL/PLAIN认证模式
  • 苹果AI科学家研究证明基于LLM的模型存在缺陷 因为它们无法推理
  • 鸿蒙NEXT开发-页面路由(基于最新api12稳定版)
  • asp.net Core MVC 内容协商
  • 智能EDA小白从0开始 —— DAY10 Yosys
  • 《OpenCV计算机视觉》—— 人脸检测
  • 【unity框架开发12】从零手搓unity存档存储数据持久化系统,实现对存档的创建,获取,保存,加载,删除,缓存,加密,支持多存档
  • YOLOv11进行图像与视频的目标检测
  • SpinalHDL之错误集(一)
  • 【arcgis】ArcGIS中如何避免标注压盖要素
  • 数通--3
  • SpringBoot基础(五):集成JUnit5
  • 正点原子学习笔记之汇编LED驱动实验
  • 网络学习第二篇
  • 一些小结汇总
  • 20240720 科大讯飞 笔试
  • 【AIGC】寻找ChatGPT最佳推理步骤:CoT思维链技术的探索与应用
  • 一、安装VMWARE和CentOS
  • 岩石分类检测数据集 4700张 岩石检测 带标注 voc yolo 9类
  • 电脑基础知识:mfc110.dll丢失的解决方法
  • Lua 协同程序(coroutine)