2014-09-05
MSDTC jest jedną z bardziej tajemniczych usług wykorzystywaną przez między innymi MS SQL server. Administrator Windows woli tego nie dotykać, bo to SQL, a administrator SQL uparcie twierdzi, że to komponent modelu COM, więc Windows…
Ponieważ jednak w przypadku problemów z MSDTC cierpi baza danych czasami trzeba wziąć zadanie w swoje ręce. W moim przypadku uruchamiana była procedura, która miała zmodyfikować dane na serwerze SQL zdalnym. Ta procedura wywoływana była w lokalnym triggerze. Jest to transakcja rozproszona i MSDTC jestt tu konieczne. Polecenia kończyły się błędem:
OLE DB provider „SQLNCLI10” for linked server „XYZ” returned message „The partner transaction manager has disabled its support for remote/network transactions.”.
Msg 7391, Level 16, State 2, Procedure SyncClientList, Line 42 The operation could not be performed because OLE DB provider „SQLNCLI10” for linked server „XYZ” was unable to begin a distributed transaction.
Po piwersze należy sprawdzić czy usługa Distributed Transaction Coordinator jest włączona na obu serwerach.
Po drugie skonfigurować obie usługi do tego, aby ze sobą rozmawiały. W tym celu:
1. Start >> Administrative tools >> Component Services
2. Kliknij prawym na Local DTC i wybierz properties

3. Skonfiguruj opcje, jak widać na obrazku

Czytaj dalej »
2014-08-19
Czy możemy w jakiś sposób zablokować logowanie użytkowników do bazy danych z konkretnego serwera?
Klient zgłasza problem że użytkownicy czasem się mylą i w momencie logowania do aplikacji z serwera produkcyjnego zamiast logowania do produkcyjnej bazy danych wpisują testową bazę i na odwrót.
Można. Zastosuj Logon trigger np taki:
USE Master
GO
CREATE TRIGGER DenyLogonTrigger
ON ALL SERVER
FOR LOGON
AS
BEGIN
DECLARE @HostName varchar(50)
SET @HostName = HOST_NAME()
if @HostName = 'SERVER01′ –NAZWA ZAKAZANEGO HOSTA
BEGIN
RAISERROR(’LOGIN FROM WPPL0ITA082′, 15,1) WITH LOG –KOMUNIKAT DO ZAPISANIA W LOGACH, jeżeli w ogóle taki ma być.
ROLLBACK
END
END
GO
Komunikat uzyskiwany u klienta wygląda następująco

2014-08-18
Jedna prosta komenda zwróci zapisy z logu systemowego o ostatnio wykonywanych restartach Windows. W logu znajduje się też informacja o tym kto zainicjował restart.
Get-EventLog -LogName System -Source „USER32” | ? {$_.EventID -eq 1074} | select -First 10 | ft -wrap
2014-08-16
Podczas instalacji Cummulative Update wszystkie usługi SQL zostały wyłączone. Takie postępowanie pomaga uniknąć konieczności restartu po zainstalowaniu update. Po włączeniu usług, od razu próbowałem się zalogować na serwer. Niestety próba kończyła się komunikatem:
Login failed for user 'DOMAIN\USERNAME’. Reason: Server is in script upgrade mode. Only administrator can connect at this time. [CLIENT: 11.22.33.44]
Czyżbym coś zrobił nie tak? Otóż nie. Wszystko jest ok. ów „Script update mode” to tylko czas poświęcony na upgrade baz systemowych. Po uruchomieniu serwera uruchomiły się te procedury i to trochę czasu zajmuje. W tym czasie chociaż serwer działa, nie można się na niego zalogować. Nie wierzysz? Zajrzyj do pliku ERRORLOG. Łyknij kawy i poczekaj. Kiedy skrypty się uruchomią, będzie się można zalogować.
2014-08-05
Wykonuję:
$query = logman query -s server01
W zmiennej $query pojawia się:
Collection Type Status
---------------------------------------------------------------
XXXXX Counter Stopped
YYYYY Counter Running
System Overview Counter Stopped
capacity Counter Running
Teraz chcę sprawdzić czy w $query jest chociaż jeden napis, który zawiera w sobie tekst „capacity”. Rozsądne wydawałoby się:
$query -contains 'capacity’
… ale wynik to $false ! Dlaczego!? Oto odpowiedż: Czytaj dalej »
2014-08-05
Oooo ładne narzędzie do migracji raportów z jednego serwera RS do innego. Filozofia dość prosta:
1. Podłącz się do istniejącego Reporting Services i wybierz jaki katalog/raporty zeskryptować
2. Uruchom wygenerowane skrypty na innym serwerze Reporting Services.
Link do programu http://execsql.org/rs-scripter-tool-handy-tool-to-create-deployment-script-for-reporting-services
2014-07-09
Ładny artykuł znalazłem….
Załóżmy, że masz trace, który zbiera co należy, ale chcesz zamiast niego mieć sesję extendent events. Tylko jak zdefiniować filtry, powybierać eventy itp:
http://msdn.microsoft.com/en-us/library/ff878114.aspx