DataGuardBroker配置

上传人:平*** 文档编号:13299355 上传时间:2017-10-23 格式:DOC 页数:17 大小:101.27KB
返回 下载 相关 举报
DataGuardBroker配置_第1页
第1页 / 共17页
DataGuardBroker配置_第2页
第2页 / 共17页
DataGuardBroker配置_第3页
第3页 / 共17页
DataGuardBroker配置_第4页
第4页 / 共17页
DataGuardBroker配置_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《DataGuardBroker配置》由会员分享,可在线阅读,更多相关《DataGuardBroker配置(17页珍藏版)》请在金锄头文库上搜索。

1、Data Guard Broker 配置oracle Data Guard,以最低成本实现最高的数据保护。在硬件上没有特殊要求,普通PC 机即可实现。简单的来说,Data Guard,就是自动创建和维护生产数据库(或主数据库)的一个或多个事务一致的副本(备用数据库) 。如果主数据库不可用(因为故障、维护或者灾难) ,那么可以激活一个备用数据库并使之承担主数据库的角色。然而,在配置完成 Data Guard 后,若需要实现主备数据库间的切换,需要在主数据库及备用数据库上分别输入多个命令,切换步骤稍显麻烦。所以,一般情况下,DBA 会将整个切换过程编辑成脚本,以便自动运行,进行状态切换。当然,or

2、acle 也提供了工具 Data Guard Broker,仅在控制端输入一个命令就能方便实现主备数据库间的切换。在 Data Guard Broker 的基础上,配置并启用 Fast-Start Failover,就能自动检测发现主机故障,实现主备切换,故障转移。下面通过 4 个部分总结一下 oracle 的 Data Guard 的相关配置:1. 基础知识准备。简单介绍一下在 Data Guard 配置过程中容易混淆的几个 oracle 基本概念,以及 oracle 的网络配置2. 配置 Data Guard3. 配置 Data Guard Broker4. 配置及启用 Fast-Star

3、t Failover现在说明下实际的配置环境。Data Guard 的主备数据库分别位于 2 台服务器上。基本信息如下:primary server:操作系统:windows server 2003 32bitip:192.168.0.225计算机名:sjzx-2standby server:操作系统:windows xp 32bitip:192.168.0.212计算机名:20081208-13352 台服务器上所用的 oracle 版本均为 oracle 10.2.0.3.01. 基础知识准备:在进行 Data Guard 配置的时候,需要更改配置文件中的多项参数,涉及到多个oracle

4、比较容易混淆的概念。所以在配置之前,单独把它们拿出来说明一下,以便配置过程避免一些不该发生的错误。对此部分内容熟悉的,可自行跳过。a) oracle 中的数据库和实例这是 oracle 中最基本的 2 个概念。先说数据库(database) 。oracle 中的数据库,是存储数据的一种媒介。常用的一般为 2 种形式,即文件和磁盘阵列。文件很好理解,就是在磁盘创建一批文件,然后在文件中存储数据信息。而磁盘阵列呢?所谓磁盘阵列,就是说数据不是存放在某个文件中的,而是把一个或多个磁盘格式化为 oracle 的一种格式,等于整个磁盘只能存放 oracle 数据库,不能作为其它用途。以我们最常用的文件格

5、式来说,数据库就是那些所有数据文件、控制文件、REDO 文件等等一系列文件的集合。即数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件实例(instance )是操作系统中一系列的进程以及为这些进程所分配的内存块。即ORACLE 实例 = 进程 + 进程所使用的内存(SGA)由上可见,对数据库的应用,实例和数据库缺一不可。 仅有数据库,那么只表示数据存储在文件中,但是我们无法对它直接进行操作。仅有 instance,表示我们可以进行操作,但是没有操作对象(不知道目标数据) ,也是没有什么意义的。database 是永久性的,instance 是临时性的。当我们结束 oracle 的

6、实例进程,它所占内存释放,那么 instance 也就不存在了。但是,各种数据库相关文件还是存在的,所以 database 仍然存在。因此,也就不难理解了,oracle 数据库服务器启动一般包含的 3 个步骤:1. 创建并启动实例;2.装载数据库;3.打开数据库。每到一个阶段,都有相应的操作可以进行。例如,同一个 SID,但是如果以不同的参数文件启动,那么我们可以装载和打开不同的数据库。同样的,一个数据库,也可以被不同的 instance 加载和打开。那些 oracle 的各种启动命令,例如 startup nomount、startup mount、startup open、startup

7、(startup 等同于 startup open)分别对应于启动 oracle 数据库服务器到特定阶段。一个实例在其生存期内只能装载(alter database mount)和打开(alter database open)一个数据库。windows 下,我们一般启动服务 OracleServiceSID,就可以连接实例,对数据库进行操作,是因为安装 oracle 后,Windows 的注册表中 ORA_SID_AUTOSTART 默认设置为 true,数据库实例会随着服务的开启而开启。如果人为将其设置为false,那么即使 OracleServiceSID 启动,数据库实例也不会启动,需要

8、我们手动startup。b) oracle 中的 name,idoracle 中有多个 name 与 id。有些需根据规则定义,有些可以随意指定。有些可以省略,有些不能省略。有些可以很方便的进行修改(一条 sql,或者直接改参数文件) ,有些却不能修改,或者修改很麻烦。有些 name 之间有关系,有些却毫无关联。所以 oracle 中的各种 name 是最容易混淆的。以下内容都是目前自己的理解,难免有偏差,仅供参考。db_name:数据库名。物理数据库的名字标识。数据库创建完成后,参数db_name 被写入参数文件,格式如下:db_name=orcl数据名虽说可以修改,但是修改步骤比较麻烦。建

9、议最好不要修改 db_name。在不同的服务器上创建数据库,可以使用同样的 db_name在 DG 环境中,主备服务器中的数据库有同样的 db_name可以利用下列 sql 查询 db_nameselect name from v$database;db_domain:数据库域名。这个域同网络的域没有什么联系。个人理解是类似于把网络中的多个数据库分组管理。可以随意命名,可以为空。global_name:全局数据库名。在 windows 操作系统中,利用 Database Configuration Assistant 创建数据库时,要求输入就是全局数据库名。通常,它的名字是由 db_name.

10、db_domain 构成。SID:实例标识。在 windows 操作系统中,利用 Database Configuration Assistant 创建数据库时,会要求输入 SID。SID 和 instance_name 的值是一致的。它是 oracle的实例标识。在 windows 创建一个 oracle 实例后,会在操作系统中注册一个名称为 OracleServiceSID 的系统服务。由于在 oracle 中一个数据库可以对应多个实例,所以 SID 可以与 db_name 相同,也可以不相同。简而言之,SID 只与实例对应。instance_name 用于对外部连接。在操作系统中要取得与

11、数据库的联系,必须使用数据库实例名。可以通过下列 sql 查询 instance_nameselect instance_name from v$instance;db_unique_name:在 Data Guard 里,主从服务器中的数据库,都有一样的DB_NAME。然而它们和 RAC 环境下不一样,不代表同一个库(主备机中均有自己的数据库文件,不像 RAC 环境中通过多个实例通过磁盘阵列共享一个库) 。但是它们的 db_unique_name 是不一样的,用以标识不同的数据库。这个也是可以自己定义的。service_name:服务名。service name 是连接数据库的时候使用的别名

12、。需要注意的是,service_name 主要用于数据库网络连接时,可以有多个,可以随意命名,可以通过系统初始化参数 service_name 设置。一般情况下,service_name 的缺省值为 db_name.db_domain,同 global_name 相同。Net service name:网络服务名,即连接描述符。是客户端程序访问数据库时所需要,屏蔽了客户端如何连接到服务器端的细节,实现了数据库的位置透明的特性。网络服务名被记录在 tnsnames.ora 文件中,由自己随意命名。下面是 tnsname.ora 中的一段配置:TEST2 =(DESCRIPTION =(ADDRE

13、SS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 20081208-1335)(PORT = 1521) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = TESTB_DGMGRL.DG)其中的 TEST2 就是 net service name。c) oracle 的网络配置文件这里只介绍 oracle 最基本的网络结构。首先是 3 个配置文件,listener.ora 、sqlnet.ora 、tnsnames.ora ,均位于$ORACLE_HOMEnetworkadmin 目录下。sqlnet.o

14、ra:这是一个支持 SQL*NET(oracle 的网络组件,负责数据库服务的远程连接和登录)的基本配置文件,其中可以设定加密、连接限制、验证方式等等多种网络连接配置信息。其中,默认的,也是最常用的参数设置为以下 2 个。SQLNET.AUTHENTICATION_SERVICES= (NTS,NONE)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)参数 SQLNET.AUTHENTICATION_SERVICES 配置了登录验证方式,操作系统验证,还是密码文件验证。参数 NAMES.DIRECTORY_PATH 配置了以怎样的方式处理一个连接中出现的连

15、接字符串。例如,我们通过客户端 sqlplus 连接数据库,输入如下的命令conn system/systemorcl其中的 orcl 就是连接字符串。现在 NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)。其中 TNSNAMES 表示在 tnsnames.ora 文件中查找连接字符串(即 Net service name) ;EZCONNECT 表示以 EZCONNECT 的方式尝试连接。处理方式有先后区别,只有当前面方式失败时才会尝试后续方式。NAMES.DIRECTORY_PATH 还可以设置为其它值。tnsnames.ora:我自己把它理解为 ne

16、t service name 的配置文件。只有在 sqlnet.ora 中的 NAMES.DIRECTORY_PATH 值有 TNSNAMES 时,才有可能使用该文件。当连接字符串同 net service name 相匹配时,就可以根据 net service name 的配置信息,得到连接信息,例如主机名(或者 ip 地址) 、端口号、service_name(或者 SID) 。获得连接信息后,客户端就向目标服务器发送连接请求。剩下的就由服务器来解决了。listener.ora:oracle 的监听进程的配置文件。服务器通过监听进程(listener)接受连接申请并转交给服务器进程。从连接信息中得到 service_name 或者 sid,同已经注册的 service_name 或者已经启动的sid 进行匹配,就可以把远程数据库服务进程交给相应 instance。到此,listener 进程的任务也已经完成了。所以,关闭 listener,不会影响已经建立好的连接。举个事例具体说明一下serverA:sqlnet

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号