方法 1 - 使用 RMAN 进行正常还原和恢复
- 执行 ASM 主数据库的备份(Datafiles, Controlfile for Standby & Archivelogs)
$ rman target / RMAN> backup database format '/backup/database_%U.bkp'; RMAN> backup archivelog all format '/backup/archivelog_%U.bkp'; RMAN> backup current controlfile for standby format '/backup/stdb_cntl_%U.bkp';
注意:对于磁盘 RMAN 备份,请备份到文件系统。
我们还可以使用媒体管理器将备份直接备份到磁带。
使备用服务器上的备份片段可用:
FTP 或者 SCP 备份片断到备用服务器。
在执行 FTP 时,请确保仅以二进制模式执行。
或者
NFS 挂载然后将 NFS 挂载到备用服务器上,其名称与我们挂载到主数据库上的名称相同。
或者
如果备份在磁带上,请确保在备用服务器上进行适当的更改,以便我们可以在备用服务器上恢复备份。创建备用参数文件和密码文件。
复制主数据库参数文件并进行必要的更改:
db_unique_name='stnd_db' instance_name='stnd_db' standby_archive_dest='[location for archives coming from primary]' db_file_name_convert='+DATA/prim_db/datafile/', '/u01/oradata/stnd_db/', '+DATA/prim_db/tempfile/', '/u01/oradata/stnd_db/' log_file_name_convert='+DATA/prim_db/onlinelog/', '/u01/oradata/stnd_db/'
使用与主数据库相同的密码为备用数据库创建密码文件
$ export ORACLE_SID=stand_db $ orapwd file=orapwstand_db password=oracle
4.在两台服务器上配置Oracle网络服务
In standby server - configure listener. In Primary server - configure tnsnames for standby. - check connectivity using tnsping.
- 对备用数据库执行恢复和恢复。
启动 Nomount 备用实例并从步骤 1 中执行的“备用控制文件”的备份中恢复备用控制文件。
$ export ORACLE_SID=stnd_db $ rman target / RMAN> restore standby controlfile from '/backup/stdb_cntl_3oqff2fb_.bkp';
我们必须使用选项“备用控制文件”,例如
RMAN> RESTORE STANDBY CONTROLFILE from ...
否则不使用转换参数 DB_FILE_NAME_CONVERT。
恢复 STANDBY CONTROLFILE 后,我们可以挂载 AUX 实例并验证使用了 DB_FILE_NAME_CONVERT 参数并显示正确的数据文件路径/名称。
例如:
RMAN> REPORT SCHEMA ; ( or sql> select name from v$datafile ; )
挂载数据库
RMAN> Alter database mount;
如果备份片在完全相同的目录结构中,或者如果目录结构是 NFS 挂载在备用服务器上,则直接还原数据库,否则如果备份片位于不同的位置,我们需要手动对其进行编目。
例如:
RMAN> catalog backuppiece '/backup/database_2x21kd12.bkp';
恢复数据库
使用以下语法恢复数据库(使用 set newname)
RMAN> run { set newname for datafile 1 to '[new path]': Set newname for datafile 2 to '[newpath]'; . . restore database; Switch datafile all; }
恢复数据库
使用以下命令了解存档日志备份中可用的最后一个序列。
这我们恢复数据库直到该存档日志。
RMAN > list backup of archivelog all;
让我们假设备份中最后一个存档日志的最后一个序列是 50。
由于我们在这里恢复数据库直到存档日志序列 50,因此 UNTIL SEQUENCE 子句中的序列号应该是 50 (+1)
RMAN> Recover database until sequence 51;
- 配置主数据库以将档案传输到备用数据库。
在主数据库中设置以下参数:
log_archive_dest_2='SERVICE=stnd_db'
执行日志切换并确保存档正在传输到备用目的地。
- 通过将数据库置于恢复托管模式来启动重做应用。
在备用数据库中启动托管恢复过程:
SQL> Recover managed standby database disconnect from session;
这篇文章介绍了在普通文件系统上使用 RMAN 为 ASM 中的主数据库创建物理备用数据库的详细步骤。
在这里可以使用以下两种方法创建备用数据库:
- 使用 RMAN 进行正常还原和恢复。
- 使用 RMAN 为备用数据库创建重复数据库。
方法一
- 执行 ASM 主数据库的备份(数据文件、备用控制文件和存档日志)
- 使备用服务器上的备份片段可用。
- 创建备用参数文件和密码文件。
- 在两台服务器上配置 Oracle 网络服务。
- 在备用数据库上执行还原和恢复。
- 配置主数据库以将档案传输到备用数据库。
- 通过将数据库置于恢复托管模式来启动重做应用。
方法二
使用 RMAN Duplicate 功能创建备用数据库。
下面的帖子中概述了完成相同操作的步骤。
如何从 ASM 主节点创建物理备用