Oracle 12c实验3:实验步骤的SQL语句

在Oracle SQL Developer执行SQL语句

1、创建永久性表空间BOOKTBS1(区自动扩展、段自动管理)

复制代码
CREATE TABLESPACE BOOKTBS1
DATAFILE 'D:\ORACLE\DATA\BOOKTBS1.dbf'  -- 替换为实际存储路径
SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT AUTO;

2、创建永久性表空间BOOKTBS2(区定制分配、段手动管理)

复制代码
CREATE TABLESPACE BOOKTBS2
DATAFILE 'D:\ORACLE\DATA\BOOKTBS2.dbf'  -- 替换为实际存储路径
SIZE 100M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M  -- 区每次分配1MB
SEGMENT SPACE MANAGEMENT MANUAL;

3、创建临时表空间TEMP02

复制代码
CREATE TEMPORARY TABLESPACE TEMP02
TEMPFILE 'D:\ORACLE\DATA\TEMP02.dbf'  -- 替换为实际存储路径
SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 200M;

4、将临时表空间TEMP和TEMP02加入临时表空间组TEMPGROUP

复制代码
-- 假设原有临时表空间TEMP,先将其加入组
ALTER TABLESPACE TEMP TABLESPACE GROUP TEMPGROUP;
-- 将新创建的TEMP02加入组
ALTER TABLESPACE TEMP02 TABLESPACE GROUP TEMPGROUP;

5、创建撤销表空间UNDO002并设为当前撤销表空间

复制代码
CREATE UNDO TABLESPACE UNDO002
DATAFILE 'D:\ORACLE\DATA\UNDO002.dbf'  -- 替换为实际存储路径
SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED;

-- 设置为当前数据库的撤销表空间
ALTER SYSTEM SET undo_tablespace = 'UNDO002' SCOPE = BOTH;

6、为BOOKTBS1添加 50MB 数据文件

复制代码
ALTER TABLESPACE BOOKTBS1
ADD DATAFILE 'D:\ORACLE\DATA\BOOKTBS1_2.dbf'  -- 替换为实际存储路径
SIZE 50M;

7、修改BOOKTBS2数据文件为自动扩展(每次 5MB,最大 100MB)

复制代码
ALTER DATABASE DATAFILE 'D:\ORACLE\DATA\BOOKTBS2.dbf'  -- 替换为步骤2中实际路径
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, 'FIRST ROW');
COMMIT;

9、将BOOKTBS1设为脱机状态并测试

复制代码
-- 设置脱机
ALTER TABLESPACE BOOKTBS1 OFFLINE;

-- 测试(尝试插入数据,会报错)
INSERT INTO test VALUES (2, 'SECOND ROW');
-- 执行后会提示表空间脱机无法操作

10、将BOOKTBS1设为联机状态并测试

复制代码
-- 设置联机
ALTER TABLESPACE BOOKTBS1 ONLINE;

-- 测试(插入数据成功)
INSERT INTO test VALUES (2, 'SECOND ROW');
COMMIT;

11、将BOOKTBS1设为只读状态并测试写操作

复制代码
-- 设置只读
ALTER TABLESPACE BOOKTBS1 READ ONLY;

-- 测试写操作(尝试插入数据,会报错)
INSERT INTO test VALUES (3, 'THIRD ROW');
-- 执行后会提示只读表空间无法写入

12、将BOOKTBS1设为读写状态并测试读写

复制代码
-- 设置读写
ALTER TABLESPACE BOOKTBS1 READ WRITE;

-- 测试写操作(插入数据成功)
INSERT INTO test VALUES (3, 'THIRD ROW');
COMMIT;

-- 测试读操作(查询数据成功)
SELECT * FROM test;

13、设置默认表空间和默认临时表空间组

复制代码
-- 设置默认表空间
ALTER DATABASE DEFAULT TABLESPACE BOOKTBS1;

-- 设置默认临时表空间组
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMPGROUP;

14、备份表空间USERS、BOOKTBS1、BOOKTBS3(假设BOOKTBS3已存在)

复制代码
-- 备份表空间(需在RMAN工具中执行)

-- win+R输入cmd

-- C:\Users\admin>rman target /

结果:rman target /


-- RMAN>backup tablespace USERS,BOOKTBS1,BOOKTBS3;

结果:backup tablespace USERS,BOOKTBS1,BOOKTBS3;

15、查询所有表空间及其状态信息

复制代码
SELECT tablespace_name, status, contents, logging
FROM dba_tablespaces;

16、查询所有表空间及其数据文件信息

复制代码
SELECT t.tablespace_name, d.file_name, d.bytes/1024/1024 "Size(MB)", d.autoextensible
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name;

17、删除表空间BOOKTBS2及其所有内容和数据文件

复制代码
DROP TABLESPACE BOOKTBS2 INCLUDING CONTENTS AND DATAFILES;
相关推荐
LSL666_6 分钟前
MybatisPlus条件构造器(上)
java·数据库·mysql·mybatisplus
U-52184F6920 分钟前
深入理解“隐式共享”与“写时复制”:从性能魔法到内存深坑
java·数据库·算法
程序猿ZhangSir1 小时前
详解了解 Redis IO多路复用底层原理,Select,poll,epoll三者的区别?
数据库·redis·缓存
U-52184F691 小时前
深度解析:从 Qt 的 Q_D 宏说起,C++ 工业级 SDK 是如何保证 ABI 稳定性的
数据库·c++·qt
Gauss松鼠会1 小时前
【GaussDB】LLVM技术在GaussDB等数据库中的应用
大数据·数据库·架构·数据库开发·gaussdb·llvm
IMPYLH1 小时前
Linux 的 dir 命令
linux·运维·服务器·数据库
wfsm1 小时前
mysql事务
数据库·mysql
SadSunset1 小时前
第一章:Redis 入门介绍
数据库·redis·缓存
weixin_464307632 小时前
QT智能指针
java·数据库·qt
王仲肖2 小时前
PostgreSQL VACUUM 与 AUTOVACUUM 深度解析
数据库·postgresql