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

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

关于Oracle数据库的一些基本操作可以参考我之前的博客,下面内容的一些操作也是基于之前的建好的数据库

下面通过一些简单的例子来熟悉一下Oracle数据库表空间的管理数据库表空间不同状态时对数据操作的影响。

  • (1)为BOOKSALES数据库创建一个名为BOOKTBS1的永久性表空间,区采用自动扩展方式,段采用自动管理方式。
SQL> create tablespace BOOKTBS1 DATAFILE 'D:\Oracle\app\administrators\oradata\BOOKSALES\BOOKTBS1_1.DBF' SIZE 50M;

表空间已创建。
  • (2)为BOOKSALES数据库创建一个名为BOOKTBS2的永久性表空间,区采用定制分配,每次分配大小为1MB,段采用手动管理方式。
SQL> create tablespace BOOKTBS2 datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\BOOKTBS2_1.DBF' SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

表空间已创建。
  • (3)为BOOKSALES数据库创建一个临时表空间TEMP02 。
SQL> CREATE TEMPORARY TABLESPACE TEMP02 TEMPFILE 'D:\Oracle\app\administrators\oradata\BOOKSALES\TEMP02_1.DBF' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 15M;

表空间已创建。
  • (4)将BOOKSALES数据库临时表空间TEMP和TEMP02都放入临时表空间组TEMPGROUP中。
SQL> alter tablespace temp tablespace group tempgroup;

表空间已更改。

SQL> alter tablespace temp02 tablespace group tempgroup;

表空间已更改。
  • (5)为BOOKSALES数据库创建一个名为UNDO02的撤销表空间,并设置为当前数据库的在线撤销表空间。
SQL> CREATE UNDO TABLESPACE UNDO02 DATAFILE 'D:\Oracle\app\administrators\oradata\BOOKSALES\UNDO02_1.DBF' SIZE 20M;

表空间已创建。
  • (6)为BOOKSALES数据库的表空间BOOKSTBS1添加一个大小为50MB的数据文件,以改变该表空间的大小。
SQL> ALTER TABLESPACE BOOKTBS1 ADD DATAFILE 'D:\Oracle\app\administrators\oradata\BOOKSALES\BOOKTBS1_2.DBF' SIZE 50M;

表空间已更改。
  • (7)将BOOKSALES数据库的表空间BOOKTBS2的数据文件修改为可以自动扩展,每次扩展5MB,最大容量为100MB。
SQL> ALTER DATABASE DATAFILE 'D:\Oracle\app\administrators\oradata\BOOKSALES\BOOKTBS2_1.DBF' AUTOEXTEND ON NEXT 5M MAXSIZE 100M;

数据库已更改。
  • (8)创建一个名为test的表,存储于BOOKTBS1表空间中,向表中插入一条记录。
SQL> create table test(
     test_id number(6,0) primary key,
     test_name varchar2(20)
     )
     tablespace BOOKTBS1;

表已创建。
SQL> insert into test values(2019, 'xushicheng');

已创建 1 行。
SQL> select * from test;

   TEST_ID TEST_NAME
---------- --------------------
      2019 xushicheng
  • (9)将BOOKSALES数据库的BOOKTBS1表空间设置为脱机状态,测试该表空间是否可以使用。
SQL> alter tablespace BOOKTBS1 offline;

表空间已更改。

SQL> select * from test;
select * from test
              *1 行出现错误:
ORA-00376: 此时无法读取文件 8
ORA-01110: 数据文件 8:
'D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\BOOKTBS1_2.DBF'
/*此时不可用*/
  • (10)将BOOKSALES数据库的BOOKTBS1表空间设置为联机状态,测试该表空间是否可以使用。
SQL> alter tablespace BOOKTBS1 online;

表空间已更改。

SQL> select * from test;

   TEST_ID TEST_NAME
---------- --------------------
      2019 xushicheng
/*此时可用*/
  • (11)将BOOKSALES数据库的BOOKTBS1表空间设置为只读状态,测试该表空间是否可以进行数据写入操作。
SQL> alter tablespace BOOKTBS1 read only;

表空间已更改。

SQL> insert into test values(201901, 'xushicheng2');
insert into test values(201901, 'xushicheng2')
            *1 行出现错误:
ORA-00372: 此时无法修改文件 8
ORA-01110: 数据文件 8:
'D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\BOOKTBS1_2.DBF'
/*此时不能进行写入操作*/
  • (12)将BOOKSALES数据库的BOOKTBS1表空间设置为读/写状态,测试该表空间是否可以进行数据读/写操作。
SQL> alter tablespace BOOKTBS1 read write;

表空间已更改。

SQL> insert into test values(201901, 'xushicheng2');

已创建 1 行。

SQL> select * from test;

   TEST_ID TEST_NAME
---------- --------------------
      2019 xushicheng
201901 xushicheng2
/*此时可以进行读/写操作*/
  • (13)将BOOKSALES数据库的BOOKTBS1表空间设置为数据库默认表空间,将临时表空间组TEMPGROUP设置为数据库的默认临时表空间。
SQL> alter database default tablespace BOOKTBS1;

数据库已更改。
SQL> alter database default temporary tablespace tempgroup;

数据库已更改。
  • (14)分别备份BOOKSALES数据库的USERS和BOOKTBS1、BOOKTBS3三个表空间。
SQL> alter tablespace users begin backup;

表空间已更改。

SQL> host copy D:\Oracle\app\administrators\oradata\BOOKSALES\USER03.DBF D:\Oracle\backup\BOOKSALES
已复制         1 个文件。

SQL> alter tablespace users end backup;

表空间已更改。
SQL> alter tablespace booktbs1 begin backup;

表空间已更改。
SQL> host copy D:\Oracle\app\administrators\oradata\BOOKSALES\BOOKTBS1_1.DBF D:\Oracle\backup\BOOKSALES
已复制         1 个文件。

SQL> alter tablespace BOOKTBS1 end backup;

表空间已更改。
  • (15)查询BOOKSALES数据库所有表空间及其状态信息。
SQL> SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,CONTENTS FROM DBA_TABLESPACES;

TABLESPACE_NAME                EXTENT_MAN ALLOCATIO CONTENTS
------------------------------ ---------- --------- ---------
SYSTEM                         LOCAL      SYSTEM    PERMANENT
SYSAUX                         LOCAL      SYSTEM    PERMANENT
UNDOTBS1                       LOCAL      SYSTEM    UNDO
TEMP                           LOCAL      UNIFORM   TEMPORARY
USERS                          LOCAL      SYSTEM    PERMANENT
BOOKTBS1                       LOCAL      SYSTEM    PERMANENT
BOOKTBS2                       LOCAL      UNIFORM   PERMANENT
TEMP02                         LOCAL      UNIFORM   TEMPORARY
UNDO02                         LOCAL      SYSTEM    UNDO

已选择9行。
  • (16)查询BOOKSALES数据库所有表空间及其数据文件信息。
SQL> SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_DATA_FILES;

TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
USERS
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\USERS01.DBF

UNDOTBS1
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\UNDOTBS01.DBF

SYSAUX
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\SYSAUX01.DBF


TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
SYSTEM
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\SYSTEM01.DBF

BOOKTBS1
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\BOOKTBS1_1.DBF

BOOKTBS2
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\BOOKTBS2_1.DBF


TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
UNDO02
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\UNDO02_1.DBF

BOOKTBS1
D:\ORACLE\APP\ADMINISTRATORS\ORADATA\BOOKSALES\BOOKTBS1_2.DBF


已选择8行。
  • (17)删除BOOKSALES数据库BOOKTBS2表空间及其所有内容,同时删除操作系统上的数据文件。
SQL> DROP TABLESPACE BOOKTBS2 INCLUDING CONTENTS AND DATAFILES;

表空间已删除。

创作不易,喜欢的话加个关注点个赞,蟹蟹蟹蟹٩(‘ω’)و

猜你喜欢

转载自blog.csdn.net/xu_benjamin/article/details/93234580
今日推荐