重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3787|回复: 4
打印 上一主题 下一主题

[安装] ORACLE 12C SHARDING部署

[复制链接]
跳转到指定楼层
楼主
发表于 2017-8-11 15:38:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Sharding架构是数据库层面的一种分片技术,可以使分过区的数据分布在各不相同的独立数据库里。Sharding是oracle Database 12c Release 2的新特性,它能为适合于 Sharding技术的OLTP应用提供线性扩展和完全错误隔离的能力,可以将 Sharding简单地理解为Oracle 表分区技术的扩展。

本例将搭建如下 Sharded Database (SDB).
·        一共3台Host,即 SDB1, SDB2, SDB3。 均已安装Oracle Linux 6.7。
·        在HostSDB1上安装Shard Director和Shard Catalog。
·        在HostSDB2和HostSDB3上各安装一个Shard。



下面是对Oracle Sharding 主要部件的简要解释:
        Sharded Database(SDB) – 是一个逻辑上的Oracle Database,它由多个物理上互相独立的Oracle Databases (Shards) 组成,Shards之间不共享任何软件和硬件,即Share Nothing.
        Shards – 是一个独立的数据库。
        ShardCatalog - 它也是一个Oracle Database,主要用于Shard的自动部署、集中管理以及跨Shard的查询。
        ShardDirectors - 跟据Sharding Key来提供到Shard的路由。OracleSharding中可以设置多个位于不同Host的Shard Director。


Oracle Sharding 支持如下三种Sharding方式:
System-ManagedSharding – 这种Sharding方式不需要用户指定数据到Shard的mapping关系(可以简单理解为数据按consistenthash之后再分布到各个Shard),本例中将使用这种Sharding 方式。
       CompositeSharding –这种Sharding方式需要用户指定数据到Shard的mapping关系(这里将不做详细讲解)。
       UsingSubpartitions with Sharding – Oracle Sharding是基于表分区技术的, 因此 Sharding可以支持所有的subpartition方法。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

沙发
 楼主| 发表于 2017-8-11 15:39:10 | 只看该作者
下面开始搭建环境。
一.        安装软件:
                   OracleDatabase 12c Release 2
                    OracleDatabase 12c Release 2 Global Service Manager (GSM/GDS)
1.      在所有节点上安装Oracle Database 12c Release 2。(注:只安装软件,不创建DB)
    主机hosts文件写上本机和各个shard node的IP解析
1.1  安装前准备。
yum install oracle-database-server-12cR2-preinstall-1.0-1.el6.x86_64
yum install gcc-c++.x86_64
echo 'oracle:oracle' | chpasswd
mkdir /u01
chown -R oracle:oinstall /u01
su - oracle
./runInstaller
1.2  开始安装,点击Next。
1.3  选择Installdatabase software only,点击Next。
1.4  选择Singleinstance database installation,点击Next。
1.5  选择EnterpriseEdition,点击Next。
1.6  接下来的所有步骤都使用默认值。点击Next。
1.7  在Summary页面,选择SaveResponse File, 将用于其它节点的安装。
    1.8 安装过程中,应该按要求新开一个终端,用root执行脚本。
    1.9 在另外两个节点准备环境并静默安装Oracle Database 12c Release 2。
yum install oracle-database-server-12cR2-preinstall-1.0-1.el6.x86_64
yum install gcc-c++.x86_64
echo 'oracle:oracle' | chpasswd
mkdir /u01
chown -R oracle:oinstall /u01
su -oracle
./runInstaller -silent -responseFile /home/oracle/db.rsp

2.      在Shard Director 所在节点安装Oracle Database 12c Release 2 Global Service Manager (GSM/GDS), 本例中即HOST SDB1。安装过程与安装OracleDatabase 12c Release 2类似,均使用默认值。
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2017-8-11 15:39:25 | 只看该作者
二.        创建ShardCatalog Database。本例中将会在HostSDB1上创建。

1.    准备环境并启动DBCA。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
mkdir /u01/app/oracle/oradata
mkdir /u01/app/oracle/fast_recovery_area
$ORACLE_HOME/bin/dbca

2.      选择Create a database,点击Next。
3.      选择Advanced configuration,点击Next。
4.      选择Oracle Single Instance database, 选择General Purpose orTransaction Process模板,点击Next。
5.      输入Global Database name和SID,请不要选中Create asContainer database,点击Next。
6.    选择File System,选择Oracle-Managed Files(OMF),点击Next。
7.  选择Specify Fast Recovery Area ,Enable archiving,点击Next。
8.    接下来的页使用默认值,并跳过Data Vault 选项页。然后选择Use Automatic Shared Memory Management。
9.    选择Use Unicode(AL32UTF8),点击Next。
10.      不要选择Configure EnterpriseManager(EM) database express,点击Next。
11.      本例所有的用户都用同样密码 : oracle。
12.    选择Create database。
13.    点击Finish。
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2017-8-11 15:39:39 | 只看该作者
三.        设置OracleSharding Manage和路由层。本例中在HostSDB1上设置。

1.    设置catalog database 环境变量并启动监听。

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export ORACLE_SID=shard
export PATH=$ORACLE_HOME/bin:$PATH
lsnrctl start

2.    赋角色和权限。GSMCATUSER是12c内置的一个用户,shard director 用这个用户连到catalog database。
sqlplus / as sysdba

alter user gsmcatuser account unlock;

alter user gsmcatuser identified by oracle;

create user mysdbadmin identified by oracle;

grant connect,create session,gsmadmin_role to mysdbadmin;

grant inherit privileges on user sys to GSMADMIN_INTERNAL;

exec DBMS_SCHEDULER.SET_AGENT_REGISTRATION_PASS('oracle');


3.    进入到GDSCTL命令行,创建shard catalog。注:GDSCTL是一个命令行工具,用于管理和配置Global Data Services framework。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/gsmhome_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
gdsctl
create shardcatalog -database 192.168.133.91:1521:orcl -chunks 12 -user mysdbadmin/oracle -sdb shard -region sdb2,sdb3

4.    创建并启动shard director。并设置操作系统安全认证。
add gsm -gsm sharddirector1 -listener 1522 -pwd oracle -catalog 10.10.9.30:1521:shard -region region1
start gsm -gsm sharddirector1
add credential -credential region1_cred -osaccount oracle -ospassword oracle
exit

5.    连接到每一个Shard Hosts(本例中为HOST SDB2和HOST SDB3),注册Scheduler agents, 并创建好oradata和fast_recovery_area文件夹。
ssh oracle@sdb2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

schagent -start
schagent -status
echo oracle | schagent -registerdatabase 10.10.9.30 8080
mkdir /u01/app/oracle/oradata
mkdir /u01/app/oracle/fast_recovery_area

ssh oracle@sdb3
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
schagent -start
schagent -status
echo oracle | schagent -registerdatabase 10.10.9.30 8080
mkdir /u01/app/oracle/oradata
mkdir /u01/app/oracle/fast_recovery_area
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2017-8-11 15:40:08 | 只看该作者
四.        开始布署SharedDatabase。本例将布署System-ManagedSDB。


1.    准备。
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/12.2.0/gsmhome_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
      gdsctl
    set gsm -gsm sharddirector1
    connect mysdbadmin/oracle
    add shardgroup -shardgroup primary_shardgroup -deploy_as primary -region region1
    create shard -shardgroup primary_shardgroup -destination sdb2 -credential region1_cred -sys_password oracle
    create shard -shardgroup primary_shardgroup -destination sdb3 -credential region1_cred -sys_password oracle
    config shard

2.    布署。
     deploy

TIPs:
deploy命令会调用远程每一个节点上的dbca去静默安装sharded database。我们可以通过dbca的日志文件去监控安装进度。
deploy 还会在catalogdatabase 上提交一些job来完成相关事务。我们可以查询dba_scheduler_jobs 来监控进度。
另外,GSM日志可以用于deploy过程的监控和诊断。GSM日志的位置可以通过如下命令查到。
      GDSCTL>status gsm

3.    验证安装是否成功。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-5-18 15:09 , Processed in 0.221285 second(s), 19 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表