Sepertinya saya ingat bahwa, pada 2008, Anda bisa mengembalikan cadangan ke salinan baru DB, dengan mengubah nama di bidang "Destination Database" dari restore-wizard. Itu akan membuat DB baru, yang merupakan salinan dari DB asli yang dikembalikan ke titik waktu yang Anda inginkan. Saya belum seumur hidup saya menemukan cara untuk membuat SQL 2012 melakukan ini.
Sekarang, saya mengerti (terima kasih kepada Aaron Bertrand) bahwa ini tidak benar-benar berubah, dan bahwa 2012 sebenarnya membuatnya lebih jelas bagi saya bahwa strategi ini adalah ide yang buruk!
Jadi, yang perlu saya lakukan adalah ini: Buat DB baru, 'MyDB_Copy', dari DB yang ada, 'MyDB', dengan menggunakan file cadangannya. Kami memiliki cadangan lengkap malam (.bak) dan setiap TLogs 15 menit (.trn). Saya tidak ingin 'MyDB' yang ada terpengaruh / tersentuh sama sekali, karena ini "langsung".
Setelah MyDB_Copy dibuat dari file cadangan lengkap utama, saya kemudian perlu mengembalikan beberapa lusin cadangan TLog untuk mendapatkannya ke titik waktu tertentu.
sumber
Jawaban:
Berdasarkan longgar pada Contoh E dalam dokumentasi , buka jendela permintaan baru dan jalankan:
Nama logis tidak penting; nama file fisiknya. Ini membuat asumsi tentang nama file logis Anda dan hanya ada dua; lari
EXEC MyDB..sp_helpfile;
untuk memastikan.Jika Anda perlu memulihkan log, maka ubah
RECOVERY
keNORECOVERY
:Kemudian Anda dapat mengeluarkan serangkaian:
Dan yang terakhir:
Atau jika Anda hanya memerlukan sebagian dari log hingga titik waktu (saya berasumsi Anda telah memeriksa di mana LSN dan waktu berada sehingga Anda tahu persis file mana yang Anda butuhkan):
Cara Anda mengatakan bekerja di versi sebelumnya tidak akan pernah berhasil, kecuali jika cadangannya berasal dari server yang berbeda. Secara default akan mencoba untuk menempatkan file mdf dan ldf baru di tempat yang sama persis, dan ini tidak mungkin.
sumber
Yang perlu Anda lakukan untuk memulihkan database yang sama beberapa kali adalah mengubah nama file disk untuk database itu. Jelas Anda perlu memberikan nama yang berbeda untuk database lain di SQL Server juga. Di SSMS setelah Anda memilih file .bak untuk dipulihkan dan mengetik nama untuk basis data, Anda kemudian klik 'File' di bagian "Select a page" di sebelah kiri dan cukup ubah nama file disk tersebut.
Cheers Doug
sumber