Previous Topic: 查看先决条件Next Topic: 还原控制文件


还原表空间

如果数据库表空间已丢失或损坏,您可以通过执行文件级恢复来对其进行还原。文件级恢复成功后,您必须手动恢复表空间。

请按照下列步骤操作:

  1. 以 root 用户身份登录目标计算机。
  2. 确保数据库可用。
  3. 让所需表空间脱机。

    示例:假定表空间的名称是 MYTEST_DB。输入以下命令,让表空间脱机:

    $ sqlplus "/ as sysdba"
    SQL> alter tablespace MYTEST_DB offline;
    
  4. 列出指定表空间 MYTEST_DB 的所有数据文件。
    SQL> select file_name, tablespace_name from dba_data_files where tablespace_name='MYTEST_DB';
    
    FILE_NAME
    
    --------------------------------------------------------------------------------
    
    TABLESPACE_NAME
    
    ------------------------------
    
    /opt/oracle/oradata/lynx/MYTEST_DATA01.dbf
    
    MYTEST_DB
    
  5. 使用还原向导还原表空间的数据文件。有关还原过程的更多信息,请参阅“如何在 Linux 节点上执行文件级恢复”。
  6. 指定关于还原向导的以下信息并提交作业:
    1. 当您选择文件和文件夹时,请输入表空间的所需数据文件名称并搜索。

      示例:输入表空间“MYTEST_DB”的“MYTEST_DATA01.dbf”并搜索。

    2. 在“目标计算机”页面上,输入以下信息:
      • 选择“还原到原始位置”。
      • 输入目标 Oracle 服务器的主机名或 IP 地址。
      • 输入目标 Oracle 服务器的 root 用户名和密码。
      • 为“解决冲突”选项选择“覆盖现有文件”。
  7. 还原数据文件后,恢复 Oracle 数据库的表空间。
    SQL>recover tablespace MYTEST_DB;
    Specify log:{<RET>=suggested | filename | AUTO | CANCEL}
    Auto
    
  8. 让指定的表空间联机。
    SQL>alter tablespace MYTEST_DB online;
    

表空间已成功恢复。