1 说明
对于shards之间具有Oracle Data Guard fast-start failover(数据库自动故障转移)的Oracle Data Guard物理复制的部署是自动的。 这是各个shards的默认Oracle高可用性(HA)配置。
优点:
1. Automated deployment reduces administrative overhead.
2. Physical database replication provides the strongest data protection using real time Oracle data validation.
3. Supports either asynchronous or synchronous replication for near-zero or zero data loss protection.
4. Automatic database failover provides high availability for server, database, network, and site outages.
5. Read-only workloads may be load-balanced across all copies of shards used for HA for additional scalability when using Oracle Active Data Guard.
其他关于Sharding文章:
语句级别路由和Cross-Shard查询:http://www.cndba.cn/Expect-le/article/2166
Sharded和Duplicated表介绍:http://www.cndba.cn/Expect-le/article/2165
搭建Oracle Sharded数据库:http://www.cndba.cn/Expect-le/article/2160
1.1 SDB使用Oracle Data Guard
1.1.1 System-Managed SDB使用DG
下图就是一个primary shardgroup Shardgroup1和两个standby shardgroup Shardgroup2和Shardgroup3.
Shardgroup1是有shards(1-3)组成,Shardgroup2是有shards(4-6)组成,Shardgroup3是有shards(7-9)组成。
其中Shardgroup1和Shardgroup2是在同一个数据中心--同步复制,Shardgroup3是在异地数据中心--异步复制。
部署例子:
CREATE SHARDCATALOG –database host00:1521:shardcat –region dc1, dc2
ADD GSM -gsm gsm1 -listener 1571 –catalog host00:1521:shardcat –region dc1
ADD GSM -gsm gsm2 -listener 1571 –catalog host00:1521:shardcat –region dc2
ADD SHARDGROUP -shardgroup shardgroup1 -region dc1 -deploy_as primary
ADD SHARDGROUP -shardgroup shardgroup2 -region dc1 -deploy_as active_standby
ADD SHARDGROUP -shardgroup shardgroup3 -region dc2 -deploy_as active_standby
CREATE SHARD -shardgroup shardgroup1 -destination host01 -credential oracle_cred
CREATE SHARD -shardgroup shardgroup1 -destination host02 -credential oracle_cred
CREATE SHARD -shardgroup shardgroup1 -destination host03 -credential oracle_cred
...
CREATE SHARD -shardgroup shardgroup3 -destination host09 -credential oracle_cred
DEPLOY
1.1.2 Composite SDB使用DG
在复合分片中,SDB由多个shardgroup成。 但是,每个shardspace包含多个复制的shardgroup,而不是复制的分片。
部署例子:
CREATE SHARDCATALOG -sharding composite –database host00:1521:cat –region dc1, dc2, dc3
ADD GSM -gsm gsm1 -listener 1571 –catalog host00:1521:cat –region dc1
ADD GSM -gsm gsm2 -listener 1571 –catalog host00:1521:cat –region dc2
ADD GSM -gsm gsm3 -listener 1571 –catalog host00:1521:cat –region dc3
ADD SHARDSPACE -shardspace shardspace_a
ADD SHARDSPACE -shardspace shardspace_b
ADD SHARDGROUP -shardgroup shardgroup_a1 –shardspace shardspace_a -region dc1 -deploy_as primary
ADD SHARDGROUP -shardgroup shardgroup_a2 –shardspace shardspace_a -region dc1 -deploy_as active_standby
ADD SHARDGROUP -shardgroup shardgroup_a3 –shardspace shardspace_a -region dc3 -deploy_as active_standby
ADD SHARDGROUP -shardgroup shardgroup_b1 –shardspace shardspace_b -region dc1 -deploy_as primary
ADD SHARDGROUP -shardgroup shardgroup_b2 –shardspace shardspace_b -region dc1 -deploy_as active_standby
ADD SHARDGROUP -shardgroup shardgroup_b3 –shardspace shardspace_b -region dc2 -deploy_as active_standby
CREATE SHARD -shardgroup shardgroup_a1 -destination host01 –credential orcl_cred
...
CREATE SHARD -shardgroup shardgroup_b3 -destination host09 -credential orcl_cred
DEPLOY
更为相信信息,请查看官方文档:
2 实验-System-Managed SDB使用DG
详细请参考:搭建Oracle Sharded数据库:http://www.cndba.cn/Expect-le/article/2160
多了一个步骤,其他操作均不变。
--在添加shardgroup时,不仅添加primary shardgroup,也要添加arctive_standby shardgroup
GDSCTL> add shardgroup -shardgroup primary_shardgroup -deploy_as primary -region region1
GDSCTL> add shardgroup -shardgroup standby_shardgroup -deploy_as active_standby -region region2
--添加shards节点主机时,指定primary shardgroup和active_standby shardgroup
GDSCTL> add invitednode sdb1
GDSCTL> create shard -shardgroup primary_shardgroup -destination sdb1 -credential credential_name -sys_password oracle
GDSCTL> add invitednode sdb2
GDSCTL> create shard -shardgroup standby_shardgroup -destination sdb2 -credential credential_name -sys_password oracle
GDSCTL> add invitednode sdb3
GDSCTL> create shard -shardgroup primary_shardgroup -destination sdb3 -credential credential_name -sys_password oracle
GDSCTL> add invitednode sdb4
GDSCTL> create shard -shardgroup standby_shardgroup -destination sdb4 -credential credential_name -sys_password oracle
那么sdb2是sdb1的物理备库,sdb4是sdb3的物理备库。
下面就直接DEPLOY即可,所有操作都由Oracle自动完成。
2.1 验证
GDSCTL> config shard
Name Shard Group Status State Region Availability
---- ----------- ------ ----- ------ ------------
sh1 primary_shardgroup Ok Deployed region1 ONLINE
sh2 standby_shardgroup Ok Deployed region2 READ_ONLY
sh3 primary_shardgroup Ok Deployed region1 ONLINE
sh4 standby_shardgroup Ok Deployed region2 READ_ONLY
GDSCTL> databases
Database: "sh1" Registered: Y State: Ok ONS: N. Role: PRIMARY
Instances: 1 Region: region1
Registered instances:
cust_sdb%1
Database: "sh2" Registered: Y State: Ok ONS: N. Role: PH_STNDBY
Instances: 1 Region: region2
Registered instances:
cust_sdb%11
Database: "sh3" Registered: Y State: Ok ONS: N. Role: PRIMARY
Instances: 1 Region: region1
Registered instances:
cust_sdb%21
Database: "sh4" Registered: Y State: Ok ONS: N. Role: PH_STNDBY
Instances: 1 Region: region2
Registered instances:
cust_sdb%31
版权声明:本文为博主原创文章,未经博主允许不得转载。
Sharding Data Guard