• 数据文件实验#OCP#


    1 创建一个表空间TEST(TEST.dbf 10M)并设置其块大小为4k
    create tablespace test datafile 'c:\test\test.dbf' size 10m blocksize 4k;

    首先是报错


    2 向TEST表空间增加一个10M的数据文件(TEST1.DBF),将TEST.DBF修改为15M

    alter tablespace users add datafile 'C:\APP\DELL\ORADATA\NCBETA\USERS02.DBF' SIZE 50m;

    增加表空间大小

    1。增大现在表空间数据文件的大小.alter database datafile 'XXX' resize XXXXM; --不需要重启oracle
    2。给这个表空间增加数据文件:alter  tablespace XXX add datifile 'XXX' size XXXM autoextend on next XXM maxsize XXXXM;

    疑问:

    更改数据文件大小和直接更改表空间大小关系?

    ALTER DATABASE
    DATAFILE '/u03/oradata/userdata02.dbf'
    RESIZE 200M;

    结论:一个表空间可以有多个数据文件,一个数据文件只能属于一个表空间,表空间在备份模式激活后v$backup对应的两个数据文件全部变为active

    查看表、表空间、数据文件关系

    select f.FILE_name, f.tablespace_name, T.table_name
      from dba_DATA_FILEs f, dba_all_tables t
     where f.tablespace_name = t.tablespace_name
       and t.table_name = 'EMP';

    3 移动TEST1.DBF

    方式一:Moving Data Files:ALTER TABLESPACE

    • The tablespace must be offline.
    • The target data files must exist.

    将D:\TBS.DBF移动到D:\SENDB\步骤

    SYS@sen>alter tablespace tbs offline;

    表空间已更改。--手工复制D:\TBS.DBF到D:\SENDB\

    SYS@sen>alter tablespace tbs rename datafile 'D:\TBS.DBF' to 'd:\sendb\TBS.DBF';

    表空间已更改。

    之后alter tablespace tbs online;

    Moving Data Files:ALTER DATABASE

    • The database must be mounted.
    • The target data file must exist.

    shutdown 之后startup mount (mount下不读数据文件)之后剪接到指定目录,比如这里复原

    SYS@sen>alter database rename file 'D:\SENDB\TBS.DBF' to 'D:\TBS.DBF';

    数据库已更改。

    SYS@sen>alter database open;

    数据库已更改。


    4 在TEST表空间内创建一张表TABLE1(insert)
    5 将TEST表空间改为READ ONLY
    6 删除表TABLE1
    7 将表空间改为READ WRITE
    8 删除TEST表空间
    检查数据文件是否被删除?
    9 使用OMF创建表空间
    检查数据文件是否被删除?
    10 创建一个撤消表空间UNDOTBS2,并把它设置为系统当前的撤消表空间
    11 创建一个临时表空间temp2,并把它设置为系统默认的临时表空间

    SQL> create temporary tablespace temp2 tempfile 'e:\temp2.dbf' size 200m;
    SQL> alter database default temporary tablespace temp2;

    12 没有备份的恢复

    (1)创建一个表空间TBS1(TBS1.DBF)

     
     
    (2) 在TBS1表空间内创建一张表T1(INSERT INTO)

    SYS@ncbeta>create table t2(id int) tablespace tbs;
    表已创建。

    SYS@ncbeta>insert into t2 values(2);

    已创建 1 行。
    (3) SHUTDOWN IMMEDIATE
    (4)手工删除表空间TBS1的数据文件

    已删除
    (5)STARTUP

    你想这么久了redolog里面关于老的数据文件的信息早被重写了
    现在你说这么久了日志没了怎么恢复

    (6)将数据文件TBS1.DBF脱机

    alter database datafile 'D:\tbs1.dbf' offline; --启动的时候没有成功,自动mount状态



    (7) ALTER DATABASE OPEN;
    数据库已更改。


    (8)ALTER DATABASE CREATE DATAFILE 'D:\tbs1.dbf';


    (9)recover datafile 'D:\tbs1.dbf';

      完成介质恢复。
    (10)将数据文件TBS1.DBF联机

    SYS@ncbeta>alter database datafile 'D:\tbs1.dbf' online;


    (11)检查数据是否恢复 --已经恢复

  • 相关阅读:
    GridView Footer页脚统计实现多行
    Windows cmd 启动 tomcat 中文乱码问题
    git
    CentOS 的 dnf 命令
    不知道是否是wcf 的一个bug
    图像卷积与滤波的一些知识点
    Phaser开源2d引擎 javascript/html5游戏框架
    关于Ldoc
    自写vim插件ldoc.vim,提供智能的lua注释代码补全
    svn diff 使用 vimdiff 作为比较差异工具
  • 原文地址:https://www.cnblogs.com/sumsen/p/2827291.html
Copyright © 2020-2023  润新知