温馨提示×

centos中sqlplus恢复数据方法

小樊
55
2025-09-01 18:53:49
栏目: 云计算

在CentOS中使用SQL*Plus恢复数据主要涉及逻辑恢复和物理恢复,以下是具体方法及对应命令:

一、逻辑恢复(基于备份文件)

1. 全库恢复

  • 适用场景:数据库完全损坏,需从全量备份恢复。
  • 步骤
    1. expdp导出全库备份(需提前在源库执行):
      expdp username/password@数据库名 schemas=用户名 directory=备份路径 dumpfile=全库备份.dmp logfile=导出日志.log
      
    2. 将备份文件传输到目标服务器,用impdp导入:
      impdp username/password@数据库名 schemas=用户名 directory=导入路径 dumpfile=全库备份.dmp logfile=导入日志.log
      

2. 单表恢复

  • 适用场景:误删除单表数据。
  • 步骤
    1. 对目标表执行逻辑备份(需提前操作):
      expdp username/password@数据库名 tables=表名 directory=备份路径 dumpfile=单表备份.dmp
      
    2. 删除目标表,导入备份数据:
      impdp username/password@数据库名 tables=表名 directory=导入路径 dumpfile=单表备份.dmp
      

二、物理恢复(基于数据文件)

1. 冷备份恢复(数据库关闭状态下)

  • 适用场景:数据文件损坏,需从冷备份恢复。
  • 步骤
    1. 关闭数据库:
      sqlplus / as sysdba
      SHUTDOWN IMMEDIATE;
      
    2. 将冷备份的数据文件、控制文件复制到原路径,覆盖原文件。
    3. 启动数据库:
      STARTUP;
      

2. 热备份恢复(数据库运行状态下)

  • 适用场景:数据库需保持运行,恢复单个数据文件或表空间。
  • 步骤
    1. 将损坏的数据文件从备份路径复制到原路径(需确保控制文件和归档日志完整)。
    2. 使用RMAN恢复(需提前配置RMAN):
      rman target /
      RESTORE DATAFILE '/path/to/损坏数据文件.dbf';
      RECOVER DATAFILE '/path/to/损坏数据文件.dbf';
      ALTER DATABASE OPEN;
      

三、注意事项

  1. 权限要求:需使用SYSDBA或具有相应权限的用户执行恢复操作。
  2. 备份验证:恢复前需确认备份文件完整有效,避免二次损坏。
  3. 复杂场景:若涉及归档日志、闪回数据库等高级恢复,建议参考Oracle官方文档或咨询专业DBA。

以上方法基于SQL*Plus和RMAN工具,具体操作需根据实际故障类型调整。

0