wtorek, 18 sierpnia 2009

Trochę humoru z reklam

Humoru też dawno nie było! Dlatego wrzucam troszkę reklam, które są wg mnie "masterpiece" ^^






piątek, 7 sierpnia 2009

(Nie?)istniejąca ścieżka do bazy danych - błąd SQL1052N w DB2

Trwają moje przygotowania do certyfikatu DB2 Administrator, więc chyba troszkę zmienię tematykę bloga z programowania na bazy danych. Zwłaszcza, że ostatnio prawie nic nie piszę to może tym nadrobię :)

Podczas nauki zawiłej komendy CREATE DATABASE natrafiłem na dziwny błąd, gdy chciałem utworzyć bazę danych w podanej lokalizacji.
Komenda:
db2 => create database hellodb on f:\bazydb2\
zwróciła mi błąd treści:
SQL1052N  Ścieżka bazy danych "F:\bazydb2\" nie istnieje.

Upewniłem się 2x, że dany katalog istnieje (a nawet jeśli nie to chyba powinien zostać utworzony?). Zasięgnąłem więc do helpa:
db2 => ? SQL1052N


SQL1052N Ścieżka bazy danych "<ścieżka>" nie istnieje.

Objaśnienie:

Ścieżka podana w parametrze "<ścieżka>" bieżącej komendy jest
niepoprawna. Albo nie ma ścieżki o takiej nazwie, albo ścieżka została
określona, podczas gdy zmienna rejestrowa DB2_CREATE_DB_ON_PATHS jest
wyłączona (tylko w systemie Windows).

...

I odpowiedz znaleziona. Bardzo dziwne, że nie można pod windowsem tworzyć bazy danych w dowolnym katalogu domyślnie. W dalszej części wyjaśnienia kodu błędu dotyczącym możliwych akcji znajdowało się wyjaśnienie:
*  W systemie Windows, jeśli wszystkie aplikacje, które będą się łączyły
z bazą danych, są zbudowane przy użyciu interfejsu API co najmniej w
wersji 9, wtedy można włączyć zmienną środowiskową
DB2_CREATE_DB_ON_PATHS, aby obsługiwała tę ścieżkę jako ścieżkę bazy
danych.


Ok, ale żeby możliwe było utworzenie bazy w podanej lokali należy wykonać komendę:
db2set DB2_CREATE_DB_ON_PATH=YES
A następnie po tym konieczny restart usługi zarządzającej bazami danych:
db2stop
2009-08-07 14:47:50 0 0 SQL1064N Działanie menedżera baz danych zakończyło się poprawnie.
SQL1064N Działanie menedżera baz danych zakończyło się poprawnie.

db2start
2009-08-07 14:47:56 0 0 SQL1063N Komenda DB2START została wykonana poprawnie.
SQL1063N Komenda DB2START została wykonana poprawnie.


I sprawdzamy czy można już utworzyć:
db2 => create database hellodb on f:\bazydb2
DB20000I Wykonanie komendy CREATE DATABASE zakończyło się pomyślnie.

:)

Przy okazji znalazłem błąd w pomocy DB2. W informacji o błędzie podana jest zmienna DB2_CREATE_DB_ON_PATHS, natomiast faktycznie istnieje DB2_CREATE_DB_ON_PATH. Poszukam gdzie to można zgłosić.