温馨提示×

Oracle数据库在Ubuntu上如何备份恢复

小樊
54
2025-09-17 01:18:44
栏目: 云计算

备份方法

  1. 逻辑备份(导出数据)

    • 使用 expdp 工具导出数据库对象和数据:
      expdp username/password@SID directory=data_pump_dir dumpfile=backup.dmp logfile=expdp.log [tables=table_name]  
      
      • directory:需提前创建并授权的目录对象(如 data_pump_dir),对应Ubuntu实际路径(如 /u01/app/oracle/dpump)。
      • 可通过 tables 参数指定导出特定表。
  2. 物理备份(RMAN工具)

    • 全量备份
      rman target /  
      run {  
        allocate channel ch1 type disk;  
        backup database plus archivelog;  
        release channel ch1;  
      }  
      
      • 备份文件默认存放在 $ORACLE_BASE/flash_recovery_area,可通过 format 参数指定路径。
    • 增量备份
      rman target /  
      run {  
        backup incremental level 1 database;  
      }  
      
  3. 文件系统级备份

    • 使用 tarrsync 备份数据库文件目录(如 $ORACLE_HOME/dbs$ORACLE_DATA),需停止数据库服务。

恢复方法

  1. 逻辑恢复(导入数据)

    impdp username/password@SID directory=data_pump_dir dumpfile=backup.dmp logfile=import.log [remap_schema=原用户:新用户]  
    
    • 若需覆盖现有用户,使用 remap_schema 参数。
  2. 物理恢复(RMAN工具)

    • 完整恢复(控制文件、数据文件损坏)
      rman target /  
      run {  
        restore database;  
        recover database;  
        alter database open resetlogs;  
      }  
      
      • 适用于数据库完全丢失或控制文件损坏场景。
    • 部分恢复(单个数据文件损坏)
      rman target /  
      run {  
        restore datafile '/path/to/datafile.dbf';  
        recover datafile '/path/to/datafile.dbf';  
      }  
      
  3. 闪回技术恢复

    • 闪回数据库(需提前启用归档模式)
      FLASHBACK DATABASE TO TIMESTAMP 'YYYY-MM-DD HH24:MI:SS';  
      ALTER DATABASE OPEN;  
      
      • 适用于误操作后的快速回退。

注意事项

  • 权限与环境:确保执行命令的用户具有 oracle 权限,且已配置 ORACLE_HOMEORACLE_SID 等环境变量。
  • 备份验证:定期通过 rman list backupexpdp 导出小量数据验证备份有效性。
  • 存储路径:备份文件需存放在非系统盘(如独立硬盘或远程存储),避免单点故障。
  • 测试恢复:生产环境恢复前,先在测试环境验证流程,避免数据丢失。

参考来源:[1,2,3,4,5,6,7,8,9,10]

0