第一篇 第4讲 表空间和表的创建
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL> CREATE UNDO TABLESPACE undotbs01 DATAFILE 'C:\o\undotbs02.dbf' SIZE 2M REUSE;
表空间已创建。
总结
• 创建表空间时注意的问题 ▪ 段 区的管理 ▪ 是否可以自动增加 ▪ 四类不同表空间的创建 ▪ 一带多(一表空间,多数据文件)的创建
create tablespace test1 logging datafile ‘c:\test101.dbf' size 5m reuse autoextend off;
创建表空间
1.区的管理---local 【例】在CREATE TABLESPACE语句中使用
EXTENT MANAGEMENT LOCAL子句, 可以创建一个本地管理表空间,代码如下:
2 SYSAUX
YES NO YES
4 USERS
YES NO YES
3 TEMP
NO NO YES
6 EXAMPLE
YES NO YES
7 ORCLTBS01 YES NO YES
8 ORCLTBS02 YES NO YES
已选择8行。
ENC ---
查看表空间信息
【例】通过视图DBA_TABLESPACES查看所 有表空间的信息,代码及执行结果如下:
查看表空间信息
【例】查看视图V$TABLESPACE中表空间的内容 和数量,代码及执行结果如下:
SQL> SELECT * FROM V$TABLESPACE;
TS# NAME
INC BIG FLA
---- ------------
---
---
---
0 SYSTEM
YES NO YES
1 UNDOTBS1 YES NO YES
❖ 在实际应用中,如果所有用户都使用系统自动创建的 这几个表空间,将会严重影响I/O性能。
创建表空间
❖ 创建和管理表空间 DBA职责之一,创建表空间包括
添加数据文件 类型(永久还是临时) 状态(读写,只读还是脱机)
方式: ❖ 在em中创建表空间 ❖ 命令创建
创建表空间
利用CREATE TABLESPACE命令创建和管理表空间 语法格式: CREATE TABLESPACE tablespace_name DATAFILE ‘path/filename’ [SIZE integer [ K∣M ]][ REUSE ] [ AUTOEXTEND [ OFF∣ON [ NEXT integer [ K∣M ]] [ MAXSIZE [ UnLIMITED∣integer [ K∣M ] ] ] ]
1.3.2 维护表空间和数据文件
语法格式: 其中: ADD DATAFILE∣TEMPFILE:向表空间添加指定 的数据文件或临时文件。
RENAME DATAFILE:对一个或多个表空间
的数据文件重命名。 READ ONLY:表明表空间上不允许进一步写操作。 READ WRITE:表明在先前只读表空间上允许写操 作。
❖1. create tablespace autoextend on
❖2. alter tablespace add datafile
❖ -----类似与上下层之间的管理 ❖ 在创建表空间时,可以设置数据文件的自动扩展
位。 ❖ MAXSIZE UNLIMITED︱integer [ K︱M ]:指定允许分配给数据文件的
最大磁盘空间。 ❖ MININUM EXTENT:tablespace level,在该tablespace上建立的segment
中mininum extent大小 ❖ ONLINE:在创建表空间之后使该表空间立即对授权访问该表空间的用户
SQL> CREATE TABLESPACE OrclTBS01
DATAFILE 'C:\OrclTBS01.dbf' SIZE 1M, 'c:\OrclTBS02.dbf' size 1m EXTENT MANAGEMENT LOCAL
AUTOALLOCATE;
表空间已创建。
创建表空间
区的管理---local 和 dictionary 【例】在创建表空间OrclTBS02时,指定其区
第1篇 体系结构篇 之管理表空间
❖ 本章要点: ▪ 掌握创建表空间的方法。 ▪ 如何在创建表空间时通过命令对段,区,块进行管 理 ▪ 如何增加已存在的表空间的大小,几种方式。 ▪ 重命名表空间名字和重命名数据文件名字在操作 上有那些不同。
查看表空间信息
❖ 与表空间相关的视图
段类型 V$TABLESPACE DBA_TABLESPACES USER_TABLESPACES DBA_TABLESPACE_GROUPS DBA_SEGMENTS USER_SEGMENTS DBA_FREE_SPACE USER_FREE_SPACE V$DATAFILE V$TEMPFILE DBA_DATA_FILES DBA_TEMP_FILES
❖【例】创建自动段管理方式的表空间MyTBS01:
CREATE TABLESPACE OrclTBS01 DATAFILE 'C:\o\OrclTBS01.dbf' SIZE 3M EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SPACE SEGMENT
MANAGEMENT AUTO;
表空间已创建。
撤销表空间
❖撤销记录可以用于完成如下功能:
▪ 当执行ROLLBACK命令时,完成回滚操作。 ▪ 恢复数据库。 ▪ 使用闪回查询分析以前时间点的数据。 ▪ 使用闪回技术从逻辑破坏中恢复数据。
❖初始化参数UNDO_TABLESPACE设置默认 的撤销表空间。
【例】使用CREA百度文库E UNDO TABLESPACE语句创建撤 销表空间:
【例】创建手动段管理方式的表空间MyTBS01:
SQL> CREATE TABLESPACE OrclTBS01
' SIZE 30M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT MANUAL;
1.3.1 创建表空间
3.临时表空间 【例】创建临时表空间tmptbs,代码如下: SQL> CREATE TEMPORARY TABLESPACE tmptbs TEMPFILE 'C:\o\tmptbs.dbf' SIZE 2M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M; 表空间已创建。 注意: 临时表空间不能使用online 和offline 选项
ONLINE
SYSAUX
PERMANENT
ONLINE
TEMP
TEMPORARY
ONLINE
USERS
PERMANENT
ONLINE
EXAMPLE
PERMANENT
ONLINE
ORCLTBS01
PERMANENT
ONLINE
ORCLTBS02
PERMANENT
ONLINE
已选择8行。
基本表空间
❖ 在创建数据库时,Oracle会自动地创建一系列表空间, 例如system表空间。用户可以使用这些表空间进行数 据操作。
间为128KB,代码如下:
CREATE TABLESPACE OrclTBS02 DATAFILE 'C:\o\OrclTBS02.dbf' SIZE 3M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
表空间已创建。
1.3.1 段管理
❖SEGMENT SPACE MANAGEMENT—auto和Manual
SQL>
SELECT TABLESPACE_NAME,CONTENTS, STATUS FROM DBA_TABLESPACES;
TABLESPACE_NAME
CONTENTS
STATUS
---------------
----
-----
SYSTEM
PERMANENT
ONLINE
UNDOTBS1
UNDO
创建表空间
❖ DATAFILE ‘path/filename’ [SIZE integer K∣M ]][ REUSE ] : 一个或多个数据文件的存放路径与名称。
❖ [ AUTOEXTEND [ OFF∣ON]:禁止或允许自动扩展数据文件。 ❖ NEXT:指定当需要更多盘区时分配给数据文件的磁盘空间,以K或M为单
1.3.1 创建表空间
2.大文件表空间(了解) 【例】在CREATE TABLESPACE语句中使用
BIGFILE关键词可以创建大文件表空间, 代码如下:
SQL> CREATE BIGFILE TABLESPACE bigtbs DATAFILE 'C:\o\bigtbs.dbf' SIZE 10G;
[ ONLINE∣OFFLINE ] [ LOGGING∣NOLOGGING ] [ PERMANENT∣TEMPORARY ]
[ EXTENT MANAGEMENT LOCAL
[ AUTOALLOCATE∣UNIFORM SIZE integer [ K∣M ]] [Segment space management auto|manual]
Alter tablespace t1 rename to t2;
1 如何增加表空间容量
题目:现有表空间test1基础上添加一数据文件
❖ALTER TABLESPACE TEST1
❖ADD DATAFILE 'C:\101.DBF' SIZE 1M
❖ REUSE;
1 如何增加表空间容量
思考: 如何增加表空间的容量?
▪ DICTIONARY: ▪ LOCAL:指定本地管理表空间。LOCAL 下,AUTOALLOCATE:指定表空间由系统管理,
用户不能指定盘区尺寸,缺省设置。UNIFORM:指定使用SIZE字节的统一盘区来管 理表空间。缺省的SIZE为1M。
注意:如果指定了LOCAL,就不能指定DEFAULT STORAGE storage_clause和 TEMPORARY。
[ AUTOEXTEND [ OFF∣ON [ NEXT integer [ K∣M ] ] MAXSIZE [ UNLIMITED∣integer [ K∣M ] ] ]
[ RENAME DATAFILE ‘path\filename’,…n TO ‘path\re_filename’,…n ]
[ DEFAULT STORAGE storage_clause ] [ ONLINE∣OFFLINE [ NORMAL∣TEMPORARY] [ LOGGING∣NOLOGGING ] [ READ ONLY∣WRITE ]
说明 控制文件中保存的所有表空间的名称和数量 所有表空间的描述信息 所有用户可访问表空间的描述信息 所有表空间组及其所属的表空间信息
所有表空间中的区间信息 所有用户表空间中的区间信息 所有表空间中的空闲区间信息 所有用户表空间中的空闲区间信息 所有数据文件信息 所有临时文件信息 显示所有属于表空间的数据文件信息 显示所有属于临时表空间的临时文件信息
可用。
创建表空间
语法格式: LOGGING/NOLOGGING:指定日志属性,它表示将来的表、索引等是否需要进行 日志处理。默认值为LOGGING。 PERMANENT:指定表空间将用于保存永久对象,这是默认设置。TEMPORARY: 指定表空间将用于保存临时对象。
EXTENT MANAGEMENT:指定如何管理表空间的盘区。
• 注意表空间,数据文件和段之间的关系
• 复习:如何增加和删除数据库的日志文件
1.3.2 维护表空间和数据文件
(2) 用ALTER TABLESPACE管理表空间 语法格式:
ALTER TABLESPACE tablespace_name
[ ADD DATAFILE∣TEMPFILE ‘path/filename’ [ SIZE integer [ K∣M ] ] [ REUSE ]
创建表空间
1. 创建和管理表空间 【例2.5】创建大小为50M的表空间TEST,禁止自动 扩展数据文件。
create tablespace test1 logging datafile ‘c:\test101.dbf' size 5m reuse autoextend off;
创建表空间
1. 创建和管理表空间 【例2.5】创建大小为50M的表空间TEST,禁止自动 扩展数据文件。
表空间已创建。
总结
• 创建表空间时注意的问题 ▪ 段 区的管理 ▪ 是否可以自动增加 ▪ 四类不同表空间的创建 ▪ 一带多(一表空间,多数据文件)的创建
create tablespace test1 logging datafile ‘c:\test101.dbf' size 5m reuse autoextend off;
创建表空间
1.区的管理---local 【例】在CREATE TABLESPACE语句中使用
EXTENT MANAGEMENT LOCAL子句, 可以创建一个本地管理表空间,代码如下:
2 SYSAUX
YES NO YES
4 USERS
YES NO YES
3 TEMP
NO NO YES
6 EXAMPLE
YES NO YES
7 ORCLTBS01 YES NO YES
8 ORCLTBS02 YES NO YES
已选择8行。
ENC ---
查看表空间信息
【例】通过视图DBA_TABLESPACES查看所 有表空间的信息,代码及执行结果如下:
查看表空间信息
【例】查看视图V$TABLESPACE中表空间的内容 和数量,代码及执行结果如下:
SQL> SELECT * FROM V$TABLESPACE;
TS# NAME
INC BIG FLA
---- ------------
---
---
---
0 SYSTEM
YES NO YES
1 UNDOTBS1 YES NO YES
❖ 在实际应用中,如果所有用户都使用系统自动创建的 这几个表空间,将会严重影响I/O性能。
创建表空间
❖ 创建和管理表空间 DBA职责之一,创建表空间包括
添加数据文件 类型(永久还是临时) 状态(读写,只读还是脱机)
方式: ❖ 在em中创建表空间 ❖ 命令创建
创建表空间
利用CREATE TABLESPACE命令创建和管理表空间 语法格式: CREATE TABLESPACE tablespace_name DATAFILE ‘path/filename’ [SIZE integer [ K∣M ]][ REUSE ] [ AUTOEXTEND [ OFF∣ON [ NEXT integer [ K∣M ]] [ MAXSIZE [ UnLIMITED∣integer [ K∣M ] ] ] ]
1.3.2 维护表空间和数据文件
语法格式: 其中: ADD DATAFILE∣TEMPFILE:向表空间添加指定 的数据文件或临时文件。
RENAME DATAFILE:对一个或多个表空间
的数据文件重命名。 READ ONLY:表明表空间上不允许进一步写操作。 READ WRITE:表明在先前只读表空间上允许写操 作。
❖1. create tablespace autoextend on
❖2. alter tablespace add datafile
❖ -----类似与上下层之间的管理 ❖ 在创建表空间时,可以设置数据文件的自动扩展
位。 ❖ MAXSIZE UNLIMITED︱integer [ K︱M ]:指定允许分配给数据文件的
最大磁盘空间。 ❖ MININUM EXTENT:tablespace level,在该tablespace上建立的segment
中mininum extent大小 ❖ ONLINE:在创建表空间之后使该表空间立即对授权访问该表空间的用户
SQL> CREATE TABLESPACE OrclTBS01
DATAFILE 'C:\OrclTBS01.dbf' SIZE 1M, 'c:\OrclTBS02.dbf' size 1m EXTENT MANAGEMENT LOCAL
AUTOALLOCATE;
表空间已创建。
创建表空间
区的管理---local 和 dictionary 【例】在创建表空间OrclTBS02时,指定其区
第1篇 体系结构篇 之管理表空间
❖ 本章要点: ▪ 掌握创建表空间的方法。 ▪ 如何在创建表空间时通过命令对段,区,块进行管 理 ▪ 如何增加已存在的表空间的大小,几种方式。 ▪ 重命名表空间名字和重命名数据文件名字在操作 上有那些不同。
查看表空间信息
❖ 与表空间相关的视图
段类型 V$TABLESPACE DBA_TABLESPACES USER_TABLESPACES DBA_TABLESPACE_GROUPS DBA_SEGMENTS USER_SEGMENTS DBA_FREE_SPACE USER_FREE_SPACE V$DATAFILE V$TEMPFILE DBA_DATA_FILES DBA_TEMP_FILES
❖【例】创建自动段管理方式的表空间MyTBS01:
CREATE TABLESPACE OrclTBS01 DATAFILE 'C:\o\OrclTBS01.dbf' SIZE 3M EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SPACE SEGMENT
MANAGEMENT AUTO;
表空间已创建。
撤销表空间
❖撤销记录可以用于完成如下功能:
▪ 当执行ROLLBACK命令时,完成回滚操作。 ▪ 恢复数据库。 ▪ 使用闪回查询分析以前时间点的数据。 ▪ 使用闪回技术从逻辑破坏中恢复数据。
❖初始化参数UNDO_TABLESPACE设置默认 的撤销表空间。
【例】使用CREA百度文库E UNDO TABLESPACE语句创建撤 销表空间:
【例】创建手动段管理方式的表空间MyTBS01:
SQL> CREATE TABLESPACE OrclTBS01
' SIZE 30M
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
SEGMENT SPACE MANAGEMENT MANUAL;
1.3.1 创建表空间
3.临时表空间 【例】创建临时表空间tmptbs,代码如下: SQL> CREATE TEMPORARY TABLESPACE tmptbs TEMPFILE 'C:\o\tmptbs.dbf' SIZE 2M REUSE EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M; 表空间已创建。 注意: 临时表空间不能使用online 和offline 选项
ONLINE
SYSAUX
PERMANENT
ONLINE
TEMP
TEMPORARY
ONLINE
USERS
PERMANENT
ONLINE
EXAMPLE
PERMANENT
ONLINE
ORCLTBS01
PERMANENT
ONLINE
ORCLTBS02
PERMANENT
ONLINE
已选择8行。
基本表空间
❖ 在创建数据库时,Oracle会自动地创建一系列表空间, 例如system表空间。用户可以使用这些表空间进行数 据操作。
间为128KB,代码如下:
CREATE TABLESPACE OrclTBS02 DATAFILE 'C:\o\OrclTBS02.dbf' SIZE 3M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;
表空间已创建。
1.3.1 段管理
❖SEGMENT SPACE MANAGEMENT—auto和Manual
SQL>
SELECT TABLESPACE_NAME,CONTENTS, STATUS FROM DBA_TABLESPACES;
TABLESPACE_NAME
CONTENTS
STATUS
---------------
----
-----
SYSTEM
PERMANENT
ONLINE
UNDOTBS1
UNDO
创建表空间
❖ DATAFILE ‘path/filename’ [SIZE integer K∣M ]][ REUSE ] : 一个或多个数据文件的存放路径与名称。
❖ [ AUTOEXTEND [ OFF∣ON]:禁止或允许自动扩展数据文件。 ❖ NEXT:指定当需要更多盘区时分配给数据文件的磁盘空间,以K或M为单
1.3.1 创建表空间
2.大文件表空间(了解) 【例】在CREATE TABLESPACE语句中使用
BIGFILE关键词可以创建大文件表空间, 代码如下:
SQL> CREATE BIGFILE TABLESPACE bigtbs DATAFILE 'C:\o\bigtbs.dbf' SIZE 10G;
[ ONLINE∣OFFLINE ] [ LOGGING∣NOLOGGING ] [ PERMANENT∣TEMPORARY ]
[ EXTENT MANAGEMENT LOCAL
[ AUTOALLOCATE∣UNIFORM SIZE integer [ K∣M ]] [Segment space management auto|manual]
Alter tablespace t1 rename to t2;
1 如何增加表空间容量
题目:现有表空间test1基础上添加一数据文件
❖ALTER TABLESPACE TEST1
❖ADD DATAFILE 'C:\101.DBF' SIZE 1M
❖ REUSE;
1 如何增加表空间容量
思考: 如何增加表空间的容量?
▪ DICTIONARY: ▪ LOCAL:指定本地管理表空间。LOCAL 下,AUTOALLOCATE:指定表空间由系统管理,
用户不能指定盘区尺寸,缺省设置。UNIFORM:指定使用SIZE字节的统一盘区来管 理表空间。缺省的SIZE为1M。
注意:如果指定了LOCAL,就不能指定DEFAULT STORAGE storage_clause和 TEMPORARY。
[ AUTOEXTEND [ OFF∣ON [ NEXT integer [ K∣M ] ] MAXSIZE [ UNLIMITED∣integer [ K∣M ] ] ]
[ RENAME DATAFILE ‘path\filename’,…n TO ‘path\re_filename’,…n ]
[ DEFAULT STORAGE storage_clause ] [ ONLINE∣OFFLINE [ NORMAL∣TEMPORARY] [ LOGGING∣NOLOGGING ] [ READ ONLY∣WRITE ]
说明 控制文件中保存的所有表空间的名称和数量 所有表空间的描述信息 所有用户可访问表空间的描述信息 所有表空间组及其所属的表空间信息
所有表空间中的区间信息 所有用户表空间中的区间信息 所有表空间中的空闲区间信息 所有用户表空间中的空闲区间信息 所有数据文件信息 所有临时文件信息 显示所有属于表空间的数据文件信息 显示所有属于临时表空间的临时文件信息
可用。
创建表空间
语法格式: LOGGING/NOLOGGING:指定日志属性,它表示将来的表、索引等是否需要进行 日志处理。默认值为LOGGING。 PERMANENT:指定表空间将用于保存永久对象,这是默认设置。TEMPORARY: 指定表空间将用于保存临时对象。
EXTENT MANAGEMENT:指定如何管理表空间的盘区。
• 注意表空间,数据文件和段之间的关系
• 复习:如何增加和删除数据库的日志文件
1.3.2 维护表空间和数据文件
(2) 用ALTER TABLESPACE管理表空间 语法格式:
ALTER TABLESPACE tablespace_name
[ ADD DATAFILE∣TEMPFILE ‘path/filename’ [ SIZE integer [ K∣M ] ] [ REUSE ]
创建表空间
1. 创建和管理表空间 【例2.5】创建大小为50M的表空间TEST,禁止自动 扩展数据文件。
create tablespace test1 logging datafile ‘c:\test101.dbf' size 5m reuse autoextend off;
创建表空间
1. 创建和管理表空间 【例2.5】创建大小为50M的表空间TEST,禁止自动 扩展数据文件。