原理**:将源库的日志传输到目标数据库,应用在目标数据库上;
日志传输方式:ARCH传输(只有发生归档时才会传输redo日志,有可能丢失数据)、LGWR同步传输(把日志数据同时写入本地日志文件和网络,LGWR必须等待写入本地日志文件操作和通过网络传送成功事务才会提交)、LGWR异步传输(只需要写入本地日志文件即可提交事务);
数据保护方式:最大性能(在不影响源数据库性能的前提下提供尽可能高的数据保护,一旦日志数据写入到源库的联机重做日志文件中,事物即提交)、最大保护(日志数据必须同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件,事务才提交,可确保数据零丢失,但代价是源库的可用性,一旦日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库将会被关闭)、最大可用(与最大保护模式一样,日志数据需同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交,与最大保护模式不同的是,如果日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库不会被关闭,而是运行在最大性能模式下,待故障解决并将延迟的日志成功应用在目标库上以后,源数据库将会自动回到最大可用模式下);
目标库上应用日志的方式:物理standby、逻辑standby;
优点:容灾、数据保护、多种数据保护模式、免费;
物理DG配置:1. 打开force logging(数据库将会记录除临时表空间或临时回滚段外的所有操作 ) 2.创建口令文件:同一个DataGuard配置中,所有数据库服务器的SYS用户拥有相同的密码,使用orapwd命令实现; 3.配置standby redo log:在最大保护模式和最大可用性模式下,还有real-time apply时,必须为standby数据库设置standby redo log,设置的条件为,standby redo log跟primary redo log大小一般一致,group至少比primary多一组,特别要注意在RAC环境中,每个实例可以理解为一个thread,这种情况下对应的group数量为thread数量乘以(单线程的;组数量+1)4. 将primary数据库置于archive log模式; 5.创建standby数据库控制文件,在创建完成之后到创建standby数据库这段时间primary数据库尽量不要有结构上的变化 6.配置standby数据库的初始化参数文件 7. 创建服务,针对win平台 8.DG主备库的启动顺序:启动是先备库、后主库;关闭是先主库、后备库;9 备库的打开模式;
数据保护模式切换:从低到高,需要关闭数据库后启动到mount状态后,进行切换,如果是从高到低,直接切换即可;
主备库切换:有两种方式,一种是switchover,一种是failover;其中switchover是可控的,是可逆的;其中,failover是在主库故障时进行的切换,不可逆;
DG的升级:1. 一种是先升级,再单键DG环境; 2. 升级数据库和实例
从单实例环境迁移数据到 DG的几种方法:1. 使用逻辑导出导入,也就是exp/imp工具,可以导出的对象包括整个数据库、表、用户,使用两种方式进行导出,一种是默认,一种是直接路径 2. 使用数据泵,使用直接路径方式,同时可以支持并行,效率较高 ;
DG的备份与恢复:使用RMAN增量备份;
DG故障处理:思路第一是 alert log;第二是V$archive_dest;