Saya telah bekerja dengan SQL server sejak SQL Server 6.5, saran lama yang masih terngiang-ngiang di kepala saya adalah tidak pernah melakukan upgrade di tempat.
Saat ini saya meningkatkan sistem DEV dan TEST 2008 R2 saya ke SQL Server 2012 dan perlu menggunakan perangkat keras yang sama. Pikiran tidak harus mengembalikan konfigurasi layanan Pelaporan saya sangat menarik dan saya sangat berhadapan dengan masalah waktu. Tidak ada layanan analisis yang terlibat atau apa pun yang tidak biasa atau tidak standar - hanya mesin basis data dan layanan pelaporan yang diinstal.
Adakah yang mengalami masalah serius dengan peningkatan di tempat? Atau haruskah saya mengevaluasi kembali posisi saya tentang peningkatan di tempat?
sql-server
sql-server-2012
migration
upgrade
ssrs
Barang rusak
sumber
sumber
Jawaban:
Really Short Answer - In Place tidak apa-apa. Anda dapat meninjau konfigurasi Anda sesudahnya dan menerapkan praktik terbaik untuk SQL Server 2012.
Jawaban yang Lebih Panjang tentang Upgrade / Migrasi SQL Server
Jadi ini adalah pendapat dan tidak ada jawaban yang salah atau benar, tetapi saya lebih memilih peningkatan gaya migrasi di tempat karena banyak alasan. Yang sedang berkata - beberapa klien saya karena berbagai alasan tidak punya pilihan selain melakukan di tempat dan benar-benar sejak SQL Server 2005, upgrade di tempat belum seburuk dulu.
Mengapa Saya Memilih Migrasi ke Peningkatan di Tempat
Pikiran Anda, saya tidak mengatakan Anda harus melakukan ini sebagai migrasi. In-Place berfungsi dan berfungsi dengan baik jika Anda tidak berencana membeli perangkat keras baru dalam anggaran Anda dan tidak dapat melakukannya untuk peningkatan ini. Dukungan dalam proses peningkatan jauh lebih baik daripada dalam 6,5 hari sehingga Anda tidak menempatkan diri Anda dalam posisi yang buruk melakukan hal ini.
Jika Anda berencana melakukan di tempat untuk dev / tes tetapi ingin melakukan migrasi untuk produksi, Anda mungkin mempertimbangkan melakukan setidaknya satu migrasi sebelum produksi. Dengan cara ini Anda dapat mengerjakan daftar periksa Anda sebelumnya dan menangani masalah potensial yang tidak Anda pikirkan.
Lampirkan / Lepaskan vs Cadangkan / Kembalikan untuk Migrasi
Jika Anda memutuskan untuk pergi dengan pendekatan migrasi, masih ada satu keputusan lagi Anda mungkin masih memiliki perdebatan dan itulah bagaimana Anda memindahkan database Anda ke lingkungan baru. Anda dapat melepaskan basis data dari server lama dan melampirkannya ke yang baru atau mencadangkannya dan memulihkannya di sana.
Saya lebih suka backup / restore. Keuntungan terbesar yang saya dengar tentang detach / attach adalah menghemat waktu. Bagi saya cadangan / pengembalian kemenangan karena beberapa alasan:
Jika Anda memutuskan untuk melakukan backup / restore - itu berarti database sumber lama Anda masih online. Saya suka menjadikan database itu offline setelah mengambil cadangan. Saya kadang-kadang melangkah lebih jauh dan membuat seluruh contoh SQL offline setelah saya mencoret keamanan, pekerjaan, server tertaut, sertifikat, pengaturan basis data, dan informasi luas lainnya. Ini menghindari masalah selama pengujian di mana seseorang mengatakan "Semuanya tampak hebat!" hanya untuk menyadari satu atau dua hari kemudian bahwa mereka telah berbicara dengan database lama di server lama. Mengambil basis data tersebut offline atau seluruh instance offline memungkinkan Anda untuk mencegah hal-hal yang salah dan kekacauan yang mereka buat.
Cara Membuat Pendekatan Migrasi Lebih Cepat
Anda dapat meminimalkan waktu henti yang diperlukan untuk peralihan dari lingkungan lama ke baru untuk lingkungan produksi yang sibuk dengan sedikit waktu henti dengan menggunakan model pemulihan penuh. Pada dasarnya - tahap lingkungan tempat Anda bermigrasi dengan mengembalikan cadangan lengkap terbaru, cadangan diferensial apa pun, dan cadangan log apa pun yang sudah diambil menentukan
NORECOVERY
- maka yang harus Anda lakukan untuk pemotongan akhir adalah mengembalikan cadangan log yang belum dipulihkan dan cadangan log akhir yang ingin Anda pulihkanWITH RECOVERY
. Dengan cara ini untuk database besar, jendela downtime aktual dapat diminimalkan secara drastis dengan membayar biaya penuh, diferensial, dan sebagian besar log dikembalikan sebelum jendela downtime. Terima kasih kepada Tao karena menunjukkan ini di komentar!Cara Membuat Upgrade di Tempat Lebih Aman
Beberapa hal yang dapat Anda lakukan untuk meningkatkan pengalaman dan hasil Anda ketika memilih pendekatan di tempat.
Pentingnya Peningkatan atau Daftar Periksa Migrasi
Jika Anda memutuskan untuk melakukan pemutakhiran (baik di tempat atau migrasi) Anda harus serius mempertimbangkan membuat daftar periksa dan menggunakan daftar periksa ini di setiap lingkungan. Anda harus memasukkan banyak hal dalam daftar periksa ini, tidak sedikit di antaranya:
Dan kemudian mintalah orang yang akan melakukan peningkatan produksi ikuti daftar di beberapa lingkungan selain produksi - terutama yang menutup menyerupai produksi jika memungkinkan ("South of prod", seperti yang saya katakan ...) dan perhatikan setiap masalah atau poin di mana mereka harus mengalihkan dari daftar periksa atau berimprovisasi karena kurangnya daftar periksa. Lalu, gabungkan perubahan itu dan bersenang-senanglah dengan perubahan produksi Anda.
Saya tidak bisa terlalu menekankan pentingnya pengujian menyeluruh pasca migrasi atau peningkatan dan lebih cepat dari migrasi Anda. Membuat keputusan rollback di tengah-tengah pembaruan harus mudah - terutama selama migrasi. Jika ada sesuatu yang tidak nyaman, kembalikan dan cari tahu jika Anda tidak dapat memecahkan masalah secara efektif dan andal dalam panasnya migrasi. Setelah Anda hidup di lingkungan baru ini dan pengguna terhubung - rollback menjadi tugas yang sulit. Anda tidak dapat mengembalikan database SQL Server ke versi yang lebih lama. Itu berarti pekerjaan manual dan migrasi data. Saya selalu menunggu beberapa minggu untuk membunuh lingkungan lama, tetapi Anda harus melakukan semua yang Anda bisa untuk menghindari kebutuhan lingkungan lama itu dengan menemukan semua masalah Anda sebelum pengguna langsung menyentuh lingkungan baru. Lebih disukai bahkan sebelum Anda memulai pemutakhiran / migrasi.
Catatan singkat tentang migrasi / pemutakhiran Layanan Pelaporan SQL Server Memigrasi instalasi SSR bukanlah tugas yang sangat penting yang banyak orang pikirkan. Ini TechNet / buku artikel online sebenarnya cukup berguna . Salah satu peringatan paling penting dalam artikel itu adalah "Cadangkan kunci enkripsi" terutama jika Anda memiliki banyak informasi sensitif yang disimpan seperti laporan terjadwal alamat email penerima email, informasi koneksi untuk banyak koneksi, dll. Anda dapat bertanya kepada salah satu klien saya dari waktu yang lalu betapa pentingnya hal itu. Mereka tahu karena saya mengacaukan langkah itu dan menghabiskan cukup banyak waktu memodifikasi jadwal laporan dan izin string koneksi.
sumber
Dalam pengalaman saya, proses pengambilan keputusan yang sama harus dibuat seperti sebelumnya. AFAIK belum ada 'pengubah dunia' dengan instalasi SQL Server, di dalam produk MS SQL Server itu sendiri, dan potensi masalah yang Anda miliki ketika meluncurkan perangkat lunak dengan jutaan baris kode. Sesuatu yang buruk dapat terjadi dan sekarang Anda terjebak tanpa opsi 'ROLLBACK'.
Namun Anda memiliki alternatif lain di tempat. Anda dapat mempertimbangkan untuk membuat snapshot dari sistem, memulihkan di tempat lain, melakukan peningkatan dan melihat apa yang terjadi. Tes ini seharusnya memberi Anda banyak kenyamanan, tetapi itu tidak sepenuhnya menjamin tidak akan ada masalah yang muncul pada kotak prod. Namun, ini adalah opsi yang tidak tersedia kembali dalam SQL 6,5 hari.
Saya hanya akan mengasumsikan skenario terburuk. Anda melakukan upgrade di tempat dan gagal total. Anda kemudian harus memulihkan dari ini dalam RTO dan RCO Anda. Apakah bisnis memahami risiko dan apakah Anda memiliki rencana untuk mengurangi itu?
Jika bisnis ini tidak oke dengan ini, maka jangan lakukan itu akan menjadi saran saya.
sumber
Jika server Anda berjalan di lingkungan virtual, Anda dapat melakukan snapshot pada klon dan kemudian menerapkan pembaruan di tempat dan menguji contoh untuk memverifikasi bahwa pembaruan berhasil. Jika berhasil, Anda dapat menerapkan snapshot dan membuat klon server produksi. Jika berjalan buruk, Anda dapat menghapus snapshot dan kembali ke gambar pra-peningkatan untuk mencoba lagi, atau menghapus klon dan migrasi penuh.
sumber
Karena investasi perangkat keras yang besar, kami diharuskan memperbarui hanya OS sambil mempertahankan versi SQL Server saat ini (2012, 3 server, 22 instance, ~ 300 database). Tidak ada pengaturan rumit seperti mirroring, dll.
Contoh ini tidak cocok dengan pertanyaan karena SQL Server tidak ditingkatkan. Saya pikir ini masih merupakan jawaban yang baik karena langkah-langkah yang ditampilkan sebenarnya akan lebih sederhana daripada migrasi yang benar di tempat.
Ikhtisar: Drive eksternal dilampirkan untuk mengambil cadangan lengkap terutama sebagai tindakan pencegahan. Hanya model dan msdb yang benar-benar akan dipulihkan dari drive eksternal. Ldf / mdf dibiarkan untuk dilepas / dilampirkan. Beberapa akun lokal direferensikan dalam DB. Setelah mereka dibuat kembali di OS, referensi dalam DB dibuat kembali (karena SID dapat berubah).
Lalu inilah langkah-langkah yang berhasil bagi kami:
1) Perhatikan pengaturan tingkat server yang akan dipulihkan dalam langkah 12 (Peran Server) dan 18 hingga 23.
2) Patch SQL Server 2012 ke SP3 (diperlukan konsistensi jika kita ingin mengembalikan sistem dbs).
3) Verifikasi versi cocok pada setiap contoh. "Pilih versi @@"
4) Hasilkan 6 skrip ini dengan menjalankan skrip ini. Redgate SQL Multiscript adalah penghemat waktu yang sangat besar jika ada banyak contoh (Sesuaikan Alat -> Opsi => Panjang Jalur ke maks (8192) dan kemudian gunakan Output Teks).
Tautkan Pengguna ke Login
5) Jalankan skrip untuk Cadangkan semua DB termasuk sistem (master, msdb, model) ke drive eksternal.
6) Jalankan skrip untuk Melepaskan semua DB
7) Drive C akan diformat ulang. Pertahankan LDF / MDF jika mereka TIDAK menggunakan C.
8) Windows Server 2012 diinstal pada C.
9) Pindahkan LDF / MDF untuk file sistem asli keluar dari jalan jika tidak ada di Drive C.
10) SQL Server 2012 akan diinstal ulang dan ditambal ke SP3 a. Menciptakan kembali akun Pengguna / Grup sistem
11) Cadangkan Sistem DB ke lokasi atau nama file BARU (hati-hati untuk tidak menimpa yang asli!).
12) Jalankan buat ulang cuplikan peran. Sesuatu seperti:
13) Jalankan buat kembali skrip login (tidak melakukan apa-apa jika login dikembalikan)
14) Hentikan SQL AGEN.
(Bisakah mengembalikan Tuan di sini, kami ketakutan).
15) Lampirkan mdf / ldf menggunakan skrip dari atas. Sebuah. Jika gagal pulihkan secara manual dari bak menggunakan skrip dari atas.
16) Mencoba Pemulihan Model
17) Pastikan SQL Agent dihentikan. Pulihkan MSDB (tautan) a. Jika gagal, perlu menciptakan kembali pekerjaan + rencana pemeliharaan + konfigurasi email + operator
18) Buka skrip Pengguna Untuk Masuk ...
19) Aktifkan broker layanan untuk mencocokkan nama SELECT nilai asli, is_broker_enabled FROM sys.databases;
20) Mulai SQL Agent
21) Tetapkan ambang Paralelisme ke nilai asli
22) Sesuaikan pengaturan basis data apa pun dengan nilai aslinya:
23) Periksa kepemilikan pekerjaan:
Jika Versi SQL Server juga telah ditingkatkan, saya tidak percaya model dan database msdb bisa dipulihkan sehingga pekerjaan akan hilang karena https://support.microsoft.com/en-us/kb/264474
Apa yang hilang:
sumber
Tidak ada yang salah dengan kedua pendekatan itu - saya telah melakukan keduanya dan hasilnya baik.
Jika ada masalah dengan pendekatan migrasi, itu tidak teknis: itu kemalasan. Terlalu sering saya menemukan bahwa alasan perusahaan belum sepenuhnya menggunakan versi xxxx adalah karena mereka memilih migrasi swing dan tidak pernah sempat melakukan kerja keras untuk sepenuhnya bergerak. Sekarang mereka memiliki dua atau lebih set server, bukan satu.
sumber