Skip to content

Commit 6feb1a7

Browse files
authoredMar 27, 2021
Introduce new images (#10)
* Build full image Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Introduce password reset (ER #2) Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Introduce healthcheck (ER #1) Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Shutdown listener before database Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Fix healthcheck typo Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Update description header Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Use build args for Dockerfile Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Update Description Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Add password profile, restructure db file sizes Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Transition to OL8 slim Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Introducing a image build script Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Full completed, normal and slim TBD Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Update ReadMe Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Add test scripts Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Add .gitignore Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Print DATABASE IS READY TO USE only after healthcheck succeeded (ER #6) Signed-off-by: gvenzl <gerald.venzl@gmail.com> * 18c Dockerfile Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Full install DB configured Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Add checksum verification for 18c Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Add parameter to ignore checksum Signed-off-by: gvenzl <gerald.venzl@gmail.com> * 18c full install Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Remove recovery_dest Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Remove install log files Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Remove installation phase only dependencies Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Update ORACLE_HOME in .bash_profile Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Resize redo logs Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Include network files Signed-off-by: gvenzl <gerald.venzl@gmail.com> * ER #8: Set password only at initialization Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Use entrypoint rather cmd Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Add build duration to build script Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Compress data files in image Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Implemented ORACLE_RANDOM_PASSWORD ER #9 Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Update .gitignore Signed-off-by: gvenzl <gerald.venzl@gmail.com> * rename entrypoint script Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Implement ER #4 - _FILE variable support Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Make zip and gzip a runtime requirement Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Make sure PWD is treated as a string Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Add support for custom scripts ER #3 Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Update ReadMe (WIP) Signed-off-by: gvenzl <gerald.venzl@gmail.com> * reformat indent Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Reorg Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Build and container tests for 11g and 18c Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Update UNDO size Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Update ReadMe Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Introduce tags Signed-off-by: gvenzl <gerald.venzl@gmail.com> * Add slim builds for 11g Signed-off-by: gvenzl <gerald.venzl@gmail.com>
1 parent 03743ae commit 6feb1a7

17 files changed

+1370
-230
lines changed
 

‎.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
*.rpm
22
*.zip
3-
rpm/
3+
assets/

‎Dockerfile.11202

+20-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,24 @@
33
# Author: gvenzl
44
# Name: Dockerfile.11202
55
# Description: Dockerfile to build Oracle DB XE 11.2.0.2.
6+
# The Dockerfile supports building different flavors of images.
7+
# These flavors can be controlled via the build argument "BUILD_MODE" which
8+
# supports three modes, as follows:
9+
#
10+
# FULL: No database functionality is removed, just log and trace files from the
11+
# database installation itself.
12+
# Additional required packages, such as 'gcc' and 'make' are installed
13+
# (needed for native PL/SQL execution, etc.)
14+
# Database configuration is as per default installation, except for the
15+
# location of the fast_recovery_area and redo logs.
16+
#
17+
# NORMAL: Following functionalities have been removed:
18+
# * gcc & make (needed for native PL/SQL execution, etc.)
19+
# * APEX
20+
#
21+
# SLIM: Following functionalities have been removed:
22+
# * Everything that has been removed in the NORMAL image, plus:
23+
# * Oracle Text
624
#
725
# Copyright 2021 Gerald Venzl
826
#
@@ -27,7 +45,7 @@ ENV ORACLE_BASE=/u01/app/oracle \
2745
ORACLE_SID=XE \
2846
PATH=${PATH}:/u01/app/oracle/product/11.2.0/xe/bin:/u01/app/oracle
2947

30-
COPY oracle-xe-11.2.0-1.0.x86_64.rpm xe.11202.rsp install.11202.sh runDB.sh resetPassword healthcheck.sh /install/
48+
COPY oracle-xe-11.2.0-1.0.x86_64.rpm xe.11202.rsp install.11202.sh container-entrypoint.sh resetPassword healthcheck.sh /install/
3149

3250
RUN /install/install.11202.sh "${BUILD_MODE}"
3351

@@ -36,4 +54,4 @@ WORKDIR ${ORACLE_BASE}
3654

3755
HEALTHCHECK CMD "${ORACLE_BASE}"/healthcheck.sh >/dev/null || exit 1
3856

39-
CMD exec ${ORACLE_BASE}/runDB.sh
57+
ENTRYPOINT ["container-entrypoint.sh"]

‎Dockerfile.1840

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#
2+
# Since: January, 2021
3+
# Author: gvenzl
4+
# Name: Dockerfile.1840
5+
# Description: Dockerfile to build Oracle DB XE 18.4.0
6+
#
7+
# Copyright 2021 Gerald Venzl
8+
#
9+
# Licensed under the Apache License, Version 2.0 (the "License");
10+
# you may not use this file except in compliance with the License.
11+
# You may obtain a copy of the License at
12+
#
13+
# http://www.apache.org/licenses/LICENSE-2.0
14+
#
15+
# Unless required by applicable law or agreed to in writing, software
16+
# distributed under the License is distributed on an "AS IS" BASIS,
17+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18+
# See the License for the specific language governing permissions and
19+
# limitations under the License.
20+
21+
FROM oraclelinux:8-slim
22+
23+
ARG BUILD_MODE
24+
25+
ENV ORACLE_BASE=/opt/oracle \
26+
ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE \
27+
ORACLE_SID=XE \
28+
PATH=${PATH}:/opt/oracle/product/18c/dbhomeXE/bin:/opt/oracle
29+
30+
COPY oracle-database-xe-18c-1.0-1.x86_64.rpm install.1840.sh container-entrypoint.sh resetPassword healthcheck.sh /install/
31+
32+
RUN /install/install.1840.sh "${BUILD_MODE}"
33+
34+
USER oracle
35+
WORKDIR ${ORACLE_BASE}
36+
37+
HEALTHCHECK CMD "${ORACLE_BASE}"/healthcheck.sh >/dev/null || exit 1
38+
39+
ENTRYPOINT ["container-entrypoint.sh"]

‎README.md

+228-34
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,261 @@
11
# oci-oracle-xe
22
Oracle Database Express Edition Container / Docker images.
33

4-
The images are compatible with `podman` and `docker`.
5-
You can use `podman` or `docker` interchangeably.
4+
**The images are compatible with `podman` and `docker`. You can use `podman` or `docker` interchangeably.**
65

7-
## Image flavors
6+
# Supported tags and respective `Dockerfile` links
87

9-
| Flavor | Description | Use cases |
10-
| ------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
11-
| 11.2.0.2-slim | An image focussed on smallest possible image size sacrificing on additional functionality. | Best for where small images sizes are important but advanced functionality of Oracle Database is not needed. |
12-
| 11.2.0.2 | A well-balanced image between image size and functionality. Recommended for most use cases. | Recommended for most use cases. |
13-
| 11.2.0.2-full | An image containing all functionality as provided by the Oracle Database installation. | Best for extensions or customizations. |
8+
* [`18.4.0`, `18`, `latest`](https://github.com/gvenzl/oci-oracle-xe/blob/main/Dockerfile.1840)
9+
* [`18.4.0-full`, `18-full`, `full`](https://github.com/gvenzl/oci-oracle-xe/blob/main/Dockerfile.1840)
10+
* [`11.2.0.2`, `11`](https://github.com/gvenzl/oci-oracle-xe/blob/main/Dockerfile.11202)
11+
* [`11.2.0.2-slim`, `11-slim`](https://github.com/gvenzl/oci-oracle-xe/blob/main/Dockerfile.11202)
12+
* [`11.2.0.2-full`, `11-full`](https://github.com/gvenzl/oci-oracle-xe/blob/main/Dockerfile.11202)
1413

15-
For more information, see [Image flavor details](#image-flavor-details).
14+
# Quick Start
1615

17-
## Quick start
16+
Run a new database container:
1817

19-
### Reset passwords
18+
```shell
19+
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=<your password> gvenzl/oracle-xe
2020
```
21-
docker exec <image name|id> resetPassword <your password>
21+
22+
Run a new persistent database container:
23+
24+
```shell
25+
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=<your password> -v oracle-volume:/opt/oracle/oradata gvenzl/oracle-xe
26+
```
27+
28+
Run a new database container with OEM Express expose:
29+
30+
```shell
31+
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=<your password> -p 5500:5500 gvenzl/oracle-xe
32+
```
33+
34+
Reset database `SYS` and `SYSTEM` passwords:
35+
36+
```shell
37+
docker exec <container name|id> resetPassword <your password>
38+
```
39+
40+
# How to use this image
41+
42+
## Subtle differences between versions
43+
44+
The 11gR2 (11.2.0.2) Oracle Database version stores the database data files under `/u01/app/oracle/oradata/XE`.
45+
**A volume for 11gR2 has to be pointed at `/u01/app/oradata`!**
46+
47+
## Environment variables
48+
49+
### `ORACLE_PASSWORD`
50+
This variable is mandatory for the first container startup and specifies the password for the Oracle Database `SYS` and `SYSTEM` users.
51+
52+
### `ORACLE_RANDOM_PASSWORD`
53+
This is an optional variable. Set this variable to a non-empty value, like `yes`, to generate a random initial password for the `SYS` and `SYSTEM` users. The generated password will be printed to stdout (`ORACLE PASSWORD FOR SYS AND SYSTEM: ...`).
54+
55+
## Container secrets
56+
57+
As an alternative to passing sensitive information via environment variables, `_FILE` may be appended to some of the previously listed environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Container/Docker secrets stored in `/run/secrets/<secret_name>` files. For example:
58+
59+
```shell
60+
docker run --name some-oracle -e ORACLE_PASSWORD_FILE=/run/secrets/oracle-passwd -d gvenzl/oracle-xe
2261
```
2362

24-
## Image flavor details
63+
Currently, this is only supported for `ORACLE_PASSWORD`.
64+
65+
## Initialization scripts
66+
If you would like to perform additional initialization of the database running in a container, you can add one or more `*.sql`, `*.sql.gz`, `*.sql.zip` or `*.sh` files under `/container-entrypoint-initdb.d` (creating the directory if necessary). After the database setup is completed, these files will be executed automatically in alphabetical order.
67+
68+
The `*.sql`, `*.sql.gz` and `*.sql.zip` files will be executed in Sql*Plus as the `SYS` user connected to the Oracle instance (`XE`). Compressed files will be uncompressed on the fly, allowing for e.g. bigger data loading scripts to save space.
69+
70+
Executable `*.sh` files will be run in a new shell process while non-executable `*.sh` files (files that do not have the Linux e`x`ecutable permission set) will be sourced into the current shell process. The main difference between these methods is that sourced shell scripts can influence the environment of the current process and should generally be avoided. However, sourcing scripts allows for execution of these scripts even if the executable flag is not set for the files containing them. This basically avoids the "why did my script not get executed" confusion.
71+
72+
***Note:*** scripts in `/container-entrypoint-initdb.d` are only run the first time the database is initialized; any pre-existing database will be left untouched on container startup.
73+
74+
***Note:*** you can also put files under the `/docker-entrypoint-initdb.d` directory. This is kept for backwards compatibility with other widely used container images but should generally be avoided. Do not put files under `/container-entrypoint-initdb.d` **and** `/docker-entrypoint-initdb.d` as this would cause the same files to be executed twice!
75+
76+
***Warning:*** if a command within the sourced `/container-entrypoint-initdb.d` scripts fails, it will cause the main entrypoint script to exit and stop the container. It also may leave the database in an incomplete initialized state. Make sure that shell scripts handle error situations gracefully and ideally do not source them!
77+
78+
***Warning:*** do not exit executable `/container-entrypoint-initdb.d` scripts with a non-zero value (using e.g. `exit 1;`) unless it is desired for a container to be stopped! A non-zero return value will tell the main entrypoint script that something has gone wrong and that the container should be stopped.
79+
80+
### Example
81+
82+
The following example installs the [countries, cities and currencies sample data set](https://github.com/gvenzl/sample-data/tree/master/countries-cities-currencies) under a new user `TEST` into the database:
83+
84+
```shell
85+
[gvenzl@localhost init_scripts]$ pwd
86+
/home/gvenzl/init_scripts
87+
88+
[gvenzl@localhost init_scripts]$ ls -al
89+
total 12
90+
drwxrwxr-x 2 gvenzl gvenzl 61 Mar 7 11:51 .
91+
drwx------. 19 gvenzl gvenzl 4096 Mar 7 11:51 ..
92+
-rw-rw-r-- 1 gvenzl gvenzl 134 Mar 7 11:50 1_create_user.sql
93+
-rwxrwxr-x 1 gvenzl gvenzl 164 Mar 7 11:51 2_create_data_model.sh
94+
95+
[gvenzl@localhost init_scripts]$ cat 1_create_user.sql
96+
ALTER SESSION SET CONTAINER=XEPDB1;
97+
98+
CREATE USER TEST IDENTIFIED BY test QUOTA UNLIMITED ON USERS;
99+
100+
GRANT CONNECT, RESOURCE TO TEST;
101+
102+
[gvenzl@localhost init_scripts]$ cat 2_create_data_model.sh
103+
curl -LJO https://raw.githubusercontent.com/gvenzl/sample-data/master/countries-cities-currencies/install.sql
104+
105+
sqlplus -s test/test@//localhost/XEPDB1 @install.sql
106+
107+
rm install.sql
108+
109+
```
110+
111+
As the execution happens in alphabetical order, numbering the files will guarantee the execution order. A new container started up with `/home/gvenzl/init_scripts` pointing to `/container-entrypoint-initdb.d` will then execute the files above:
112+
113+
```shell
114+
podman run --name test \
115+
> -p 1521:1521 \
116+
> -e ORACLE_RANDOM_PASSWORD="y" \
117+
> -v /home/gvenzl/init_scripts:/container-entrypoint-initdb.d \
118+
> gvenzl/oracle-xe:18.4.0-full
119+
CONTAINER: starting up...
120+
CONTAINER: first database startup, initializing...
121+
...
122+
CONTAINER: Executing user defined scripts...
123+
CONTAINER: running /container-entrypoint-initdb.d/1_create_user.sql ...
25124

26-
There are three flavors of the image:
27-
* FULL (`-full` tag appended)
28-
* NORMAL (no tag appended)
29-
* SLIM (`-slim` tag appended)
125+
Session altered.
30126

31-
### Full image flavor
127+
128+
User created.
129+
130+
131+
Grant succeeded.
132+
133+
CONTAINER: DONE: running /container-entrypoint-initdb.d/1_create_user.sql
134+
135+
CONTAINER: running /container-entrypoint-initdb.d/2_create_data_model.sh ...
136+
% Total % Received % Xferd Average Speed Time Time Time Current
137+
Dload Upload Total Spent Left Speed
138+
100 115k 100 115k 0 0 460k 0 --:--:-- --:--:-- --:--:-- 460k
139+
140+
Table created.
141+
...
142+
Table provided actual
143+
-------------------- ---------- ----------
144+
regions 7 7
145+
countries 196 196
146+
cities 204 204
147+
currencies 146 146
148+
currencies_countries 203 203
149+
150+
151+
Thank you!
152+
--------------------------------------------------------------------------------
153+
The installation is finished, please check the verification output above!
154+
If the 'provided' and 'actual' row counts match, the installation was successful
155+
.
156+
157+
If the row counts do not match, please check the above output for error messages
158+
.
159+
160+
161+
CONTAINER: DONE: running /container-entrypoint-initdb.d/2_create_data_model.sh
162+
163+
CONTAINER: DONE: Executing user defined scripts.
164+
165+
166+
#########################
167+
DATABASE IS READY TO USE!
168+
#########################
169+
...
170+
```
171+
172+
As a result, one can then connect to the new schema directly:
173+
174+
```shell
175+
[gvenzl@localhost init_scripts]$ sql test/test@//localhost/XEPDB1
176+
177+
SQLcl: Release 20.3 Production on Sun Mar 07 12:05:06 2021
178+
179+
Copyright (c) 1982, 2021, Oracle. All rights reserved.
180+
181+
Connected to:
182+
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
183+
Version 18.4.0.0.0
184+
185+
186+
SQL> select * from countries where name = 'Austria';
187+
188+
COUNTRY_ID COUNTRY_CODE NAME OFFICIAL_NAME POPULATION AREA_SQ_KM LATITUDE LONGITUDE TIMEZONE REGION_ID
189+
---------- ------------ ------- ------------------- ---------- ---------- -------- --------- ------------- ---------
190+
AUT AT Austria Republic of Austria 8793000 83871 47.33333 13.33333 Europe/Vienna EU
191+
192+
SQL>
193+
```
194+
195+
## Startup scripts
196+
197+
If you would like to perform additional action after the database running in a container has been started, you can add one or more `*.sql`, `*.sql.gz`, `*.sql.zip` or `*.sh` files under `/container-entrypoint-startdb.d` (creating the directory if necessary). After the database is up and ready for requests, these files will be executed automatically in alphabetical order.
198+
199+
The execution order and implications are the same as with the [Initialization scripts](#initialization-scripts) described above.
200+
201+
***Note:*** you can also put files under the `/docker-entrypoint-startdb.d` directory. This is kept for backwards compatibility with other widely used container images but should generally be avoided. Do not put files under `/container-entrypoint-startdb.d` **and** `/docker-entrypoint-startdb.d` as this would cause the same files to be executed twice!
202+
203+
***Note:*** if the database inside the container is initialized (started for the first time), startup scripts are executed after the setup scripts.
204+
205+
***Warning:*** files placed in `/container-entrypoint-startdb.d` are always executed after the database in a container is started, including pre-created databases. Use this mechanism only if you wish to perform a certain task always after the database has been (re)started by the container.
206+
207+
# Image flavors
208+
209+
| Flavor | Extension | Description | Use cases |
210+
| -------| --------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------|
211+
| Slim | `-slim` | An image focussed on smallest possible image size instead of additional functionality. | Wherever small images sizes are important but advanced functionality of Oracle Database is not needed. |
212+
| Normal | [None] | A well-balanced image between image size and functionality. Recommended for most use cases. | Recommended for most use cases. |
213+
| Full | `-full` | An image containing all functionality as provided by the Oracle Database installation. | Best for extensions and/or customizations. |
214+
215+
## Full image flavor
32216
33217
The full image provides an Oracle Database XE installation "as is", meaning as provided by the RPM install file.
34218
A couple of modifications have been performed to make the installation more suitable for running inside a container:
35219
36-
* The `REDO` logs have been relocated into `$ORACLE_BASE/oradata/$ORACLE_SID/`
37-
* The fast recovery area has been relocated into `$ORACLE_BASE/oradata/$ORACLE_SID/`
38220
* `DBMS_XDB.SETLISTENERLOCALACCESS()` has been set to `FALSE`
39221
* An `OPS$ORACLE` externally identified user has been created and granted `CONNECT` and `SELECT_CATALOG_ROLE` (this is used for health check and other operations)
40222
41-
### Normal image flavor
223+
### 18c specific
224+
225+
* `LOCAL_LISTENER` is set to `NULL` (18c)
226+
* `COMMON_USER_PREFIX` is set to `NULL` (18c)
227+
228+
### 11g R2 specific
229+
230+
* The `REDO` logs have been located into `$ORACLE_BASE/oradata/$ORACLE_SID/` (11gR2 image)
231+
* The fast recovery area has been removed (11gR2 images)
232+
233+
## Normal image flavor
42234
43235
The normal image has all customizations that the full image has.
44236
Additionally, it also includes the following changes:
45237
46-
#### Database components
47-
* Oracle APEX has been removed (you can download and install the latest and greatest from [apex.oracle.com](https://apex.oracle.com))
238+
### Database components
239+
* Oracle APEX has been removed (you can download and install the latest and greatest from [apex.oracle.com](https://apex.oracle.com), 11gR2 image)
48240
* The `HR` schema and folder have been removed
49-
* The jdbc drivers have been removed
50241
51-
#### Operating system
242+
### Operating system
52243
53-
* The following Linux packages are not installed: `binutils`, `gcc`, `glibc`, `make`
244+
* The following Linux packages are not installed: `binutils`, `gcc`, `glibc`, `make` (11g R2)
245+
* The jdbc drivers have been removed (`$ORACLE_HOME/jdbc`, `$ORACLE_HOME/jlib`)
54246
55-
#### Data files
247+
### Data files
56248
57-
| Tablespace | Size | Autoextend | Max size |
58-
| ---------- | -----: | ---------: | ----------- |
59-
| `REDO` | 20 MB | `N/A` | `N/A` |
60-
| `TEMP` | 2 MB | 10 MB | `UNLIMITED` |
61-
| `UNDO` | 10 MB | 10 MB | `UNLIMITED` |
62-
| `USERS` | 10 MB | 10 MB | `UNLIMITED` |
249+
| Tablespace | 18c Size | 11g Size | Autoextend | Max size |
250+
| ---------- | --------:| -------: | ---------: | ----------- |
251+
| `REDO` | 20 MB | 20 MB | `N/A` | `N/A` |
252+
| `SYSAUX` | 480 MB (CDB) <br> 342 MB (PDB) | 610 MB | 10 MB | `UNLIMITED` |
253+
| `SYSTEM` | 353 MB (CDB) <br> 255 MB (PDB) | 353 MB | 10 MB | `UNLIMITED` |
254+
| `TEMP` | 2 MB (CDB) <br> 2 MB (PDB) | 2 MB | 10 MB | `UNLIMITED` |
255+
| `UNDO` | 70 MB (CDB) <br> 40 MB (PDB) | 10 MB | 10 MB | `UNLIMITED` |
256+
| `USERS` | 10 MB | 10 MB | 10 MB | `UNLIMITED` |
63257
64-
#### Others
258+
### Others
65259
66260
* The `DEFAULT` profile has the following set:
67261
* `FAILED_LOGIN_ATTEMPTS=UNLIMITED`

0 commit comments

Comments
 (0)