RAC—单机异地备份
程序员文章站
2022-04-09 12:47:08
...
RAC—单机异地备份
适用场景: 从RAC复制数据库实例到异地单机上
原理
以rac端为Primary库,异地单机端为Standby库搭建DataGurd,从而实现数据库的异地备份功能。
且只要不断开dg连接,Standby库端将会一直与Primary库同步
环境
-
RAC端
SCAN IP:172.18.23.155
-
RAC1
- 公共IP:172.18.23.151
- 操作系统:Red Hat Enterprise Linux Server release 5.864bit
- 数据库版本:oracle11.2.0.4.0 - 64bit
- 数据库名:DG
- 节点名:DG1
-
RAC2
- 公共IP:172.18.23.152
- 操作系统:Red Hat Enterprise Linux Server release 5.864bit
- 数据库版本:oracle11.2.0.4.0 - 64bit
- 数据库名:DG
- 节点名:DG2
-
DG端
- IP:172.18.25.153
- 操作系统:Red Hat Enterprise Linux Server release 5.864bit
- 数据库版本:oracle11.2.0.4.0 - 64bit
- 数据库名:DG
配置监听(Primary&Standby)
- Standby: 配置静态监听
编辑备库listener.ora文件路径:
/u01/app/oracle/base/product/11.2.0/dbhome_1/network/admin/listener.ora
主要添加了静态监听配置(SID_LIST_LISTENER):
- 配置tns文件(Primary&Standby)
在Primary库上编辑tnsnames.ora文件路径:
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
主要添加了Standby库的tns信息:
* 在Standby库上编辑tnsnames.ora文件
路径:
/u01/app/oracle/base/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
内容:与Primary库一致(可直接从Primary库复制)
- **文件
将Primary库的**文件复制至Standby库(或直接新建)
路径:
/u01/app/oracle/base/product/11.2.0/dbhome_1/dbs/orapwDG
创建**文件(不推荐):
在Standby库执行:
orapwd file=$ORACLE_HOME/dbs/orapwDG password=密码 entries=5
创建安装路径
在Standby库中使用oracle用户
Standby库中根目录($ORACLE_BASE)的路径为:
/u01/app/oracle/base
创建主目录
mkdir /u01/app/oracle/base/admin/DG;
mkdir /u01/app/oracle/base/admin/DG/adump;
mkdir /u01/app/oracle/base/admin/DG/bdump;
mkdir /u01/app/oracle/base/admin/DG/cdump;
mkdir /u01/app/oracle/base/admin/DG/dpump;
mkdir /u01/app/oracle/base/admin/DG/pfile;
创建快速恢复区
mkdir /u01/app/oracle/base/fast_recovery_area/dg;
mkdir /u01/app/oracle/base/fast_recovery_area/dg/onlinelog;
创建数据区
mkdir /u01/app/oracle/base/oradata/dg;
配置spfile文件
- 查看Primary库的datafile路径
使用sqlplus / as sysdba命令进入sql:
select file#,name from v$datafile;
- 查看Primary库的logfile路径
使用sqlplus / as sysdba命令进入sql:
select member from v$logfile;
在Standby库上创建spfile
- 在指定路径创建pfile文件
vim /u01/app/oracle/base/my.ora
内容:
db_name= DG
db_file_name_convert=('+DATA/dg','/u01/app/oracle/base/oradata/dg')
log_file_name_convert=('+DATA/dg/onlinelog','/u01/app/oracle/base/fast_recovery_area/dg/onlinelog','+FRA/dg/onlinelog','/u01/app/oracle/base/fast_recovery_area/dg/onlinelog')
注意比较Primary库中datafile和logfile的路径与从库中此文件路径的差异,并根据差异配置下一步中pfile文件的db_file_name_convert和log_file_name_convert。第一个参数为Primary库路径,第二个参数为相对应的Standby库的路径。如路径一致可以不配。
- 根据pfile来修改Standby库的spfile
在Standby库使用oracle用户:
export ORACLE_SID=DG
sqlplus / as sysdba
进入sql后:
create spfile from pfile=’/u01/app/oracle/base/initDG.ora’;
启动Standby库至nomount状态
startup nomount;
使用rman复制数据库到异地单机
- 使用rman工具连接主备库
在Primary库使用oracle用户:
rman target sys/123456@DG auxiliary sys/123456@DGDG
- 开启deplicate复制
RMAN> duplicate target database for standby from active database nofilenamecheck;
如果复制过程中没有报错,执行结果最后一行显示Finished Duplicate Db 那么就复制成功了,此时,两端的数据库就是一样的了。
检测
在Standby库上执行
SQL>alter database open;
SQL>alter database recover managed standby database disconnect from session;
随便查看某张表,Primary和Standby的数据是一样的。
- 在Primary库上执行
SQL>create table t(id int);
SQL>insert into t values(1);
SQL>commit;
SQL>alter system switch logfile;
以上是建一张新表,插入一条数据,并提交,写入磁盘触发MRP进程.
- 在Standby库上执行
SQL>select * from t;
会有一条数据,说明已经同步Primary最新的变更。
推荐阅读
-
SQL Server2005 异地备份的多种方法
-
SQL Server2005异地自动备份方法
-
使用批处理异地备份数据(winrar)
-
Oracle数据库的数据备份,本地,异地,exp-imp,expdp-impdp等实例讲解
-
Oracle12CDG的搭建教程:RAC-RAC/RAC-单机
-
Linux下mysql异地自动备份的方法
-
使用批处理文件异地备份数据库(最近几天的数据)
-
数据库Oracle数据的异地的自动备份
-
Setting up a GoldenGate replication between Oracle RAC databases:oracle的操作步骤和区别于单机环境的部署操作
-
Oracle数据库冷备份的异地恢复