I am building a web application that has an oracle cloud database as a primary database. And it is a payment application so every millisecond counts and transaction happens all the time. It is the most obvious question and I didn't find an answer. I don't have any backup data centers. I just have one instance and I don't have any backup instance running! it has some budget constraints
I might lose/miss transactions for those two scenarios.
Your help appreciated.
Without entering in the considerations or not having a backup, which you probably are well aware, nor in what software are you using for running the transactions, take in account that Oracle Database is fully ACID compliance
ACID (atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequence of database operations that satisfies the ACID properties (which can be perceived as a single logical operation on the data) is called a transaction. For example, a transfer of funds from one bank account to another, even involving multiple changes such as debiting one account and crediting another, is a single transaction.
Oracle uses what is called a system change number (SCN), which is a logical, internal time stamp used by the database. SCNs order events that occur within the database, which is necessary to satisfy the ACID properties of a transaction. Oracle Database uses SCNs to mark the SCN before which all changes are known to be on disk so that recovery avoids applying unnecessary redo. The database also uses SCNs to mark the point at which no redo exists for a set of data so that recovery can stop.
The Oracle Database uses the data store in the redo log files and in the undo tablespace to leave the database in a consistent state in case of failures.
What happens in case of major failure when a transaction is on the fly depends mostly on how the transaction is done. Please, read the article below in order to understand the different scenarios:
If the database goes up back again some minutes later, all your transactions that were executing meanwhile the database was down will fail. Normally here, for a payment system, you should consider using a Message Queue System ( normally done using a Transaction monitor ) in order to execute all pending transactions once the database is up again from the application side.
You should seriously consider to use any of the Oracle Cloud Backup policies for PaaS services. Keep in mind that you are protected against HW failures and other considerations in Cloud services, but backups are not only meant for hardware issues, but also for logical problems.