Hyper-V: Property ‚MaxInternalSize’ does not exist in class ‚Msvm_VirtualHardDiskSettingData’.

2016-08-21

O nie! Trochę niewinnej zabawy z dyskami pod Hyper-V skończyło się błedem:

There was a problem with one of the command line parameters. Either ‚TURING’ could not be found, or ‚C:\VM\SybaseFedora\SybaseFedora\Virtual Hard Disks\Test.vhdx’ is not a valid path.

No to kaplica – tam włsśnie miałem przygotowane środowisko testowe, które jest mi bardzo potrzebne! Na dodatek nie mam snapshota, do którego mógłbym szybko powrócić. Czy na prawdę jestem opóźnony znowu o kilka dni!?

error-hyper-v

Czytaj dalej »

WIndows Server: Brak pamięci. Pamięć zajęta przez Driver Locked

2016-08-21

Na moim serwerze pojawił się błąd „out of memory”. Zdarza się, ale akurat na tym serwerze nie powinno… Maszyna ma 16 GB RAM i dwie instancje SQL. Jedna z nich rzeczywiście zasobów potrzebuje nieco więcej, ale druga to właściwie utrzymuje kilka małych bazek. Badanie problemu, jak to zwykle zacząłem od sprawdzenia czy rzeczywiście brakuje pamięci. Wyglada na to, że cała jest wykorzystana.

 

image002

A jakie procesy ją zabrały? Może to wcale nie SQL? Posortowałem procesy wg. ilości pamięci i okazało się, że owszem – SQL zabiera najwięcej pamięci, ale daleko mu do 16GB, które znajdują się w systemie. Czytaj dalej »

Linux: Zmiana adresu IP na statyczny

2016-08-21

Niby prosta czynność, ale jeśli nie wykonujesz jej zbyt często… Linux Fedora 22:

Serwery zazwyczaj korzystają ze statycznych adresów IP. W aktualnej konfiguracji serwera adres był przyznawany przez DHCP. Jest to o tyle niewygodne, że przełączając się między różnymi sieciami, bądź wykonując restarty maszyny (o ile serwer DHCP nie przyznaje adresów w oparciu o MAC) serwer będzie otrzymywał różne adresy IP, co dalej będzie skutkować problemy z uruchomieniem i korzystaniem z usług serwera.

Konfiguracja karty sieciowej znajduje się w pliku /etc/sysconfig/network-scripts/ifcfg-eth0. Pamiętaj aby przed modyfikacją pliku przygotować kopię pliku np. tak:

net_01

Interfejs sieciowy skonfigurowany do pobierania adresu z DHCP może wyglądać następująco: Czytaj dalej »

SSIS: ISDeploymentWizard: „Not enough storage is available to complete this operation.”

2016-08-19

Aby zainstalować w SSIS Catalog nowe pakiety możesz po prostu dwa razy kliknąć na pakiecie. Jeśli środowisko jest poprawnie skonfigurowane spowoduje to uruchomienie ISDeploymentWizard, który krok po kroku poprowadzi do zainstalowania pakietu na serwerze. Niestety jeśli pakiet jest większy, to czasami na pewnym etapie deploymentu może dojść do błędu…. ja spotkałem:

The package failed to load due to error 0x8007000E „Not enough storage is available to complete this operation.”. This occurs when CPackage::LoadFromXML fails. ({079C0D8C-3D51-4EAD-A858-9D00784036D4}) Czytaj dalej »

Helpdesk: Nie widać całej pojemności pendrive

2016-08-17

Pokusiły mnie zabawy z Linuxem. Przygotowałem sobie wersję linuxa do uruchomienia z pendrive i… stało się. Od tej pory pod Windows z 4 GB pendrive widać tylko 5MB!

Dam radę pomyślałem… znam polecenia z linii komend, uruchamiam więc diskpart. I tu uwaga – narzędzie jest dość mocne, więc jeśli coś zrobisz nie tak możesz stracić dane!

Polecenie

list disk

powoduje wsyświetlenie zestawu dysków zainstalowanych na komputerze. Aktywny w danej chwili dysk (czyli ten z którym w danej chwili pracujesz) jest oznaczony gwiazdką. Jeśli żaden dysk nie jest oznaczony gwiazdką to wybierz go poleceniem:

select disk <numer dysku>

Aby się upewnić czy właściwy dysk został wybrany użyj ponownie list disk

disks Czytaj dalej »

SQL: Bezbolesna zmiana collation serwera SQL po instalacji

2016-08-10

Zazwyczaj wskutek złej komunikacji może okazać się, że serwer został zainstalowany z niepoprawnym collation. Generalnie każde collation jest dobre, ale problem zaczyna się wtedy, gdy na serwerze pojawia się baza danych ze swoim specyficznym collation i niektóre zapytania lub procedury kończą się błędem „collation conflict”.

Problem można próbować rozwiązywać na wiele sposobów.

Zdecydowanie najlepszy – tak zmienić kod zapytań, aby podczas odwoływania do obiektów serwerowych, tworzenia obiektów tymczasowych itp. Korzystać z collation bazy danych. Wystarczy w tym celu zazwyczaj dodać instrukcję COLLATE DATABASE_DEFAULT. Niestety jest to edycja kodu aplikacji, do którego nie zawsze masz dostęp.

Zmiana collation bazy danych, dość skomplikowany proces, bo wymaga właściwie utworzenia bazy danych na nowo ze wszystkimi obiektami korzystającymi z collation takiego jak na serwerze. Obiekty jak tabele, indeksy, procedury, funkcje trzeba zeskryptować, odtworzyć obiekty i zaimportować dane na nowo. Bardzo skomplikowane, długotrwałe i łatwo o pomyłkę, a na dodatek nie zawsze aplikacja pozwala na pracę z innym collation, więc nie zawsze ta metoda powinna być w ogóle brana pod uwagę.

Zmiana collation na serwerze. To trochę ostateczność, bo zmiana może zepsuć z kolei inne bazy danych zainstalowane na serwerze. Na dodatek zmiana collation wiąże się z przebudowaniem baz systemowych, innymi słowy utracone zostaną informacje o bazach danych, loginach, opcjach serwera, endpointach itp. Nic więc dziwnego, że i ta opcja nie jest mile widziana przez administratorów. Proces przebudowy systemowych baz danych polega na uruchomieniu komendy:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName  /SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]  /SQLCOLLATION=CollationName 

i jest opisany na stronach MS:  https://msdn.microsoft.com/en-us/library/ms179254.aspx

Okazuje się, że jest też nieoficjalny sposób zmiany collation na serwerze z wykorzystaniem opcji q Czytaj dalej »

By Rafał Kraik in SQL

SQL: Profiler nie zapisuje INSERT/UPDATE/DELETE

2016-07-05

Chciałem zpaisać w trace inforacje o tym ile czasu zajmuje insert do tabeli „printjob”. Developer podejrzewał, że coś jest nie tak po tronie SQL, a admin SQL czyli ja próbował się przed tym zarzutem obronić. Rzeczywiście – tabelka jak to tabelka, kilka tysięcy rekordów, struktura dość poprawna, brak triggerów, kluczy obcych itp. Zapisy powinny być szybkie.

Pierwszym krokiem było sprawdzenie ile czasu wykonuje się INSERT. Dodatkowo chciałem aby profiler nie łapał abyt wielu zdarzeń, więc dość restrykcyjnie ustawiałem filtry. W textdata chciałem np. złapać wyłączneie zdarzenia

LIKE ‚%insert%printjob%’

Niestety moje inserty się nie pokazywały. Baza nie ma procedur, i jakby nie partzeć, żeby dopisać rekord musiałoby się gdzieś wykonać INSERT….printjob.

Zaczynałem od:

  • batch starting / completed
  • statement starting / completed
  • SP starting / completed

ale dopiero dodanie

  • SP statement started / completed

pomogło.

W moim przypadku – SQL niewinny, a developer musi szukać dalej ;)

By Rafał Kraik in SQL