Menu Horisontal

Rabu, 02 Mei 2012

Mengenal SQL Server

Sumber : Sumber : http://sisawaktu.wordpress.com/2007/11/05/mengenal-sql-server/
Tulisan ini sebenarnya lebih bersifat dokumentasi pribadi, dari hasil trial and error (and error melulu) selama saya terjerumus ke pusaran sql server. Kalau Anda masih nekat mau baca juga, mari kita sepakati beberapa hal. Pertama, semua yang ditulis di sini dalam lingkungan sql server 2000. Memang sql server 2005 sudah setahun lalu beredar, tapi saya belum pernah membukanya. Jadi mungkin ada beberapa hal yang tidak kompatibel jika Anda jalankan di sql server 2005.
Kedua, saya menganggap Anda memiliki pemahaman komputer di level intermediate. Maksud saya, Anda sudah tahu bedanya database dengan tabel, dan bedanya fisik database dengan logic database. Beberapa istilah tidak saya terjemahkan, semata-mata karena saya tidak tahu bagaimana menterjemahkannya.
Ketiga, trik yang saya lakukan di sini, tidak sepenuhnya saya ketahui dampaknya terhadap aplikasi yang Anda tulis. Jadi berlakulah aturan tukang parkir: hilang/rusak tanggung sendiri.
Setuju tidak setuju, silakan teruskan membaca.
Instalasi
Pada saat instalasi, ada dua pertanyaan yang menarik. Pertama soal instance dan kedua masalah authentication mode.
Kalau Anda hanya punya satu server, dan tidak berencana melakukan replikasi, Anda bisa pilih instance ‘default’. Dengan opsi ini, SQL server Anda akan dikenal sebagai ‘local’, dan akibatnya Anda tidak bisa mengkoneksikannya ke SQL server Anda di mesin lain. Jika Anda mengisikan nama instance-nya, Anda bisa dapatkan server yang berfungsi penuh, dengan fitur replikasi dan sejenisnya.
Untuk authentication mode, Anda punya dua opsi: Windows authentication mode, atau Mixed mode. Jika Anda pilih Windows authentication, Anda hanya bisa login ke SQL server dari komputer lokal. Jika ingin menggunakannya dalam jaringan, Anda harus mengeset jaringan Anda dalam modus domain, kemudian tiap user domain itu Anda beri hak akses ke SQL server. Namun jika Anda memilih Mixed mode, Anda bisa login menggunakan keduanya: user domain atau user SQL. Jika jaringan Anda dibangun dalam modus workgroup, Anda bisa tetap login menggunakan user default SQL yaitu ‘sa’.
Namun sebetulnya kedua opsi ini bisa Anda ubah setelah Anda selesai menginstall. Yaitu dari Enterprise Manager, di menu ‘Edit SQL Server Registration Properties’.
Service Manager
Icon tray yang nongol ini berisi tiga hal: SQL Server itu sendiri, SQL Server Agent, dan Data Transformation Service (DTS). Server Anda sebaiknya menghidupkan otomatis ketiga service ini setiap kali Windows dinyalakan.
SQL Server jelas dipakai untuk menjalankan server SQL Anda. Sedangkan SQL Server Agent banyak berguna untuk scheduled jobs, seperti misalnya scheduled backup. DTS sendiri digunakan untuk menjalankan ekspor-impor data, ke dan dari berbagai format database.
Books Online
It’s all in the docs. Okelah, ngga semua, nyaris semua. Dokumentasi sql server termasuk lengkap, dengan bahasa ‘international english’, disertai topik-terkait dan step-by-step guidance. Lumayan untuk belajar, kalau Anda ada waktu. Lumayan juga untuk troubleshoot, tinggal search. Hasil search-nya juga dipilah per topik/section.
Anda bisa membaca online help ini tanpa terkoneksi ke internet, bahkan tanpa menyalakan sql server-nya.
Path Fisik Database
File database di SQL server disimpan dalam bentuk [namadatabase].mdf sedangkan log-nya dalam [namadatabase].ldf. Anda bisa menaruhnya di lokasi default, yaitu di c:\program files\microsoft sql server\mssql\data atau ke direktori lain, atau partisi lain.
Saya belum menemukan cara untuk me-restore database ini dari bentuk mdf-nya. Namun setidaknya Anda harus yakin file .mdf ini tidak kena virus, atau korup. Anda tidak bisa men-defrag drive hard disk yang berisi file .mdf ini tanpa mematikan SQL server. Jika dipaksakan, database Anda dianggap korup (suspect). Cobalah me-restart SQL server, sambil berdoa agar semuanya berjalan normal kembali…
Query Analyzer
Hati-hati bermain-main di wilayah ini. Syntax sql apapun yang Anda tulis di situ, akan langsung dieksekusi ke database Anda. Oya, jangan lupa pilih nama database Anda di drop-down menu di bagian atas toolbar. Kalau lupa, perintah sql Anda bisa nyasar.
Ups, tadi saya tulis ‘langsung dieksekusi’ ya? Gunakan tanda centang untuk mengecek syntax sql Anda, tanpa mempengaruhi database. Kalau analyzer bilang ‘command executed successfully’, baru jalankan ke database memakai tanda panah. Message-nya sih sama saja, tapi dengan tanda panah ini database Anda sudah berubah.
Dua syntax yang paling sering dipakai adalah INSERT untuk menambah record, dan ALTER untuk mengubah record (atau bahkan struktur tabel). Contohnya, jika tabel Anda dilindungi trigger, ketikkan ALTER table [namatabel] disable trigger [namatrigger] untuk menonaktifkan sementara trigger itu. Ganti disable dengan enable jika Anda akan mengaktifkannya kembali.
Import and Export Data
Anda akan masuk ke menu DTS. Aneh ya, kenapa menu-nya ngga dinamain DTS aja sekalian. Di sini Anda bisa mengekspor database sql Anda ke Access, Excel, csv, dan segala macam bentuk database lain.
Sejauh yang saya coba, ekspor data ke Access tidak menyertakan trigger dan stored procedures. Ekspor ke Excel jelas hanya meng-copy tabel-tabel ke sheet-sheet di file Excel. Kecuali Anda berniat mempelajari struktur dan relasi antar-tabel, mungkin ekspor data ini kurang banyak berarti.
Untuk impor data dari Acces, anehnya, seringkali error. Tidak semua baris terambil dengan baik, ada saja baris-baris terakhir yang hilang. Jadi jika Anda berniat menginput lewat ‘jalan belakang’, gunakan saja excel. Namun jangan lupa jumlah kolom harus sama persis, dan baris pertama sheet Anda harus berisi nama kolom yang sama dengan nama kolom di tabel sql. Jika tidak, baris pertama di excel Anda akan diabaikan.
Enterprise Manager
Sepertinya inilah ‘jantung’ sql server yang bisa diutik-utik dengan GUI. Namun selain setting user dan password-nya, Anda sepertinya bisa meng-override hampir semua setting di sini langsung dari aplikasi front-end Anda, dengan membuat hardcode sesuai syntax-syntax di manual.
Di sini Anda bisa me-restore database, membuat backup database otomatis, bahkan memproteksi enterprise manager itu sendiri!
Caranya, buka tab security di sebelah kiri. Lalu ubah properties user ‘sa’, masukkan password untuk ‘sa’ dua kali. Kemudian user administrator/system, bikin ‘deny’. Lantas di nama sql instance kita, klik kanan dan pilih ‘edit sql server registration properties’. Di tab security, centang opsi ‘always ask password’. Klik OK, Anda akan di-disconnect dan diminta password ‘sa’ untuk connect kembali ke sql server.
Hati-hati jangan lupa password ini, atau Anda terpaksa menghapus instance itu dan membuat instance baru.
Membuat Instance Baru
Gampang. Klik kanan sql server group, lalu pilih ‘new sql server registration’. Ini berguna kalau Anda lupa password sa Anda, atau tiba-tiba Anda menyesal telah memilih ‘default’ waktu instalasi dan memerlukan named instance. Langkah-langkahnya mirip waktu instalasi, hanya saja sekarang Anda tidak perlu instal sql server-nya.
Anda bisa punya dan menjalankan beberapa instance sekaligus. Namun Anda harus punya prosesor dan RAM yang cukup untuk itu. Selain itu juga tergantung pada versi sql server Anda. Personal edition hanya bisa satu instance saja yang hidup, sedangkan enterprise edition nyaris tak terbatas. Omong-omong, saya belum paham, untuk apa kita punya banyak instance kalau dalam satu instance bisa ada banyak database?
Restore Database
Ada satu hal penting yang perlu Anda perhatikan waktu me-restore database ini: pilih opsi ‘force restore over existing database’. Dengan opsi ini, database lama Anda yang bernama sama akan di-overwrite oleh database yang baru. Saya tidak yakin jika opsi ini tidak dipilih, apakah database akan di-restore secara incremental atau malah tidak diapa-apain, karena dianggap sudah ada (is it in the docs?).
Hal lain yang biasanya menyebabkan restore database gagal adalah Anda lupa memasukkan path ke lokasi fisik database. Lokasi ini bisa di mana saja, bahkan di remote hard disk sekalipun, namun folder yang Anda maksud harus sudah ada sebelumnya. Sql server tidak bisa membuat folder ke hard disk. Dan jangan iseng di-rename, karena database Anda tidak akan bisa terbaca lagi oleh sql server!
Backup Database Otomatis
Untuk menjalankan ini, sql server agent harus aktif sebagai service. Buka tab management di Enterprise Manager, lalu pilih New Database Maintenance Plan. Di sini Anda bisa menentukan database mana yang akan Anda backup otomatis. Tentukan juga lokasinya, jangan lupa buat dulu folder-nya dan jangan usil di-rename lagi. Anda bisa memilih frekuensi backup. Apakah harian, mingguan, bulanan, atau bahkan tiap jam! Kemudian jangan lupa pilih opsi untuk menghapus backup yang telah lama, apakah berapa hari atau berapa minggu. Jika tidak, harddisk Anda akan dipenuhi backup data ini.
Untuk mengeditnya lain waktu, Anda cukup klik kanan dan edit parameter di dalamnya. Sederhana tapi nyata.
Mereplikasi Database
Saya tidak tahu bagaimana mengkoneksikan database hasil replikasi ke aplikasi Anda. Sepertinya itu sangat tergantung dengan bahasa pemrograman Anda, masing-masing berbeda gayanya.
Replikasi ini mungkin berguna jika mesin server sql Anda tiba-tiba rusak, maka mesin lainnya akan berjalan sebagai mirror. Berbeda dengan backup data yang harus Anda restore dulu (itupun setelah mesin-nya hidup normal kembali), mesin mirror bisa langsung mengambil alih secara real-time.
Tentu saja, dari Enterprise Manager Anda tinggal mendaftarkan mesin mirror Anda, lalu memilih database mana yang akan direplikasi. Tentukan juga mana yang akan bertindak aktif: dikirim dari mesin asal atau di-request dari mesin mirror, dan berapa lama interval replikasi ini Anda perlukan. Pertimbangkan beban jaringan pada saat replikasi ini dilakukan, karena database sql bisa mencapai puluhan megabyte.

Tidak ada komentar: