We have excellent possibility to backup database from client machine with the help of Services API. But there are problems, when we try to restore database in the same way.
First: we can't close all the connections to the database from client machine if other client machines have active transactions. Of course we can shutdown database and other client machines can't open new transactions, but: a) if some clients opened long read transaction and do nothing, the transaction may be endless and b) we can't see from our client machine if all the connections closed anyway but receiving exception on trying moving or renaming original database file.
Second: We can't rename or move current database file (because we haven't access to the server file system from the client machine by the security reasons). We only can restore database from one of the backup files over current database. It's not safety.
Third: We can't see list of previous backup files to select one of them. Yes, we can make log on the client machine or shared folder and append one name per backup.
- It will be usable to add to the Services API function to close all connection because of SYSDBA request with sending notifying message to clients. It may be usable to add the same functionality to the GFIX utility (and corresponding command line parameter).
- if will be usable to add to the Services API something to make it possible to rename or move original database file. I see it may decrease privacy of the server file system.