Powershell: Wyznaczanie różnicy w czasie

2016-08-28

Do pracy z czasem masz w Powershell dwa typy:

  • DateTime
  • TimeSpan

DateTime to prosta sprawa, ale co to jest TimeSpan? Timespan to właśnie ilość czasu jaki upłynął między dwoma punktami w czasie. Tę różnicę można wyrazić w godzinach, minutach, sekundach albo w… tickach. Tick to najmniejsza jednostka z jaką pracuje ten typ. Popatrz na przykłady:

Wynik odejmowania dwóch obiektów typu DateTime to TimeSpan

[DateTime]$start = Get-Date
[DateTime]$stop = $start.AddMinutes(3)
($stop - $start).GetType().Name

wynik to

TimeSpan

Jakie właściwości ma TimeSpan?

Kilka podstawowych to np. minutes, seconds, ticks. Jeśli zapytać ile minut i sekund minęło pomiędzy powyżej zadeklarowanymi punktami czasu, to okaże sie, że 3 minuty i 0 sekund. A co jeśli wynik ma przedstawić czas w sekundach? Czy czeka nas mnożenie ilości dni *24*60*60 plus ilość godzin*60*60 plus ilość minut*60 ? Nie. Do tego można się posłużyć właściwością TotalSeconds! Popatrz na przykład: Czytaj dalej »

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