用自己的语言描述Oracle数据库备份的基本概念;查询数据库有哪些表空间;现在要联机备份表空间(表空间名字为:学生名字的拼音,数据文件也是一样的名称),请写出所有操作过程和语句。

解决方案 »

  1.   

    一、数据库备份所使用的结构
    Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。
    1.数据库后备是由构成Oracle数据库的物理文件的操作系统后备所组成。当介质故障时进行数据库恢复,利用后备文件恢复毁坏的数据文件或控制文件。
    2.每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。
    3.回滚段用于存储正在进行的事务(为未提交的事务)所修改值的老值,该信息在数据库恢复过程中用于撤消任何非提交的修改。
    4.控制文件,一般用于存储数据库的物理结构的状态。控制文件中某些状态信息在实例恢复和介质恢复期间用于引导Oracle。二、在线日志
    一个Oracle数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。三、归档日志
    Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。其对数据库备份和恢复有下列用处:
    1.数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。
    2.在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。
    数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。四、Oracle的备份特性
    Oracle备份包括逻辑备份和物理备份。
    1.逻辑备份
    数据库的逻辑备份包含读一个数据库记录集和将记录集写入文件。
    (1)输出(Export)输出可以是整个数据库、指定用户或指定表。
    (2)输入(Import)输入将输出建立的二进制转储文件读入并执行其命令。2.物理备份
    物理备份包含拷贝构成数据库的文件而不管其逻辑内容。
    Oracle支持两种不同类型的物理文件备份:脱机备份(offline backup)和联机备份(online backup)。
    (1) 脱机备份 脱机备份用在当数据库已正常关闭,数据库处于"offline"时,要备份下列文件:
    所有数据文件
    所有控制文件
    所有联机日志
    init.ora(可选的)(2) 联机备份联机备份可用来备份任何运作在ARCHIVELOG方式下的数据库。在这种方式下,联机日志被归档,在数据库内部建立一个所有作业的完整记录。
    联机备份过程具备强有力的功能。第一,提供了完全的时间点(point-in-time)恢复。第二,在文件系统备份时允许数据库保持打开状态。备份方式特性比较
    方式 类型 恢复特性
    Export 逻辑 可以将任何数据库对象恢复到输出时的状态
    Offline Backups 物理 可把数据库恢复到关闭的状态:若数据库运行在ARCHIVELOG方式,就可恢复到任何时间点的状态。
    Online Backups 物理 可把数据库恢复到任何时间点五、Oracle数据库的角色管理
    Oracle数据库系统在利用角色管理数据库安全性方面采取的基本措施有:
    通过验证用户名称和口令,防止非Oracle用户注册到Oracle数据库,对数据库进行非法存取操作。
    授予用户一定的权限,限制用户操纵数据库的权力。
    授予用户对数据库实体的存取执行权限,阻止用户访问非授权数据。
    提供数据库实体存取审计机制,使数据库管理员可以监视数据库中数据的存取情况和系统资源的使用情况。
    采用视图机制,限制存取基表的行和列集合。
    SQL> select count(*) from tiny.ftest;   
      
      COUNT(*)   
    ----------   
           200   
      
    --------------我在这个时间点冷备份了我的数据文件(时间点1)   
      
    SQL> insert  into tiny.ftest select rownum from dual connect by rownum<=100;   
      
    已创建100行。   
      
    SQL> commit;   
      
    提交完成。   
      
    SQL> select count(*) from tiny.ftest;   
      
      COUNT(*)   
    ----------   
           300   
      
    SQL> alter tablespace tiny offline;   
      
    表空间已更改。   
      
    ---------我在这个时间点删除了数据文件   
      
    SQL> shutdown immediate;   
    数据库已经关闭。   
    已经卸载数据库。   
    ORACLE 例程已经关闭。   
    SQL> startup mount;   
    ORACLE 例程已经启动。   
      
    Total System Global Area  192937984 bytes   
    Fixed Size                  1248044 bytes   
    Variable Size             138413268 bytes   
    Database Buffers           50331648 bytes   
    Redo Buffers                2945024 bytes   
    数据库装载完毕。   
    ---------我把上面的备份的数据文件拷贝过来   
      
    SQL> recover datafile 'E:\oracle\product\10.2.0\oradata\myorcl\tiny01.dbf';   
    完成介质恢复。   
    SQL> alter database open;   
      
    数据库已更改。   
      
    SQL> alter tablespace tiny online;   
      
    表空间已更改。   
      
    SQL> select count(*) from tiny.ftest;   
      
      COUNT(*)   
    ----------   
           300   
      
    SQL>