Bermigrasi dari mesin berpemilik ke mesin sumber terbuka adalah tren yang berkembang di industri ini.
Namun, migrasi database bukanlah sesuatu yang bisa dianggap enteng.
Di blog ini, mari kita lihat apa saja yang diperlukan untuk berpindah dari Microsoft SQL Server ke MySQL Server dan bagaimana melakukannya.
Jadi, mari kita mulai dengan meninjau apa itu MS SQL dan apa itu MySQL.
Microsoft SQL Server adalah RDBMS yang sangat populer dengan lisensi terbatas dan biaya kepemilikan sederhana jika database berukuran signifikan, atau digunakan oleh sejumlah besar klien. Ini menyediakan antarmuka yang sangat ramah pengguna dan mudah dipelajari, yang telah menghasilkan basis pengguna yang besar. Seperti perangkat lunak RDBMS lainnya, MS SQL Server dibangun di atas SQL, bahasa pemrograman standar yang digunakan administrator basis data (DBA) dan profesional TI lainnya untuk mengelola basis data dan menanyakan data yang ada di dalamnya. SQL Server terikat dengan Transact-SQL (T-SQL), sebuah implementasi SQL dari Microsoft yang menambahkan satu set ekstensi pemrograman berpemilik ke bahasa standar.
MySQL adalah sistem manajemen basis data relasional open source yang didukung Oracle berdasarkan SQL.
Ini adalah basis data terpopuler kedua di dunia menurut peringkat db-engines dan mungkin basis data paling mutakhir di planet ini karena menjalankan sebagian besar layanan internet di seluruh dunia.
MySQL berjalan di hampir semua platform, termasuk Linux, UNIX, dan Windows. Ini adalah komponen penting dari tumpukan perusahaan sumber terbuka yang disebut LAMP. Versi MySQL Enterprise hadir dengan dukungan dan fitur tambahan untuk keamanan dan ketersediaan tinggi.
https://db-engines.com/en/rankingKombinasi penghematan biaya, kompatibilitas platform, dan kumpulan fitur MySQL membuatnya sangat menarik, dan banyak organisasi bermigrasi dari MS SQL Server ke platform sumber terbuka ini untuk memanfaatkan fitur-fitur ini.
Mengapa Bermigrasi?
Biasanya, alasan pertama untuk bermigrasi adalah biaya. SQL Server adalah database berpemilik dari Microsoft. Ada versi SQL Server gratis yang disebut Express, tetapi memiliki beberapa batasan seperti batas basis data 10GB, jumlah CPU yang terbatas, jumlah RAM yang terbatas, dan banyak lagi, jadi mungkin Anda perlu membayar lisensi untuk menggunakannya dalam produksi. Anda dapat memeriksa harganya di sini.
Dengan MySQL, Anda dapat menggunakan edisi komunitas secara gratis dan tanpa batasan apa pun.
Alasan lain bisa jadi dukungan sistem operasi. Tidak seperti MS SQL Server, MySQL mendukung berbagai Sistem Operasi termasuk Linux, Windows, Mac OS, Solaris dan banyak lagi.
Mengenai instalasi dan konfigurasi, MySQL menginstal lebih cepat, memiliki footprint yang lebih kecil namun tetap dapat mengelola database yang cukup besar, dan memiliki lebih sedikit tombol konfigurasi yang perlu disetel daripada SQL Server.
Di bidang ketersediaan tinggi, MySQL memiliki sejumlah solusi terbukti termasuk replikasi, SAN, dan MySQL Cluster, yang setara atau terbaik SQL Server tergantung pada skenario.
Komunitas MySQL yang hebat memberikan banyak manfaat termasuk pengembang hebat dan jaringan DBA dari semua orang yang bekerja sama untuk membantu memastikan produk berkualitas tinggi dan kesuksesan satu sama lain.
Yang Harus Anda Ketahui
Memindahkan data dan struktur indeks ke MySQL biasanya bukan tugas yang menantang karena MySQL mendukung semua tipe data penting, desain tabel, dan struktur indeks. Bagaimanapun, ada beberapa objek yang akan menghadapi beberapa tantangan. Objek terkait kode, seperti prosedur tersimpan, dapat menggunakan fitur ANSI non-standar, karena Transact-SQL memiliki banyak fitur tersebut.
Jadi, item berikut perlu mendapat perhatian khusus saat bermigrasi:
- Perakitan
- Jenis
- Pemicu berbasis DDL dan pernyataan (MySQL memiliki pemicu berbasis baris)
- Pemanggilan fungsi SQL Server eksklusif
- Kasus tertentu dari T-SQL dinamis
Dengan cara yang sama, Sinonim dan Peran Keamanan akan memerlukan solusi karena tidak dapat langsung dimigrasikan ke MySQL.
Tipe Data yang Memerlukan Konversi
Peta berikut dapat digunakan untuk mengonversi tipe data SQL Server yang tidak memetakan dalam hubungan 1-1 ke MySQL:
SQL Server | MySQL |
---|---|
IDENTITAS | AUTO_INCREMENT |
NTEXT, TEKS NASIONAL | SET KARAKTER TEKS UTF8 |
SALLDATETIME | DATETIME |
UANG | DESIMAL(19,4) |
UANG KECIL | DECIMAL(10,4) |
UNIQUEIDENTIFIER | BINARY(16) |
SYSNAME | CHAR(256) |
Cara melakukannya
Ada banyak alat untuk melakukan migrasi dari MS SQL Server ke MySQL seperti Amazon DMS atau Integrasi Data (Kettle), tetapi dalam kasus ini, kami akan menggunakan alat Migrasi Meja Kerja MySQL.
Alat ini dirancang untuk menghemat waktu pengembang dan DBA dengan memberikan kemudahan penggunaan visual, titik, dan klik di semua fase konfigurasi dan pengelolaan proses migrasi yang kompleks:
- Migrasi database:Memungkinkan migrasi dari Microsoft SQL Server, Microsoft Access, PostgreSQL, Sybase ASE, Sybase SQL Anywhere, SQLite, dan lainnya.
- Kelola Proyek Migrasi:Memungkinkan migrasi dikonfigurasi, disalin, diedit, dijalankan, dan dijadwalkan.
- Pilihan Sumber dan Target:Memungkinkan pengguna menentukan sumber data tertentu dan menganalisis data sumber sebelum migrasi.
- Migrasi objek:Memungkinkan pengguna memilih objek yang akan dimigrasikan, menetapkan sumber untuk menargetkan pemetaan jika diperlukan, mengedit skrip migrasi, dan membuat skema target.
- Peningkatan Versi:Dengan menggunakan migrasi, pengguna dapat dengan mudah memindahkan database dari versi MySQL lama ke versi terbaru.
Jadi, ayo lakukan.
Untuk tugas ini, kami menganggap Anda memiliki:
- SQL Server diinstal dengan database Anda untuk bermigrasi:Kami akan menggunakan database sampel Northwind melalui MS SQL Server Express Edisi 2014.
- MySQL Server terinstal:Kami memiliki MySQL 5.7.25 Community Edition melalui CentOS.
- Pengguna di kedua server database dengan hak istimewa untuk melakukan tugas:Kami memiliki pengguna “sa” di SQL Server dan pengguna “migrasi” dengan semua hak istimewa di MySQL.
- MySQL Workbench terinstal dengan akses ke kedua server database:Kami akan menggunakan MySQL Workbench 6.3.
Untuk memulai proses migrasi, pada layar utama MySQL Workbench, buka Database-> Migration Wizard.
Kami harus memeriksa prasyarat untuk mengonfirmasi apakah kami dapat melanjutkan tugas. Jika semuanya terlihat baik-baik saja, kita dapat menekan Mulai Migrasi.
Pada langkah ini, kita perlu memberikan informasi tentang database sumber, dalam hal ini SQL Server.
Kami akan mengonfigurasi parameter sumber kami seperti yang Anda lihat di gambar sebelumnya:
Database System: Microsoft SQL Server
Connection Method: ODBC (Native)
Driver: SQL Server
Server: localhost
Username: sa
Tentang parameter Server, kami menjalankan MySQL Workbench pada node SQL Server, tetapi mungkin Anda akan menggunakan Alamat IP / Hostname dari server database Anda.
Sekarang, kita dapat memeriksa koneksi dengan menggunakan tombol Uji Koneksi.
Kemudian, kita perlu menambahkan parameter target, dalam hal ini, Server MySQL:
Connection Method: Standard (TCP/IP)
Hostname: 192.168.100.192
Port: 3306
Username: migration
Dan tekan Test Connection untuk mengonfirmasi informasi yang ditambahkan.
Pada langkah berikutnya, MySQL Workbench akan terhubung ke SQL Server kami untuk mengambil daftar katalog dan skema.
Sekarang, kita akan memilih database sampel Northwind dari daftar.
Kita dapat memilih bagaimana skema dan objek yang direkayasa balik harus dipetakan. Kami akan menggunakan opsi Catalog.Schema.Table -> Catalog.Table, jadi di MySQL kami, kami akan memiliki database yang disebut Northwind, dan tabel saat ini yang kami miliki di database SQL Server kami.
Jika semuanya berjalan dengan baik, kami akan memiliki daftar objek yang akan dimigrasikan.
Dalam hal ini, kami memiliki Objek Tabel, Objek Tampilan, dan Objek Rutin. Kami hanya akan memilih Objek Tabel karena untuk objek lainnya kami harus memeriksa kode setara MySQL yang sesuai secara manual.
Pada langkah ini, objek dari sumber diubah menjadi objek yang kompatibel dengan MySQL.
Jika semuanya berjalan dengan baik, kita dapat melanjutkan dengan memilih bagaimana kita ingin membuat skema yang dimigrasikan di target. Kami akan menggunakan opsi default “Buat skema di target RDBMS”.
Sekarang, mari kita periksa proses pembuatan skema.
Pada langkah selanjutnya, kita dapat memeriksa hasil dari setiap eksekusi skrip, dan kita dapat memeriksa database baru yang dibuat di Server MySQL kita.
Di Server MySQL kami, kami memiliki:
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| NORTHWND |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec)
Pada titik ini, kita akan memiliki struktur database, tetapi kita belum memiliki datanya. Sekarang, kita akan memilih bagaimana kita ingin menyalin data di Server MySQL. Kami akan menggunakan opsi “Salinan data tabel online untuk menargetkan RDBMS”.
Dan kita bisa memantau proses copy dari aplikasi MySQL Workbench.
Pada titik ini, kami memiliki semua informasi yang dimigrasikan ke Server MySQL kami.
mysql> SELECT * FROM NORTHWND.Region;
+----------+-------------------+
| RegionID | RegionDescription |
+----------+-------------------+
| 1 | Eastern |
| 2 | Western |
| 3 | Northern |
| 4 | Southern |
+----------+-------------------+
4 rows in set (0.00 sec)
Pada langkah terakhir, kita dapat memeriksa laporan migrasi dan menyelesaikan tugas.
Migrasi selesai!
Pengujian
Sebelum proses migrasi, Anda harus menguji aplikasi dan database MySQL untuk mengetahui perilaku dengan mesin baru.
Sebaiknya juga melakukan uji tolok ukur untuk memvalidasi kinerja sebelum migrasi.
Ada beberapa tips yang perlu diperhatikan:
- Pengujian harus mensimulasikan jumlah koneksi pengguna yang diharapkan.
- Sesi yang terhubung harus melakukan tugas seperti yang akan terjadi pada hari biasa.
- Anda harus memuat database Anda dengan data uji yang kira-kira berukuran sebesar yang Anda harapkan dari database Anda di dunia nyata.
Untuk tugas pengujian ini, Anda dapat menggunakan alat mysqlslap. Ini adalah program diagnostik yang dirancang untuk meniru beban klien untuk Server MySQL dan untuk melaporkan waktu setiap tahap.
Kesimpulan
Seperti yang telah kami ulas di blog ini, ada beberapa alasan yang dapat membuat bisnis memutuskan migrasi basis data, beralih dari mesin berpemilik ke mesin sumber terbuka. Kami telah melihat di sini kasus penggunaan yang populer, migrasi dari SQL Server ke MySQL, dan membuat contoh langkah demi langkah dengan menggunakan satu alat MySQL yang dikenal luas, MySQL Workbench. Kami harap artikel ini bermanfaat bagi Anda.