Updated February 2021: I’ve updated this post to reflect the newest edition of this VirtualBox Appliance.
If you’re looking for an already configured Oracle Database 19c environment with a database already setup and all the software you need to learn database programming, design, and administration concepts, then look no further!
No need to create anything, just download, import, and run a fully functional Oracle Database, complete with sample data and hands on labs.
This Stuff is all FREE
The virtualization software is VirtualBox – that’s free. And it runs on any OS, including Windows, Macs, and *NIX. You’ll need to go download and install VirtualBox first. An aside, if you already have VMWare’s VM Player, that should also work, but that’s between you and VMWare.
Are you ready to get started? Awesome. Then start up VirtualBox. You’ll get the Oracle VM VirtualBox Manager on your screen, and then you’ll want to IMPORT an appliance.
The virtual machine has already been created, you just need to ‘suck it into’ VirtualBox via the Import feature.
Point to the .OVA file you’ve just downloaded –
Next you’ll be prompted to approve of the VM settings. There are two that I want you to take a look at before just saying ‘Yes’ to everything:
The image requires at least 1 GB of RAM to run. Remember, we’re running Oracle Database 19c, on a Linux image, plus you’ll be running a browser, and probably SQL Developer, or the Modeler, or APEX, or all of those. If you have it, bump the memory up to 4GB.
Also, the OS ‘disks’ are by default going to be sitting on your C: drive. Make sure that drive is ‘fast’, has contiguous blocks available (defrag first if necessary), and enough space. I’ve switched mine over to my D: partition.
Then click ‘Ok.’
Say ‘Yes’ to the License Agreement.
This will take a few minutes – or however fast you can write out those 2 huge files, ~= 12GB.
Start the VM!
Select the vm in the manager and hit the ‘Start’ button. You’ll know you’re good if you see this screen.
If you see this error…
“This kernel requires an x86-64 CPU, but only detected an i686 CPU.”
Your BIOS is going to need to be updated. You’ll want to enable the virtualization technology. There’s a good tutorial on how to do that here.
Now, back to the image…
Logon as oracle/oracle – this is the user that owns the install, the labs, and software.
Your desktop should come up, and will look a little something like this – without the annoying arrows and blocky words I added 🙂
Where to get started?
Well, you could click on the big Start button (yes, that is a picture/button/icon) and launch the Hands-on Labs, pick one and follow the instructions. Or, you could fire up SQL Developer and start mucking around.
In either case, you MIGHT want to create a snapshot for the VM first – this will give you a backup of your image you can go back to in case you ever screw it up beyond repair. This would be faster probably than re-downloading the OVA file, importing it, etc.
For SQL Developer, you can create a connection to the CDB or the PDB. Yes, this is a Multitenant installation.
The CDB instance is ‘orclcdb’ and the PDB instance is ‘orcl’. To connect to the database with all the sample data, you’ll want to go in as HR or SYS to the orcl ‘service.’ PDBs are accessible via the service, not the SID.
If you want to clone a PDB, then you’ll need to create a SYS-level connection to the CDB and access the DBA – Container Database node.
Connecting to the database from SQL Developer/SQLcl on your host machine
We’ve made it extremely easy. Unless you already have Oracle Database installed and listening to port 1521 on your computer, all of your database connections can simply talk to 127.0.0.1:1521 or localhost:1521.
That’s because on the VirtualBox Linux appliance, we’ve setup a local port forwarding rule – anything you say to port 1521 on YOUR machine, will go to port 1521 on the Linux VM. And port 1521 is where the database is ‘listening’ for database connections.
You can see these in your VBox appliance network settings –
Example: Connecting with SQLcl to the PDB from my Mac
I know all the passwords are ‘oracle,’ and I know there are 3 accounts I can play with:
- SYS – runs with scissors
- SYSTEM – plays with knives
- HR – still learning to walk
HR is pretty safe, so let’s have a go with that.
The magic connect string is using what we call the ‘EZConnect’ syntax. So
If you leave out the @password bit, you’ll be prompted for the password. If you scroll back up and look at the connection properties in SQL Developer I’ve show, they’re almost exactly the same.
If you don’t have SQL Developer or SQLcl or any other Oracle tools installed on your machine, you can start using them in the Linux VM directly. You’ll just need to be more familiar with Linux.
I suggest also the following:
- start learning Linux/using the command line
- give your VBox image as much memory as you can spare
- restart the appliance before you really start using it – it may run dog slow the first time you bring it up
As new versions of the database are released, we’ll update this image. The next update will be 21c, as soon as a Linux distribution is available on Oracle.com.
I almost forgot about the Labs!
Remember how I said you could click on that Red start button? Do that, and you’ll open a browser with an index of all the topics you can learn about by running through some examples.
If you can read, click, copy, and paste – you can follow along with these labs.
Again the more comfortable you are with Linux, the better.
Looking for more labs, without downloading anything? Then check out our online Workshops!
It appears the versions of the tools are a little behind. What’s the best way to upgrade ORDS, APEX and SQLDeveloper to the newest versions?
don’t bother running sqldev on the vbox, download that to your host machine
For ords and apex, just download and run the installers
Or run your own ords on your host machine, that’s what I do
How would I go about to point tablespace in Oracle’s pre-built Developer Day VM to another mount point ?
I posted a question about this here: https://dba.stackexchange.com/q/236988/110108
You need to add a dish to your vbox vm… And if you find an easy way to do this, please let me know.
I can’t use dbca after I installed this Virtualbox image. Would you please tell me how to fix this?
Why are you trying to use that when there’s already a database running there for you?
this is a lab and we are free to create another database but there is a weired error when want to use damn dbca , netca
we blow away the inventory stuff that dbca needs to make the VM smaller – sorry, you’re going to have to build one from scratch or pull down another image from OTN if you want to do that
includes: (for creating pdbs)
To create PDB (THE_NAME if not entered defaults to pdb name “ORDS” – if there is an “ORDS” pdb already it errors out).
[type y enter to confirm details]
creates pdb (including users tablespace)
creates HR schema, create tnsnames.ora entry,
Ensures pdb is open by default
Ensures passwords do not expire (change this to suit your security requirements)
tests 32k varchar is on (set in seed).
FYI ‘cost’ is about 1.5GB of disk per empty pdb – should fit about 6 before filling the virtual disk.
So basically spoken, you deliver a crippled installation of Oracle Database Software.
In which way can this be helpful, beside saving some MB disk space?
Exactly, and that’s why – to save some space.
This VM is delivered for educational purposes – directly targeting new folks who want to stand up a db as fast as possible. It’s not for learning how to do upgrades.
I downloaded and imported to VirtualBox the last Developer day virtual machine.
I’m not able to connect to the db via terminal or SQL developer
I always get the same message, ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
In the terminal I see [[email protected] ~]$ and I’m using
Sqlplus and then sys with password oracle. I tried with system or HR.
I’m not very experienced in Oracle and I thought this was working out of the box.
Any help would be great,
you’re telling me it’s not working, but you’re not telling or showing me EXACTLY what you’re trying
Basically I just run the virtual machine and opened SQL developer.
There is a user created, system, and I tried to connect with that one with the password Oracle, so then I got the error message ORA-12514, that I put in my previous reply.
I tried the same with the terminal and using sqlplus command and with different users, system, sys and hr, and I get the same message.
I didn´t try more things really. I checked listener.ora and tsnames.ora files but I didn´t see anything wrong but I´m not an expert.
So not sure what to try next.
Maybe something to with virtual machine settings? I just imported the appliance and didnt change the default settings. I´m using the last version of VirtualBox
I’m having a similar problem to what Art was/is having.
I have a brand new instance of the VM running – image file name is DeveloperDaysVM2016-06-02_13.ova
I then try your suggestion in terminal:
[[email protected] ~]$ sql hr/oracle
SQLcl: Release 184.108.40.206.153.2014 RC on Wed Oct 26 09:37:33 2016
Copyright (c) 1982, 2016, Oracle. All rights reserved.
USER = hr
URL = jdbc:oracle:oci8:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
Error Message = ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
USER = hr
URL = jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
Error Message = Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
Username? (RETRYING) (‘hr/*********’?)
I’m not familiar with configuring Oracle. What should I do next please?
sounds like the database isn’t started yet, it might take a minute or two once you start the image for the database to be open and available
if you go into the image itself and go to a command line, can you open sqlplus?
cmd> sqlplus sys as sysdba
[[email protected] ~]$ sqlplus sys as sysdba
SQL*Plus: Release 220.127.116.11.0 Production on Wed Oct 26 10:33:14 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
ORA-12514: TNS:listener does not currently know of service requested in connect
To be clear, this is all from the image.
All I have done is fired up the VM, and updated Guest Additions. Nothing else has been run except these and the commands I mentioned.
The name of the vm should be ‘Oracle DB Developer VM 2016-06-02_09_53_26’
That is the version I have. Sorry, it would have been clearer to have given the vm name rather than the filename.
I tried this last night on a Mac and it works fine.
The problem I am having happens when running on Windows. I’m running latest Version 5.1.8 r111374 (Qt5.5.1).
Is there any difference in the VM image between platforms, and could this account for the problem?
Ok. I think I’ve worked this out. I don’t have much available RAM on the Windows PC, which in turn means that the VM doesn’t have much RAM.
The Oracle database wasn’t starting up by itself. When I tried to start it manually, I got an error saying ‘MEMORY_TARGET not supported on this system’. On investigation, it was limited to around 770Mb. I doubled this to 1.5G and the database would then start. However, the VM is so slow now that it is currently unusable.
I’m running Windows 7 with 8Gb RAM and it leaves very little spare.
I’m guessing that my best option is make more RAM available, or is there something else that I could configure so that I get the ability to start the database and still get reasonable performance?
Give the VM 2 gigs…
If you are doing very little else on an 8GB i5 – use 3072MB Ram 2 CPU – the default is 2048MB RAM 1 CPU. You could reduce the SGA (Core ‘shared memory attach’ ram used by core server processes) so it could startup in less RAM (you might get total ram required down to 1500MB from the current 2048) SGA is set at around 800MB – you could try setting it to 500MB in the sp file before startup – though RAM is fairly cheap nowdays.
I have installed Virtualbox and Added appliance. But Unable to start the Oracle Apex Link.
what happens when you try to start it?
1/It is slow to start if RAM is not increased from 2048
2/It is slow to start the first time – I may call it once during the build in future so it is warmed up.
i.e. APEX in particular is slow to start the first time ever, it must have some setup code.
hi jeff, I was able to install the oracle 12c database developer day virtual image on my VMware player and it seemed to work. But somehow the armored penguin icon didn’t show up, and I only saw the text START in the red circle. And my host computer name is vbgeneric, not localhost. Do you have any suggestions on how to fix these issues? Thanks!
easiest fix, use VirtulBox instead of VMPlayer
question – did the database come up? is the software working? if so, maybe not a big deal…
yes – the database came up and the software is working fine. But I have no clue how to fix it without using the VirtualBox.
sorry i don’t know either
virtualbox is free, so why not grab and use it?
unless you want to run the hands on labs, there’s no need to even use the image, i just use it to host my database, apex, and ORDS
I am having the same problem ([email protected] instead of [email protected]), however, I AM running it on VirtualBox, just like it says in the guide (?!)
Another issue I have is that the ORACLE_SID and ORACLE_HOME are not ORACLE_HOME=/home/oracle/app/oracle/product/12.1.0/dbhome_1 and ORACLE_SID=cdb1
/u01/app/oracle/product/18.104.22.168/db_1 and orcl12c respectively.
I hope you can help me and hundreds of other students struggling with these issues at a MOOC course.
Thanks in advance!
The new VM indeed has a large red start icon. Double-click it to start your labs. Double-click SQLDev to open SQL Dev.
Create a connection to service ‘orcl’ to connect to the pluggable database.
You shouldn’t care what your $ORACLE_HOME is.
Hundreds of students are struggling? Where/What is MOOC? Can you put me in touch with your professor? Thanks.
Jeff, thank you so much for your quick reply. I am connected now!
A MOOC is a Massive Open Online Course, in this case, Coursera’s “Database Essentials” course by the University of Colorado System. Professor Michael Mannino is in charge, but i am afraid I don’t have a way to get in touch with him outside Coursera.
You know how to find me, not sure what the mix-up is between our VM and his course. If you see something ‘wrong’ with our VM setup/instructions, I can try to fix it at least.
I am also in that course and we have been given instructions to use Pentaho Data Integration to connect with an Oracle DB but many of us on Mac machines are really struggling to either run Pentaho DI and SQl developer simultaneously on this virtual box or connecting from our Mac machine to the Virtual Box so that we can use Pentaho DI outside of the Viertual Box. I keep getting errors when I try to modify the firewall too.
Thanks for responding to these since the professors at Coursera are not!
I’ve download the latest Oracle DeveloperDay and install it on mac.
I’m able to access the DB from host OS Sqldeveloper. But couldn’t able to access it via any application.
Also, I’m not able to get the ‘System’ (‘Application’ & ‘Places’ are coming) menu inside the VM OS.
I need more info to help you. Saying it doesn’t work doesn’t give me anything to work with.
Quick question. I am trying to connect to the HR as shown above using the connection name:HR, user name : HR and the password as “oracle”. I am using the Service name as PDB1. However when I test the connection out, I get the error message, “The network adapter could not establish the connection”. What am I doing wrong?
The second question I have is, is there a SQL Plus equivalent in the virtual box? If yes, how do I invoke it?
I would really appreciate your help.
The new VM, the service is orcl for the database…yes, sqlplus is on the image.
How can I connect using the SID?
The SID will always refer to the Container database. IF you want to get to your data, you’ll ALWAYS have to use the SERVICE.
I know this is an “as-is” download, but is there any way to get the sysdba password to make this a functional/usable download? sqlplus / as sysdba doesn’t work, and the connection from SQL Developer says it’s expired. At the linux level, it says that passwords are “oracle”, but apparently that doesn’t apply within the cdb1 instance, the sole instance auto-created with this appliance. Thanks for any feedback (especially with the sysdba password on this stand-alone appliance.)
sys password is ‘oracle’ – i’ve been using it since day 1
cdb1 is the container, you probably want to connect to ‘orcl’ – that’s the pluggable database
I had to use:
And I can connect from my Mac direct to the DB hosted on the VirtualBox VM, using the port forwarding suggestions.
Now to figure out creating a DB and tables (Im a front end developer, not a DBA, just need this for testing/dev purposes).
Thanks Jeff! That was it. The connection was set with the SID orcl and no service name.
I changed to service name PDB1, and was then able to create a user
I’m new to SQL and am attempting to learn using SQL Developer using the VM instance. I’m unable to create a user.
I use this..
CREATE USER testuser IDENTIFIED BY dummypassword;
GRANT CONNECT, RESOURCE TO testuser;
and get these errors…
Error starting at line : 2 in command –
CREATE USER testuser IDENTIFIED BY dummypassword
Error at Command Line : 2 Column : 13
Error report –
SQL Error: ORA-65096: invalid common user or role name
Error starting at line : 5 in command –
GRANT CONNECT, RESOURCE TO testuser
Error report –
SQL Error: ORA-01917: user or role ‘TESTUSER’ does not exist
01917. 00000 – “user or role ‘%s’ does not exist”
*Cause: There is not a user or role by that name.
*Action: Re-specify the name.
This is a bit complicated, but I think you’re connected to the Container database (CDB), not the Pluggable (PDB). For the connection that you are issuing those commands on, what is the SERVICE name – you’ll see that on the connection properties dialog.
SQL *Plus Release 22.214.171.124.0
Enter user-name : oracle
Enter password : oracle
invalid username / password; logon denied
Enter user-name : HR
Enter password : oracle
invalid username / password; logon denied
How to know default id and pw?
I am unable to connect to the container database. I tried “sqlplus / as sysdba” with no success. I am able to connect to the PDB1 though using “sqlplus sys/oracle as sysdba. Can you tell me how to go about this?
Here’s what the docs say about that. Let me know if you need help getting into the CDB with SQL Developer 🙂
right for the labs and most developers, they’d never connect to the container, so that’s why we setup two_task
Thanks. I’m a newbie in Oracle SQL and Linux system. This is very informative and after I followed your instructions, now I am good to go.
Is it possible to create a new database with this VM bundle? I cloned and edited a init.ora file, from the provided init.ora file under $ORACLE_HOME/dbs. I also create a orclpw file with the sys and oracle users. Then I exported the ORACLE_SID as my new sid but trying to connect with sqlplus fails: “sqlplus / as sysdba”. I eventually connected with “sqlplus /nolog” and tried to “start nomount” to issue the create database command, however sqlplus says that the instance is already mounted and I think it is the default ‘[email protected]’. Is there a way to create my own database? Thanks.
Sure, but this is 12c Multitenant – just clone the existing pdb to your new database and you’re good to go.
If you want to create your own db from scratch, then you’re on your own – but there’s no reason why you shouldn’t be able to. I’d probably also just use the dbca utility to create the new database for me.
Thanks. Sounds like I need to read up on this multitenant feature of 12c. I tried dbca also but it had a similar issue right at the end of database creation with a ORA-01034 Oracle not available error and dbca exited. I would really like to set up my own database from scratch the hard way, as I want to learn how to do it like all the DBAs do 🙂
Out of interest is there a VM package for 11g? – I did not see one on the site. Thanks again.
I have Win 7 64 bit.
I have downloaded Windows (32-bit/64-bit) using your ‘image’ link.
I can’t see any setting for 64 bit in the Virtual box, and keep getting the following error
“This kernel requires an x86-64 CPU, but only detected an i686 CPU. Unable to boot – please use a kernel appropriate for your CPU”
Any help would be greatly appreciated.
– I had to go enable ‘Virtulization Technolgy’ in the BIOS, now i can see 64 bit in the VM.
Could not have done it, with out your website pointing me in the right direction initially!
I’m only using it for APEX! This is what I wanted with the VM in the first place so I assumed once an Oracle VM, with Oracle 12c and Application Express was configured I could continue to do Oracle type stuff on it, including APEX dev/demo work and a minor patch to take it to the terminal release.
It does all work fine but the trigger won’t work and so I have to issue the grant restricted session to APEX_PUBLIC_USER. I’m aware it is unsupported and am v grateful someone has made it available. Maybe a 11g or 12c version with 4.2.5 will come along in the next few months…
Yes, the DB is available but 4.2.5 seems to have had an effect leaving it in restricted mode whenever it starts up.
ALTER PLUGGABLE DATABASE OPEN read write force
which will work but not in a trigger.
grant restricted session to apex_public_user also works but ideally, I’d like to get to the bottom of the problem rather than use workaround.
Thanks for the help!
Don’t touch the APEX install, that includes upgrades, as in, don’t do it. If you want to do it, then that’s fine. But then it’s your system to maintain.
This is a real pain!
There is a workaround
The folllowing should work but following the creation, looking at the trigger it appears empty:
CREATE OR REPLACE TRIGGER sys.open_pdbs
AFTER STARTUP ON DATABASE
EXECUTE IMMEDIATE ‘ALTER PLUGGABLE DATABASE OPEN read write force’;
So either do this *every time* the DB starts up:
ALTER PLUGGABLE DATABASE OPEN read write force;
Or issue this:
grant restricted session to apex_public_user;
I would like to know a more satisfactory approach if possible
What is a real pain? Your pluggables aren’t open after you start the container? Your trigger is the current recommended approach, but maybe AskTom has more ideas.
Well this is a case of not knowing much about 12c and pdb’s. My trigger was in the pluggable and not the ‘main’ DB. Moving it should have done the trick but that too, has not worked. It is an extra step after starting the VM but I’d love to be able to start the VM and have APEX without any fixing being applied!
the db is up and running after startup, and APEX is avail – or it is for me ‘out of the box’
seems the latest Apex patch killed the 12c…
after installation of the latest patch p17966818_425_Generic in OTN Developer Day VM.ova (12c) Apex no longer works.
Somehow the PDB1 has been set into restricted session mode and when I try to change this I get:
ORA-65144 alter system disable restricted session is not permitted
An attempt to install DATABASE PATCH SET UPDATE 126.96.36.199.2 failt with various error messages. Not even my DBA were able to make it work…
Any help would be fine.
I would restore the image to it’s original state.
Well, I did – 3 times…
I take this as: it is not possible…
1. to patch OTN Developer Day Database 12c VirtualBox Image
2. as a result from 1. it is not possible to update Apex 4.2.4 to 4.2.5 OTN Developer Day Database 12c VirtualBox Image
Am I right when I’m assuming this is expected behavior?
That’s a pitty.
The image is put out as is. It’s not tested or certified beyond that.
Does the new 12c Virtualbox image use Logical Volume Management? The 11g image did not – which made it just a tad trickier to add space to the image. It would be nice to have LVM to easily add space…
I don’t think so Philip, but @krisrice would be the one to ask…