Oracle数据库逻辑存储结构管理

本文采用sqlplus编辑sql命令,

如需切换切换数据库:https://blog.csdn.net/lingchen336/article/details/101560826

 

1.为BOOKSALES数据库创建一个名为BOOKTBS1的永久性表空间,区采用自动扩展方式,段采用自动管理方式。

Create tablespace booktbs1 datafile

'C:\oracle\product\10.2.0\oradata\BOOKSALES\booktbs1_1.DBF' size 50M;

 

2.为BOOKSALES数据库创建一个名为BOOKTBS2的永久性表空间,区采用定制分配,每次分配大小为1MB,段采用手动管理方式。

Create tablespace booktbs2 datafile

   'C:\oracle\product\10.2.0\oradata\BOOKSALES\booktbs2_1.DBF' size 10M

  extent management local uniform size 1M

  segment space management manual;

 

3.为BOOKSALES数据库创建一个临时表空间TEMP02。

create temporary tablespace temp02 tempfile

  'C:\oracle\product\10.2.0\oradata\BOOKSALES\test1_3.DBF' size 10M

   extent management local uniform size 5M;

 

4.将BOOKSALES数据库临时表空间TEMP和TEMP02都放入临时表空间组TEMPGROUP中。

alter tablespace temp tablespace group tempgroup;

alter tablespace temp02 tablespace group tempgroup;

 

5.为BOOKSALES数据库创建一个名为UNDO02的撤销表空间,并设置为当前数据库的在线撤销表空间。

CREATE UNDO TABLESPACE UNDO02 DATAFILE

  2  'C:\oracle\product\10.2.0\oradata\BOOKSALES\test1_5.DBF' size 20M;

ALTER SYSTEM SET UNDO_TABLESPACE=UNDO02;

 

6.为BOOKSALES数据库的表空间BOOKTBS1添加一个大小为50MB的数据文件,以改变该表空间的大小。

ALTER TABLESPACE BOOKTBS1 ADD DATAFILE

  2  'C:\oracle\product\10.2.0\oradata\BOOKSALES\booktbs1_2.DBF' size 50M;

 

7.将BOOKSALES数据库的表空间BOOKTBS2的数据文件修改为可以自动扩展,每次扩展5MB,最大容量为100MB。

alter database datafile

  2   'C:\oracle\product\10.2.0\oradata\BOOKSALES\booktbs2_1.DBF'

  3  autoextend on next 5M maxsize 100M;

 

8.创建一个名为test的表,存储于BOOKTBS1表空间中,向表中插入一条记录。

CREATE TABLE test(ID NUMBER PRIMARY KEY,name CHAR(20)) TABLESPACE BOOKTBS1;

insert into test values(1,'sdfjosdajg');

 

9.将BOOKSALES数据库的BOOKTBS1表空间设置为脱机状态,测试该表空间是否可以使用。

alter tablespace booktbs1 offline;

select * from test;

 

10.将BOOKSALES数据库的BOOKTBS1表空间设置为联机状态,测试该表空间是否可以使用。

alter tablespace booktbs1 online;

select * from test;

 

11.将BOOKSALES数据库的BOOKTBS1表空间设置为只读状态,测试该表空间是否可以进行数据写入操作。

alter tablespace booktbs1 read only;

select * from test;

 

12.将BOOKSALES数据库的BOOKTBS1表空间设置为读写状态,测试该表空间是否可以进行数据读写操作。

alter tablespace booktbs1 read write;

 

13.将BOOKSALES数据库的BOOKTBS1设置为数据库默认表空间,将临时表空间组TEMPGROUP设置为数据库的默认临时表空间。

alter database default tablespace booktbs1;

 

14.分别备份BOOKSALES数据库的USERS和BOOKTBS1、BOOKTBS3三个表空间。

shutdown immediate

startup mount

alter database archivelog;

alter database open;

alter tablespace users begin backup;

Create tablespace booktbs3 datafile

  2  'C:\oracle\product\10.2.0\oradata\BOOKSALES\booktbs3_1.DBF' size 50M;

alter tablespace booktbs3 begin backup;

alter tablespace booktbs3 begin backup;

 

15.查询BOOKSALES数据库所有表空间及其状态信息。

SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,CONTENTS FROM DBA_TABLESPACES;

 

16.查询BOOKSALES数据库所有表空间及其数据文件信息。

SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_DATA_FILES;

 

17.删除BOOKSALES数据库BOOKTBS2表空间及其所有内容,同时删除操作系统上的数据文件。

DROP TABLESPACE BOOKTBS2 INCLUDING CONTENTS AND DATAFILES;

踩坑总结:

首先在这里写一下备份中出现的错误,这是一个思维误区。首先按需要备份users表空间,参照课本上alter tablespace users begin backup;语句进行备份,书上的例子的下一句话是复制表空间数据文件到目标位置,但是没有给出语句。我想这区百度找一下应该能找到语句进行备份操作,但是最终的结果却不理想,我一直没有成功。然后我大概尝试了四到五种百度出来的方案,都以失败告终。然而最后的解决方案竟然是物理备份,花费了我进一小时时间的事情是如此的简单,我走入了思维的误区,期间也看到物理备份的方法一扫而过没有在意。做题之前应该多想想,长时间无法解决的问题需要重新看题,找新思路。

然后我还犯过概念混淆的错误,将MySQL表的概念和Oracle表空间的概念混在一起,导致一度没有写出正确的语句。总之,实践出真知,只要花时间没有问题不能解决。

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值