user1017882
user1017882

Reputation:

Will this process affect database availability?

http://rockingtechnology.blogspot.co.uk/2011/06/oracle-backup-and-restore-code-in-cnet.html

As per the proposed code in the above article, more specifically:

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "C:/oracle/product/10.2.0/db_1/BIN/exp.exe";
Process process = Process.Start(psi);
process.WaitForExit();
process.Close();

How can I expect the database to be affected with regards to interruption of CRUD operations from elsewhere once calling Process.Start(psi) and, hence, executing exp.exe?

Using Oracle's exp.exe process - will the sessions of all users currently writing to the db in question be killed, for example? I'd imagine (or at least hope) not, but I haven't been able to find documentation to confirm this.

Upvotes: 1

Views: 166

Answers (3)

APC
APC

Reputation: 146309

EXP and IMP are not proper backup and recover tools. They are intended for exchanging data and data structures between Oracle databases. This is also true for their replacement, Data Pump (EXPDP and IMPDP).

Export unloads to a file so it won't affect any users on the system. However if you want a consistent set of data you need to use the CONSISTENT=Y parameter if there are any other users connecting to the system .

Interestingly Data Pump does not have a CONSISTENT parameter. It unloads tables (or table partitions) as single transactions but the only way to guarantee consistency across all database objects is to use the FLASHBACK_SCN parameter (or kick all your users off the system).


"It is all in aid of DR."

As a DR solution this will work, with the following provisos.

  1. The users will lose all data since the last export (obvious)
  2. You will need to ensure the export is consistent across all objects
  3. Imports take time. A lot of time if you have many tables or a lot of data. Plus indexes, etc

Also remember to export the statistics as well as the data.

Upvotes: 1

Vincent Malgrat
Vincent Malgrat

Reputation: 67762

EXP is the original export utility. It is discontinued and not supported in the most recent version (11g).

You can use EXPDP instead, although the export files are written on the server instead of the client machine.

Both utilities issue standard SELECT commands to the database, and since readers don't interfere with concurrency in Oracle (writer don't block readers, readers don't block readers), this will not block your other DB operations.

Since it issues statements however, it may increase the resource usage, especially IO, which could impact performance for concurrent activity.

Whatever tool you use, you should spend some time learning about the options (also since you may want to use it as a logical copy, make sure you test the respective import tools IMP and IMPDP). Also a word of warning: these tools are not backup tools. You should not rely on them for backup.

Upvotes: 1

Alkini
Alkini

Reputation: 1479

You're really asking what effects the (old) Oracle export tool (exp) has on the database. It's a logical backup so you can think of the effects generally the same way you would think of running multiple SELECT queries against your database. That is, other sessions don't get killed but normal locking mechanisms may prevent them from accessing data until exp is done with it and this could, potentially, lead to timeouts.

Upvotes: 1

Related Questions