이전 글: 2021.08.09 - [Database/Oracle Database] - 18c 신기능 - 오라클 샤딩 (Sharding) - #1 개념
네개의 Oracle Cloud Infrastructure (OCI) VM instance로 Sharded Database를 구성했습니다.
- inst-sdirector: Shard Director
- inst-scatalog: Shard Catalog
- inst-shard1: 첫번째 Shard
- inst-shard2: 두번째 Shard
Shard Director는 public subnet에 위치시키고, 나머지 Shard Catalog, Shard1, Shard2는 동일 private subnet에 위치 시켰습니다. 그리고 19c non-CDB, CREATE SHARD 방식으로 system-managed sharding 구성했습니다. Data Guard, Aactive Ddata Guard, Oracle GoldenGate 설정은 하지 않았습니다.
Oracle Sharding deploy 순서는 아래와 같습니다.
- Shard catalog host에 DB 생성
- Shard node에 Oracle DB software 설치
- Shard director node에 Shard director(GSM) software 설치
Shard DB를 deploy 하는 방법은 두가지가 있습니다.
- CREATE SHARD 명령으로 shard를 생성하면서 replication까지 함께 자동으로 생성하는 방법. 단, PDB가 shard로 사용되는 Multitenant에서는 지원되지 않음
- ADD SHARD 명령으로 미리 생성된 DB를 shard에 추가하는 방법.
Oracle Cloud Infrastructure에서 19c non-CDB 환경에서 Sharding을 구성할 것이므로 첫번째 CREATE SHARD 방식으로 deploy할 것입니다.
Oracle Sharding 구성을 위해 필요한 사전 네트웍 설정은 아래와 같습니다.
아래 4,5 번째는 CREATE SHARD 방식에만 해당됩니다. 나머지는 모든 VM 인스턴스에 대해 설정했습니다.
- shards > shard director : 1522 (shard director listener), 6123 (shard director local ONS), 6234 (shard director remote ONS)
- shards > shard catalog : 1521 (shard catalog listener)
- shard director, shard catalog > shards : 1521 (shard listener)
- shards > shard catalog : 8080 (agent_port)
- shard catalog > shards : 8080 (scheduler agent port)
OCI Virtual Cloud Network (VCN)은 아래와 같이 설정했습니다.
[Security List: seclist-sdirector]
Ingress Stateful | 0.0.0.0/0 | 22 port |
Ingress Stateful | 10.0.2.0/24 | 1521 port |
Ingress Stateful | 10.0.2.0/24 | 1522 port |
Ingress Stateful | 10.0.2.0/24 | 6123 port |
Ingress Stateful | 10.0.2.0/24 | 6234 port |
Ingress Stateful | 0.0.0.0/0 | 1521 port |
Ingress Stateful | 0.0.0.0/0 | 1522 port |
Ingress Stateful | 0.0.0.0/0 | 6123 port |
Ingress Stateful | 0.0.0.0/0 | 6234 port |
Egress Stateful | 0.0.0.0/0 | All Protocols |
[Security List: seclist-shard]
Ingress Stateful | 10.0.1.0/24 | 22 port |
Ingress Stateful | 10.0.1.0/24 | 1521 port |
Ingress Stateful | 10.0.2.0/24 | All Protocols |
Egress Stateful | 0.0.0.0/0 | All Protocols |
[Subnet]
Subnet | CDIR | CDIR Type | Route Table | Security List |
subnet-sdirector | 10.0.1.0/24 | public | routetab-public | seclist-sdirector |
subnet-shard | 10.0.2.0/24 | private | routetab-private | seclist-shard |
[VM Instance]
- Oracle Linux 7.7, Oracle Database 19c, VM.Standard2.1
- 인스턴스 생성 후, “yum update -y”로 패키지 업데이트 수행
Instance | Subnet | IP Address | Ref. |
inst-sdirector | subnet-sdirector | 10.0.1.2 | Shard director + bastion 역할 |
inst-scatalog | subnet-shard | 10.0.2.2 | Shard catalog |
inst-shard1 | subnet-shard | 10.0.2.3 | Shard#1 |
inst-shard2 | subnet-shard | 10.0.2.4 | Shard#2 |
각 호스트에서 방화벽을 오픈합니다. – shard director 호스트
[root@inst-sdirector opc]# firewall-cmd --permanent --add-port=1521/tcp
success
[root@inst-sdirector opc]# firewall-cmd --permanent --add-port=1522/tcp
success
[root@inst-sdirector opc]# firewall-cmd --permanent --add-port=6123/tcp
success
[root@inst-sdirector opc]# firewall-cmd --permanent --add-port=6234/tcp
success
[root@inst-sdirector opc]# firewall-cmd --reload
success
각 호스트에서 방화벽을 오픈합니다. - shard catalog 호스트
[root@inst-scatalog opc]# firewall-cmd --permanent --add-port=1521/tcp
success
[root@inst-scatalog opc]# firewall-cmd --permanent --add-port=8080/tcp
success
[root@inst-scatalog opc]# firewall-cmd --reload
success
각 호스트에서 방화벽을 오픈합니다. - shar1, shard2 호스트
[root@inst-sdirector opc]# vi /etc/hosts
...
10.0.1.2 inst-sdirector.subnetsdirector.demovcn.oraclevcn.com inst-sdirector
10.0.2.2 inst-scatalog.subnetshard.demovcn.oraclevcn.com inst-scatalog
10.0.2.3 inst-shard1.subnetshard.demovcn.oraclevcn.com inst-shard1
10.0.2.4 inst-shard2.subnetshard.demovcn.oraclevcn.com inst-shard2
...
이후 작업 편의를 위해 미리 네개 호스트에 동일하게 아래 내용으로 host 파일 설정합니다.
[root@inst-sdirector opc]# vi /etc/hosts
...
10.0.1.2 inst-sdirector.subnetsdirector.demovcn.oraclevcn.com inst-sdirector
10.0.2.2 inst-scatalog.subnetshard.demovcn.oraclevcn.com inst-scatalog
10.0.2.3 inst-shard1.subnetshard.demovcn.oraclevcn.com inst-shard1
10.0.2.4 inst-shard2.subnetshard.demovcn.oraclevcn.com inst-shard2
...
<END>
다음 글로 이어집니다: