Posts Tagged ‘ mysql ’

Memanfaatkan Crontab untuk backup database MySQL secara otomatis

Pada postingan saya sebelumnya, telah sedikit dijelaskan mengenai crontab, dan sekarang kita akan mencoba memanfaatkan crontab + shell scripting di linux (ubuntu) untuk membuat penjadwalan backup database MySQL (backup database secara otomatis). Berikut langkah-langkahnya :
1. Buat sebuah file (linux shell scripting) yang melakukan dump/backup database bernama test, misalnya file bernama backup_auto.sh dan disimpan di /home/sigit/

tgl='date +%Y%m%d_%H%M%S';
name=backup_test_$tgl.sql ;
mysqldump -uroot -ppass test > /home/sigit/$name;

baris 1 adalah kode membuat format penamaan file backup (berdasarkan tanggal).
baris 2 adalah kode membuat format file backup.
baris 3 adalah kode untuk membackup database mysql bernama test.
Contoh file hasil backup adalah : backup_test_20100330_210000.sql (Backup tanggal 30 Maret 2010 pukul 21.00).
2. Langkah selanjutnya yaitu men-set file backup_auto.sh sebagai executable file.

sudo chmod +x /home/sigit/backup_auto.sh

3. Langkah terakhir yaitu setting crontab untuk menjalankan file backup_auto.sh berdasarkan jadwal yang di tentukan.

sudo crontab -e

buat jadwal seperti berikut :

0 21 * * 1-5 /home/sigit/backup_auto.sh 2>&1 >> /home/sigit/backup_auto.log

Maksud dari contoh diatas adalah kita membuat jadwal eksekusi backup_auto.sh (file eksekusi backup database test secara otomatis) pada setiap hari kerja (senin-jumat) pukul 21.00 dan menyimpan log/catatan ke file backup_auto.log untuk memeriksa aktivitas dan memudahkan pemeriksaan jika terjadi trouble saat eksekusi .

Demikian posting kali ini. Semoga membantu.

Advertisements

Install Sphinx Search di Ubuntu 9.10 dengan MySQL Support

Kemaren iseng-iseng (sebenernya bukan iseng sih, dapet tugas kuliah) untuk menginstall sphnix search, setelah coba-coba akhirnya berhasil juga nginstall  sphinx search di ubuntu, walaupun agak susah awalnya (nginstall aja susah, tinggal next-next doang), maklum lah masih newbie. Pada awalnya saya coba install di windows XP dan lancar-lancar aja, tapi pas nyoba di linux awal-awalnya gagal, tapi untung berhasil juga. Sekedar info aja, saya install sphinx search versi 0.9-9 dan OS Ubuntu 9.10 Karmic. Berikut kronologis instalasinya :

1. Download Sphinx Search dari situs aslinya.
2. Install Mysql, kali ini Mysql yang saya pakai adalah versi 5.1

sudo apt-get install mysql-server-5.1

3. Install Paket yang dibutuhkan, yaitu mysql client library

apt-get install gcc make libmysqlclient15-dev libmysql++-dev

4. Compress hasil download-an sphinx ke lokasi favorit kamu, misalnya di /home

tar xvfz sphinx-0.9-9.tar.gz

5. Setelah proses ekstraksi selesai, masuk ke direktori sphinx

cd /home/sigit/sphinx-0.9-9

6. Jalankan konfigurasi (ini konfigurasi untuk yang menggunakan mysql support)

./configure --prefix=/usr/local/sphinx --with-mysql

7. Setelah selesai konfigurasi, lakukan proses compile

make
make install

Setelah itu apa lagi ya, lupa ane, tunggu diinget-inget dulu……………………………… kayanya udah selesai deh proses instalasinya.
Sekarang waktunya konfigurasi sphinx nya.
8. Masuk ke direktori Sphinx

cd /usr/local/sphinx/etc

ini tergantung dari tempat konfigurasi pada saat proses nomor 6 tadi.
9. Buat klonengan dari file default konfigurasi

sudo cp sphinx.conf.dist sphinx.conf

10. Lakukan sedikit modifikasi, terutama untuk konfigurasi databasenya, ini sedikit cuplikan file sphinx.conf

.............................
# known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
type					= mysql
#####################################################################
## SQL settings (for 'mysql' and 'pgsql' types)
#####################################################################
# some straightforward parameters for SQL source types
sql_host				= 127.0.0.1
sql_user				= root
sql_pass				= password
sql_db				= test
sql_port				= 3306	# optional, default is 3306
# UNIX socket name
.............................

Oh iya lupa gan, sebelumnya di import dulu database contohnya yang ada di /home/***/sphinx-0.9-9/examples.sql ke database mysql yang tadi baru diinstall (kalo yg ini cari tahu ndiri ya caranya)
11. Kalo udah selesai konfigurasi, coba deh tes sphinx nya. caranya gini :

sudo /usr/local/sphinx/bin/indexer --all

Kalo ngga error (kaya di komputer gw ::sombong mode on::) hasilnya seperti ini :

Sphinx 0.9.9-rc2 (r1785)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/usr/local/sphinx/etc/sphinx.conf'...
indexing index 'software'...
collected 10 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 10 docs, 649 bytes
total 0.013 sec, 48970 bytes/sec, 754.54 docs/sec
total 2 reads, 0.000 sec, 16.3 kb/call avg, 0.0 msec/call avg
total 5 writes, 0.000 sec, 0.4 kb/call avg, 0.0 msec/call avg

kalau udah gitu berarti kita berhasil melakukan crawler terhadap data. buat ngetes pencariannya, caranya gini :

/usr/local/sphinx/bin/search query

misalnya gini :

/usr/local/sphinx/bin/search test

maka hasilnya harusnya gini :

sigit@sigit-laptop:/usr/local/sphinx/etc$ /usr/local/sphinx/bin/search test
Sphinx 0.9.9-release (r2117)
Copyright (c) 2001-2009, Andrew Aksyonoff

using config file '/usr/local/sphinx/etc/sphinx.conf'...
index 'test1': query 'test ': returned 3 matches of 3 total in 0.009 sec

displaying matches:
1. document=1, weight=2, group_id=1, date_added=Tue Mar  2 09:41:24 2010
	id=1
	group_id=1
	group_id2=5
	date_added=2010-03-02 09:41:24
	title=test one
	content=this is my test document number one. also checking search within phrases.
2. document=2, weight=2, group_id=1, date_added=Tue Mar  2 09:41:24 2010
	id=2
	group_id=1
	group_id2=6
	date_added=2010-03-02 09:41:24
	title=test two
	content=this is my test document number two
3. document=4, weight=1, group_id=2, date_added=Tue Mar  2 09:41:24 2010
	id=4
	group_id=2
	group_id2=8
	date_added=2010-03-02 09:41:24
	title=doc number four
	content=this is to test groups

words:
1. 'test': 3 documents, 5 hits

index 'test1stemmed': query 'test ': returned 3 matches of 3 total in 0.000 sec

displaying matches:
1. document=1, weight=2, group_id=1, date_added=Tue Mar  2 09:41:24 2010
	id=1
	group_id=1
	group_id2=5
	date_added=2010-03-02 09:41:24
	title=test one
	content=this is my test document number one. also checking search within phrases.
2. document=2, weight=2, group_id=1, date_added=Tue Mar  2 09:41:24 2010
	id=2
	group_id=1
	group_id2=6
	date_added=2010-03-02 09:41:24
	title=test two
	content=this is my test document number two
3. document=4, weight=1, group_id=2, date_added=Tue Mar  2 09:41:24 2010
	id=4
	group_id=2
	group_id2=8
	date_added=2010-03-02 09:41:24
	title=doc number four
	content=this is to test groups

words:
1. 'test': 3 documents, 5 hits

:hore::hore::hore: berhasil berhasil berhasil.
Segitu dulu tutorial post-an ane kali ini ya temen-temen ::imut mode on:: Besok-besok ane bakal post lagi tentang gimana caranya masang di PHP.

About Sphinx Search (ane kopas dari situs aslinya):
Sphinx is a full-text search engine, distributed under GPL version 2. Commercial licensing (eg. for embedded use) is also available upon request.

Generally, it's a standalone search engine, meant to provide fast, size-efficient and relevant full-text search functions to other applications. Sphinx was specially designed to integrate well with SQL databases and scripting languages.

Currently built-in data source drivers support fetching data either via direct connection to MySQL, or PostgreSQL, or from a pipe in a custom XML format. Adding new drivers (eg. to natively support some other DBMSes) is designed to be as easy as possible.

Search API is natively ported to PHP, Python, Perl, Ruby, Java, and also available as a pluggable MySQL storage engine. API is very lightweight so porting it to new language is known to take a few hours.

As for the name, Sphinx is an acronym which is officially decoded as SQL Phrase Index. Yes, I know about CMU's Sphinx project.


Semoga bisa dimengerti 😀