Can I have multiple databases on oracle express edition? Please let me know what are steps to setup?
-
1why do you want to have multiple databases on one server? – APC Aug 04 '12 at 00:42
2 Answers
No. You can only have one XE database per server. You can have as many schemas in that database as you'd like. If you are coming from a background in other databases, what most databases refer to as a database is most equivalent to what Oracle refers to as a schema.

- 227,342
- 24
- 367
- 384
-
1Yeah, got it!! How about like can I have two instances of oracle XE running on same pc? please guide in steps to achieve. – Naga Aug 03 '12 at 21:08
-
2@NagavthSQL - No. Two instances on the same machine would either require two databases, which is not possible, or a single database that was a RAC cluster on a single machine which neither makes sense nor is possible with the express edition. – Justin Cave Aug 03 '12 at 21:15
-
2according to this post is is possible to install several VM's onto your machine with an instance of XE running in each: http://programmers.stackexchange.com/questions/154370/development-environment-to-manage-multiple-oracle-databases – solidau Apr 22 '13 at 23:03
-
1I am just learning oracle, and If I understand it right we can have only one instance of oracle xe on one server and this is the main constraint of xe (as one instance can work only with one database). Am I right? Please, explain. – Pavel_K Feb 23 '20 at 16:55
-
Docker is great for this problem. Create as many containers with Oracle XE running in them as you like. Each with their own connection string. – Norbert Norbertson Dec 05 '22 at 15:08
We were using separate virtual machine instances with Windows XP installed to create multiple oracle xe databases. However virtual machines consume too much memory for that simple task.
Now I'm using docker. Below you can find the docker image I'm currently using:
https://github.com/MaksymBilenko/docker-oracle-xe-11g
After you install docker to your computer, you can use the following commands to create the database:
# Create a folder for data in your home folder or somewhere else
mkdir /home/sedran/mydb1
# Download the docker image
docker pull sath89/oracle-xe-11g
# Create and start a new container with oracle-xe running on it
docker run --name oracle11g_mydb1 -d -p 1522:1521 -p 49163:8080 -v /home/sedran/mydb1:/u01/app/oracle sath89/oracle-xe-11g
Then you can connect to this DB from localhost:1522/XE
To create a second database, execute the following commands:
mkdir /home/sedran/mydb2
docker run --name oracle11g_mydb2 -d -p 1523:1521 -p 49164:8080 -v /home/sedran/mydb2:/u01/app/oracle sath89/oracle-xe-11g
The new DB will listen to port 1523 on localhost.
Do not forget to assign different ports, names and data folders (volumes) to every container.

- 3,498
- 3
- 23
- 39