Feeds:
Posts
Comments

Haloo … prenz … dah lama ane gak posting .. gak ada waktu dan kena penyakit M yaitu Malas :D

dah gak perlu banyak cat cit cot dah … Ane mau bagiin scripting buat backup/restore pake mysqldump dan teman temannya, dan ini running hanya di WINDOWS environment ya ..

——code_begin——–

@echo off

echo +—————————————————–+
echo + MySQL Database Backup Script +
echo + +
echo + By (c) Man’z, 2011 +
echo +—————————————————–+
rem — DB name area —
set mysql_db=db_hrms
rem ——————–

rem — MySQL server location —
set mysql_pos=”E:\mysql-5.1.30-winx64\bin”
rem —————————–

rem — MySQL host, user and password DB —
set mysql_server=-h<<IP_HOST>> -uroot -p<<password_root>>
rem —————————————

rem — Don’t touch this area —
set mysql_table_option=–add-drop-table –complete-insert –extended-insert –hex-blob –skip-comments –tables
set db_tables=..\%mysql_db%_tables.txt
rem —————————–

rem — Where is 7zip program for compression —
set zip_pos=”C:\Program Files (x86)\7-Zip”
rem ———————————————

rem — Where is data will be extracted —
set data_pos=e:\DataLog
rem —————————————

rem — From this point — don’t touch this area, otherwise you know what you do, take a risks —
for /f “tokens=1-5 delims=/ ” %%d in (“%date%”) do set dbdump=%mysql_db%-%%g-%%e-%%f
set pos=%data_pos%\%dbdump%

echo Creating directory [ %pos% ]
mkdir %pos%

echo Extracting Tables [ %mysql_db%_tables.txt ]
%mysql_pos%\mysql %mysql_server% %mysql_db% –execute=”show tables” > %data_pos%\%mysql_db%_tables.txt

echo dump Table [ %db_tables% ]
for /f “tokens=1-5 delims=/ ” %%a IN (%pos%\%db_tables%) do (
if %%a neq Tables_in_db_hrms (
echo Extracting Table [ %%a ]
%mysql_pos%\mysqldump.exe %mysql_server% –result-file=%pos%\%%a.sql %mysql_db% %%a )
)

echo Extracting Routine [ %mysql_db% ]
%mysql_pos%\mysqldump.exe %mysql_server% -R –no-create_info –no-data –skip-comments –triggers=FALSE –result-file=%pos%\routines.sql %mysql_db%

echo Compressing [ %data_pos%\%mysql_db% == %pos% ]
%zip_pos%\7z.exe a -mx=9 -ms=on -r %data_pos%\%mysql_db%\%dbdump% %pos%

echo Removing database directory [ %pos% ]
rd /S /Q %pos%

echo Removing Tables References [ %mysql_db%_tables.txt ]
del %data_pos%\%mysql_db%_tables.txt

echo Done

——code_finish——–

Save script diatas dengan backup_mysql.bat

Cara pakainya bagaimana ?, nih cara pakainya :

tinggal running aja backup_mysql.bat di command prompt

 

dan bagaimana untuk restoring nya :

——code_begin——–

@echo off

echo +—————————————————–+
echo + MySQL Database Restoration +
echo + +
echo + By (c) Man’z, 2011 +
echo +—————————————————–+

if “%1″==”” GOTO EmptyString_DB
if “%2″==”” GOTO EmptyString_Password
if “%3″==”” GOTO EmptyString_Data
if NOT EXIST %3 GOTO No_Files

echo + +
echo + Get the environment variables +
set mysql_pos=”c:\program files\mysql\mysql server 5.1\bin”
set data_pos=%3
set uname=root
set passwd=%2
set db=%1
set cur_pos=%CD%

echo + Processing … please wait +
for /r %cur_pos%\%data_pos% %%I in (*.*) do (
mysql –user=%uname% –password=%passwd% %db% –execute=”\. %%I”
)
echo + Finish restoring all database tables into database +
echo +—————————————————–+
goto Done

:EmptyString_DB
echo + +
echo + Message: Database not specified +
echo + +
goto Usages

:EmptyString_Data
echo + +
echo + Message: Restored data location isn’t specified +
echo + +
goto Usages

:EmptyString_Password
echo + +
echo + Message: No Password database is supplied +
echo + +
goto Usages

:No_Files
echo + +
echo + Message: No such file(s)/directories +
echo + +

:Usages
echo +—————————————————–+
echo + Usage: +
echo + restore_db db_name db_password data_pos +
echo +—————————————————–+

: Done

echo Thank you

——code_finish——–

Save file diatas dengan restore_db.bat

Cara pakai:

server> restore_bat <<databasename>> <<password>> <<nama_file_hasil_extracting>>

Catatan:

untuk restoring harus dijalankan langsung pada server yang sudah jalan mysqlnya ..

Salam,
8-)
Man’z

Hai hai hai … ketikan di awal dan di akhirtahun, cuman satu yang bisa saya ketik di blog ini … sharing sharing dah :mrgreen:

Sharing seorang Forensic Investigator :D

Apa sih yang dimaksud subject tersebut ?

Digital Evidence (DE) di definisikan sebagai informasi apapun yang disimpan atau ditransimisikan dalam bentuk digital.

*** Info dari Digital Evidence ini bisa diambil dan dipelajari dari :
o Digital Storage Media
o Monitoring Network Traffic
o Diduplikasi dari data yang ditemukan selama forensik berlangsung

*** Digital Evidence dapat ditemukan di file – file sebagai berikut :
o Gambar
o Audio atau video yang direkam
o Internet browser history
o Logs
o Email
o dan banyak lagi .. pokoke yang berbentuk Digital deh

*** Tingkat kesadaran dari Digital Evidence
1. Banyak dari organisasi/perusahaan dapat membawa file digital tersebut ke pengadilan sebagai bukti
2. Kalau dari pemerintahan digital evidence dapat dijadikan sebagai landasan dasar dari aktivitas teroris dan cara menanggulanginya

Jadi hasil dari tingkat kesadaran Digital evidence ini sangat penting bagi seorang forensic investigator untuk menambahkan wawasan terhadap penanganan digital evidence ini.

*** Aspek tantangan untuk Digital Evidence
Banyak dari forensic investigator mendapatkan banyak tantangan untuk menangani digital evidence ini
Selama investigasi berlangsung, digital evidence dapat berubah atau hilang tanpa jejak
Jadi kalau sudah seperti itu, maka seorang investigator bakal kesulitan untuk mendapatkan bukti digital atau paling tidak dari sisa sisa yang didapat selama investigasi berlangsung

*** Karakteristik dari Digital Evidence
Kalau sebuah bukti digital akan dibawa ke pengadilan sebagai bukti yang kuat, ada beberapa hal yang perlu diperhatikan yaitu :
1. Diterima: Bukti tersebut harus terkait dengan fakta aslinya
2. Otentik: Bukti tersebut harus nyata dan terkait dengan kejadian berlangsung
3. Lengkap: Bukti tersebut harus dijadikan landasan kuat dan dibuktikan bahwa itu adalah aksi dari attacker
4. Dapat diandalkan: Bukti tersebut tidak diragukan keasliannya alias not tampering
5. Dipercaya: Bukti tersebut harus jelas dan dimengerti oleh pengadilan

Mengapa semua harus dimiliki oleh sebuah bukti Digital ? karena secara naturalnya Digital Evidence itu seperti gelas yang mudah pecah, dapat diubah keasliannya dan mempersulit pada saat investigasi forensic

*** Tipe dari Data Digital
1. Volatile Data
Volatile data dapat diubah, biasanya berisikan jam sistem, user logged, network info, process info, process mapping, memory de es be

2. Non-Volatile Data
Non-Volatile data diperlukan untuk secondary storage dan jangka pemakaian sangat lama waktunya, seperti: hidden files, slack space, swap file,
index.dat files, unallocated clusters, unused partition, hidden partition, registry, event logs de es be juga

3. Transient Data
Biasanya berisikan open network connection, user login-logout, program yang berada dimemory (bisa dilihat process dari task manager ) dan cache data.
Transient data dapat hilang begitu saja kalau komputernya di mati’in

4. Fragile Data
Jenis data ini tersimpan di harddisk seperti last access time stamps, access date on files de es be

5. Temporary accessible Data
Biasanya sih Temp file, internet temporary files de es be yang temp temp an lah… kayak tempe gitu

6. Active Data
Wah ini mah data nya yang sering berubah-ubah

7. Archival Data
Data yang diarsipkan untuk penyimpanan dalam jangka lama biasanya sih records

8. Backup Data
Nah, kalo ini biasanya data yang diduplikasikan dan ditujukan untuk Disaster Recovery ( Materi Disaster Recovery dibahas di thread lain / dan seperti biasa … kalau sempat )

9. Residual Data
Ini adalah data yang disimpan di computer tetapi dengan status deleted, coba pake FileScavenger biasanya ada tuh muncul deleted filesnya

10. Metadata
Udah pada ngerti semua apa metadata ( gak di jelas in disini )

*** Aturan dari Digital Evidence
Data Digital Evidence yang akan di tayang kan di pengadilan haruslah mempunyai aturan main nya.
Jadi aturan tersebut seperti, kapan, bagaimana dan untuk apa bukti tersebut ditampilkan

Aturan yang baik adalah bukti dari digital tersebut tidaklah mengalami perubahan sedikitpun, bagaimana caranya ?
Nah inilah kerjaan dari forensic investigator.

Ada beberapa aturan yang dapat diikuti oleh seorang forensic investigator seperti:
1. Federal Rule of Evidence ( biasanya sih amrik )
2. International Organization on Computer Evidence ( IOCE )
3. Scientific Working Group on Digital Evidence ( SWGDE )

*** Beberapa Device yang dapat dipergunakan untuk Digital Evidence
1. Computer Systems: Harddisk, CDROM, DVDROM, USB Flash Disk, Flash Memory de es be
2. Access Control Devices: Smartcard, Dongle, Biometric Scanner
3. Answering Machine ( Mesin penjawab ) biasanya: telepon
4. CamDig ( Digital Camera )
5. Handheld Devices seperti PDA
6. Modem
7. Network Components: LAN, Routers, Hubs, Switchs, Server, Network cable and Connector
8. Pager ( jadul banget ya )
9. Printer
10. Removable Storage Device and Media: CDROM, DVDROM, Memory Card
11. Scanner
12. Telephone
13. Copier
14. Skimmers
15. Digital Watch
16. Faximile
17. GPS

Wadoh, banyak juga ya yang dapat dijadikan Digital Evidence ..

Pokoke: semua yang berkaitan dengan perangkat digital dapat dijadikan Digital Evidence

*** Mempelajari Digital Evidence
1. Penilaian Digital Evidence
Apa saja yang akan dijadikan digital evidence harus dinilai terlebih dahulu keakuratannya dan keasliannya
Dan disiapkan untuk proses akuisisi.

2. Akuisisi Digital Evidence
Sebelum dijadikan Digital Evidence, harus diperhatikan adalah pengambilan semua bukti digital atau sebagian.
Kalau dunia IT seperti perangkat komputer nya. Setelah itu dilakukan Imaging process atau duplikasi tanpa perubahan alias di copy plek plek plek plek gak boleh berubah
Dilakukan dengan cara Bit-Stream Copy alias bit per bit copying process. Kemudian dicheck untuk CRC nya dan MD5 hashing value.
Setelah itu di protect, supaya tidak berubah

3. Preservasi Digital Evidence
Ini mah status dari Digital Evidence nya bagaimana, apakah komputer itu dalam keadaan mati, hidup, atau hibernate, bahkan sleep

4. Pelajari dan Analisa Digital Evidence
Dilarang melakukan analisa dalam original digital evidence. Kenapa ? karena dapat berubah nilai dari bukti aslinya, dan lakukan lah pada copy machines/evidence

5. Dokumentasi dan Laporan Digital Evidence
Nah, setelah semuanya terkumpul, barulah dibuatkan dokumentasi dan laporan atas hasil dari Digital Evidence Forensics Analysis

Sudah ah … cape ngetiknya gan :mrgreen:

Hai prenz … last post di taon 2010 nih…

Karena ada kesibukan … (ngodink) hehehehe :mrgreen: jadi ketemu deh permasalahan nya, dulu mah gak pernah terpikirkan gimana caranya untuk deleting record dengan subquerying …

Subquerying biasanya dilakukan dengan select statement mulu kalo di mysql, nah sekarang kejadian deh pengen delete record dengan kondisi yang di subquerying tersebut.

Contoh kasus nya adalah saya pengen menghapus record yang sama pada tanggal yang sama akan tetapi ada kondisi field yang berbeda.

contoh data :


Nah yang dikotak merahin itu diatas kebanyakan untuk field cause = cause_ori, maka saya ingin menghapus yang data cause = cause_ori nya

kalau di select dengan perintah dibawah ini :

select ab.nip, ab.dated, ab.cause, ab.cause_ori, count(ab.nip) as maxcount
from absence ab
inner join
( select nip, dated, cause, cause_ori
   from absence
   where cause <> cause_ori
   group by nip, dated
   order by nip, dated
) as a on ab.nip = a.nip and ab.dated = a.dated
group by ab.nip, ab.dated
having count(ab.nip) > 1
order by ab.nip, ab.dated

mendapatkan hasil seperti :

Bejibun kan datanya dan itu double kalo di scroll ke bawah bahkan ada yang triple, dan gak mungkin saya looping satu persatu untuk menghapus data tersebut.

Nah, sekarang bagaimana ingin menghapus records yang buanyak tersebut dengan menggunakan perintah SQL Statements ???

Setelah putar – puter otak dan RTFM, maka didapat SQL statemen untuk delete seperti dibawah ini :

delete deleted.* from absence as deleted
inner join
(
   select ab.ab_id
   from absence ab
   inner join
   ( select nip, dated, cause, cause_ori
     from absence
     where cause <> cause_ori
     group by nip, dated
     order by nip, dated
    ) as a on ab.nip = a.nip and ab.dated = a.dated
   group by ab.nip, ab.dated
   having count(ab.nip) > 1
   order by ab.nip, ab.dated
) as joined on deleted.ab_id = joined.ab_id

sudah deh, dengan meng-execute statement tersebut … semua data yang tidak diinginkan … lenyap dari permukaan harddisk :mrgreen:

Segetoh dulu deh … dikhawatirkan lupa, mendingan sharing dengan teman-teman… siapa tahu ada yang perlu juga :mrgreen:

Salam,
8-)
Man’z

sobat semuanya … mo sharing ajah dikid .. siapa tahu bermanfaat :D

Mengenai Logical Volume Manager (LVM) di ubuntu, ini sepadan dengan Dynamic Disk nya di windows atau Dynamic Volume.

Ini berfungsi kalau sobat semuanya punya banyak harddisk tapi pengen jadi 1 atau beberapa mount point. Sebagai ilustrasi, misalnya punya 3x500GB, nah nanti totalnya adalah 1,5TB.

Tapi dalam demo / langkah dibawah ini , saya coba tidak segede itu, tapi sambil bermain di VirtualMachine yang mana menggunakan VirtualBox, mo bermain VirtualMachine untuk VirtualBox … silahkan pencet disini

Langsung saja, tanpa basa basi … supaya gag cape bacanya :

1. dengan menggunakan terminal console, login dengan superuser

manz@unix64:$ su ( enter )
root@unit64:/#

kalo gak bisa masuk, aktifkan dulu password untuk rootnya

manz@unix64:$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

nah setelah itu jalankan seperti step diatas.

2. Install LVM2 module
root@unix64:/# apt-get install lvm2

3. check partisi dahulu pake fdisk pake huruf L kecil ya parameter nya
root@unix64:/# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes
255 heads, 63 sectors/track, 1958 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00002ae6

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13       96256   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              13         864     6836224   83  Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3             864        1958     8794112   8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000115f9

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1305    10482381   8e  Linux LVM

disitu sudah tertera /dev/sda3 dan /dev/sdb1 sudah menjadi Linux LVM. kalau belum silahkan diganti dahulu. contoh dibawah ini :

root@unix64:/# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).

Command (m for help): t  <- ketik t untuk mengganti partisi yang akan diganti type nya
Partition number (1-5): 3  <- pilih partisi yang akan diganti
Hex code (type L to list codes): 8e   <- ketik 8e untuk menjadikan Linux VM

Command (m for help): w   <- ketik w untuk menuliskan
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Kalau dalam live system, harus menjalankan partprobe, istilah gampangnya adalah flushing partition write. ganti semua partisi yang akan dibuat LVM menjadi Linux LVM partition.

4. Buat Logical dan assign Volume

Physical Volume assignment
root@unix64:/# pvcreate /dev/sda3 /dev/sdb1
Physical volume “/dev/sda3″ successfully created
Physical volume “/dev/sdb1″ successfully created

Creating Volume Group
root@unix64:/# vgcreate vg_home /dev/sda3
Volume group “vg_home” successfully created
root@unix64:/# vgextend vg_home /dev/sdb1
Volume group “vg_home” successfully extended

Assign size to Volume Group
root@unix64:/# lvcreate -L10G -nopt vg_home
Logical volume “opt” created
root@unix64:/# lvcreate -L5G -nhome vg_home
Logical volume “home” created
root@unix64:/# lvcreate -L2G -ntmp vg_home
Logical volume “tmp” created

Activating Volume Group
root@unix64:/# vgchange -a y

5. format volume tersebut agar bisa dipergunakan

root@unix64:/# mke2fs -t ext4 -j /dev/vg_home/opt
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

root@unix64:/# mke2fs -j /dev/vg_home/home
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

root@unix64:/# mke2fs -j /dev/vg_home/tmp
mke2fs 1.41.11 (14-Mar-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

6. Sebelum bisa dipergunakan, mari kita buat mount point nya terlebih dahulu dan langsung mounting ke mount point tersebut

– create mount point
root@unix64:/# mkdir -p /mnt/lvm/home
root@unix64:/# mkdir -p /mnt/lvm/opt
root@unix64:/# mkdir -p /mnt/lvm/tmp

– mounting the mount point
root@unix64:/# mount /dev/vg_home/home /mnt/lvm/home
root@unix64:/# mount /dev/vg_home/opt /mnt/lvm/opt
root@unix64:/# mount /dev/vg_home/tmp /mnt/lvm/tmp

7. Periksa apakah sudah aktif dan mounted dengan benar
root@unix64:/# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             6.5G  2.7G  3.5G  44% /
none                  496M  268K  496M   1% /dev
none                  500M  232K  500M   1% /dev/shm
none                  500M   96K  500M   1% /var/run
none                  500M     0  500M   0% /var/lock
none                  500M     0  500M   0% /lib/init/rw
/dev/sda1              92M   40M   47M  46% /boot
/dev/mapper/vg_home-home
5.0G  139M  4.6G   3% /mnt/lvm/home
/dev/mapper/vg_home-opt
9.9G  165M  9.2G   2% /mnt/lvm/opt
/dev/mapper/vg_home-tmp
2.0G   68M  1.9G   4% /mnt/lvm/tmp

8. Supaya bisa permanent untuk mounting nya, edit dan tambahkan /etc/fstab
/dev/vg_home/home    /mnt/lvm/home    ext4    rw,user,exec    0    0
/dev/vg_home/opt    /mnt/lvm/opt    ext4    rw,user,exec    0    0
/dev/vg_home/tmp    /mnt/lvm/tmp    ext4    rw,user,exec    0    0

9. pindahkan directory yang sudah dibuat ke LVM, sebagai contoh untuk /opt :
root@unit64:/# mv /opt /mnt/lvm/
root@unit64:/# ln -s /mnt/lvm/opt /opt

10. untuk memeriksa dari Volume Group sudah ada :
root@unix64:/# vgdisplay
— Volume group —
VG Name               vg_manz
System ID
Format                lvm2
Metadata Areas        2
Metadata Sequence No  10
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                2
Act PV                2
VG Size               18.38 GiB
PE Size               4.00 MiB
Total PE              4704
Alloc PE / Size       4704 / 18.38 GiB
Free  PE / Size       0 / 0
VG UUID               rrNlAu-ND0p-2XmR-ldPw-aatb-T2fA-qI6aVX

Kalau sudah sukses semuanya … enak tuh bisa melakukan logical volume di ubuntu
atau disk-volume spanning di windows …
Enaknya kenapa ? karena kalau punya keterbatasan harddisk, dan pengen di add tanpa mengubah dari sistem contoh :
punya harddisk 2 (300GB) each dengan partisi :
/dev/sda1 /boot 100MB
/dev/sda2 /     100GB Linux ext3 / ext4
/dev/sda3       290GB LinuxVM
/dev/sdb1       300GB LinuxVM

, trus kurang, tinggal colok tambahin
dan lakukan extend volume ke harddisk ke-3 (300GB)

misalnya:
extending volume untuk /opt mount point
root@unit64:/# lvextend -L+300G /dev/vg_home/opt

trus apa yang terjadi ?

/dev/mapper/vg_home-opt [b]290G[/b]  165M  9.2G   2% /mnt/lvm/opt

bisa tambah gede segede 300GB lagi, jadi :

/dev/mapper/vg_home-opt [b]590G[/b]  165M  9.2G   2% /mnt/lvm/opt

Sekian dan terima kasih … mudah mudahan bermanfaat buat sobat semuanya. :mrgreen:

Salam,
8-)
Man’z

New Achievement

Dear All,

Long time not posting anything … because i’m concentration for :

no other comments, just awaiting one of another proof of certification at below one :

Ec-Council Disaster Recovery Professional

8-)

Number again in MySQL

Dear All,

Dah lama tak posting blog, ini postingan terakhir di tahun 2009, mudah – mudahan di tahun 2010 bisa lebih banyak memberikan informasi yang sedikit nyeleneh …

Lagi, kita berbicara masalah SQL yang tentunya di MySQL, karena saya berkutat di MySQL, kalo DB yang lain ??? hmm… boleh juga kali ya… cuma harus belajar lagi.

Nah, ada tuntutan dari gawean untuk memberikan penomoran kembali di laporan kapan karyawan itu masuk dan berapa orang  … ? merasa tertantang dengan gawean tersebut, saya coba aplikasikan dan putar otak terus sampe mabok dan akhirnya ada juga hasilnya nih …

Pengen hasilnya adalah seperti gambar dibawah ini :

Setelah postingan lama untuk menomorkan data dari 1 ~ n dari data awal sampe akhir, tapi kalo sekarang itu berbeda.

Data yang sama baru dihitung penomoran nya, tapi kalau misalnya ada data 4 orang, pengen nya penomoran awal dari record nomor 2 dan seterusnya. Pemodelan penomoran itu adalah dari tanggal kemudian nomor urutnya. :mrgreen: nyeleneh kan :lol:

Nah, setelah lihat gambar diatas, bagaimana query nya nih .. 8-) … putar – puter otak … dah yang baca blog ini gak perlu putar otak lagi, tinggal ganti table dan field yang diinginkan, trus hasilnya sama dengan gambar diatas, kalo gak sama berarti ada salah di query tuh….

Nih query yang saya buat pake MySQL :

select distinctrow mb.hire_date,
       if (t.rowId <> 0, concat(day(mb.hire_date), '.', t.rowId),
       day(mb.hire_date)) as number
from m_biodata mb
inner join
(
   select c.hire_date,
          @row := if (@hd = c.hire_date, @row + 1, 0) as rowId,
         (@hd := if (c.hire_date is null, '', c.hire_date)) as hd
   from (select @row := 0, @hd := '') as rowInit, m_biodata c
   order by c.hire_date
) as t on mb.hire_date = t.hire_date
order by mb.hire_date, number

Nah, gimana ? mudah kan … :mrgreen:

Sampai jumpa lagi InsyaAlloh di tahun 2010 dengan materi yang nyeleneh – nyeleneh … ah … dasar aya-aya wae :mrgreen:

Salam DBA,
8-)
Man’z

My Desktop Shoot’s

Ubuntu 9.10 Karmic Koala’s with Snow Leopard cita rasa

-No Comment-

Sebuah cita rasa yang aneh …. memang :mrgreen:

 

Salam,
8-)

Man’z

Follow

Get every new post delivered to your Inbox.