概述

GDS作用

GDS(全局数据库服务):跨数据库提供并发、负载均衡服务。这里的数据库指DG之间的主库备库以及通过OGG相关联的多个数据库。

GDS由三部分组成:GSM、GDS配置数据库、数据库。

GSM(常规服务管理)主要提供监听服务,应用的连接不再连接到具体的数据库服务,而是连接到GSM,由GSM转发到各个数据库服务。数据库添加到GSM后,在GSM中可以对这些数据库分配资源池,然后在资源池上配置对外提供的服务。可以对数据库进行更灵活的服务配置。这就是GDS能跨数据库提供服务的原因,GSM就是GDS的核心。

GDS配置数据库:存储GSM的配置信息。

数据库:单实例、RAC、DG等数据库

GSM安装

+->上传软件

mkdir -p /u01/soft/gsm

linuxx64_12201_gsm.zip

chown -R oracle.oinstall /u01/soft/gsm_1

+->用户与组

创建oracle用户与组

+->创建目录

mkdir -p /u01/app/oracle/product/12.2.0/gsm_1

chown -R oracle.oinstall  /u01/app/oracle

chmod -R 775  /u01/app/oracle

mkdir -p /u01/app/oraInventory

chown -R oracle:oinstall /u01/app/oraInventory

chmod -R 770 /u01/app/oraInventory

+->环境变量

每个 GSM 都需要独自的ORACLE_HOME

export ORACLE_HOME=/u01/app/oracle/product/12.2.0/gsmhome_1

export PATH=$PATH:$ORACLE_HOME/bin

export TNS_ADMIN=$ORACLE_HOME/network/admin

+->安装软件

xhost +

export DISPLAY=172.17.201.10:0.0

echo $ORACLE_HOME

$ ./runInstaller

sh /u01/app/oraInventory/orainstRoot.sh

sh /u01/app/oracle/product/12.2.0/gsmhome_1/root.sh

+->安装监听

如果gsm安装在单独的服务器上,则还需要安装监听

此步是否真的需要手工安装尚需再次验证,因为gsm的添加与启动不需要也不能通过lsnrctl命令来完成

$ netca

配置但不启动监听

lsnrctl stop

创建GDS配置数据库

安装数据库,并使用dbca建库,此库可以使用非容器数据库,此处为了多多练习PDB才使用的容器数据库
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname gdsdb -sid gdsdb \
-createAsContainerDatabase true -numberOfPDBs 1 -pdbAdminPassword Admin_123 -pdbName pdbgds -useLocalUndoForPDBs true \
-sysPassword Admin_123 -systemPassword Admin_123 -responseFile NO_VALUE \
-storageType FS -datafileDestination /u01/data -redoLogFileSize 500 \
-enableArchive true -archiveLogDest /u01/data/arch \
-recoveryAreaDestination /u01/data/fra -recoveryAreaSize 20480 \
-characterSet AL32UTF8 -nationalCharacterSet AL16UTF16 -sampleSchema true -memoryPercentage 30 -databaseType OLTP -emConfiguration NONE

服务与监听

SQL> show parameter name

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cdb_cluster_name string gdsdb
cell_offloadgroup_name string
db_file_name_convert string
db_name string gdsdb
db_unique_name string gdsdb
global_names boolean FALSE
instance_name string gdsdb
lock_name_space string
log_file_name_convert string
pdb_file_name_convert string
processor_group_name string

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string gdsdb

[oracle@a12csh4 ~]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 05-DEC-2017 16:24:12

Copyright (c) 1991, 2016, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 05-DEC-2017 16:23:45
Uptime 0 days 0 hr. 0 min. 26 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/a12csh4/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=a12csh4)(PORT=1521)))
Services Summary...
Service "5f945f9d7b41237fe053bd15a80a79ca" has 1 instance(s).
Instance "gdsdb", status READY, has 1 handler(s) for this service...
Service "gdsdb" has 1 instance(s).
Instance "gdsdb", status READY, has 1 handler(s) for this service...
Service "gdsdbXDB" has 1 instance(s).
Instance "gdsdb", status READY, has 1 handler(s) for this service...
Service "pdbgds" has 1 instance(s).
Instance "gdsdb", status READY, has 1 handler(s) for this service...
The command completed successfully

创建catalog 管理gsm的用户

$ sqlplus / as sysdba
alter session set container=pdbgds;
create user gsm identified by Admin123 default tablespace users quota unlimited on users;
grant gsmadmin_role to gsm;
grant connect,create session to gsm;

解锁GSMUSER

这个gsmuser用户用于gsm管理各个数据库,跟该数据库是否是配置数据库没有关系,换句话说,想要把一个普通数据库添加到gsm中,那么就先解锁该数据库的gsmuser账户。此处就是把配置数据库当作一个普通数据库来演示GSM的功能。

$ sqlplus / as sysdba
alter user gsmuser identified by Admin123 account unlock;

配置GDS catalog

通过gdsctl工具创建catalog,gdsctl命令在gsm服务器上

#gsm
10.168.21.180 gsm1 gsm1.localdomain
10.168.21.181 gsm2 gsm2.localdomain
10.168.21.189 a12csh4 a12csh4.localdomain

+->修改配置库 GSMCATUSER账户
[oracle@a12csh4 ~]$ sqlplus / as sysdba
alter user gsmcatuser identified by Admin123 account unlock;

登录到gsm服务器,配置TNS,TNS中的服务必须是容器数据库根的服务,不能是某个PDB的服务,再强调一下,配置数据库不必使用容器数据库,此处纯粹是为了尽快熟悉12C,因为有些坑你不去踩一踩就永远不知道那有个坑
cd /u01/app/oracle/product/12.2.0/gsm_1/network/admin
cp samples/tnsnames.ora .

gdstns =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = a12csh4)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = gdsdb)
)
)

[oracle@gsm1 admin]$ sqlplus gsm/Admin123@gdstns

SQL*Plus: Release 12.2.0.1.0 Production on Tue Dec 5 16:36:47 2017

Copyright (c) 1982, 2016, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL>
SQL> exit

[oracle@gsm1 admin]$ gdsctl
GDSCTL: 版本 12.2.0.1.0 - Production, 时间: Tue Dec 05 16:37:24 CST 2017

版权所有 (c) 2011, 2016, Oracle。保留所有权利。

欢迎使用GDSCTL, 请键入 "help" 以获得信息。

警告: 未自动设置当前 GSM 名称, 因为 gsm.ora 不包含或包含多个 GSM 条目。请使用 "set gsm" 命令为会话设置 GSM。
当前 GSM 设置为 GSMORA

GDSCTL>create catalog -database gdstns -user c##gsm/Admin123;
目录已创建

+-->连接到配置库
GDSCTL>connect c##gsm/Admin123@gdstns
已建立目录连接

注册GSM到GDS catalog

登录gsm服务器
+->gsm服务器hosts文件
#gsm
10.168.21.180 gsm1 gsm1.localdomain
10.168.21.181 gsm2 gsm2.localdomain
10.168.21.189 a12csh4 a12csh4.localdomain

新建监听gsmlst 1527 端口,如果listener.ora文件中有主机名解析,那么要求catalog库所在
服务器同样能够解析其中的主机名

gdsctl
add gsm -gsm gsm180 -listener 1527 -catalog oragds:1523:gdsdb
add gsm -gsm gsm180 -listener 1527 -catalog gdstns

[oracle@gsm1 admin]$ gdsctl
GDSCTL>add gsm -gsm gsm180 -listener 1527 -catalog gdstns
"gsmcatuser" 口令:
GSM 已成功添加

查看监听为停止 状态
[oracle@gsm1 admin]$ lsnrctl status

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 05-DEC-2017 16:56:40

Copyright (c) 1991, 2016, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=gsm1)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
Linux Error: 2: No such file or directory

启动GSM

[oracle@gsm1 admin]$ gdsctl
GDSCTL: 版本 12.2.0.1.0 - Production, 时间: Tue Dec 05 16:59:04 CST 2017

版权所有 (c) 2011, 2016, Oracle。保留所有权利。

欢迎使用GDSCTL, 请键入 "help" 以获得信息。

当前 GSM 设置为 GSM180
GDSCTL>connect c##gsm/Admin123@gdstns
已建立目录连接
GDSCTL>start gsm -gsm gsm180
GSM 已成功启动

添加gds pool

默认为dbpoolora
GDSCTL>connect c##gsm/Admin123@gdstns
已建立目录连接
GDSCTL>add gdspool -gdspool orderpool
操作已成功完成

添加gds region

GDSCTL>connect c##gsm/Admin123@gdstns
已建立目录连接
GDSCTL>add region -region beijing,shanghai,shenzhen
操作已成功完成

添加数据库到 GDS Pool

要提供global services,数据库必须被添加到GDS Pool中。在将一个12c的数据库添加到GDS Pool之前,需要先将被添加数据库上的gsmuser账户unlock,并设置一个新password

+->被添加数据库添加gsm主机名解析
#gsm
172.168.21.180 gsm1 gsm1.localdomain
172.168.21.181 gsm2 gsm2.localdomain
##SHARD
172.168.21.186 a12csh1 a12csh1.localdomain
172.168.21.187 a12csh2 a12csh2.localdomain
172.168.21.188 a12csh3 a12csh3.localdomain
172.168.21.189 a12csh4 a12csh4.localdomain

+->数据库中解锁gsmuser用户
[oracle@a12csh1 ~]$ sqlplus / as sysdba
SQL> alter user gsmuser identified by Admin123 account unlock;

+->gsm服务器上添加数据库
配置指向数据库的TNS,服务名为根服务名
[oracle@gsm1 admin]$ cd /u01/app/oracle/product/12.2.0/gsm_1/network/admin
db186 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = a12csh1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = csdb)
)
)

db187 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = a12csh2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = db186dg1)
)
)

连接测试正常
[oracle@gsm1 admin]$ sqlplus system/Admin_123@db186
[oracle@gsm1 admin]$ sqlplus system/Admin_123@db187

add database -connect rscan:1521/ora12c -region beijing -gdspool dbpoolora -pwd Admin123
add database -connect db186 -region beijing -gdspool orderpool -pwd Admin123
add database -connect db187 -region beijing -gdspool orderpool -pwd Admin123

GDSCTL>connect c##gsm/Admin123@gdstns
GDSCTL>add database -connect db186 -region beijing -gdspool orderpool -pwd Admin123
数据库的唯一名称: csdb
操作已成功完成
GDSCTL>add database -connect db187 -region beijing -gdspool orderpool -pwd Admin123
数据库的唯一名称: db186dg1
操作已成功完成

备注:
-pwd Admin123是被添加数据库上gsmuser 用户的密码
db186、 db187是一套DG, db187 为备库

添加global service

add service -gdspool orderpool -service csdbquery -preferred_all

GDSCTL>add service -gdspool orderpool -service csdbquery -preferred_all
操作已成功完成

+->启动service
GDSCTL>start service -gdspool orderpool -service csdbquery
操作已成功完成

GDSCTL>status service -service csdbquery
服务 "csdbquery.orderpool.oradbcloud" 具有 2 个实例。关系: ANYWHERE
实例 "orderpool%1", 名称: "db186", 数据库: "csdb", 区域: "beijing", 状态: ready。
实例 "orderpool%11", 名称: "db186", 数据库: "db186dg1", 区域: "beijing", 状态: ready。

GDSCTL>status gsm -gsm gsm180
别名 GSM180
版本 12.2.0.1.0
启动日期 05-DEC-2017 16:59:22
跟踪级别 off
监听程序日志文件 /u01/app/oracle/diag/gsm/gsm1/gsm180/alert/log.xml
监听程序跟踪文件 /u01/app/oracle/diag/gsm/gsm1/gsm180/trace/ora_7611_139896822366592.trc
端点概要 (ADDRESS=(HOST=gsm1)(PORT=1527)(PROTOCOL=tcp))
GSMOCI 版本 2.2.1
主身份 Y
已连接到 GDS 目录 Y
进程 ID 7613
重新连接数量 0
暂挂任务。 总计 0
任务正在进行。总计 0
区域主身份 TRUE
发布的消息总数 9
时区 +08:00
孤立的伙伴区域:

GDS 区域 regionora

客户端TNS配置

csdbquery =
(DESCRIPTION=
(FAILOVER=on)
(ADDRESS_LIST=
(LOAD_BALANCE=ON)
(ADDRESS=(PROTOCOL = TCP)(host=gsm1.localdomain)(port=1527)))
(CONNECT_DATA=
(SERVICE_NAME=csdbquery.orderpool.oradbcloud)
(REGION=beijing)
)
)

连接测试成功
[oracle@a12csh4 admin]$ sqlplus system/Admin_123@csdbquery

SQL*Plus: Release 12.2.0.1.0 Production on Tue Dec 5 20:41:09 2017

Copyright (c) 1982, 2016, Oracle. All rights reserved.

2017/12/05 20:41:09 [34539600] [8] config: 0 length name or value
Last Successful login time: Tue Dec 05 2017 19:58:00 +08:00

Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL>
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

 监听与服务

查看186数据库上监听与服务

[oracle@a12csh1 ~]$ lsnrctl status

Service "csdbquery.orderpool.oradbcloud" has 1 instance(s).
Instance "db186", status READY, has 1 handler(s) for this service...

查看187数据库上监听与服务

[oracle@a12csh2 ~]$ lsnrctl status

Service "csdbquery.orderpool.oradbcloud" has 1 instance(s).
Instance "db186", status READY, has 1 handler(s) for this service...

说明一下,187数据库的instance_name的确为db186,187数据库是186数据库的备库

[oracle@a12csh2 ~]$ sqlplus / as sysdba

SQL> show parameter name

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_cloud_name string oradbcloud
_dbpool_name string orderpool
_region_name string beijing
cdb_cluster_name string db186dg1
cell_offloadgroup_name string
db_file_name_convert string
db_name string csdb
db_unique_name string db186dg1
global_names boolean FALSE
instance_name string db186
lock_name_space string

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_file_name_convert string null, null
pdb_file_name_convert string
processor_group_name string
service_names string db186dg1

这里GDS最主要的作用--跨数据库提供负载均衡服务的作用就体现出来了,在11G时,服务是不能跨主库和备库的,这里的186数据库和187数据库则是主备关系,一个服务,在主备库上同时运行。

转载于:https://www.cnblogs.com/automng/p/7989286.html

12C GDS安装简记相关推荐

  1. Oracle 12c RAC 安装文档

    首先,谢谢原作者:此文为转载的文章,现将原地址贴出如下: Oracle 12c RAC 安装文档​www.cnblogs.com/leohahah/p/9488963.html 更多精彩Zabbix文 ...

  2. Centos7上安装oracle11g/12c的安装教程推荐及注意事项

    Centos7上安装oracle11g的安装教程推荐及注意事项 历时一天半,终于在今天中午安装完oracle11g,成功后喜悦的心情自是溢于言表.总有些疑问,比如为何如此复杂的数据库为何还会有如此之多 ...

  3. Linux+Oracle+12c+RAC+安装配置详细-GI安装

    IP地址 主机名 用途 实例名 192.168.12.58 oracle-rac03-db03 Public ip (节点1) 192.168.12.59 oracle-rac04-db04 Publ ...

  4. Linux(RedHat)下Weblogic 12C静默安装

    Java 版本确认与安装 Oracle 12需要安装JDK, Open JDK 不可以,如果已经安装的话,需要卸载重装. //查找已安装的Java rpm -qa|grep java //卸载安装的o ...

  5. linux数据库12c安装图解,Linux + Oracle 12c RAC安装配置详细记录过程_图文并茂.pdf

    Linux +Oracle12cRAC安装配置详细记录过程_图文并茂_v1.0 Version:<1.0> Linux +Oracle12cRAC安装配置详细记录过程_图文并茂_v1.0 ...

  6. oracle12设配置,Oracle 12C静默安装与配置

    Oracle 12C已经发布...下面我将跟大家一起学习静默安装与配置Oracle 12C以及示例用户. 从链接地址获取Oracle 12C安装包与示例用户安装包. 2. 静默安装数据库软件 2.1浏 ...

  7. Oracle 12c 的安装

    Oracle 12c 安装 官网下载:https://www.oracle.com/cn 1.首先解压该文件 2.进入 进入后的界面: 3. 右键-以管理员身份运行 4. 进入安装程序 (第四步不需要 ...

  8. Oracle 12C OEM 安装

    IP 数据库 OEM 操作系统 数据库版本 192.168.3.3 单机 service(12.1.0.5 ) Linux6.9 11.2.0.4 192.168.3.4 RAC agent Linu ...

  9. window10下Oracle 12c详细安装教程

    说明:安装前先说明一下,最好认真看安装教程慢慢的一步一步安装下来,一次性安装成功.重新安装史无前例的难搞.一下步骤全部在window10系统下进行操作 ························ ...

  10. oracle 12c r2下载地址,Oracle 12C R2安装尝鲜

    Oracle 12C R2下载安装尝鲜 1 下载 目前Oracle以提供官方的Edelivery站点,以提供两个版本的12.2的下载.是linux和solaris.https://www.cndba. ...

最新文章

  1. 重温目标检测--Faster R-CNN
  2. Java Pinyin4j(汉字转拼音)
  3. 如何禁止使用本地administrator进行共享连接
  4. Nginx 模块开发(1)—— 一个稍稍能说明问题模块开发 Step By Step 过程
  5. vue warning如何去掉_详解 vue 组件三大核心概念
  6. 2021年中国电商SaaS行业研究报告
  7. 运维日常操作--linux命令
  8. Modbus的CRC校验算法
  9. 聊聊最近的几件小事儿
  10. 数据分析师培训班哪家好?
  11. 余子式和余子式 伴随矩阵定义 性质 二阶矩阵求伴随矩阵 伴随矩阵理解(列排)
  12. 赤裸裸的逆袭:小学生都用大数据分析苏轼了!
  13. win7快速启动栏计算机,windows7快速启动栏如何设置 windows7快速启动栏设置方法【图文】...
  14. NIO源码解析-FileChannel
  15. ug电子产品计算机建模,UG10网格曲面咖啡壶
  16. JavaScript (一) js的介绍及基本语法变量
  17. Python--进程池与线程池
  18. 使用 SPARQL 查询 RDF 数据
  19. 正弦波和方波发生器的设计
  20. css 媒体查询 移动端,媒体查询(pc端,移动端不同布局)

热门文章

  1. dhcp设置(Padavan dhcp设置)
  2. 在php中phr是什么意思,虽败犹荣 AGO.phr:WESG让我们如获新生
  3. layui table 渲染动态列及列数据
  4. Java基础:常用类(String类)
  5. 安卓手机如何打开.crx文件_安卓手机打开.crx文件的方法
  6. 玩转数学答题赢大奖,福利抢先拿!
  7. 【web前端】第二天-HTML标签(下)
  8. c语言gets和puts的区别,C 语言 gets()和puts()
  9. 【Nacos源码篇(五)】Subscriber源码分析
  10. 大数据——DBT:dbt的数据质量监控插件re_data二次开发及编译(生产环境篇)