If the data in the target database could change independently of the source, you'd be in trouble. Changes from source might be incompatible with other changes in the target - for example, a row with identical key could be created in both environments, and trying to reconcile that would be pretty difficult.
First of all, you really should invest some time into determining whether a ready-made solution isn't available, to avoid reinventing the wheel. I'd suggest starting with google:
oracle database mirror changes
oracle use logminer to mirror data
and so on.
Conceptually, moving the data is quite straightforward:
Initial setup:
1) Identify the set of tables that need to be managed.
2) Delete all data from these tables in target database.
3) In source database, create a copy of each table in the set, with the same structure, but empty.
4) Create a view that will show you the difference between the original table and its copy (see later).
Moving the data:
1) Create a snapshot of data to move using the differential views
2) Move the snapshot over to the target database and apply it on the tables (in one transaction)
3) If the application at the target database succeeded, apply it (in one transaction) to the copy of the managed tables in the source database.
You must do it in transactions as described above, otherwise the tables might get out of sync and you wouldn't have tools to remedy that. Also, if set up this way, all of the data will be moved around when you use the process for the first time. If the amount of data is too big for this, you might need to copy the data from source to target database using other means initially. Important thing is to get into the state where the contents of the target tables is the same as the contents of the copied tables in the source.
A view to find differences might be:
This will give a list of records which were deleted since the last time (marked as 'DELETE' in the
operation column) together with list of record which were inserted ('INSERT'). Updated record will produce one DELETE record and one INSERT record.
It's obviously important to apply all deletes first, then all inserts. If there is referential integrity between the tables, you need to start deleting from child tables, and start inserting from parent tables. If tables cannot be arranged in this way (from parents to children), you might need to disable referential integrity constraints while applying the updates. If there are referential integrity constraints leading out of your set of tables, you need to figure out what to do about it.
I'd say that this is a lot of work . Think twice whether you really couldn't find a tool that would do this for you.