Oracle 11ボックスをZFSストレージアプライアンスとして実行しており、cron
を介してZFSファイルシステムの定期的なスナップショットを取得しています。
以前は、スナップショットから特定のファイルを取得したい場合、読み取り専用のコピーが.zfs/snapshot/{name}/
に保持され、そこに移動してファイルを引き出すことができたことがわかっています。これは文書化されています OracleのWebサイトで 。
しかし、先日これを行ったところ、スナップショットディレクトリ内のZFSディレクトリがすべて空であることに気付きました。 zfs list -t snapshot
は、存在する必要のあるスナップショットのリストを正しく表示し、.zfs/snapshots
は、各スナップショットのディレクトリを正しく含み、各スナップショットには、各ZFSファイルシステムのディレクトリが存在します。ただし、これらのディレクトリは空のようです。
あまり使用されていない共有のファイルに触れて、最新の1時間ごとのスナップショットにロールバックすることで復元をテストしましたが、これは正常に機能しているようです。したがって、ロールバック機能があります。
Oracleはスナップショットの実行方法を変更しましたか?それともここで何か深刻な問題がありますか?
子孫のZFSファイルシステムがある場合、たとえばtank/newfs
。そうすると、tank/newfs
フォルダの/tank/.zfs/mysnapshot
にファイルが見つからず、マウントポイントnewfs
のみが存在します。ファイルにアクセスする場合は、/tank/newfs/.zfs/mysnapshot
フォルダーでファイルを探す必要があります。
.zfs/snapshot/
にリストされているスナップショットは、閲覧中にオンデマンドで自動的にマウントされ、使用されなくなったときに自動的にアンマウントされます。
ディレクトリで単純なls
を実行するだけでは、「デマンド」と見なすには明らかに不十分です。問題のディレクトリにcd
を入力してから、ls
コマンドを発行する必要があります。
ファイルシステムにsnapdir=visible
を設定する必要がある場合もあります。