Saya mencoba menyiapkan kotak pasir untuk pengembang laporan kami untuk pekerjaan mereka. Rencana saya saat ini adalah "mengatur ulang" database setiap malam, tetapi saya tidak yakin bagaimana cara melakukannya. Apa yang saya maksud dengan reset adalah bahwa pada dasarnya saya ingin menjatuhkan tabel pengguna, tampilan, prosedur tersimpan, dll dari semua kecuali satu database di server. Saya kira pilihan lain adalah dengan menjatuhkan dan membuat ulang basis data juga, tetapi saya cukup yakin itu berarti menyesali akses ke semua grup / orang AD yang tepat juga.
Saya benar-benar tidak tahu apa yang akan menjadi cara terbaik untuk melakukan hal ini jadi saya berharap beberapa dari Anda akan dapat memberikan beberapa ide / saran yang bagus. Terima kasih.
Untuk kejelasan, kami pada dasarnya ingin melakukan ini dengan database kami: http://try.discourse.org/t/this-site-is-a-sandbox-it-is-reset-every-day/57 . Satu-satunya perbedaan adalah bahwa kami tidak ingin membuat ulang pengguna kami setiap hari.
Versi:
Edisi SQL Server 2008 : Pengembang & Perusahaan
sumber
Karena Anda memiliki instance dengan mesin Enterprise Edition, saya akan menggunakan snapshot database .
Ini akan memungkinkan Anda untuk dengan cepat dan mudah mengembalikan segala perubahan yang dilakukan pada siang hari, tanpa harus mengembalikan seluruh database.
Perhatikan bahwa jika pengembang berencana untuk melakukan pemuatan data besar (sepertinya tidak?), Maka ini mungkin tidak sesuai.
sumber
Biarkan saya menambahkan beberapa sen untuk melihat apakah itu membantu Anda:
Di perusahaan saya, kami memiliki situasi yang sama bahwa setiap malam pengembang ingin menyegarkan basis data yang telah mereka gunakan sepanjang hari. Ini berarti bahwa kita memiliki satu set database yang Dev tidak menyentuh - katakanlah A dan satu set database yang tepat menyalin A tetapi mereka melakukan hal-hal mereka tetapi ingin mendapatkan segar setiap malam - memungkinkan katakanlah B . Ini terjadi pada 1 instance server tunggal.
Apa yang saya terapkan adalah PROSES KEMBALI MALAM untuk mencapai ini. Di bawah ini adalah cara kerjanya:
Buat tabel driver dengan daftar database yang perlu dipulihkan setiap malam (seperti yang telah Anda sebutkan).
Tabel: nightly_restore (OriginalDB, RestoreDB, backuplocation, enabled_YN, Results, PASS_FAIL)
Kemudian Anda dapat menulis beberapa TSQL yang akan mengulang daftar database dari tabel di atas dan kemudian melakukan pemulihan dan mencatat keberhasilan atau kegagalan dalam Hasil dan sedikit 1 = Lulus atau 0 = Gagal. Enabled_YN akan menentukan apakah database itu perlu dipulihkan atau tidak.
Jika ada lebih banyak database yang akan ditambahkan di masa depan maka Anda harus memasukkannya dalam tabel dan mengatur bit enabled_YN menjadi Y (diaktifkan).
Dengan cara ini prosesnya akan lebih fleksibel dan mudah dikelola.
Jika Anda ingin SQL yang saya tulis (saya yakin, Anda akan dapat menulisnya :-)), cukup ping saya atau tambahkan komentar dan saya akan membagikannya.
HTH
sumber