Pada artikel saya sebelumnya saya telah menjelaskan dasar-dasar SQL Server Collation. Saya sarankan Anda membaca artikel itu terlebih dahulu (jika Anda belum melakukannya). Di sini, saya akan menunjukkan cara mengubah susunan tingkat server atau susunan tingkat instance SQL Server dari instance SQL Server yang ada.
Apa yang dimaksud dengan Kolasi Tingkat Server di SQL Server?
Susunan menentukan aturan pengurutan, huruf besar/kecil, dan properti aksen untuk data. Ini adalah pengaturan penting yang dapat mempengaruhi data Anda di dalam database, jadi tidak disarankan untuk sering diubah.
Pengumpulan dapat dikonfigurasi pada 4 lapisan di SQL Server:
- Tingkat Server
- Tingkat Basis Data
- Tingkat Kolom
- Tingkat Ekspresi
Catatan: Jika Anda menggunakan edisi ekspres SQL Server, Anda tidak dapat mengubah susunan dari SQL_Latin1_General_CP1_CI_AS .
Ubah Susunan Tingkat Server dari Instance SQL Server yang Ada
Bagian ini akan menjelaskan prasyarat dan proses untuk mengubah susunan tingkat server. Ini akan diubah dengan membangun kembali basis data sistem dengan nama susunan baru.
Prasyarat
Ikuti poin di bawah ini untuk menjalankan perubahan susunan untuk instance produksi.
- Jalankan pencadangan penuh semua database. Jika memungkinkan, ambil snapshot VM sebelum memulai prosedur ini.
- Pastikan Anda memiliki semua skrip untuk membuat database pengguna atau objek database seperti tabel, login, pengguna, pekerjaan, dll. Kami akan membuat semua objek database setelah susunan diubah.
- Ekspor semua data menggunakan bcp atau alat pihak ketiga apa pun.
- Rekam nilai konfigurasi tingkat server dan nomor build instance SQL Server termasuk hotfix yang diterapkan ke instance.
- Rekam semua lokasi file database sistem. Ini mungkin diperlukan jika Anda telah memindahkan file database sistem ke lokasi lain.
Mari kita lihat beberapa skrip yang akan membantu Anda menangkap detail sistem. Salin output ini ke notepad atau file Excel, atau cukup ambil tangkapan layar dan simpan untuk referensi di masa mendatang.
Jalankan perintah di bawah ini untuk mendapatkan semua konfigurasi tingkat server.
--Get all server level configurations
SELECT * FROM sys.configurations;
Tangkap versi build SQL Server dengan menjalankan kueri di bawah ini.
--Fetch SQL Server build version
SELECT @@VERSION
GO
SELECT
SERVERPROPERTY('ProductVersion ') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('ResourceVersion') AS ResourceVersion,
Demikian pula, kita harus mendapatkan lokasi file database sistem dengan menjalankan pernyataan T-SQL di bawah ini.
SELECT name, physical_name AS Database_file_location
FROM sys.master_files
WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
Selanjutnya, kita akan menjalankan skrip T-SQL di bawah ini untuk mengumpulkan informasi collation dari instance SQL Server dan semua database dalam satu kesempatan.
--Get existing collation of SQL Server Instance and all databases
SELECT name, collation_name
FROM sys.databases
GO
--Get existing server level collation
SELECT SERVERPROPERTY('Collation') As [Instance Level Collation]
Baca artikel saya sebelumnya untuk informasi lebih lanjut tentang skrip ini.
Sekarang, buat Buat skrip untuk semua login dan pekerjaan yang dibuat pada instance SQL Server untuk referensi dan validasi di masa mendatang. Selain itu, Anda dapat menjalankan skrip di bawah ini untuk mengambil daftar semua login dan pekerjaan dari instance SQL Server.
--Get list of logins
Use master
Go
Select * from syslogins
--Get list of Jobs
USE msdb
Go
Select * from sysjobs
Pembuatan Ulang Instance
Setelah Anda menyelesaikan langkah-langkah yang disebutkan di bagian prasyarat, langkah selanjutnya adalah memulai proses untuk perubahan susunan. Karena kami telah membuat cadangan atau mengekspor semua data dari basis data pengguna, kami perlu melepaskan semua basis data pengguna dari contoh SQL Server. Anda juga dapat menjatuhkannya jika ingin mengimpor data yang diekspor ke database baru. Saya sarankan untuk melepaskannya untuk menyimpan satu salinan aman dari database Anda sehingga Anda dapat melampirkannya setelah perubahan susunan.
Proses mengubah susunan tingkat server memerlukan pembangunan kembali basis data sistem. Kita perlu memberikan nama pemeriksaan baru saat membangun kembali basis data sistem. Membangun kembali operasi basis data sistem memerlukan penyiapan penginstalan SQL Server. Mari kita mulai operasi pembangunan kembali database sistem untuk mengubah susunan tingkat server.
Masuk ke sistem target Anda yang akan Anda ubah susunannya. Buka Prompt Perintah Windows atau jendela terminal PowerShell. Buka PowerShell, lalu ketik cmd untuk menggunakan utilitas Prompt Perintah Windows seperti yang ditunjukkan pada gambar di bawah ini. Ubah lokasi direktori tempat Anda meletakkan file penyiapan penginstalan SQL Server.
--Open Windows Command prompt
Cmd
--Change directory where you have placed SQL Server setup files
Cd <Full path>
--My location was C:\Manvendra\SQL2019\Developer_ENU so i executed below cmd
cd C:\Manvendra\SQL2019\Developer_ENU
Sekarang saya berada di lokasi penyimpanan file instalasi SQL Server.
Selanjutnya, kita akan menjalankan perintah di bawah ini untuk membangun kembali semua database sistem. Selain itu, kita harus menjalankan perintah di bawah ini dengan parameter collation baru untuk mengubahnya untuk instance SQL Server ini dan semua database sistem.
--Rebuild system databases with new collation. Replace all values in <> with your desired value.
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=<InstanceName>
/SQLSYSADMINACCOUNTS=<accounts> / SAPWD= <StrongPassword>
/SQLCOLLATION=<CollationName>
--I replaced all values and executed the below command with collation SQL_Latin1_General_CP1_CS_AS
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=WIN-AFNHJ3L1D6E\Administrator /[email protected] /SQLCOLLATION=SQL_Latin1_General_CP1_CS_AS
Anda dapat melihat outputnya pada tangkapan layar di bawah ini. Anda harus membiarkan layar apa adanya dan membiarkan layar melanjutkan sampai Anda mendapatkan direktori kerja.
Di sini, kita sudah mendapat prompt. Ini berarti database sistem telah dibangun kembali dengan susunan baru untuk contoh SQL Server ini. Mari kita verifikasi.
Pastikan SQL Server berjalan dan layanannya diluncurkan. Sekarang mulai SQL Server Management Studio atau sqlcmd untuk terhubung ke contoh SQL Server. Anda dapat melihat, saya telah berhasil terhubung ke contoh SQL Server yang dibangun kembali pada langkah-langkah di atas. Kita hanya dapat melihat database sistem pada gambar di bawah ini.
Jalankan pernyataan T-SQL di bawah ini untuk mengumpulkan detail susunan tingkat database dan tingkat server. Langkah ini akan memvalidasi perubahan susunan database server dan sistem.
--Get collation of the SQL Server Instance and all databases
SELECT name, collation_name
FROM sys.databases
GO
--Get an existing server-level collation
SELECT SERVERPROPERTY('Collation') As [Instance Level Collation]
Susunan tingkat server dan tingkat basis data untuk semua basis data sistem menggunakan SQL_Latin1_General_CP1_CS_AS di tangkapan layar di bawah ini. Langkah ini memvalidasi bahwa susunan baru telah dikonfigurasi pada contoh SQL Server ini.
Susunan tingkat server telah diubah ke susunan baru. Langkah selanjutnya adalah melampirkan semua database pengguna yang terlepas sebelum membangun kembali database sistem. Ingat, semua database yang ada yang akan dilampirkan atau dipulihkan akan memiliki susunan yang sama di mana mereka dicadangkan atau dilepas. Anda perlu mengubahnya secara manual setelah susunan tingkat server berubah. Meskipun demikian, semua database yang baru dibuat akan memiliki susunan baru secara default.
Saya telah melampirkan database pengguna saya seperti yang ditunjukkan pada gambar di bawah ini.
Setelah database dilampirkan, Anda dapat memeriksa susunan database ini lagi. Jika Anda ingin mengubah susunan basis data ini, Anda dapat membaca artikel saya sebelumnya untuk menyelesaikannya.
Kesimpulan
Jika Anda telah mengekspor data dari database, Anda dapat menjalankan semua skrip yang dihasilkan selama prasyarat untuk membuat objek database. Kemudian Anda dapat mengimpor data yang diekspor dalam database dan objek yang baru dibuat ini. Anda dapat memvalidasi dan mengubah konfigurasi tingkat server sesuai dengan detail yang kami ambil di bagian prasyarat.
Anda juga dapat memindahkan file database sistem jika Anda ingin menyimpannya di lokasi tertentu karena pembuatan ulang database sistem akan membuatnya di lokasi default. Dimungkinkan juga untuk menjalankan skrip untuk membuat login dan pekerjaan dengan bantuan skrip yang dibuat sebelumnya. Jangan pulihkan database sistem karena akan mengubah susunan yang baru dikonfigurasikan ke yang lama untuk database tersebut.
Silakan bagikan artikel ini dan beri kami umpan balik Anda, sehingga kami dapat meningkatkan.