在进行Oracle物理备份前,您需要参考本文完成准备工作,包含开启Oracle数据库的归档模式、获取Oracle SID及获取数据库程序目录。
前提条件
您的用户角色为DBA。
开启归档模式
数据库备份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
说明若
Database log mode
参数返回Archive Mode #存档模式
,则表示当前已开启归档模式,开启归档模式步骤结束,无需进行后续操作。如果归档模式未开启,请通过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
执行如下命令,从系统进程信息中提取出正在运行的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
地址。
打开命令行界面,使用
su - oracle
命令切换到Oracle用户。在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
。