Skip to content

Commit 3f216e2

Browse files
Merge pull request #1979 from oracle-devrel/globally-distributed-database-readme-I
Recent changes for GDD
2 parents 1b0c203 + 73161ea commit 3f216e2

File tree

2 files changed

+199
-0
lines changed

2 files changed

+199
-0
lines changed
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
-- DDL for ROCK_USR schema (only "ROCK_" prefixed tables)
2+
--------------------------------------------------------
3+
4+
-- Table: ROCK_ARTISTS
5+
CREATE TABLE "ROCK_USR"."ROCK_ARTISTS"
6+
( "ARTIST_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
7+
"ARTIST_NAME" VARCHAR2(200) COLLATE "USING_NLS_COMP" NOT NULL ENABLE,
8+
"FORMED_YEAR" NUMBER(4,0),
9+
"ORIGIN_COUNTRY" VARCHAR2(100) COLLATE "USING_NLS_COMP",
10+
"GENRE" VARCHAR2(100) COLLATE "USING_NLS_COMP",
11+
"STATUS" VARCHAR2(50) COLLATE "USING_NLS_COMP",
12+
"BIOGRAPHY" CLOB COLLATE "USING_NLS_COMP",
13+
"WEBSITE_URL" VARCHAR2(300) COLLATE "USING_NLS_COMP",
14+
"CREATED_DATE" DATE DEFAULT SYSDATE,
15+
PRIMARY KEY ("ARTIST_ID")
16+
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
17+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
18+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
19+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
20+
TABLESPACE "DATA" ENABLE
21+
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
22+
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
23+
NOCOMPRESS LOGGING
24+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
25+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
26+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
27+
TABLESPACE "DATA"
28+
LOB ("BIOGRAPHY") STORE AS SECUREFILE (
29+
TABLESPACE "DATA" ENABLE STORAGE IN ROW 4000 CHUNK 8192
30+
NOCACHE LOGGING NOCOMPRESS KEEP_DUPLICATES
31+
STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
32+
PCTINCREASE 0
33+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
34+
35+
36+
-- Table: ROCK_ALBUMS
37+
CREATE TABLE "ROCK_USR"."ROCK_ALBUMS"
38+
( "ALBUM_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
39+
"ARTIST_ID" NUMBER NOT NULL ENABLE,
40+
"ALBUM_TITLE" VARCHAR2(200) COLLATE "USING_NLS_COMP" NOT NULL ENABLE,
41+
"RELEASE_YEAR" NUMBER(4,0),
42+
"GENRE" VARCHAR2(100) COLLATE "USING_NLS_COMP",
43+
"LABEL" VARCHAR2(100) COLLATE "USING_NLS_COMP",
44+
"CREATED_DATE" DATE DEFAULT SYSDATE,
45+
PRIMARY KEY ("ALBUM_ID")
46+
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
47+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
48+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
49+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
50+
TABLESPACE "DATA" ENABLE,
51+
CONSTRAINT "FK_ROCK_ALBUMS_ARTIST" FOREIGN KEY ("ARTIST_ID")
52+
REFERENCES "ROCK_USR"."ROCK_ARTISTS" ("ARTIST_ID") ENABLE
53+
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
54+
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
55+
NOCOMPRESS LOGGING
56+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
57+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
58+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
59+
TABLESPACE "DATA" ;
60+
61+
62+
-- Table: ROCK_SONGS
63+
CREATE TABLE "ROCK_USR"."ROCK_SONGS"
64+
( "SONG_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
65+
"ALBUM_ID" NUMBER NOT NULL ENABLE,
66+
"SONG_TITLE" VARCHAR2(200) COLLATE "USING_NLS_COMP" NOT NULL ENABLE,
67+
"DURATION" NUMBER(5,0),
68+
"TRACK_NUMBER" NUMBER,
69+
"CREATED_DATE" DATE DEFAULT SYSDATE,
70+
"IS_SINGLE" CHAR(1) COLLATE "USING_NLS_COMP",
71+
PRIMARY KEY ("SONG_ID")
72+
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
73+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
74+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
75+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
76+
TABLESPACE "DATA" ENABLE,
77+
CHECK (is_single IN ('Y','N')) ENABLE,
78+
CONSTRAINT "FK_ROCK_SONGS_ALBUM" FOREIGN KEY ("ALBUM_ID")
79+
REFERENCES "ROCK_USR"."ROCK_ALBUMS" ("ALBUM_ID") ENABLE
80+
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
81+
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
82+
NOCOMPRESS LOGGING
83+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
84+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
85+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
86+
TABLESPACE "DATA" ;
87+
88+
89+
-- Table: ROCK_CONCERTS
90+
CREATE TABLE "ROCK_USR"."ROCK_CONCERTS"
91+
( "CONCERT_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
92+
"ARTIST_ID" NUMBER NOT NULL ENABLE,
93+
"VENUE" VARCHAR2(200) COLLATE "USING_NLS_COMP",
94+
"CITY" VARCHAR2(100) COLLATE "USING_NLS_COMP",
95+
"COUNTRY" VARCHAR2(100) COLLATE "USING_NLS_COMP",
96+
"CONCERT_DATE" DATE,
97+
"TOUR_NAME" VARCHAR2(200) COLLATE "USING_NLS_COMP",
98+
"ATTENDANCE" NUMBER,
99+
"CONCERT_STATUS" VARCHAR2(50) COLLATE "USING_NLS_COMP",
100+
"NOTES" CLOB COLLATE "USING_NLS_COMP",
101+
"CREATED_DATE" DATE DEFAULT SYSDATE,
102+
PRIMARY KEY ("CONCERT_ID")
103+
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
104+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
105+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
106+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
107+
TABLESPACE "DATA" ENABLE,
108+
CONSTRAINT "FK_ROCK_CONCERTS_ARTIST" FOREIGN KEY ("ARTIST_ID")
109+
REFERENCES "ROCK_USR"."ROCK_ARTISTS" ("ARTIST_ID") ENABLE
110+
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
111+
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
112+
NOCOMPRESS LOGGING
113+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
114+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
115+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
116+
TABLESPACE "DATA"
117+
LOB ("NOTES") STORE AS SECUREFILE (
118+
TABLESPACE "DATA" ENABLE STORAGE IN ROW 4000 CHUNK 8192
119+
NOCACHE LOGGING NOCOMPRESS KEEP_DUPLICATES
120+
STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
121+
PCTINCREASE 0
122+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;
123+
124+
125+
-- Table: ROCK_SETLIST_SONGS
126+
CREATE TABLE "ROCK_USR"."ROCK_SETLIST_SONGS"
127+
( "SETLIST_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
128+
"CONCERT_ID" NUMBER NOT NULL ENABLE,
129+
"SONG_ID" NUMBER,
130+
"POSITION" NUMBER,
131+
"NOTES" VARCHAR2(500) COLLATE "USING_NLS_COMP",
132+
PRIMARY KEY ("SETLIST_ID")
133+
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
134+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
135+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
136+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
137+
TABLESPACE "DATA" ENABLE,
138+
CONSTRAINT "FK_ROCK_SETLIST_CONCERT" FOREIGN KEY ("CONCERT_ID")
139+
REFERENCES "ROCK_USR"."ROCK_CONCERTS" ("CONCERT_ID") ENABLE,
140+
CONSTRAINT "FK_ROCK_SETLIST_SONG" FOREIGN KEY ("SONG_ID")
141+
REFERENCES "ROCK_USR"."ROCK_SONGS" ("SONG_ID") ENABLE
142+
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
143+
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
144+
NOCOMPRESS LOGGING
145+
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
146+
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
147+
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
148+
TABLESPACE "DATA" ;
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Globally Distributed Database (GDD)
2+
3+
A distributed database is a database scaling technique based on horizontal partitioning of data across multiple independent physical databases. Each physical database in such a configuration is called a shard. From the perspective of an application, a distributed database looks like a single database; the number of shards, and the distribution of data across those shards, are completely transparent to the application.
4+
5+
A sharded table is partitioned across all shards of the distributed database. Table partitions on each shard are not different from partitions that could be used in an Oracle database that is not sharded.
6+
7+
Key benefits of Oracle Globally Distributed Database:
8+
9+
- Linear Scalability : The Oracle Globally Distributed Database shared–nothing architecture eliminates performance bottlenecks and provides unlimited scalability (up to 1000 shards scaling support);
10+
11+
- Extreme Availability and Fault Isolation: The failure or slow-down of one shard does not affect the performance or availability of other shards. An unplanned outage or planned maintenance of a shard impacts only the availability of the data on that shard;
12+
13+
- Geographical Distribution of Data: Globally Distributed Database enables you to deploy a global database, where a single logical db could be distributed over multiple geographies, making it possible to satisfy data privacy regulatory requirements (Data Sovreignity) as well as allows to store particular data close to its consumers (Data Proximity).
14+
15+
Globally Distributed Database has a flexible deployment model, embracing the Shared-Nothing architecture. Because the database shards do not share any resources, the shards can exist anywhere on a variety of on-premises and cloud systems.
16+
17+
You can choose to deploy all of the shards on-premises, have them all in the cloud, or you can split them up between cloud and on-premises systems to suit your needs.
18+
19+
Shards can be deployed on all database deployment models such as single instance, Exadata, and Oracle RAC.
20+
21+
Oracle Globally Distributed Database relies on replication for availability. Oracle Globally Distributed Database provides various means of replication depending on your needs:
22+
23+
- Oracle Data Guard.
24+
25+
- Raft Replication.
26+
27+
28+
Replication provides high availability, disaster recovery, and additional scalability for reads.
29+
A unit of replication can be a shard, a part of a shard, or a group of shards. You can choose either Oracle Data Guard or Raft replication to replicate your data.
30+
Oracle Globally Distributed Database automatically deploys the specified replication topology to the procured systems, and enables data replication. Replication is declaratively specified using GDSCTL command syntax.
31+
32+
Reviewed: 1.09.2025
33+
34+
35+
# Table of Contents
36+
37+
1. [Useful Links](#useful-links)
38+
39+
40+
# Useful Links
41+
42+
- [Globally Distributed Database in 23ai](https://docs.oracle.com/en/database/oracle/oracle-database/23/shard/changes-oracle-database-23ai.html#GUID-BDC14D70-C513-4EC3-B1A4-AA0616290800)
43+
44+
45+
# License
46+
47+
Copyright (c) 2025 Oracle and/or its affiliates.
48+
49+
Licensed under the Universal Permissive License (UPL), Version 1.0.
50+
51+
See [LICENSE](https://github.com/oracle-devrel/technology-engineering/blob/main/LICENSE) for more details.

0 commit comments

Comments
 (0)