dg原理结构图 oracle_oracle dg原理 - CSDN
精华内容
参与话题
  • Oracle学习路线

    千次阅读 2015-11-03 02:10:02
    一、目前学习Oracle的两派人 二、Oracle的重要性 三、学习前提 学习Oracle的前提是:熟悉Linux操作系统、Unix操作系统、存储、带库。主要是管理和操作系统原理 四、学习方法 1、sql、pl/sql(网上有很多的视频...
    一、目前学习Oracle的两派人
    二、Oracle的重要性
    三、学习前提
    学习Oracle的前提是:熟悉Linux操作系统、Unix操作系统、存储、带库。主要是管理和操作系统原理
    四、学习方法
    1、sql、pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验)
    作为oracle的基本功,需要大家对sql和plsql非常的熟悉。特别是sql里面的多表连接、子查询、各种新版本的函数,以及plsql里面的所有语法。建议大家拿出足够的时间来研究这两块。不要认为这是开发人员的工作,他也是DBA的重要工作,而且对DBA的要求更高,你不但能看懂,还要能够找出问题。学些这方面知识的要点就是:多练、多思考,多测试。


    2、Oracle管理(体系结构)(这一块一定要听课,而且是要听“大师”的课、多讨论)
    这是Oracle的难点,Orcle技术博大精深,主要的难点就集中在这里面。包括Oracle的存储管理、对象管理、内存和进程、undo管理、初始化参数、数据字典视图、安全、latch和lock、权限和角色、资源调度、闪回、日志原理等。
    学习这一块知识的时候,一个重点是:要知道原理和“根”,知道表面的东西没有任何意义。
    知道原理以后,通过实验去证明,将原理总结出来。
    这一块学习的好还是不好,直接决定了以后的一个备份恢复、优化、排错。
    这一块虽然是研究管理,但是更加注重原理和体系结构的分析和解剖。
    应该叫做“深入剖析Oracle体系结构”,多深都需要。
    在这一部分的学习中,已经学习了很多优化的内容,在学习任何一个知识点的时候,我们都离不开对性能的分析。


    3、备份恢复(听听课、看几本书,多做做实验、多讨论)
    有了第二部分的铺垫,这一章的学习相对有意思,前提是我们对Oracle的日志原理研究得较深,对oracle的内存和进程研究得较深。策划一个完美和正确的备份计划和实施方案(具体要分析出原理),实施备份;对各种损坏进行恢复(还是要能够够分析出原理);另外可以做一些高难度的恢复实验(还是老话、要能够分析出原理)。


    4、优化(单实例优化)(还是要听课,最好听一些专题性的,深入讲解的专家课,还是要看一些经典的书籍,特别是英文书)
    这一块完全是第一部分和第二部分的一个结合。这一块的学习没有最深,只有更深,学习方法和第二部分类似。
    首先需要大家掌握一些Oracle的优化方面的基础知识,例如深入分析索引原理、分区、等待事件、时间统计模型、动态性能视图、操作系统的一些性能优化和查看命令,例如:top、iostat、vmstat、sar、pmap、prstat、filemon、nmon、svmon等。
    最关键的还是要做三件事情:Oracle的动态性能视图、Oracle的报告(trace、statspack、awr、addm、ash)、执行计划;对这三块要熟悉和分析出来。这个部分的分析和动手实验很重要。


    5、RAC(可以听听课,有了前面的基础以后,基本上自己就能看懂书了,因此,可以看书,也可以听一些专题课)
    现在RAC的使用越来越多,学习RAC的重点还是:基础原理+RAC优化。
    RAC系统的优化分为两个步骤:RAC系统优化和单实例优化;根据RAC的基础原理,能够设计高性能的RAC系统,能够分析RAC性能问题。对RAC的动态性能视图、等待事件、报告,能够看懂和分析。


    6、GC、DG、Stream、Gold Gate等
    对于这些工具和组件,我们熟悉其体系结构,原理,一些监控性能的工具等。
    学习这些部分的几个点:熟悉体系结构、原理;搭建;监控(包括故障和性能);排错和优化。


    7、SQL优化(看一本经典的英文书籍、多做实验、多实践、多分析)
    为什么单独的拿出来呢?因为这部分需要持之以恒的进行研究和实验,而且工作中几乎是每天都要做的事情。
    目前这方面,有一些比较经典的中文书,值得大家去看看。


    8、PL/SQL深度学习
    在这部分学习的时候,就要时时刻刻注意性能,主要是注意测试。
    9、综合性项目实战:
    模拟环境:
    规划、搭建、测试、管理、排错、优化、分析
    实战环境:
    同上
    展开全文
  • Oracle 11gR2 DG部署(RMAN方式)

    千次阅读 2018-12-04 09:47:16
    Oracle DG部署(RMAN方式) Oracle DG部署(RMAN方式) 1.环境介绍 2.DG部署 2.1.建立主库orcl 2.2.主库开启归档 2.3.主库添加Standby Redo Log 2.4.从主库创建pfile文件 2.5.设置主库初始化参数 2.6.设置备库...

    Oracle DG部署(RMAN方式)

    1.环境介绍

    hostname ip db_name db_unique_name net service name
    db11 172.16.8.11 orcl orcl11 orcl11
    db12 172.16.8.12 orcl orcl12 orcl12

    2.DG部署

    2.1.建立主库orcl

    DBCA建立主库,修改online redo 大小为500M

    2.2.主库开启归档

    主库开启归档并设置强制日志 force logging

    --干净的关闭数据库
    SQL> shutdown immediate
    --以mount模式启动
    SQL> startup mount
    --切换到归档模式
    SQL> alter database archivelog;
    --开启强制日志
    SQL> alter database force logging;
    --打开数据库
    SQL> alter database open;
    --查看归档
    SQL> archive log list;
    --查看是否为强制日志
    SQL> select force_logging from v$database;
    

    2.3.主库添加Standby Redo Log

    --查看Redo和Standby Redo
    SQL> select * from v$logfile;											
    --仅仅显示Online Redo,不显示Standby Redo
    SQL> select * from v$log;												
    --新增一组大小为500M的Standby Redo,这里的group号不得与Online redo重复
    SQL> alter database add standby logfile group 21 '/u01/app/oracle/oradata/orcl/standby21.log' size 500M;
    SQL> alter database add standby logfile group 22 '/u01/app/oracle/oradata/orcl/standby22.log' size 500M;
    SQL> alter database add standby logfile group 23 '/u01/app/oracle/oradata/orcl/standby23.log' size 500M;
    SQL> alter database add standby logfile group 24 '/u01/app/oracle/oradata/orcl/standby24.log' size 500M;
    

    2.4.从主库创建pfile文件

    创建pfile文件, 默认路径为$ORACLE_HOME/dbs,此处为/u01/app/oracle/product/11.2.0/dbhome_1/dbs/,在sqlplus里执行以下命令

    SQL> create pfile from spfile;
    

    将主库的pfile复制到备库/u01/app/oracle/product/11.2.0/dbhome_1/dbs/下

    cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    scp initorcl.ora db12:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    

    2.5.设置主库初始化参数

    编辑/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora文件,追加

    cat >> /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora << "EOF"
    *.db_unique_name='orcl11'
    *.fal_server='orcl12'
    *.log_archive_config='dg_config=(orcl11,orcl12)'
    *.log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles) db_unique_name=orcl11'
    *.log_archive_dest_2='service=orcl12 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=orcl12'
    *.log_archive_dest_state_1=ENABLE
    *.log_archive_dest_state_2=ENABLE
    *.standby_file_management='AUTO'
    *.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
    *.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
    EOF
    

    创建新的主库spfile文件,并重新启动主库

    SQL> shutdown immediate
    SQL> create spfile from pfile;
    SQL> startup
    

    2.6.设置备库初始化参数

    编辑/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora文件,修改备库初始化参数

    cat >> /u01/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora << "EOF"
    *.db_unique_name='orcl12'
    *.fal_server='orcl11'
    *.log_archive_config='dg_config=(orcl11,orcl12)'
    *.log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles) db_unique_name=orcl12'
    *.log_archive_dest_2='service=orcl11 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=orcl11'
    *.log_archive_dest_state_1=ENABLE
    *.log_archive_dest_state_2=ENABLE
    *.standby_file_management='AUTO'
    *.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
    *.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orcl'
    EOF
    

    2.7.复制主库的密码文件到备库

    将密码文件orapworcl复制到备库的/u01/app/oracle/product/11.2.0/dbhome_1/dbs/下

    cd /u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    scp orapworcl db12:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    

    2.8.创建备库相应的目录结构

    使用oracle用户创建以下目录,避免权限问题

    mkdir -p /u01/app/oracle/oradata/orcl/
    mkdir -p /u01/app/oracle/admin/orcl/adump/
    mkdir -p /u01/app/oracle/fast_recovery_area/orcl/
    

    2.9.配置主库和备库的监听

    使用图形界面配置,采用静态监听

    netmgr
    

    2.10.配置主库和备库的网络服务名

    使用图形界面配置,在主备库上均需配置orcl11、orcl12两个服务名

    netmgr
    

    2.11.创建备库并启动

    创建备库的spfile文件,启动备库到nomount模式

    SQL> create spfile from pfile;
    SQL> startup nomount
    

    2.12.RMAN复制主库到备库

    首先RMAN连接到目标数据库和辅助数据库

    rman target sys/password@orcl11 auxiliary sys/password@orcl12
    

    使用RMAN的duplicate命令进行复制,两边目录结构相同,需要添加nofilenamecheck参数

    RMAN> duplicate target database for standby from active database nofilenamecheck;
    

    复制成功后,备库自动被加载为mount模式,进入sqlplus查看

    SQL> select status from v$instance;
    

    2.13.在备库开启实时日志应用

    SQL> alter database recover managed standby database using current logfile disconnect from session;
    

    2.14.主备库角色状态查询

    SQL> select switchover_status,database_role from v$database;
    --主库显示:TO STANDBY/PRIMARY,如果显示SESSION ACTIVE表示还有活动的会话,需要关闭活动的会话再检查
    --备库显示:NOT ALLOWED/PHYSICAL STANDBY
    

    3.测试DG

    3.1.执行日志切换测试

    在主库端切换归档,在备库检查是否也发生了切换

    主库上执行日志切换

    SQL> archive log list;
    SQL> alter system switch logfile;
    SQL> archive log list;
    

    备库上查看,日志的sequence号也跟着变了

    SQL> archive log list;
    

    3.2.查看备库启动的DG进程

    SQL> select process,client_process,sequence#,status from v$managed_standby;
    PROCESS   CLIENT_P  SEQUENCE# STATUS  
    --------- -------- ---------- ------------  
    ARCH      ARCH             23 CLOSING  
    ARCH      ARCH              0 CONNECTED            //归档进程  
    ARCH      ARCH             21 CLOSING  
    ARCH      ARCH              0 CONNECTED  
    RFS       ARCH              0 IDLE  
    RFS       UNKNOWN           0 IDLE  
    RFS       LGWR             24 IDLE               //归档传输进程  
    RFS       UNKNOWN           0 IDLE  
    MRP0      N/A              24 APPLYING_LOG      //日志应用进程  
      
    9 rows selected.  
    

    3.3.查看数据库的保护模式

    SQL> select database_role,protection_mode,protection_level,open_mode from v$database;
    DATABASE_ROLE    PROTECTION_MODE      PROTECTION_LEVEL     OPEN_MODE  
    ---------------- -------------------- -------------------- --------------------  
    PRIMARY          MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE  READ WRITE  
    

    3.4.查看DG的日志信息

    SQL> select * from v$dataguard_status;
    

    3.5.Open Read Only Standby数据库

    以只读方式打开备库,并开启实时日志应用

    SQL> shutdown immediate
    SQL> startup
    SQL> select database_role,protection_mode,protection_level,open_mode from v$database;
    SQL> select process,client_process,sequence#,status from v$managed_standby;
    SQL> alter database recover managed standby database using current logfile disconnect from session;
    

    3.6.解锁scott用户并添加数据,验证是否同步

    在主库解锁scott用户并创建测试表,插入10000行数据。

    操作如下

    SQL> set line 200
    SQL> select username,default_tablespace,account_status from dba_users where username='SCOTT';
    SQL> alter user scott account unlock;
    SQL> conn scott/tiger;
    SQL> show user
    SQL> create table test001 (id number(10),name varchar2(20));
    SQL> begin
         for i in 1..10000 loop
         insert into test001 values (1,'ww');
         end loop;
         end;
         /
    SQL> commit;
    

    standby端查询scott用户是否解锁,以及test001表是否创建并且插入了10000行数据

    SQL> conn scott/tiger;
    SQL> select * from tab;
    SQL> select count(*) from test001;
    

    4.DG三种模式

    4.1.最大性能模式max performance-默认

    这种保护模式(默认)提供了可能的最高级别的数据保护,而不影响主数据库的性能。这是通过允许事务在恢复该事务所需重做数据在写到本地联机重做日志后立即提交而实现的。主数据库的重做数据流也写到至少一个备数据库,但是那个重做流相对于创建重做数据的事务是异步写的。

    当所用的网络连接有足够的带宽,这种模式提供了近似于最大可用性模式的数据保护级别,并且对主数据库性能的影响最小。

    4.2.最大可用性模式max availability

    这种保护模式提供了可能的最高级别的数据保护,而不用与主数据库的可用性相折衷。与最大保护模式相同,在恢复事务所需的重做写到本地联机重做日志和至少一个事务一致性备数据库上的备重做日志之前,事务将不会提交。与最大保护模式不同的是,如果故障导致主数据库无法写重做流到异地备重做日志时,主数据库不会关闭。替代地,主数据库以最大性能模式运行直到故障消除,并且解决所有重做日志文件中的中断。当所有中断解决之后,主数据库自动继续以最大可用性模式运行。

    这种模式确保如果主数据库故障,但是只有当第二次故障没有阻止完整的重做数据集从主数据库发送到至少一个备数据库时,不发生数据丢失。

    4.3.最大保护模式max protection

    这种保护模式确保如果主数据库故障不会发生数据丢失。要提供这种级别的保护,恢复每个事务所需的重做数据必须在事务提交之前同时写到本地联机重做日志和至少一个备数据库上的备重做日志。要确保不发生数据丢失,如果故障导致主数据库无法写重做流到至少一个事务一致性备数据库的备重做日志时,主数据库会关闭。

    4.4.查询当前模式

    SQL> select protection_mode,protection_level from v$database;
    

    5.DG切换测试

    5.1.DG switchover 切换测试

    db11-orcl:主库------>备库

    db12-orcl:备库------>主库

    主备库角色状态查询

    SQL> select switchover_status,database_role,open_mode from v$database;
    --db11-orcl显示:TO STANDBY/PRIMARY,如果显示SESSION ACTIVE表示还有活动的会话,需要关闭会话再检查
    --db12-orcl显示:NOT ALLOWED/PHYSICAL STANDBY
    

    db11-orcl切换到备库

    SQL> alter database commit to switchover to physical standby;
    SQL> alter database commit to switchover to physical standby with session shutdown;
    --如果状态显示SESSION ACTIVE,在切换的时候可以指定with session shutdown 子句强制关闭活动的会话。
    SQL> shutdown immediate
    SQL> startup mount
    

    db12-orcl切换到主库

    SQL> alter database commit to switchover to primary;
    SQL> alter database open;
    

    db11-orcl执行APPLY LOG命令

    --启用mount状态下的APPLY LOG
    SQL> alter database recover managed standby database disconnect from session;
    --启用open状态(READ ONLY WITH APPLY)下的APPLY LOG
    SQL> alter database recover managed standby database cancel;
    SQL> alter database open;
    SQL> alter database recover managed standby database disconnect from session;
    SQL> select switchover_status,database_role,open_mode from v$database;
    

    5.2.DG failover 切换测试

    db11-orcl:主库------>崩溃

    db12-orcl:备库------>主库

    主备库角色状态查询

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

    db11-orcl通过shutdown abort方式人工模拟主库崩溃,直接关闭

    SQL> select open_mode from v$database;
    SQL> shutdown abort
    SQL> startup mount
    SQL> alter system flush redo to 'orcl12';
    

    db12-orcl执行如下操作切换为主库

    SQL> select thread#, low_sequence#, high_sequence# from v$archive_gap;
    --如果没有发现明显的gap现象,说明此次的failover不会有数据损失情况。在备库,要进行关闭apply和结束应用动作。
    SQL> alter database recover managed standby database cancel;
    SQL> alter database recover managed standby database finish;
    SQL> alter database commit to switchover to primary;
    SQL> alter database open;
    SQL> select open_mode, switchover_status from v$database;
    

    5.3.DG failover后重建DG

    db11-orcl:崩溃------>备库

    db12-orcl:主库------>主库(保持主库状态不变)

    db12-orcl主库角色状态查询

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

    db12-orcl主库创建备库控制文件

    mkdir -p /u01/bak/
    
    SQL> alter database create standby controlfile as '/u01/bak/control01.ctl';
    

    将备库控制文件拷贝至db11

    scp ezdb12:/u01/bak/control01.ctl /u01/app/oracle/oradata/orcl/control01.ctl
    cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/
    mv /u01/app/oracle/fast_recovery_area/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/control02.ctl
    

    恢复对应数据文件至db11,并启动db11-orcl到mount状态,应用APPLY模式

    SQL> startup mount;
    SQL> alter database recover managed standby database disconnect from session;
    

    启动db11-orcl至OPEN状态,并应用APPLY REDO模式

    SQL> alter database recover managed standby database cancel;
    SQL> alter database open;
    SQL> alter database recover managed standby database disconnect from session;
    

    6.开启和关闭DataGuard的流程

    6.1.关闭

    关闭主库

    SQL> shutdown immediate
    

    关闭主库监听

    lsnrctl stop
    

    查询备库是否正在执行重做应用或实时应用。如果MRP0或MRP进程存在,则备库正在应用重做。

    SQL> select process, status from v$managed_standby;
    

    如果重做应用程序正在运行,停止备库的Redo日志的应用

    SQL> alter database recover managed standby database cancel;
    

    关闭备库

    SQL> shutdown immediate
    

    关闭备库监听

    lsnrctl stop
    

    6.2.开启

    启动备库监听

    lsnrctl start
    

    启动备库到mount状态

    SQL> startup mount;
    

    开启备库的Redo日志应用

    SQL> alter database recover managed standby database using current logfile disconnect from session;
    

    启动主库监听

    lsnrctl start
    

    启动主库

    SQL> startup;
    

    检查日志情况的SQL语句

    select al.thrd "Thread", almax "Last Seq Received", lhmax "Last Seq Applied"
     from (select thread# thrd, max(sequence#) almax
           from v$archived_log
           where resetlogs_change#=(select resetlogs_change# from v$database)
           group by thread#) al,
          (select thread# thrd, max(sequence#) lhmax
           from v$log_history
           where first_time=(select max(first_time) from v$log_history)
           group by thread#) lh
     where al.thrd = lh.thrd;
    
    展开全文
  • 高手教你用Symantec VCS配置Oracle双机

    千次阅读 2009-10-27 23:12:00
    转自:http://www.amteam.org/ShowArticle.aspx?id=619121 前期我们通过一系列文章为大家介绍了Symantec的Veritas Storage Foundation存储管理软件,并向大家介绍了Symantec公司专业的集群管理软件Veritas Cluster ...

    转自:http://www.amteam.org/ShowArticle.aspx?id=619121

     

        前期我们通过一系列文章为大家介绍了Symantec的Veritas Storage Foundation存储管理软件,并向大家介绍了Symantec公司专业的集群管理软件Veritas Cluster Server(VCS)。参考链接:

        高手教你用Symantec VCS配置DB2双机-入门
        高手教你用Symantec VCS配置DB2双机-高级

        将Oracle的双机放在DB2双机后面讲有两个原因:一是DB2的配置相对于oracle的配置来说比较简单,数据库的模式也比较容易理解,而其中相似 的地方可以参照DB2的配置;二是DB2双机的配置,也只能说是oracle双机配置的子集,在了解DB2的双机配置之后,oracle双机配置的很多相 似的地方简单说明一下即可。此外,读者可以比较一下这两种模式的异同,有利于读者选择更合适自己的双机配置模式。

        我们随后还将介绍Sybase双机的配置,将Sybase放在最后并不是因为它更复杂,而是因为在这三种数据库之中,Sybase的用户群相对比较少,需要的人不多。

    比较DB2与Oracle数据库
        DB2和Oracle有很多的不同,要想了解清楚,那个不是一朝一夕的功夫了。幸运的是,因为我们现在只是需要做双机配置,所以我们只是在可能会影响配置的概念上,做一个简单的比较。

        1. 配置结构的不同:
        DB2数据库的双机热备只支持一种模式,就是DB2的程序在两台机器上各有一份,只有数据文件存放在共享存储中,如下图所示:


     
    图1,DB2双机配置结构图

        这种配置模式的优点是有利于数据库的升级,当其中systemA需要升级的时候,就把服务切换到systemB上运行,升级A的DB2程序,之后还可以把 服务切换回到A来,然后升级B的DB2程序。这个升级过程不会影响用户的DB2使用,因为总有一台机器可以使用DB2程序来响应用户的服务请求。

        对于oracle来说不但可以支持这种程序存放在不同机器上的做法,而且支持把oracle的程序文件也同时放在共享盘上,其结构图如下所示:

    图2,oracle双机结构图-程序在各个服务器上


     
    图3,oracle双机结构图-程序和数据都在共享盘上

        将数据与程序同时放在共享盘上的优点有两个:一是节省磁盘空间,用户只需要保留一份数据库备份;二是有利于程序的一致性,不会因为数据库版本的不同,产生差异,可以避免产生一些莫名的问题。

        2. 数据库的工作模式不同
        DB2数据库是以实例为基础的:多个硬盘或者服务器组成一个实例,一个实例下面可以划分多个数据库,一个数据库只能属于一个实例。Oracle可以理解为以用户为基础的数据库,不同的用户访问不同的实例,不同的实例其实就是不同的数据库。

     

    配置Oracle双机系统

        闲话少说,现在开始介绍一下利用VCS来配置oracle双机的过程:
     
        a) 创建数据文件使用的共享存储(在system1上面执行下列5个命令):
        i. # vxdg init oracleDG c0t0d0; 创建磁盘组oracleDG,使用c0t0d0这个硬盘;
        ii. # vxassist -g oracleDG make oracleVol 5g; 在磁盘组上创建5G大小的卷oracleVol;
        iii. # mkfs -F vxfs -o largefiles /dev/vx/rdsk/oracleDG/oracleVol; 创建文件系统;
        iv. # mkdir /oracle ; 创建mount点,共享磁盘将mount到这里;
        v. # mount -F vxfs /dev/vx/dsk/oracleDG/oracleVol /oracle; 将共享盘mount到本机;

        b) 在两台机器上面分别执行下列命令,创建相同的用户组和用户:
        vi. # groupadd -g 500 dba; 创建oracle管理组;
        vii. # useradd -g dba -u 500 -d /home/oracle -m oracle; 创建oracle管理用户;
        注意: 组ID或者用户ID可以是任意尚未被使用的数值,但是一定要保证多台机器必须一致。

        c) 安装oracle程序
        到oracle安装文件的目录下,运行下列命令安装oracle程序
        #.  /runInstaller
        在安装过程中,指定oracle用户为“oracle”。
        注意: 如果需要在多台机器安装oracle,则需要在多台机器运行该程序;如果仅仅想把程序安装在共享盘上面,则仅仅需要在一台机器安装。
        注意: 安装过程中有一步会问用户是否需要配置数据库,我们选择“仅仅安装软件”,我们会在稍后配置数据库文件到共享磁盘。

        d) 配置数据库:
        oracle程序安装完毕后,我们需要配置数据库到共享磁盘上,这样多台机器才能够共享其数据资源;
        # dbca
        运行数据库配置助手来帮助用户安装数据库,注意需要将路径指明到共享磁盘中。

        e) 设置环境变量
        在各个机器的/home/oracle/.profile文件中,设置两个全局变量:
        $ORACLE_HOME=/oracle   该变量指明数据库的安装位置;
        $ORACLE_SID=oracle    该变量指明访问哪个数据库实例;

        f) 安装VCS的oracle代理软件:(以redhat为例)
        # rpm -ivh VRTSvcsor
        # rpm -ivh VRTScsocw

        这样,oracle的安装就完成了。

    测试Oracle双机配置

        在安装结束之后,我们需要测试一下oracle能否在多台机器上正常工作。

        a) 将共享盘mount到第一台机器(步骤可以参考DB2双机配置)

        b) 从这台机器登陆数据库并创建一个表
        i. su – oracle 将系统用户切换到oracle用户;
        ii. export $ORACLE_HOME=/oracle; 导出全局变量;
        export $ORACLE_SID=oracle;
        iii. $ORACLE_HOME/bin/sqlplus /nolog 进入数据库模式;
        iv. connect / as sysdba     以系统管理员身份登陆数据库;
        v. create user tester identified by '123456' default tablespace USERS temporary tablespace TEMP quota 100K on    UERS; 创建一个新用户tester;
        vi. grant create session to tester;    赋予新用户tester创建表的权限;
        vii. create table tester.mytime ( tstamp date ); 在tester用户空间下创建一个新表;
        viii. insert into tester.mytime (tstamp) values (SYSDATE); 在新表中插入数据;
        ix. disconnect;       断开连接;

        c) 测试其他集群节点可以工作:
        i. connect tester/123456     以新用户身份登陆数据库;
        ii. update tester.mytime set ( tstamp ) = SYSDATE; 更新表的内容;
        iii. select TO_CHAR(tstamp, ’MON DD, YYYY HH:MI:SS AM’) from tester.mytime; 确认表的内容已经被更新;
        iv. exit 推出。

        在经过这个检查之后,就说明数据库已经正确安装并可以被每个节点正常的访问,测试成功。

    1

    配置VCS的oracle代理

        这个过程与DB2的非常相似,唯一的不同在于DB2只有一个主进程工作,监控DB2是否正常工作只需监控这个进程即可。在oracle中有两个进程,一个 是数据库运行的主进程,另一个是监控用户请求的进程,两个进程同时工作才能确保oracle的正常运行。所以在oracle代理的配置过程中,需要多添加 一个lsnr的资源,用来保证oracle监控进程的正常工作。

        配置好的oracle代理结构如图所示:

    图4,oracle代理的配置结构

        按照该图所示,配置oracle代理需要下列资源:
        NIC:提供oracle相应的网卡;
        IP:提供oracle服务的IP地址;
        DiskGroup:共享磁盘组;
        Volume_data:存放oracle共享数据的卷;
        Volume_binary:存放oracle程序的卷(如果程序不是放在共享磁盘,该资源可以忽略);
        Mount_data:数据库共享数据的访问路径;
        Mount_binary:数据库程序的访问路径(如果程序不是放在共享磁盘,该资源可以忽略);
        Oracle:监控oracle进程是否正常工作;
        Netlnsr:监控oracle监听进程是否工作。

        在这些资源都配置好之后,打开VCS的图形界面,可以让该服务组执行上线、下线或者切换,这样,VCS就会自动监控oracle的工作情况,并在某台机器发生故障的时候,自动切换到其他节点继续提供服务。这样,oracle的双机配置就完成了。

    展开全文
  • 类似文章搜索引擎上有很多,内容大致... 我的应用场景: 项目系统使用oracle数据库,与客户的第三方系统供应商实现资源共享,对方为sql server数据库; 我的测试开发环境为64bitwin7PC机,本机上装有64位Oracl...

        类似文章搜索引擎上有很多,内容大致相同,今天所谓细聊是因为我在借鉴这些文章时候走了些弯路,所以写此文,为自己备忘,同时如果能为初涉此处知识点的小伙伴提供些帮助就更好了,文章结尾处的一些扩展有一定实战意义,废话不多说。

        我的应用场景:

        项目系统使用oracle数据库,与客户的第三方系统供应商实现资源共享,对方为sql server数据库;

        我的测试开发环境为64bitwin7PC机,本机上装有64位Oracle11g和32位Oracle11g;

        本文以32位Oracle为例,通过配置ODBC数据源连接虚拟机上的Sql Server;

    第一步、创建ODBC数据源


    这一步要考虑数据源是32位还是64位的问题,其实就是选择不同的exe打开上面的界面,

    win764位操作系统的64-bit ODBC 默认的位置:

    C:\Windows\System32\odbcad32.exe

    win764位操作系统的32-bit ODBC 默认的位置:

    C:\Windows\SysWOW64\odbcad32.exe

    添加数据源:







    测试通过代表数据源配置成功

    第二步、检查DG4ODBC驱动是否已经安装

    方法如下:

    在Oracle服务器上,cmd窗口中执行命令(dg4odbc或hsodbc)


    上图代表安装了DG4ODBC驱动(如果没有安装,需自行下载安装,此处不介绍具体操作)

    第三步、配置hsodbc


    此目录下默认存在initdg4odbc.ora,复制这个文件,粘贴到上图目录中,并将后复制的文件改名为initodbc_test.ora,用记事本打开就该配置并保存如下图


    注:每个使用DG4ODBC的实例,都必须单独一个"init*.ora"文件,文件命名规则:init+<网关sid>+.ora

    HS_FDS_CONNECT_INFO = ODBC数据源管理中的DSN名称【本实验为testodbc】

    HS_FDS_TRACE_LEVEL = OFF 【追踪级别参数,出于性能影响一般不配置或者配置为"OFF",若遇到网关问题需要跟踪日志,

    则配置为"Debug",跟踪日志文件存放在"ORACLE_HOME\hs\trace"目录下】

    第四步、配置lisenter(服务端透明网关监听)



    第五步、重启监听

    在命令提示符窗口依次输入如下命令

    停止监听:lsnrctl stop

    启动监听:lsnrctl start

    一般停止监听没有问题,但是如果启动不了监听(启动监听服务失败),多半说明第四部字符串配置有错误,注意检查。

    第六步、配置TNS(客户端服务命名)



    第七步、创建oracle的DBLINK


    在PLsql中或者sqlplus和环境下运行上述sql命令创建DataBase Link

    第八步、访问测试


    扩展:

    (1) 、六、七两步可以合并,直接创建dblink

    create public database link test_sql connect to "sqlserver用户名" identified by "sqlserver密码" using '(description=
    
            (address= (protocol=tcp)(host=xxx.xxx.xxx.xxx)(port=1521))
    
            (connect_data=(SID=SID名称))
    
            (HS=OK)
    
    )';


    注意:采用上面的合并方式,则不受tnsnames.ora配置文件的限制,推荐使用,推荐是因为,tnsnames.ora的配置是客户端的,这样要求所有客户端都需要这样配置第六步,如果采用推荐方式,因为databaselink的配置文件是在服务端的,服务端配置一次,所有客户端都可以用了。

    (2)、如果要把oracle这边的时间类型插到SQLserver类型为datatime的字段中,需要采用to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')的方式,就是转成字符串;

    (3)、不仅仅可以连接SQL Server,其他类型ODBC数据源也可以,如mysql等;

    (4)、如果32位应用环境,配置ODBC数据源的时候也必须配置32ODBC数据源,否则报错如下:

    [ODBC 驱动程序管理器]在指定的DNS中,驱动程序和应用程序之间的体系结构不匹配{IM014};

    (5)、如果报错找不到ODBC数据源,很可能是以上步骤中数据源名称错误,或者创建的ODBC数据源不是系统DSN,而是错选了用户DSN。

    如上是我在借鉴搜索引擎上oracle连接odbc数据源的一些文章的过程中个人理解后整理,以作备忘,如有错误或不妥欢迎指教。

    (6)、上面的步骤配置完,发现可以像使用oracle的表一样使用,select * from 表名/视图名@linkname,但是 select id from 表名@linkname 会报id标识符无效,也就是可以用*查询所有列,但是不能用列名查询指定列,解决办法是将列名用双引号引起来,并且双引号内列名区分大小写,如select "id" from 表名/视图名@linkname where“id”=‘A01’

    展开全文
  • 不同Oracle数据库之间的数据同步

    万次阅读 2017-04-19 15:11:55
    Oracle快照原理及实现总结 Oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。对于中大型数据库,业务数据库里所有的数据同步到另外一个处理服务器上最佳的选择还是...
  • Oracle GoldenGate 详解

    万次阅读 2019-06-21 10:18:42
    一、Oracle GoldenGate介绍  GoldenGate软件是一种基于日志的结构化数据复制软件。GoldenGate 能够实现大量交易数据的实时捕捉、变换和投递,实现源数据库与目标数据库的数据同步,保持亚秒级的数据延迟。 1、...
  • 所谓的异构就是说他们是不同的产品,例如: Oracle Database, MS SQL Server, IBM DB2, Sybase ASE, MySQL, Postgre SQL, Excel, XML, Txt或者CSV等用于存放数据的产品或者文件。 那么假设我们需要这些异构的数据源...
  • RMAN基于时间点恢复不完全恢复 我们知道,对归档下的数据库做RMAN全备,当数据库挂掉之后,执行完全恢复时,可以将数据库将恢复到完全最新的状态,包括至当前时间所做的所有已提交的数据修改,保证不会丢失数据。...
  • Oracle 常用目录结构(10g)

    万次阅读 2010-05-29 16:00:00
    --==============================-- Oracle 常用目录结构(10g)--============================== 大多数情况下,了解Oracle常用目录结构,将大大提高数据库管理与维护的工作效率,本文介绍了Oracle 10g 的常用目录...
  • Oracle学习路线、11g OCA OCP学习之路

    千次阅读 2018-02-02 14:03:29
    11gOCAOCP学习之路,1Z0-051,1Z0-052和1Z0-053顺序调整: 阶段一【入门】:共13章  1Z0-052 第2章 安装软件  1Z0-052 第3章 建库 ...阶段二【读一致性和体系结构】:共12章  1Z0-052 第9章 锁  1Z0-052 第
  • Data Guard 是Oracle的远程复制技术,它有物理和逻辑之分,但是总的来说,它需要在异地有一套独立的系统,这是两套硬件配置可以不同的系统,但是这两套系统的软件结构保持一致,包括软件的版本,目录存储结构,以及...
  • Oracle Data Guard 重要配置参数

    千次阅读 2013-08-13 17:05:08
    Oracle Data Guard主要是通过为...对于Oracle DG的配置,我们可以通过Grid Control来完成,也可以通过Data Guard Broker以及SQL*Plus来完成。对于前两者方式可以在图形界面上完成,操作简单。而对于使用SQL*Plus命令行
  • VMware下CentOS6.5安装oracle11g RAC

    千次阅读 2016-11-21 21:42:19
    " alt="anchor.gif" src="http://blog.chinaunix.net/kindeditor/themes/common/anchor.gif" />读者对象本文档以Centos6.5操作系统为例,介绍了在VMware下使用虚拟磁盘的Oracle11g R2(RAC)数据库的安装方法。...
  • vcs整理

    千次阅读 2012-10-10 23:26:43
    VCS配置Oracle双机 现在开始介绍一下利用VCS来配置oracle双机的过程: a) 创建数据文件使用的共享存储(在system1上面执行下列5个命令): i. # vxdg init oracleDG c0t0d0; 创建磁盘组oracleDG,使用c...
  • 企业级RAC+DG架构部署

    千次阅读 2017-05-26 16:34:54
    Application Clusters,中文译为“实时应用集群”,是ORACLE甲骨文公司提供的在低成本服务器上构建高可用性数据库系统的解决方案,部署自由,无需购买额外部件,就可以实现多节点的负载均衡和故障转移功能,满足7*...
  • ♣题目部分在Oracle中,RAC、DG和OGG的区别有哪些? ♣答案部分(一)什么是高可用?高可用(High Availability,HA)也可以称为高可用性或高可用环境。H...
  • 数据库笔试面试题库(Oracle、MySQL等) ⊙ 【DB笔试面试67】在Oracle中,关于表分区下列描述不正确的是() ⊙ 【DB笔试面试65】在Oracle中,哪一种表分区方式建议的分区数是2的幂(2、4、8等),以获得最平均的...
  • 使用不同颜色标识后台进程 全面了解oracle 备份和恢复机制, 参照oracle体系结构图解析进程(机构图文章有)
  • DATA GUARD的概述

    2014-03-26 09:20:21
    DataGuard是oracle推出的一种高可用性数据库方案,在Oracle 8i之前被称为Standby Database,从Oracle 9i开始,正式更名为Data Guard。它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速...
  • Veritas Cluster Server for Oracle双机热备的配置 -概述 将Oracle的双机放在DB2双机后面讲有两个原因:一是DB2的配置相对于oracle的配置来说比较简单,数据库的模式也比较容易理解,从简单的开始了解有利于...
1 2 3 4 5 ... 20
收藏数 1,583
精华内容 633
关键字:

dg原理结构图 oracle