• oracle实验四


    创建文件

    (1)为 ORCL 数据库创建一个名为 BOOKTBS1 的永久性表空间,数据文件为’d:\bt01.dbf’ ,大小为100M,区采用自动扩展方式(即自动分配), 段采用自动管理方式;
    (2)为ORCL数据库创建一个名为BOOKTBS2的永久性表空间,数据文件为’d:\bt02.dbf’,大小为100M,区采用定制分配,每次分配大小(即每个区间)为1MB,段采用手动管理方式。
    (3) 为 ORCL 数据库创建一个临时表空间 TEMP02,数据文件为’d:\tp02.dbf’,大小为15M;
    (4) 为 ORCL 数据库创建一个名为 UNDO02 的撤销表空间,数据文件为’d:\un02.dbf’ ,大小10M;



    可以使用以下SQL语句来创建一个名为BOOKTBS1的永久性表空间,满足您的要求:

    CREATE TABLESPACE BOOKTBS1
    DATAFILE 'd:\bt01.dbf' SIZE 100M
    AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
    EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
    
    • 1
    • 2
    • 3
    • 4

    这条SQL语句会创建一个100MB大小的数据文件(‘d:\bt01.dbf’),并设置它可以自动扩展,直到达到文件系统的限制。表空间的段管理方式被设置为自动分配。但是这个区和段的默认设置就是自动管理,后面的 AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL AUTOALLOCATE; 可以缺省。



    可以使用以下SQL语句来创建名为BOOKTBS2的永久性表空间,满足您的要求:

    CREATE TABLESPACE BOOKTBS2
    DATAFILE 'd:\bt02.dbf' SIZE 100M
    EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M
    SEGMENT SPACE MANAGEMENT MANUAL;
    
    • 1
    • 2
    • 3
    • 4

    这条SQL语句将创建一个名为BOOKTBS2的永久性表空间,数据文件为’d:\bt02.dbf’,初始大小为100MB。区采用定制分配,每次分配的大小为1MB,而段采用手动管理方式。

    您可以使用以下SQL语句来执行这些任务:

    创建临时表空间 TEMP02:

    CREATE TEMPORARY TABLESPACE TEMP02
    TEMPFILE 'd:\tp02.dbf' SIZE 15M;
    
    • 1
    • 2

    创建撤销表空间 UNDO02:

    CREATE UNDO TABLESPACE UNDO02
    DATAFILE 'd:\un02.dbf' SIZE 10M;
    
    • 1
    • 2

    为表空间 BOOKTBS1 添加一个数据文件:

    ALTER TABLESPACE BOOKTBS1
    ADD DATAFILE 'd:\bt03.dbf' SIZE 20M;
    
    • 1
    • 2

    这些SQL语句将分别创建一个临时表空间(TEMP02),一个撤销表空间(UNDO02),以及向表空间BOOKTBS1添加一个新的数据文件来改变其大小。

    第二部分

    (6)创建一个名为 test 的表, 存储于 BOOKTBS1 表空间中, 向表中插入一条记录;
    (7) 将 ORCL 数据库的 BOOKTBS1 表空间设置为脱机状态, 测试该表空间是否可以使用;
    (8) 将 ORCL 数据库的 BOOKTBS1 表空间设置为联机状态, 测试该表空间是否可以使用;

    以下是您需要执行的任务:

    要在Oracle中创建一个名为 “test” 的表并将其存储在 “BOOKTBS1” 表空间中,以及向表中插入一条记录,您可以使用以下SQL语句:

    -- 创建表并指定表空间
    CREATE TABLE BOOKTBS1.test (
        id NUMBER,
        name VARCHAR2(50)
    )
    TABLESPACE BOOKTBS1;
    
    -- 向表中插入一条记录
    INSERT INTO BOOKTBS1.test (id, name) VALUES (1, 'Example Record');
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这将创建一个名为 “test” 的表,并将其存储在 “BOOKTBS1” 表空间中。然后,它插入了一条记录到这个表中。

    7. 将BOOKTBS1表空间设置为脱机状态:

    ALTER TABLESPACE BOOKTBS1 OFFLINE;
    
    • 1

    这将使BOOKTBS1表空间脱机,即不可用状态。

    8. 将BOOKTBS1表空间设置为联机状态:

    ALTER TABLESPACE BOOKTBS1 ONLINE;
    
    • 1

    这将使BOOKTBS1表空间联机,即重新可用状态。在执行这两个命令之后,您可以测试该表空间是否可以正常使用。

    但是上面还有要注意的地方

    如何查询表空间的状态,确认脱机还是联机状态

    要查询表空间的状态,您可以使用以下SQL查询:

    SELECT tablespace_name, status
    FROM dba_tablespaces;
    
    • 1
    • 2

    这条SQL语句将返回所有表空间的名称以及它们的状态。状态通常可以是以下之一:

    • ONLINE:表空间处于正常在线状态,可用于数据存储。
    • OFFLINE:表空间处于脱机状态,不可用。
    • READ ONLY:表空间处于只读状态,不可写入数据。
    • FORCE LOGGING:表空间启用了强制日志记录。
    • LOGGING/NOLOGGING:表空间是否记录日志。

    请注意,您需要相应的权限才能查询DBA视图中的数据。

    在进行联机恢复时,要先完成介质恢复

    要对BOOKTBS1表空间进行介质恢复(media recovery),您需要使用Oracle的恢复操作。通常,这是在表空间或数据库处于异常状态时执行的。

    下面是一般介质恢复的步骤:

    1. 将表空间脱机(如果尚未脱机):
      在进行介质恢复之前,确保表空间处于脱机状态。如果不是,请使用以下命令脱机表空间:

      ALTER TABLESPACE BOOKTBS1 OFFLINE;
      
      • 1
    2. 恢复数据文件:
      首先,您需要找到损坏的数据文件,并使用适当的备份或归档日志进行数据文件恢复。这通常需要在SQL*Plus中运行。以下是一个示例:

      RECOVER DATAFILE 'd:\bt01.dbf';
      
      • 1

      请确保使用正确的数据文件路径。

    3. 将表空间联机:
      在成功恢复数据文件后,将表空间重新联机:

      ALTER TABLESPACE BOOKTBS1 ONLINE;
      
      • 1

    这些步骤将对BOOKTBS1表空间执行介质恢复。请注意,介质恢复的成功与否取决于您是否具有正确的备份和归档日志,并且可能需要数据库管理员的参与。此外,恢复操作应仅在必要时执行,因为它可能会中断数据库的正常运行。

    第四部分

    (9) 将 ORCL 数据库的 BOOKTBS1 表空间设置为只读状态, 测试该表空间是否可以进行数据写入操作;
    (10) 将 ORCL 数据库的 BOOKTBS1 表空间设置为读写状态, 测试该表空间是否可以进行数据读写操作;

    9. 将BOOKTBS1表空间设置为只读状态:

    ALTER TABLESPACE BOOKTBS1 READ ONLY;
    
    • 1

    这将使BOOKTBS1表空间变为只读状态,即不允许进行数据写入操作。

    当将ORCL数据库的BOOKTBS1表空间设置为只读状态后,试图进行数据写入操作将会导致错误。以下是一个测试示例来证明该表空间不可写:

    首先,将BOOKTBS1表空间设置为只读状态:

    ALTER TABLESPACE BOOKTBS1 READ ONLY;
    
    • 1

    随后,尝试插入一条记录,这将失败并抛出错误:

    -- 试图插入一条记录
    INSERT INTO BOOKTBS1.test (id, name) VALUES (2, 'Another Record');
    
    • 1
    • 2

    您将会收到类似以下错误信息:

    ORA-16056: tablespace BOOKTBS1 is read only, cannot add data file
    
    • 1

    这个错误表明BOOKTBS1表空间是只读的,因此无法进行数据写入操作。



    10. 将BOOKTBS1表空间设置为读写状态:

    ALTER TABLESPACE BOOKTBS1 READ WRITE;
    
    • 1

    这将使BOOKTBS1表空间重新变为读写状态,即允许进行数据读写操作。

    在执行这两个命令之后,您可以测试该表空间是否可以进行相应的数据操作。

    仍然可以插入一条测试数据,看一下是否可以进行读写操作。

    第五部分

    (11) 查询 ORCL 数据库控制文件中的表空间信息;
    (12) 查询 ORCL 数据库所有表空间及其数据文件信息;
    (13) 删除 ORCL 数据库 BOOKTBS2 表空间及其所有内容, 同时删除操作系统上的数据文件。

    以下是您需要执行的任务:

    11. 查询控制文件中的表空间信息:

    SELECT tablespace_name
    FROM v$tablespace;
    
    • 1
    • 2

    这将返回ORCL数据库中控制文件中包含的表空间信息。

    12. 查询所有表空间及其数据文件信息:

    SELECT tablespace_name, file_name
    FROM dba_data_files;
    
    • 1
    • 2

    这将列出ORCL数据库中的所有表空间以及它们的数据文件信息。

    13. 删除BOOKTBS2表空间及其内容,同时删除操作系统上的数据文件:

    首先,删除表空间及其内容:

    -- 将表空间离线
    ALTER TABLESPACE BOOKTBS2 OFFLINE;
    -- 删除表空间及其内容
    DROP TABLESPACE BOOKTBS2 INCLUDING CONTENTS AND DATAFILE;
    
    • 1
    • 2
    • 3
    • 4

    接下来,删除操作系统上的数据文件(在命令行或文件浏览器中执行):

    -- 删除操作系统上的数据文件 'd:\bt02.dbf'(请确保路径正确)
    
    • 1

    这将从数据库中删除BOOKTBS2表空间及其内容,并删除相应的操作系统数据文件。请小心执行此操作,因为它将永久删除表空间和数据文件。确保已备份所需数据,以免意外数据丢失。

  • 相关阅读:
    Devart dotConnect ADO.NET Data Providers Crack
    【BSP开发学习5】GPIO子系统
    echarts
    多线程应用——单例模式
    朵拉钓鱼,快来一起钓鱼
    wifi7有关的210个提案
    jQuery实现下拉菜单
    python+vue+elementui毕业设计选题系统
    优雅设计之美:实现Vue应用程序的时尚布局
    lodash学习
  • 原文地址:https://blog.csdn.net/weixin_63233998/article/details/133883596