I'm running an Oracle 11 box as a ZFS storage appliance, and I'm taking regular snapshots of the ZFS filesystems, via cron
.
In the past, I know that if I wanted to grab a particular file from a snapshot, a read-only copy was kept in .zfs/snapshot/{name}/
and I could just navigate there and pull the file out. This is documented on Oracle's website.
However, I went to do this the other day, and noticed that the ZFS directories within the snapshot directories are all empty. zfs list -t snapshot
correctly shows the list of snapshots that should be present, and .zfs/snapshots
correctly contains a directory for each snapshot, and in each snapshot there is a directory present for each ZFS filesystem. However, these directories appear to be empty.
I just tested a restore by touching a file in a little-used share and rolling back to the latest hourly snapshot, and this appears to have worked fine. So the rollback functionality is there.
Did Oracle change how snapshots are done? Or is something seriously wrong here?
Best Answer
If you have a descendent ZFS filesystem, for example
tank/newfs
. Then you will not find files intank/newfs
in the/tank/.zfs/mysnapshot
folder, only the mountpointnewfs
will exist. If you want to access the files you need to look for your files in the/tank/newfs/.zfs/mysnapshot
folder.