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;
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;