Sinopsis
db_load [-nTV] [-c name=value] [-f file] [-h home] [-P password]
[-t btree | hash | queue | recno] file
Açıklama
db_load yardımcı programı, standart girdiden okur ve veritabanı dosyasına yükler. Veritabanı dosyası zaten mevcut değilse oluşturulur.
db_load'a yönelik girdi, db_dump yardımcı programı veya yardımcı programları tarafından belirtilen çıktı biçiminde ya da aşağıdaki -T seçeneği için belirtilen biçimde olmalıdır.
Seçenekler aşağıdaki gibidir:
-c Girdiye dayalı olarak sahip olabilecekleri her değeri yoksayarak yapılandırma seçeneklerini belirtir. Komut satırı biçimi name=value şeklindedir. -c seçeneği tarafından desteklenen anahtar kelimelerin listesi için aşağıdaki Desteklenen Anahtar Kelimeler bölümüne bakın.
-f Standart girdi yerine belirtilen girdi dosyasından okur.
-h Veritabanı ortamı için bir ev (home) dizini belirtir.
Bir ev dizini belirtilirse, veritabanı ortamı DB_ENV->open işlevine yönelik Db.DB_INIT_LOCK, Db.DB_INIT_LOG, Db.DB_INIT_MPOOL, Db.DB_INIT_TXN ve Db.DB_USE_ENVIRON bayrakları kullanılarak açılır. (Bu, db_load'un diğer süreçler tarafından kullanımdayken veritabanlarına veri yüklemek için kullanılabileceği anlamına gelir.) DB_ENV->open çağrısı başarısız olursa veya hiçbir ev dizini belirtilmemişse, veritabanı yine de güncellenir, ancak ortam yoksayılır; örneğin, kilitleme yapılmaz.
-n Zaten var olan bir veritabanına yükleme yaparken veritabanındaki mevcut anahtarların üzerine yazmaz. Bu nedenle veritabanına bir anahtar/veri çifti yüklenemezse, standart hata çıktısında bir uyarı mesajı görüntülenir ve anahtar/veri çifti atlanır.
-P Bir ortam parolası belirtir. Berkeley DB yardımcı programları parola dizelerinin üzerini mümkün olan en kısa sürede yazsa da, ayrıcalıksız kullanıcıların komut satırı bağımsız değişkenlerini görebildiği veya yardımcı programların komut satırı bağımsız değişkenlerini içeren belleğin üzerini yazamadığı sistemlerde bir güvenlik açığı penceresi olabileceğini unutmayın.
-T -T seçeneği, Berkeley DB dışı uygulamaların metin dosyalarını veritabanlarına kolayca yüklemesini sağlar.
Oluşturulacak veritabanı Btree veya Hash türündeyse ya da keys anahtar kelimesi set olarak belirtilmişse, girdi eşleştirilmiş metin satırları olmalıdır; burada çiftin ilk satırı anahtar (key) öğesi ve çiftin ikinci satırı buna karşılık gelen veri (data) öğesidir. Oluşturulacak veritabanı Queue veya Recno türündeyse ve keys anahtar kelimesi ayarlanmamışsa, girdi metin satırları olmalıdır; burada her satır veritabanı için yeni bir veri öğesidir.
Metin girdisine, yeni satır (newline) ve ters eğik çizgi () karakterlerinin özel olduğu basit bir kaçış mekanizması uygulanır. Yeni satır karakterleri kayıt sınırlayıcıları olarak yorumlanır. Metindeki ters eğik çizgi karakterleri iki yoldan biriyle yorumlanacaktır: Ters eğik çizgi karakteri başka bir ters eğik çizgi karakterinden önce geliyorsa, çift harfi harfine ters eğik çizgi olarak yorumlanacaktır. Ters eğik çizgi karakteri başka bir karakterden önce geliyorsa, ters eğik çizgiyi takip eden iki karakter, tek bir karakterin onaltılık belirtimi olarak yorumlanacaktır; örneğin, a, ASCII karakter kümesinde yeni satır karakteridir.
Bu nedenle, metin girdisinde doğal olarak oluşan herhangi bir ters eğik çizgi veya yeni satır karakteri, db_load by yanlış yorumlanmayı önlemek için kaçış karakteriyle belirtilmelidir.
-T seçeneği belirtilirse, temel erişim yöntemi türü -t seçeneği kullanılarak belirtilmelidir.
-t Temel erişim yöntemini belirtir. -t seçeneği belirtilmemişse, veritabanı dökülen tiple aynı tipteki bir veritabanına yüklenecektir; örneğin, bir Hash veritabanı dökülmüşse bir Hash veritabanı oluşturulacaktır.
Btree ve Hash veritabanları birbirine dönüştürülebilir. Queue ve Recno veritabanları birbirine dönüştürülebilir. db_dump çağrısında -k seçeneği belirtilmişse, Queue ve Recno veritabanları, anahtar tam sayı kayıt numarası olacak şekilde Btree veya Hash'e dönüştürülebilir.
-V Kitaplık sürüm numarasını standart çıktıya yazar ve çıkar.
db_load yardımcı programı, bir Berkeley DB ortamıyla (-h seçeneği, DB_HOME ortam değişkeni için açıklandığı gibi veya yardımcı program bir Berkeley DB ortamı içeren bir dizinde çalıştırıldığı için) kullanılabilir. Bir Berkeley DB ortamı kullanırken ortam bozulmasını önlemek için, db_load'a her zaman ortamdan ayrılma ve düzgün bir şekilde çıkma şansı verilmelidir. db_load'un tüm ortam kaynaklarını serbest bırakmasını ve temiz bir şekilde çıkmasını sağlamak için ona bir kesme sinyali (SIGINT) gönderin.
db_load yardımcı programı, başarı durumunda 0, anahtar zaten mevcut olduğu için bir veya daha fazla anahtar/veri çifti veritabanına yüklenemediğinde 1 ve bir hata oluştuğunda >1 durumuyla çıkar.
Örnekler
db_load yardımcı programı, metin dosyalarını veritabanlarına yüklemek için kullanılabilir. Örneğin, aşağıdaki komut standart UNIX /etc/passwd dosyasını, oturum açma adı anahtar öğe ve tüm parola girdisi veri öğesi olacak şekilde bir veritabanına yükler:
awk -F: '{print $1; print $0}' < /etc/passwd |
sed 's/\/\\/g' | db_load -T -t hash passwd.db
db_load tarafından kaçış karakteri olarak yorumlanmasını önlemek için metinde doğal olarak oluşan ters eğik çizgi karakterlerinin kaçış karakteriyle belirtildiğine dikkat edin.
Ortam
DB_HOME -h seçeneği belirtilmemişse ve DB_HOME ortam değişkeni ayarlanmışsa, DB_ENV->open içinde açıklandığı gibi veritabanı evinin (home) yolu olarak kullanılır.
Desteklenen Anahtar Kelimeler
db_load yardımcı programına yönelik -c komut satırı seçeneği için aşağıdaki anahtar kelimeler desteklenir. Bu anahtar kelimelerin ve hangi değerlerin belirtilmesi gerektiğinin daha ayrıntılı açıklaması için DB->open sayfasına bakın.
Parantez içindeki liste, name=value çiftinin değer kısmının nasıl yorumlandığını belirtir. (boolean) olarak listelenen öğeler, değerin 1 (ayarlı) veya 0 (ayarsız) olmasını bekler. (number) olarak listelenen öğeler değeri bir sayıya dönüştürür. (string) olarak listelenen öğeler dize değerini değişiklik yapmadan kullanır.
bt_minkey (number) Sayfa başına minimum anahtar sayısı.
chksum (boolean) Sayfa sağlama toplamlarını (checksums) etkinleştirir.
database (string) Yüklenecek veritabanı.
db_lorder (number) Depolanan veritabanı meta verilerindeki tam sayılar için bayt sırası (byte order).
db_pagesize (number) Bayt cinsinden veritabanı sayfalarının boyutu.
duplicates (boolean) Db.DB_DUP bayrağının değeri.
dupsort (boolean) Db.DB_DUPSORT bayrağının değeri.
extentsize (number) Uzantı (extent) kullanacak şekilde yapılandırılmış Queue veritabanları için sayfa cinsinden veritabanı uzantılarının boyutu.
h_ffactor (number) Hash veritabanı içindeki yoğunluk.
h_nelem (number) Hash veritabanının boyutu.
keys (boolean) Queue veya Recno veritabanları için anahtarların mevcut olup olmadığını belirtir.
re_len (number) Belirtilen uzunlukta sabit uzunluklu kayıtları belirtir.
re_pad (string) Sabit uzunluklu kayıt dolgu karakterini belirtir.
recnum (boolean) Db.DB_RECNUM bayrağının değeri.
renumber (boolean) Db.DB_RENUMBER bayrağının değeri.
subdatabase (string) Yüklenecek alt veritabanı.
Ayrıca Bakınız
db_archive(1), db_checkpoint(1), db_deadlock(1), db_dump(1), db_printlog(1), db_recover(1), db_stat(1), db_upgrade(1), db_verify(1)
Darwin 3 Aralık 2003 Darwin