zoukankan      html  css  js  c++  java
  • 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

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

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

    [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数据库则是主备关系,一个服务,在主备库上同时运行。

  • 相关阅读:
    一般索引
    微信小程序扫码
    微信小程序
    PHPStudy设置局域网访问
    phpstudy
    爱番番
    织梦栏目url的seo处理
    织梦dedecms网站迁移搬家图文教程
    打开存储过程中的代码目录(转)
    正在载入
  • 原文地址:https://www.cnblogs.com/automng/p/7989286.html
Copyright © 2011-2022 走看看