We are running Oracle 12c and a custom application written in Java/JDBC (Java 8). Our production system is running a 5TB database and runs into deadlocks. However we have been unable to reproduce this in our test environment which is considerably smaller. Unfortunately we don't have a test system that can handle 5TB. We don't know why database size should matter when it comes to database deadlocks. Any suggestions?
I would recommend you to use Thread profiler to identify the real root cause of your production environment. Most of the time, it might be due to heavy traffic. If you really wants to make a copy of your production db(at least a part of it as a QA db) use slony to replicate data from the production to some other database.