在进行Oracle物理备份前,您需要参考本文完成准备工作,包含开启Oracle数据库的归档模式、获取Oracle SID及获取数据库程序目录。
前提条件
开启归档模式
DBS通过Oracle的RMAN工具进行数据库备份。Oracle数据库的归档模式默认为关闭状态,需将其开启才能进行备份。
- 以系统管理员sysdba角色通过
as sysdba
命令登录Oracle数据库。 - 通过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
- 通过SQL命令
SHUTDOWN IMMEDIATE
关闭数据库,因为无法在OPEN
状态下开启归档模式。警告 请管理员在非业务高峰时期操作。 - 通过SQL命令
STARTUP MOUNT
启动数据库至MOUNT状态。 - 通过SQL命令
ALTER DATABASE ARCHIVELOG
启动归档模式。 - 再次通过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的空间,同时也是备份文件和闪回日志的默认路径。为避免该磁盘空间不足导致数据库服务异常,您可按需调整该目录的空间大小或修改日志归档路径。 - 通过SQL命令
ALTER DATABASE OPEN
启动数据库。
获取Oracle SID
- Linux
执行如下命令:
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:
在CMD(Command,命令行)中执行如下命令:
sc query type=service | findstr SERVICE_NAME | findstr OracleService
如下返回示例表示Oracle SID为orcl
:SERVICE_NAME: OracleServiceORCL
获取数据库程序目录
数据库程序目录即为
ORACLE_HOME
地址。
- 在命令行通过
su - oracle
命令登录Oracle数据库。 - 在Oracle数据库中通过SQL命令
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
。 - 控制文件
SELECT member FROM v$logfile WHERE type='ONLINE';
返回示例如下:VALUE中显示的值以
+
开头,ASM为DBSBAKDAT1DG
。