http://www.perlmonks.org?node_id=1018293


in reply to Re^2: File::Copy - locked files
in thread File::Copy - locked files

Recent Windows versions have a special service (Volume Shadow Service? Use Google!) for this problems, it allows you to take some kind of snapshot of the filesystem. All modifications after the snapshot do not affect your program, so you can safely copy files from a mounted filesystem. Of course, this service can't guarantee that all open files are in a consistent state.

Regarding your locked Access database: Shut down the service, then backup or make at least a copy of the database file, then restart the service and exclude the original, locked file.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)

Replies are listed 'Best First'.
Re^4: File::Copy - locked files
by Anonymous Monk on Feb 12, 2013 at 09:46 UTC

    Regarding your locked Access database: Shut down the service, then backup or make at least a copy of the database file, then restart the service and exclude the original, locked file.

    Seems crude :) i'll bet there is a way without shutting down the service

      i'll bet there is a way without shutting down the service

      Perhaps. I don't know. Read the Access documentation.

      You need to make sure that the database file is in a consistent state, and that this state does not change for the time the backup program processes the database file. If it is not consistent or changes while the backup program processes the file, the resulting file on the backup media is inconsistent in the best case, binary garbage in the worst case.

      A clean shutdown of the service makes sure that the database file is consistent and does not change while the backup program runs. The procedure shutdown - copy - restart - backup the copy reduces the downtime of the service to the time needed to create a consistent copy of the database file.

      "Real" database engines usually offer tools or hooks for backup purposes. Oracle has tools to create a file containing a consistent backup of a running database, MS SQL Server offers a plugin API for backup programs, as far as I remember.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)