Signal 31 Itu Karena Kena Batasan Besar File
October 11, 2006 by maseko Masih terkait dengan permasalahan yang saya tulis sebelumnya yaitu ketika menyalin isi tape DDS ke dalam hardisk ternyata ketika file mencapai besar sekitar 2 GB proses berhenti dan memberikan pesan “signal 31: core dumped”. Belum menemukan solusinya, datang lagi satu buah tape DDS untuk keperluan yang sama dan kebetulan mengalami permasalahan yang sama.
Hal yang sama dari proses penyalinan yang gagal:
- permasalahan menimpa hanya pada tape DDS yang diperkirakan mempunyai data besar.
- sesaat setelah proses penyalinan berhenti, file hasil yang terbentuk besarnya sama yaitu 2.147.483.136 byte
Tiba-tiba saja terpikir, kalau semua itu karena masalah besar file maksimum yang dimungkinkan oleh sistem, dalam hal ini SCO Open Server. Karena belum paham mengenai mesin unix ini, yang terpikir dan saya lakukan kemarin adalah memecah apa yang dibaca dari tape DDS ke file dengan maksimal 1 GB per bagiannya. Perintah yang saya ketikkan
split -b 1024m /dev/rct0 /tujuan/nama_file
Hasilnya file-file salinan di hardisk terpecah menjadi nama_fileaa, nama_fileab dan nama_fileac. Kalau filenya lebih besarlagi tentu akan menjadi nama_filead, nama_fileae dan seterusnya. Setelahnya saya download ke PC Windows yang akan memanfaatkan file yang merupakan dump Oracle tersebut. Sempat bingung bagaimana menggabungkannya. Bertanya ke teman, tidak tahu juga bagaimana enaknya. Teringat ada perintah type di Comand Promt-nya Windows (sama dengan DOS?), langsung dicoba:
type nama_fileaa >> namafile.dmp
Setelah proses selesai dilanjutkan ke file berikutnya
type nama_fileab >> namafile.dmp
dan
type nama_fileac >> namafile.dmp
Akhirnya ketiganya tergabung dalam file namafile.dmp. File ini yang diimport ke Oracle di Windows dan hasilnya sukses.
Tadi, sebelum menulis ini sempat googling mengenai batasan besar file maksimum di SCO Open Server, dan menemukan adanya command ulimit yang dapat digunakan. Perintah ini digunakan untuk melihat dan mengeset batasan besar file yang dapat dituliskan. Langsung dicoba:
# ulimit
Hasilnya: 4194303
Lho? Ternyata baca man ulimit belum teliti. Itu menunjukan besar file dalam blok 512-byte. Jadi besar file adalah 4194303*512=2147483136. Cocok dengan besar file ketika proses penyalinan berhenti sebelumnya.
Untuk mengeset, dapat menggunakan option -f
# ulimit -f 8388606
Kira-kira itu yang dapat saya ketikkan jika misalnya akan mengubah batasan besar file yang mungkin dituliskan menjadi dua kai lipatnya. Tapi tidak saya lakukan, takut yang punya server kenapa-kenapa.

Posted in 






dah dicoba ulimit -f -1 ,(mungkin) artinya unlimited