设为首页 收藏本站
查看: 1233|回复: 0

[经验分享] Oracle-DG配置灾备数据库

[复制链接]

尚未签到

发表于 2018-9-24 13:09:53 | 显示全部楼层 |阅读模式
  1.     在主库进行下面配置
  1.1  确认主数据库运行在归档模式下
              使用下面命令确定主数据库处于归档模式下:

                     SQL> archive log list;

              如果主数据库未处于归档模式下,使用下面命令设置主数据库:

                     SQL> shutdown immediate;  --立即关闭数据库

                     SQL> startup mount;                     --开启数据库到mount状态

                     SQL>>

                     SQL>>

1.2  确认主库强制写日志

                     SQL> select force_logging from v$database;  --查看数据库是否处于归档模式

                     SQL>>

1.3  配置主数据库的监听文件与传输文件

              配置监听文件

                     [oracle@oracle1 ~]$ vim /oracle/app/oracle/praduct/10.2.0/db_1/network/admin/listener.ora

                     SID_LIST_LISTENER =

                                   (SID_LIST =

                                          (SID_DESC =

                                                 (GLOBAL_DBNAME = TEST)

                                                 (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)

                                   (SID_NAME = TEST)

                                          )

                                   )


                            LISTENER =

                                   (DESCRIPTION =

                                   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.101.101)(PORT = 1521))

                            )

              配置传输文件

                     [oracle@oracle1 ~]$ vim /oracle/app/oracle/praduct/10.2.0/db_1/network/admin/tnsnames.ora

                            DB102 =

                                   (DESCRIPTION =

                                          (ADDRESS_LIST =

                                                 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.102)(PORT = 1521))

                                          )

                                   (CONNECT_DATA =

                                          (SERVICE_NAME = TEST)

                                   )

                            )

              启动监听服务

                     [oracle@oracle1 ~]$ lsnrctl status       //查看监听服务状态

                     [oracle@oracle1 ~]$ lsnrctl start  //开启监听服务

  1.4  修改主数据库的参数文件(spfile)
              建立pfile文件

                     SQL> create pfile from spfile

              在pfile中加入下面内容

                     vim /oracle/app/oracle/product/10.2.0/db_1/dbs/initTEST.ora

                            DB_UNIQUE_NAME=TEST      --show parameter DB_UNIQUE_NAME确认主库名称

                            LOG_ARCHIVE_CONFIG='DG_CONFIG=(DB101,DB102)' --此处为主库网络连接串(tnsnames.ora)

                            LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archive  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TEST'  --主库的归档日志路径

                            LOG_ARCHIVE_DEST_2='SERVICE=DB102 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TEST'

                            FAL_SERVER=DB101 --网络异常恢复后自动将延迟的归档日志传输到备库,此处为主库网络连接串(tnsnames.ora)

                            FAL_CLIENT=DB102

                            STANDBY_FILE_MANAGEMENT=AUTO       --默认只传递数据,此作用主库把新创建的数据文件也传到备库

              重启数据库

                     SQL> shutdown immediate

                     SQL> startup pfile='/oracle/app/oracle/praoduct/10.2.0/db_1/dbs/initTEST.ora'

                     或模拟spfile失效

                     [oracle@oracle1 ~]$ mv /oracle/app/oracle/praoduct/10.2.0/db_1/dbs/spfileTEST.ora spfile.TEST.ora.bak

                     SQL> startup

              查看建立的pfile文件是否生效

                     SQL> show parameter fal

              如果生效,pfile生效,使用pfile重建spfile。

                     create spfile from pfile

  1.5  全库备份主数据库(应该在从库配置完成(2.4)后进行)
              备份主数据库

                     RMAN> backup full database format='/home/oracle/db_bak/%U' include current controlfile for standby;

              还原从数据库(需要先执行2.5操作)

                     RMAN> connect auxiliary sys/123456@DB102       --连接从库

                     RMAN> duplicate target database for standby nofilenamecheck;   --还原从数据库

  2.     配置灾备数据库
  2.1  在灾备数据库服务器中安装Oracle软件,保证服务器的环境变量、数据库的实例名、数据库的字符集与主数据库相同。
              在主数据库中使用下面命令查看主数据库的字符集:

                     SQL> select * from nls_database_parameters where parameter='NLS_CHARACTERSET';

  2.2  配置从库监听服务与传输文件
              配置监听文件

                     [oracle@oracle2 ~]$ vim /oracle/app/oracle/praduct/10.2.0/db_1/network/admin/listener.ora

                            SID_LIST_LISTENER =

                                   (SID_LIST =

                                          (SID_DESC =

                                                 (GLOBAL_DBNAME = TEST)

                                                 (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)

                                   (SID_NAME = TEST)

                                          )

                                   )


                            LISTENER =

                                   (DESCRIPTION =

                                   (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.101.102)(PORT = 1521))

                            )

              配置传输文件

                     [oracle@oracle2 ~]$ vim /oracle/app/oracle/praduct/10.2.0/db_1/network/admin/tnsnames.ora

                            DB101 =

                                   (DESCRIPTION =

                                          (ADDRESS_LIST =

                                                 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.101)(PORT = 1521))

                                          )

                                   (CONNECT_DATA =

                                          (SERVICE_NAME = TEST)

                                   )

                            )

              开启监听

                     [oracle@oralce2 ~]$ lsnrctl start

  2.3  配置从库的spfile,追加下面内容
                     DB_UNIQUE_NAME=TEST      --show parameter DB_UNIQUE_NAME

                     LOG_ARCHIVE_CONFIG='DG_CONFIG=(DB101,DB102)'

                     LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archive  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TEST'

                     LOG_ARCHIVE_DEST_2='SERVICE=DB101 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TEST'

                     FAL_SERVER=DB102

                     FAL_CLIENT=DB101

                     STANDBY_FILE_MANAGEMENT=AUTO

  2.4  关闭数据库并重新开启到nomount状态
                     SQL> startup nomount force;

  2.5  还原从库,使从库与主库数据保持一致
              复制密码文件

                     [oracle@oracle2 ~]$ scp oralce@192.168.101.101:/$ORACLE_HOME/dbs/orapwTEST $ORACLE_HOME/dbs/

              将主库备份的文件拷贝到从库

                     [oracle@oracle2 ~]$ mkdir -pv /home/oracle/db_bak/

                     [oracle@oracle2 ~]$ scp oralce@192.168.101.101:/home/oracle/db_bak/*  /home/oracle/db_bak/

              回复完成,从数据库自动开启到mount状态

                     SQL> select open_mode from v$database;      --查看数据库状态


  3.     测试主数据库与灾备数据库之间的通讯
3.1  在主数据库上切换日志组并查询进程

              当查询结果含有LNS,说明主数据库能够像灾备数据库传递日志文件

                     SQL>>

                     SQL> select process from v$managed_standby;     --查看进程

                            PROCESS

                            ---------

                            ARCH

                            ARCH

                            LNS

3.2  在灾备数据库中查看是否能够正常开启RFS进程

                     SQL> SQL> select process from v$managed_standby;

                            PROCESS

                            ---------

                            ARCH

                            ARCH

                            RFS

                            RFS

3.3  开启灾备数据库的MRP恢复进程

                     SQL>>


  4.     验证灾备
4.1  在主数据库中建立表或插入数据

4.2  切换主数据库的在线日志组

4.3  关闭备份库的MRP进程并将备份库更改为open状态,验证

              关闭Mrp进程

                     SQL>>

PS.

=================================================

(1)备用数据库在日志恢复过程中(MRP进程存在期间)数据库处于MOUNTED状态,此时备用数据库无法打开供读取使用

(2)打开备用数据库

     停止备用库的日志恢复进程MRP

    >

     open备用数据库,备用数据库默认打开为只读方式

    >

(3)重新启动备用数据库的MRP进程,数据库自动从OPEN状态转换到MOUNT 状态

    >

(4)mrp进程停止期间,只要RFS进程存在,那么不影响日志的接收

====================================================



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-600619-1-1.html 上篇帖子: oracle 10G Data Guard -------终于搞定 下篇帖子: Oracle 11.2 RAC中手工配置 DB Control (2)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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