在恢复Oracle Standalone数据库前,需在目标设备上完成以下准备工作。
概览
添加备份网关
确认源实例的Oracle版本号
DBS恢复Oracle实例时要求目标设备的Oracle版本号与源实例的小版本相同。
说明 例如Oracle 11.2.0.4版本与Oracle11.2.0.1版本不兼容,恢复时容易出错。建议目标设备上的Oracle版本与源数据库保持一致。
- 您可以在源实例中通过以下命令查询Oracle版本号:
如下返回结果表示Oracle为su - oracle export ORACLE_SID=orcl; sqlplus / as sysdba select version from v$instance;
19.0.0.0.0
版本。==================== VERSION ----------------- 19.0.0.0.0 ====================
- 若原库已无法达到
mount
状态,您可以按照以下方式查询版本号:su - oracle ORACLE_HOME/OPatch/opatch lsinv -oh $ORACLE_HOME |grep ^"Oracle Database"
创建Oracle SID
由于Oracle不允许一台设备上有同名的SID,您需要创建一个新的SID。
且由于Oracle不允许同库名的实例同时在同一台设备上在线,您可以执行以下命令关闭将原有的实例:
su - oracle
export ORACLE_SID=orcl;
sqlplus / as sysdba
shutdown abort; /* 或者执行shutdown immediate; */
exit;
您可以通过以下命令检测是否已经正常关闭目标实例。
ps -ef|grep pmon|grep orcl
如果以上语句返回的打印存在,您可以通过kill -9
命令关闭该实例。
创建数据恢复目录
创建数据恢复目录之前,您需提前了解到待恢复实例所占存储空间的大小。为保证有足够的空间来进行恢复,建议数据恢复目录的空间大小为原实例大小的1.3倍以上,或者为DBS全量备份集大小的5~6倍以上(DBS备份时会有压缩)。
- 您可以通过以下命令查询原实例的大小:
如下返回结果表示实例大小为su - oracle export ORACLE_SID=orcl; sqlplus / as sysdba select sum(bytes) from ( select bytes from v$datafile union all select bytes from v$tempfile union all select bytes*members bytes from v$log);
4904189952 BYTES
,单位为Bytes:======================= SUM(BYTES) ---------- 4904189952 =======================
获取数据库程序目录
数据库程序目录即为
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 ====================