Dalam kasus tertentu kita perlu memindahkan database dari server 1 ke server 2 dalam waktu singkat. Langkah umum yang dilakukan ada melakukan backup dari server 1 atau export dump kemudian melakukan restore pada server 2 atau import dump menggunakan Mysql Workbanch. Ketika database dengan jumlah baris sedikit cara tersebut masih bisa dilakukan. Bagaimana jika database sudah berukuran 1 GB atau lebih ? Cara diatas akan menghabiskan waktu cukup lama sedangkan waktu downtime dibatasi misal hanya 10 menit. Berikut adalah cara import dan export dengan ukuran database besar. Pastikan kita sudah cukup paham dengan environment linux untuk melakukan cara ini. Show
Kita asumsikan file backup akan disimpan di /home/totorajo/backup_mysql dan file dump kita beri nama backup_migrasi.sql. Berikut adalah perintah yang harus kita eksekusi dari SSH server 1. Pastikan kita login sebagai root. Langkah diatas kita sudah berhasil melakukan backup selanjutnya file bisa didownload dan upload ke server 2. Bisa mengggunakn FTP atau menggunakan cara lain yang penting file bisa pindah ke server 2. Dalam hal ini file diupload dengan directory yang sama yaitu : /home/totorajo/backup_mysql/backup_migrasi.sql Cara lain yang dimaksud bisa dengan SFTP, RSYNC atau WGET. Selanjutnya kita akan melakukan import dump tadi ke server 2. maka yang harus dilakukan adalah melakukan eksekusi perintah berikut : Selamat mencoba, semoga membantu. Import database dalam kasus tertentu diperlukan ketika kita harus berpindah webserver. Aplikasi yang sudah berjalan lama memiliki database yang besar. Ukuranya bisa dalam ukuran giga, biasanya akan menjadi masalah ketika kita akan import database dalam ukuran besar. Proses import database akan terhenti dan terjadi error dengan menampilkan notif MySQL Error 1153 - Got a packet bigger than 'max_allowed_packet' bytes. Error tersebut terjadi karena secara default settingan mysql tidak menginjinkan proses import dalam jumlah besar. Untuk mengatasinya kita harus melakukan konfigurasi sehingga berapapun ukuran database yang akan anda import berjalan dengan lancar. Berikut adalah langkah import database mysql dalam ukuran besar. Go menyediakan package 5 berisikan generic interface untuk keperluan interaksi dengan database sql. Package ini hanya bisa digunakan ketika driver database engine yang dipilih juga ada.Ada cukup banyak sql driver yang tersedia untuk Go, detailnya bisa diakses di https://github.com/golang/go/wiki/SQLDrivers. Beberapa di antaranya:
Driver-driver tersebut merupakan project open source yang diinisiasi oleh komunitas di Github. Artinya kita selaku developer juga bisa ikut berkontribusi di dalamnya. Pada chapter ini kita akan belajar bagaimana berkomunikasi dengan database MySQL menggunakan driver Go MySQL Driver. A.56.1. Instalasi DriverUnduh driver mysql menggunakan 6.
A.56.2. Setup Database
Buat database baru bernama 7, dan tabel baru bernama 8.
A.56.3. Membaca Data Dari MySQL ServerImport package yang dibutuhkan, lalu disiapkan struct dengan skema yang sama seperti pada tabel 8 di database. Nantinya struct ini digunakan sebagai tipe data penampung hasil query.
Driver database yang digunakan perlu di-import menggunakan tanda 0, karena meskipun dibutuhkan oleh package 5, kita tidak langsung berinteraksi dengan driver tersebut.Selanjutnya buat fungsi untuk koneksi ke database.
Fungsi 2 digunakan untuk memulai koneksi dengan database. Fungsi tersebut memiliki 2 parameter mandatory, nama driver dan connection string.Skema connection string untuk driver mysql yang kita gunakan cukup unik, 3. Di bawah ini merupakan skema connection string yang bisa digunakan pada driver Go MySQL Driver. Jika anda menggunakan driver mysql lain, skema koneksinya bisa saja berbeda tergantung driver yang digunakan.
Di bawah ini adalah penjelasan mengenai connection string yang digunakan pada fungsi 4.
Setelah fungsi untuk konektivitas dengan database sudah dibuat, saatnya untuk mempraktekan proses pembacaan data dari server database. Siapkan fungsi 5 dengan isi adalah kode berikut.
Setiap kali terbuat koneksi baru, jangan lupa untuk selalu close instance koneksinya. Bisa menggunakan keyword 6 seperti pada kode di atas, 7.Fungsi 8 digunakan untuk eksekusi sql query. Fungsi tersebut parameter keduanya adalah variadic, sehingga boleh tidak diisi. Pada kode di atas bisa dilihat bahwa nilai salah satu clause 9 adalah tanda tanya ( 0). Tanda tersebut kemudian akan ter-replace oleh nilai pada parameter setelahnya (nilai variabel 1). Teknik penulisan query sejenis ini sangat dianjurkan, untuk mencegah sql injection.Fungsi tersebut menghasilkan instance bertipe 2, yang juga perlu di close ketika sudah tidak digunakan ( 3).Selanjutnya, sebuah array dengan tipe elemen struct 4 disiapkan dengan nama 5. Nantinya hasil query akan ditampung ke variabel tersebut.Kemudian dilakukan perulangan dengan acuan kondisi adalah 6. Perulangan dengan cara ini dilakukan sebanyak jumlah total record yang ada, berurutan dari record pertama hingga akhir, satu per satu.Method 7 milik 8 berfungsi untuk mengambil nilai record yang sedang diiterasi, untuk disimpan pada variabel pointer. Variabel yang digunakan untuk menyimpan field-field record dituliskan berurutan sebagai parameter variadic, sesuai dengan field yang di select pada query. Silakan lihat perbandingan di bawah ini unuk lebih jelasnya.
Data record yang didapat kemudian di-append ke slice 5, lewat statement 0.OK, sekarang tinggal panggil fungsi 5 di 2, lalu jalankan program.
Output: A.56.4. Membaca 1 Record Data Menggunakan Method user:[email protected](host:port)/dbname [email protected](host:port)/dbname 3Untuk query yang menghasilkan 1 baris record saja, bisa gunakan method 3, dengan metode ini kode menjadi lebih ringkas. Chain dengan method 7 untuk mendapatkan value-nya.
Dari kode di atas ada statement yang dituliskan cukup unik, chain statement boleh dituliskan dalam beberapa baris, contohnya: 0Sekarang jalankan program. Outputnya akan muncul data record sesuai id. A.56.5. Eksekusi Query Menggunakan user:[email protected](host:port)/dbname [email protected](host:port)/dbname 6Teknik prepared statement adalah teknik penulisan query di awal dengan kelebihan bisa di re-use atau digunakan banyak kali untuk eksekusi yang berbeda-beda. Metode ini bisa digabung dengan 7 maupun 3. Berikut merupakan contoh penerapannya. 1Method 6 digunakan untuk deklarasi query, yang mengembalikan objek bertipe 0. Dari objek tersebut, dipanggil method 3 beberapa kali dengan isi value untuk 2 berbeda-beda untuk tiap pemanggilannya.Untuk operasi insert, update, dan delete; dianjurkan untuk tidak menggunakan fungsi 3 ataupun 4 untuk eksekusinya. Direkomendasikan eksekusi perintah-perintah tersebut lewat fungsi 5, contohnya seperti pada kode berikut. 2Teknik prepared statement juga bisa digunakan pada metode ini. Berikut adalah perbandingan eksekusi 5 menggunakan 6 dan cara biasa.A.56.7. Koneksi Dengan Engine Database LainKarena package 5 merupakan interface generic, maka cara untuk koneksi ke engine database lain (semisal Oracle, Postgres, SQL Server) adalah sama dengan cara koneksi ke MySQL. Cukup dengan meng-import driver yang digunakan, lalu mengganti nama driver pada saat pembuatan koneksi baru. 3Sebagai contoh saya menggunakan driver pq untuk koneksi ke server Postgres, maka connection string-nya: 4Selengkapya mengenai driver yang tersedia bisa dilihat di https://github.com/golang/go/wiki/SQLDrivers. Bagaimana cara import data pada phpMyAdmin?Impor file SQL ke database MySQL. Masuk ke phpMyAdmin.. Di phpMyAdmin, di menu sebelah kiri, pilih nama database yang ingin Anda gunakan. ... . Di menu bagian atas, pilih Impor.. Gunakan Pilih file.. Temukan dan pilih file yang ingin Anda impor, lalu pilih Buka.. Di bagian bawah halaman, pilih Mulai.. Apa itu import database?Abstrak: Import data adalah proses mengambil data dari database lain misalkan Microsoft Access kedalam SQL Server 2008, bisa juga Microsoft Excel yang telah kira miliki dilakukan import data kedalam SQL Server 2008.
|