全部产品
Search
文档中心

数据库备份 DBS:Oracle物理备份的准备工作

更新时间:Mar 14, 2024

在进行Oracle物理备份前,您需要参考本文完成准备工作,包含开启Oracle数据库的归档模式、获取Oracle SID及获取数据库程序目录。

前提条件

您的用户角色为DBA。

开启归档模式

数据库备份DBS通过Oracle的RMAN工具进行数据库备份。Oracle数据库的归档模式默认为关闭状态,需将其开启才能进行备份。

  1. 使用系统管理员sysdba角色通过as sysdba命令登录Oracle数据库。

  2. 通过SQL命令ARCHIVE LOG LIST查询当前数据库的归档状态,返回示例如下:

    Database log mode              No Archive Mode  #非存档模式
    Automatic archival             Disabled
    Archive destination            USE_DB_RECOVERY_FILE_DEST  
    Oldest online log sequence     1    
    Current log sequence           2  
    说明

    Database log mode参数返回Archive Mode #存档模式,则表示当前已开启归档模式,开启归档模式步骤结束,无需进行后续操作。

  3. 如果归档模式未开启,请通过SQL命令SHUTDOWN IMMEDIATE关闭数据库,因为无法在OPEN状态下开启归档模式。

    警告

    请管理员在非业务高峰期进行此操作。

  4. 通过SQL命令STARTUP MOUNT启动数据库至MOUNT状态。

  5. 通过SQL命令ALTER DATABASE ARCHIVELOG开启归档模式。

  6. 再次通过SQL命令ARCHIVE LOG LIST查询归档状态,返回示例如下:

    Databaselog mode             Archive Mode #存档模式
    Automatic archival           Enabled 
    Archive destination          USE_DB_RECOVERY_FILE_DEST 
    Oldest online log sequence 1
    Next log sequence to archive 2
    Currentlog sequence        2
    说明

    开启后,Oracle默认的日志归档路径为闪回恢复区($ORACLE_BASE/fast_recovery_area),该目录默认仅有4 GB的空间,同时也是备份文件和闪回日志的默认路径。为避免该磁盘空间不足导致数据库服务异常,您可按需调整该目录的空间大小或修改日志归档路径。

  7. 通过SQL命令ALTER DATABASE OPEN启动数据库。

获取Oracle SID

  • Linux

    执行如下命令,从系统进程信息中提取出正在运行的Oracle数据库实例的SID:

    ps -ef | grep ora_pmon_ | grep -v grep | awk -F "ora_pmon_" '{print "oracle sid: "$NF }' | grep -v print

    如下返回示例表示Oracle SID为orcl

    oracle sid: orcl
  • Windows

    在Windows的命令行界面中快速获取Oracle数据库实例的SID和服务名:

    sc query type=service | findstr SERVICE_NAME | findstr OracleService

    如下返回示例表示Oracle实例的SID为orcl,服务名为OracleServiceORCL

    SERVICE_NAME: OracleServiceORCL

获取数据库程序目录

数据库程序目录即为ORACLE_HOME地址。

  1. 打开命令行界面,使用su - oracle命令切换到Oracle用户。

  2. 在Oracle数据库中,使用echo $ORACLE_HOME命令查看当前系统中ORACLE_HOME环境变量所设置的路径地址。

    如下返回示例表示ORACLE_HOME地址为/opt/oracle/product/19c/dbhome_1

    /opt/oracle/product/19c/dbhome_1

Oracle RAC文件查询

为了保证备份成功,您需要在备份Oracle RAC前对控制文件、参数文件、数据文件、归档日志、REDO日志文件进行检查,备份其他架构无需执行以下操作。查询示例如下:

  • 查询REDO日志文件

    SELECT member FROM v$logfile WHERE type='ONLINE';

    返回示例如下:MEMBER中显示的值以+开头,ASM为DBSBAKDAT1DG

  • 查询归档日志文件

    SELECT name FROM v$archived_log WHERE DELETED='NO';

    返回示例如下:NAME中显示的值以+开头,ASM为DBSBAKDAT1DG

  • 查询数据文件

    SELECT name FROM v$datafile;

    返回示例如下: VALUE中显示的值以+开头,ASM为DBSBAKDAT1DG

  • 查询参数文件

    SHOW parameter spfile;

    返回示例如下:VALUE中显示的值以+开头,ASM为DBSBAKDAT1DG

  • 查询控制文件

    SHOW parameter control_files;

    返回示例如下:VALUE中显示的值以+开头,ASM为DBSBAKDAT1DG

后续步骤

Oracle物理备份