Remote DataBase Links - database

My team and I are developing a program for a bank and need to synchronize data with an existing system that is deployed on the internal network of the bank's clients. Any update made to the data in our system should be replicated to their system and vice-versa. The database used by our system is Oracle 11g and the existing system used Oracle 10g. We had initially considered using web services for this but the developers of the existing system don't want to build the web services. So we are left with the option of using database links to synchronize data.
What are the pros and cons of using database links to replicate data?
Since it's a banking application handling monetary transactions, how do we encrypt the data sent across the networks?

You wouldn't use database links to replicate data-- at least not alone. You would want to configure either Oracle Streams, Oracle GoldenGate, or Advanced Replication to handle your bidirectional replication. Streams would be the preferred choice since you're dealing with Oracle to Oracle replication since it's a newer and more efficient architecture than Advanced Replication. Both options are included with the enterprise edition license. GoldenGate is a product that Oracle purchased relatively recently that would be more appropriate if you were trying to replicate data from Oracle to non-Oracle databases and requires additional licensing.
If you want to encrypt the data in transit between the two databases, you would need to license the Oracle Advanced Security option on both databases. That is an extra cost option on top of the enterprise edition license. The alternative would be to configure a VPN or secure port forwarding between the servers.

Related

How can I establish a connection between my SQL Server 2017 database with a SaaS-based server?

I use a SQL Server 2017 database to perform ad-hoc data analytics activities to support my team. In order to source data from various databases, I either mount a backup on my environment (if the target DB holding the data I’m after is also SQL Server) or use linked servers to establish a direct connection (where I need data from Oracle or iSeries).
More recently though I’m coming across SaaS based systems and was wondering if there’s any way I can establish a direct connection between my database and the SaaS database? I’m not sure whether SSIS packages will do the trick. Any pointers would be gratefully appreciated as I’m struggling to get the right, scalable solution for this problem!
Data integration with SaaS solutions is a mixed bag. You have to discover on a case-by-case basis what integration or data export functionality each SaaS application has. Few will allow any kind of direct database access, but you might find an ETL tool that has pretty broad connectivity.
In Azure you can look at Logic Apps Connectors, and Power Query Connectors. Or products like Boomi. Which have connectors for many popular SaaS Applications.

How to add support for multiple users to edit the same sqlite database?

Given a multi-developer project using some sort of version control, and in which one part of the project would include using a desktop application in which the users would add real production data to a sqlite database file, which will then later be used as input/configuration data in an another application. How this file should be distributed between the developers? In version control? On a shared network drive?
You can also switch the sqlite to something else, the only requirement is that it should be embeddable in the desktop application.
Sounds like you have distributed uses with local desktop applications, and you want to have them enter and save data into a shared database.
The client desktop applications can simply connect to a database server using TCP. You can't use Sqlite for this, as it is a file-based database and not a database server. You could use PostgreSql though.
Other options:
local database server on each client computer that synchronizes with master databases or other client databases using replication. Generally speaking, these should all be the same "brand" of database.
local file database on each client computer (such as sqlite) that synchronizes with master database or other client databases using a tool like SymmetricDS or Daffodil which lets you sync different databases over HTTP.

How to connect a distributed database in a web application?

I plan to use a distributed database but my question is what if you can use the database schema distributed in a web application? , In specific with Java (Servlets, JSP).
Watch what happens I plan to do a small control system for a cinema with multiple branches, where the user may buy ticket to a function, the system I want to use a distributed database but do not know if my idea is possible?.
One option is to simply use a centralized database. Why is this not an option?
Another option is to use a database at each location, and have them synchronize to a central database (master-slave), or with each other (master-master). Look at replication for your database of choice, or db sync tools like SymmetricDS.

Oracle database mirroring

We have ERP application that store the data to ORACLE database. And also we have a lot of another application that use the ERP database. Same database but different instances. We got the performance issues when ERP and another application use the same database.
We are planning to separate the database server become three. One for ERP and two others for report and applications. these new database servers are came from ERP database, because they use the same database structure and data. So we could say these new database servers are mirror of ERP database. And also sometime data on the mirror database could be updated by other application, and it should be also updated on ERP database.
What best practice and method should be used for mirroring this condition?
Is it enough by use Data guard from ORACLE?
This is the picture of the architecture plan.
Data guard does not allow writing to the stand-by. Active dataguard does allow reading from the stand-by while archiving transactions from the primary node. So the report server using your ERP Mirror 1 is not a problem as long as it only reads data. Writing from the other applications to ERP Mirror 2 is. What you are looking for is advanced replication or Oracle streams. This is a very complex task. Maybe offloading your reporting to a data-guard stand-by solves your problems.

Export from a standalone database to an embedded database

I have a two-part application, where there is a central database that is edited, and then at certain times, the data is released and distributed as its own application. I would like to use a standalone database for the central database (MySQL, Postgres, Oracle, SQL Server, etc.) and then have a reliable export to an embedded database (probably SQLite) for distribution.
What tools/processes are available for such an export, or is it a practice to be avoided?
EDIT: A couple of additional pieces of information. The distributed application should be able to run without having to connect to another server (ex: your spellchecker still works even you don't have internet), and I don't want to install a full DB server for read-only access to the data.
If you really only want your clients to have read-access to the offline data it should not be that difficult to update your client-data manually.
A good practice would be to use the same product for the server database and the client database. You wouldn't have to write SQL-Statements twice since they use the same SOL-Dialect and same features.
Firebird for example offers a server
and an embedded version.
Also Microsoft offers their MS SQL Server
as a mobile version (compact edition) and there are
also Synchronization services
provided by Microsoft (good blog
describing sync services in visual
studio:
http://keithelder.net/blog/archive/2007/09/23/Sync-Services-for-SQL-Server-Compact-Edition-3.5-in-Visual.aspx)
MySQL has a product which is called "MySQLMobile" but I never actually used it.
I can also recommend SQLite as an embedded database since it is very easy to use.
Depending on your bandwidth and data amount you could even download the whole database and delete the old one. (in Firebird for example only copy the database files and it will also work with the mobile version) Very easy - BUT you have to know if it will work for your scenario. If you have more data you will need something more flexible and sophisticated, only updating the data that really changed.

Resources