1.配置过程

  • 确认为归档模式
  1. SQL> select log_mode from v$database;
  2.  
  3. LOG_MODE
  4. ------------
  5. ARCHIVELOG
  • 配置归档日志存放路径(/home/oracle/arch提前创建)
  1. 主库:
    SQL>alter system set log_archive_dest_1='location=/home/oracle/arch
  2. db_unique_name=ora11g';
  1. 备库:
  2. SQL> alter system set log_archive_dest_2='service=s74
  3. db_unique_name=bei';
  • 将主库、备库加载入DG中
  1. SQL> alter system set log_archive_config='dg_config=(ora11g,bei)';
  2. System altered.
  3. SQL> alter system set standby_file_management=auto;
  4. System altered.
  • 开启强制记录日志功能
  • 拷贝全库至备库
  1. 查看文件存放位置(日志文件、数据文件、控制文件都在此目录下):
  2. SQL> select * from v$logfile;
  3.  
  4. 拷贝重做日志文件、数据文件至从库:
  5. SQL>scp * 172.16.150.66:/home/oracle/standby
  6.  
  7. 生成备库的控制文件,并拷贝至备库:
  8. SQL> alter database create standby controlfile as '/home/oracle/bei.ctl';
  9. [oracle@localhost ora11g]$scp /home/oracle/1.ctl 172.16.150.74:/home/oracle/standby
  10.  
  11. 拷贝参数文件、口令文件至备库:
  12. SQL> show parameter spfile;
  13. [oracle@oracle dbs]$ scp /u01/oracle/product/11.2.0/dbs /spfileora11g.ora 172.16.150.74:/home/oracle/standby
  14. [oracle@oracle dbs]$ scp /u01/oracle/product/11.2.0/dbs / orapwora11g/172.16.150.74:/home/oracle/standby
  15.  
  16. 将参数文件、口令文件拷贝至$ORACLE_HOME/dbs
  • 主库配置tnsnames.ora
  1. [oracle@oracle network]$ cd $ORACLE_HOME/network/admin
  2.  
  3. ORACLE =
  4. (DESCRIPTION =
  5. (ADDRESS = (PROTOCOL = TCP)(HOST = oracle.com)(PORT = 1521))
  6. (CONNECT_DATA =
  7. (SERVER = DEDICATED)
  8. (SERVICE_NAME = oracle.com)
  9. )
  10. )
  11.  
  12. s74=
  13. (DESCRIPTION =
  14. (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.150.74)(PORT = 1521))
  15. (CONNECT_DATA =
  16. (SERVER = DEDICATED)
  17. (SERVICE_NAME = bei)
  18. )
  19. )
  • 修改备库中的参数文件
  1. ora11g.__db_cache_size=281018368
  2. ora11g.__java_pool_size=4194304
  3. ora11g.__large_pool_size=4194304
  4. ora11g.__oracle_base='/u01/oracle'#ORACLE_BASE set from environment
  5. ora11g.__pga_aggregate_target=301989888
  6. ora11g.__sga_target=452984832
  7. ora11g.__shared_io_pool_size=0
  8. ora11g.__shared_pool_size=150994944
  9. ora11g.__streams_pool_size=0
  10. *.audit_file_dest='/home/oracle/standby/adump' #修改路径并创建目录
  11. *.audit_trail='db'
  12. *.compatible='11.2.0.0.0'
  13. *.control_files='/home/oracle/standby/bei.ctl'#修改路径并创建目录
  14. *.db_block_size=8192
  15. *.db_domain='com'
  16. *.db_name='oracle'
  17. *.db_recovery_file_dest='/home/oracle/standby/fast_recovery_area' #修改路径并创建目录
  18. *.db_recovery_file_dest_size=4322230272
  19. *.diagnostic_dest='/u01/app/oracle' #修改路径并创建目录
  20. *.dispatchers='(PROTOCOL=TCP) (SERVICE=oracleXDB)'
  21. *.local_listener='LISTENER_ORACLE'
  22. *.log_archive_config='dg_config=(oracle,bei)'
  23. *.log_archive_dest_1='location=/home/oracle/standby/arch db_unique_name=bei'
  24. *.memory_target=754652928
  25. *.open_cursors=300
  26. *.processes=150
  27. *.remote_login_passwordfile='EXCLUSIVE'
  28. *.standby_file_management='AUTO'
  29. *.undo_tablespace='UNDOTBS1'
  30. db_unique_name=bei #添加
  31. db_file_name_convert='/u01/oracle/oradata/oracle','/home/oracle/standby' #添加
  32. log_file_name_convert='/u02/oracle/oradata/oracle/','/home/oracle/standby' #添加
  • 启动备库
  1. 重新生成spfile
  2. SQL> create spfile from pfile;
  3.  
  4. 启动库:
  5. SQL> alter database mount standby database;
  6. Database altered.
  7. SQL> select database_role from v$database;
  8. DATABASE_ROLE
  9. ----------------
  10. PHYSICAL STANDBY
  • 启动监听
  • 测试联通
  1. 自连:sqlplus sys/oracle@172.16.150.74:1521/bei as sysdba
  2. 连接对方库:sqlplus sys/123456@172.16.150.40:1521/ora11g as sysdba
  • 备库开启实时归档日志功能
  1. alter database recover managed standby database disconnect from session;
  • 主库切换到备库
  1. SQL> select database_role,switchover_status from v$database;
  2.  
  3. DATABASE_ROLE SWITCHOVER_STATUS
  4. ---------------- --------------------
  5. PRIMARY TO STANDBY
  6. alter database commit to switchover to standby with session
  7. shutdown
  • 备库切换到主库
  1. SQL> select database_role,switchover_status from v$database;
  2. DATABASE_ROLE SWITCHOVER_STATUS
  3. ---------------- --------------------
  4. PHYSICAL STANDBY TO PRIMARYSESSIONS ACTIVE

  5. alter database commit to switchover to primary with session
  6. shutdown

2.遇到的问题

  • 数据库完成主库、备库之间的切换,再次启动主库时,出现:
  1. SQL> archive log list
  2. Database log mode Archive Mode
  3. Automatic archival Enabled
  4. Archive destination /home/oracle/standby/arch
  5. Oldest online log sequence 58
  6. Next log sequence to archive 58
  7. Current log sequence 58

SQL> select sequence# from v$log;

SEQUENCE#
  ----------
  58
  0
  0

原因:没有进行日志切换

  • 备库变成主库后,切换日志,从库的sequence号并没有发生改变

    主库如何相互切换

    如何实现redo_log的同步

    

3.其它问题

  • db_name service_name unique_name之间的关系
  1. SQL> show parameter name;
  2. NAME TYPE VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. db_file_name_convert string
  5. db_name string oracle
  6. db_unique_name string oracle
  7. global_names boolean FALSE
  8. instance_name string ora11g
  9. lock_name_space string
  10. log_file_name_convert string
  11. processor_group_name string
  12. service_names string oracle.com
  1. db_name:
    1.DGdb_name一样而db_unique_name不一致
    2.RAC中各节点db_name一样而instance_name不一样
    db_unique_name
    1.DataGuard中,主备库拥有相同的DB_NAME,为了区别,就必须有不同的DB_UNIQUE_NAME
    instance_name:
    1.可以和db_name不一致
    service_name
    1.客户端连接数据库时采用服务名
  • tnsnames.ora
  1. s74= #
  2. (DESCRIPTION =
  3. (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.150.74)#服务器IP
    (PORT = 1521))
  4. (CONNECT_DATA =
  5. (SERVER = DEDICATED)
  6. (SERVICE_NAME = bei) #数据库服务名
  7. )
  8. )
  • db_domain的作用

oracle 学习之DG的搭建的更多相关文章

  1. ORACLE 11g RAC-RAC DG Duplicate 搭建(生产操作文档)

    环境:rhel 6.7 64位源库:ORACLE 11204 RAC 未打PSU备库:ORACLE 11204 RAC PSU 20170718 一.停止中间件并做全库备份 1.在节点2做全备 2.首 ...

  2. 一步一步搭建 oracle 11gR2 rac + dg 之前传 (一)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg  之前传 (一) 转自 一步一步搭建 oracle 11gR2 rac + dg ...

  3. 一步一步搭建oracle 11gR2 rac+dg之环境准备(二)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之环境准备 (二) 一步一步搭建oracle 11gR2 rac+dg之环境准备 ...

  4. 一步一步搭建oracle 11gR2 rac+dg之共享磁盘设置(三)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之共享磁盘准备 (三) 注意:这一步是配置rac的过程中非常重要的一步,很多童鞋 ...

  5. 一步一步搭建 oracle 11gR2 rac+dg之grid安装(四)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之grid安装 (四) 转自 一步一步搭建 oracle 11gR2 rac+d ...

  6. 一步一步搭建oracle 11gR2 rac+dg之database安装(五)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之database安装 (五)   转自 一步一步搭建oracle 11gR2 ...

  7. oracle 单实例DG(搭建篇一)

    一,介绍 lodding... 二,安装前环境配置 01,依赖包的安装: yum install binutils-* yum install compat-libstdc++-* yum insta ...

  8. Oracle学习线路

    出自huyangg的博客,地址是:oracle学习路线图 1.sql.pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验)    作为oracle的基本功,需要大家对sql和 ...

  9. Docker学习笔记之一,搭建一个JAVA Tomcat运行环境

    Docker学习笔记之一,搭建一个JAVA Tomcat运行环境 前言 Docker旨在提供一种应用程序的自动化部署解决方案,在 Linux 系统上迅速创建一个容器(轻量级虚拟机)并部署和运行应用程序 ...

随机推荐

  1. Linux负载均衡软件LVS之三(配置篇)

    LVS集群有DR.TUN.NAT三种配置模式,可以对www服务.FTP服务.MAIL服务等做负载均衡,下面通过搭建www服务的负载均衡实例,讲述基于DR模式的LVS集群配置. 一. Director ...

  2. Address already in use: JVM_Bind(端口冲突)

    1.错误描述 2011-7-20 11:05:18 org.apache.catalina.core.StandardServer await严重: StandardServer.await: cre ...

  3. [转] 数据库加锁 sql加锁的

    [导读: 各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别.SQL Server更强调由系统来管理锁.在用户有SQL请求时,系统分析请求,自动在满足锁定条件和系统性能之间为数据库加上 ...

  4. Android基础知识-1

    1.Android的Activity任务栈 在Android的系统中,在APP运行时每个APP都会默认有一个任务栈,任务栈的名称以APP的包名命名.任务栈是一中先进后出的结构,APP中每一个调用的Ac ...

  5. 【Java每日一题】20170111

    20170110问题解析请点击今日问题下方的"[Java每日一题]20170111"查看(问题解析在公众号首发,公众号ID:weknow619) package Jan2017; ...

  6. iOS开发-OC语言 (五)字典

    字典 主要知识点: 1.NSDictionary 类 2.NSMutableDictionary 类 3.了解NSMutableDictionary 与 NSDictionary 的继承关系 4.补充 ...

  7. Mybatis第二天(其他)

    Mybatis第二天 框架课程 课程计划 动态sql If标签 Where标签 Sql片段 Foreach标签 关联查询 一对一关联 一对多关联 Mybatis整合spring 如何整合spring ...

  8. iOS BUG的解决

    当iOS程序报这样的错误 ld:261 dulicate symbols for architecture x86_64 clang:error:linker command failed with ...

  9. C# SessionHelper

    using System.Web; using System.Web.SessionState; namespace Utils { /// <summary> /// Session帮助 ...

  10. linux kernel 编译

    lin