Earlier this year, at end of January, the Oracle Graph Server and Client 20.1.0 has been released. This version represents a major change in packaging and delivery of the Oracle Property Graph product. For the first time Property Graph is available as a unique version with a standalone packaged version, avoiding the confusion which existed so far. With previous releases there were 3 different versions: one for database, one for big data and an OTN “Oracle Labs” version. Similar features for the 3, the OTN one being the newer one, but with the connectors for sourcing the graphs being the main difference.
New packaging of the Graph Server
In the past, focusing on the release for the database, if you looked at PGX, Parallel Graph Analytics – the in-memory “engine” powering Property Graph, you maybe struggled to find it: it was “hidden” somewhere right inside the Oracle Database Home, $ORACLE_HOME, of your database, into some subfolders. This has a huge impact on the life cycle of the product. If you wanted to configure or patch it, you had to ask your DBAs to do it as they “own” the $ORACLE_HOME.
Knowing that PGX doesn’t have direct dependencies with the database itself and could have been located anywhere else on the same server or even a different server, the old location was a blocking point for some users because of the limits in accessing the $ORACLE_HOME.
Starting with the release 20.1.0, Oracle Property Graph (PGX) is now fully independent and not located anymore inside the $ORACLE_HOME of your database. This allows you to deploy and patch independently than your database, and gain a much-needed freedom.
The new installer, a Linux RPM package only for now with other OS support to come, adopts standard locations in a Linux environment: /opt for the binaries and /etc for the configuration files. To be precise /opt/oracle/graph and /etc/oracle/graph.
There is still a downside with the current package: you can’t have multiple versions in parallel as the paths used are generic. To have multiple versions in parallel you will need to manually relocate the folders yourself after installation. For example, moving to /opt/oracle/graph/x.y.z and /etc/oracle/graph/x.y.z where “x.y.z” would represent the version. It’s safer to also “versionize” the configuration as new settings can be required with newer versions and they wouldn’t be understood by the old ones. But keep in mind that if you relocate the configuration or binaries folders, you have to update the references to them into the shell scripts used to start the server and client.
What privileges are needed to use Property Graph?
The new packaging being an RPM package, it requires root privileges to be installed. The files will be owned by root but this doesn’t mean you will need root privileges to use it.
The installer will create a new group if not already existing: oraclegraph
To be allowed to use Property Graph (the server or the client) or change the configuration without being root, you will need to add that group to your user. In this way you can easily allow users to access PGX without compromising the security of your server by giving too much power to users.
Linux only? What about Windows?
At the moment Oracle Graph Server is Linux only while the Oracle Graph Client is multi-platform. The client isn’t a thick client, it is really a thin client requiring to connect to a running PGX Server to be used. This make it mandatory, for now, to have a Linux environment where to execute the PGX Server.
While support for Windows will be coming in the future (the Oracle Database is fully certified for Windows and therefore I don’t see how they avoid it), there is a workaround if you want to already test Oracle Graph on your Windows environment.
The Oracle Graph Server package contains a thick client, which can run in standalone mode without requiring a PGX Server (it will use an embedded PGX instance). You can extract the RPM file in your Windows and easily have access to the thick client via a JShell command line interface.
Not supported means not supported!
Until Oracle doesn’t release an official Graph Server 20c for Windows you better stick to Linux for using it. Start a VM or a cloud Compute Instance, all it needs is Oracle Java JDK and the RPM file you get from Oracle.
The Windows release is coming: PGX was an official Database add-on, and because the database is officially released for Windows they had to release PGX for Windows as well. PGX is written in Java, which make compatibility extremely simple. As a proof, if you downloaded patch 29844396 containing PGX 3.2.1, you had an official Windows batch to start the client and server.
Beware: this is not supported! That’s why it’s called a workaround, waiting for the official release of Oracle Graph Server for Windows. All you need is 7-zip (free https://www.7-zip.org/, other file archivers could also work), the Oracle Graph Server RPM you downloaded and Java JDK 9 or newer (11 or 13 is more likely to be the one you have right now).
1) Using 7-Zip extract the RPM file. The result is a new file called “oracle-graph-20.1.0.x86_64.cpio”.
2) Extract the file “oracle-graph-20.1.0.x86_64.cpio” using 7-Zip again. As I often have multiple versions in parallel for development purposes, I will extract it into a folder.
All the files are now available and you now have to add a batch to start the thick client. Into the folder opt\oracle\graph\bin add a file, which you can name opg-rdmbs-jshell.bat with the content you find below.
When you execute the newly created file you have the JShell PGX cli available in Windows.
An Oracle Graph 20.1.0 thick client is now running on Window. Remember, this isn’t a supported or official solution. It is only a workaround to be able to test and experiment a bit with Oracle Graph directly on Windows without the requirement of a Linux environment to execute the PGX server or fat client.
If you can I highly suggest you use a simple Linux environment which allows to get support in case something doesn’t work.