12C GDS安装简记

Posted 我是DBA

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12C GDS安装简记相关的知识,希望对你有一定的参考价值。

 

概述

GDS作用

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

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

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

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

数据库:单实例、RACDG等数据库

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

 

[[email protected] ~]$ 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账户
[[email protected] ~]$ 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)
)
)

[[email protected] admin]$ sqlplus gsm/[email protected]

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

[[email protected] 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/[email protected]
已建立目录连接

注册GSMGDS 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

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

查看监听为停止 状态
[[email protected] 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

[[email protected] 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/[email protected]
已建立目录连接
GDSCTL>start gsm -gsm gsm180
GSM 已成功启动

添加gds pool

默认为dbpoolora
GDSCTL>connect c##gsm/[email protected]
已建立目录连接
GDSCTL>add gdspool -gdspool orderpool
操作已成功完成

添加gds region

GDSCTL>connect c##gsm/[email protected]
已建立目录连接
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用户
[[email protected] ~]$ sqlplus / as sysdba
SQL> alter user gsmuser identified by Admin123 account unlock;


+->gsm服务器上添加数据库
配置指向数据库的TNS,服务名为根服务名
[[email protected] 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)
)
)

连接测试正常
[[email protected] admin]$ sqlplus system/[email protected]
[[email protected] admin]$ sqlplus system/[email protected]

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/[email protected]
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)
)
)

连接测试成功
[[email protected] admin]$ sqlplus system/[email protected]

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

 

以上是关于12C GDS安装简记的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu安装Gitlab简记

ganglia安装简记

mysql主从安装简记

CentOS 7 软件安装简记

Sqlite3入门简记

CDH5离线安装简记