重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 131|回复: 3

[Oracle] DataGuard之单实例DG搭建

[复制链接]
发表于 2019-12-14 20:07:25 | 显示全部楼层 |阅读模式
本帖最后由 橡皮草帽 于 2019-12-14 20:40 编辑
实验环境:
主库
备库
操作系统
RedHat7.0 64位
RedHat7.0 64位
主机名
redhat70
redhat71
IP
192.168.133.70
192.168.133.71
数据库软件版本
Oracle 11.2.0.4
Oracle 11.2.0.4
ORACLE_BASE
/u01/app/oracle
/u01/app/oracle
ORACLE_HOME
/u01/app/oracle/product/11.2.0.4/dbhome_1
/u01/app/oracle/product/11.2.0.4/dbhome_1
ORACLE_SID
orcl70
闪回区
开启
归档
开启
详细操作请阅览PDF附件。

36905de8b42234d6f.png
522145de87dd4c168e.png
334955de8774626314.png
795155de874db3175b.png
40525de8730aeb03d.png
936535de86f137a9ed.png
134485de86cec4fb11.png
907325de86b8932391.png
976855de867d9ecc0a.png
49205de864d305f3e.png
896105de86403f3590.png
522855de862e6a16c6.png
863835de8618d05b8c.png
898525de860ebc73bf.png
348255de85fc1b9d79.png
986545de85ea43cdd3.png

单实例DG搭建.pdf

203.7 KB, 下载次数: 4

回复

使用道具 举报

 楼主| 发表于 2019-12-15 18:32:29 | 显示全部楼层
本帖最后由 橡皮草帽 于 2019-12-20 18:14 编辑

2.7DG切换与恢复
DG的故障切换分为switchoverfailover两种。
2.7.1switchover
switchover用户有计划的进行停机切换,能够保证不丢失数据。
主库(orcl70操作:
SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS    DATABASE_ROLE
-------------------- ----------------
TO STANDBY           PRIMARY
注意:上面查询结果为TO STANDBY SESSIONS ACTIVE表明可以进行切换
SQL> alter database commit to switchover to physical standby;

Database altered.

SQL> startup mount
ORACLE instance started.

Total System Global Area 3340451840 bytes
Fixed Size                  2257840 bytes
Variable Size            1862274128 bytes
Database Buffers         1459617792 bytes
Redo Buffers               16302080 bytes
Database mounted.
SQL> select database_role from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY
备库(orcl71操作:
SQL> select switchover_status,database_role from v$database;

SWITCHOVER_STATUS    DATABASE_ROLE
-------------------- ----------------
TO PRIMARY           PHYSICAL STANDBY
注意:上面查询结果为TO STANDBY SESSIONS ACTIVE表明可以进行切换
SQL> alter database commit to switchover to primary with session shutdown;

Database altered.

SQL> alter database open;

Database altered.

SQL> select switchover_status,database_role,open_mode from v$database;

SWITCHOVER_STATUS    DATABASE_ROLE    OPEN_MODE
-------------------- ---------------- --------------------
TO STANDBY           PRIMARY          READ WRITE
备库(orcl70操作:备注:需要在现在的备库(orcl70开启实时同步
SQL> alter database open;

Database altered.

SQL> alter database recover managed standby database using current logfile disconnect from session;
       #开启实时同步
       Database altered.
新主备库验证:
DG switover切换完成,验证方法同上2.6
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-16 17:15:43 | 显示全部楼层
本帖最后由 橡皮草帽 于 2019-12-20 18:16 编辑

2.7.2failover
failover是当主库真正出现严重系统故障,如数据库宕机,软硬件故障导致主库不能支持服务,从而进行的切换动作。
注意:为了能够在failover后能够恢复DG需要在主库上开启flashback,如果不开启flashback的话,DG就可能需要重新搭建由于主库orcl70已经不可访问,所有的操作都在备库orcl71完成
备库(orcl71)操作:
SQL> alter database recover managed standby database cancel;  
#关闭实时同步
Database altered.

SQL> alter database recover managed standby database finish force;
#关闭standby日志传输
Database altered.

SQL> select database_role from v$database;

DATABASE_ROLE
----------------
PHYSICAL STANDBY

SQL> alter database commit to switchover to primary with session shutdown;
#切换备库(orcl71)到primary
Database altered.

SQL> alter database open;

Database altered.

SQL> select switchover_status,database_role,open_mode from v$database;

SWITCHOVER_STATUS    DATABASE_ROLE    OPEN_MODE
-------------------- ---------------- --------------------
RESOLVABLE GAP       PRIMARY          READ WRITE
备注:failover操作完成,原来的备库orcl71已经切换为主库
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-20 18:13:32 | 显示全部楼层
本帖最后由 橡皮草帽 于 2019-12-20 18:17 编辑

2.7.3failover恢复
failover这种情形是当主库真正出现异常之后,才会执行的操作,那么我们执行过failover之后,如何重新构建DG,这里我们利用flashback database来重构
新主库(orcl71)操作:
SQL> select to_char(standby_became_primary_scn) from v$database;
#查询主库的scn
TO_CHAR(STANDBY_BECAME_PRIMARY_SCN)
----------------------------------------
1033380
原主库,现在的备库(orcl70)操作:
SQL>  startup mount
ORACLE instance started.

Total System Global Area 3340451840 bytes
Fixed Size                  2257840 bytes
Variable Size            1862274128 bytes
Database Buffers         1459617792 bytes
Redo Buffers               16302080 bytes
Database mounted.
SQL> flashback database to scn 1033380;
#闪回数据库到scn
Flashback complete.

SQL> alter database convert to physical standby;
#切换物理备库
Database altered.

SQL> shutdown immediate;#关闭数据库
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 3340451840 bytes
Fixed Size                  2257840 bytes
Variable Size            1862274128 bytes
Database Buffers         1459617792 bytes
Redo Buffers               16302080 bytes
Database mounted.
Database opened.
SQL> alter database recover managed standby database using current logfile disconnect from session;
#开启实时同步
Database altered.
新主备库验证:
DG failover恢复完成,验证方法同上2.6

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2020-2-29 00:17 , Processed in 0.143861 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表