2014-06-25
Po instalacji SQL 2012 SP1, chociaż instalacja przebiegła poprawnie SQL serwer nie startuje, a w logu można znaleźć:
Script level upgrade for database 'master’ failed because upgrade step 'u_tables.sql’ encountered error 25641, state 0, severity 16. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master’ database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.
i
Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.
Ponieważ to nowa instalacja, to przebudowa bazy master jak najbardziej wchodzi w grę. W ruch poszła procedura z:
http://msdn.microsoft.com/en-us/library/dd207003(v=sql.110).aspx
Niestety bez skutku. Okazało się, że problem jest znany:
https://connect.microsoft.com/SQLServer/feedback/details/775401/sql-server-2012-sp1-cu1-installation-failure-instance-will-no-longer-start
W moim przypadku SQL był instalowanay na koncie użytkownika nie będącego administratorem. Wystarczyło na czas instalacji lub na czas naprawy mastera nadać kontu serwisowemu SQL serwera uprawnienia lokalnego administratora, a błąd został naprawiony i SQL serwer startuje!
Ufff
2014-06-24
W tym przypadku administrator tworzył sobie narzędzie, które jednocześnie ma zrestartować pewną liczbę serwerów, a następnie pingiem sprawdzać, czy serwery odpowiadają i kolorować:
- na zielono – odpowiada
- na czerwono – nie odpowiada
- jeżeli nie odpowiedział na 4 ping pod rząd a potem zaczął odpowiadać, to zmiana koloru na żółty
Problemem było tylko jak uruchomić skrypt badający pingiem odpowiedzi serwerów tak, aby na raz restartować i pingować wiele serwerów, każdy w innym okienku. Ze skryptu wyrzucam logikę dotyczącą pingowania, skupiam się wyłącznie na jednoczesnym uruchomieniu większej liczby skryptów. Oto rozwiązanie:

Czytaj dalej »
2014-06-24
Collation ustawia się na serwerze, odrębnie dla każdej bazy danych i wreszczie można je przedefiniować dla każdej kolumny tekstowej w tabeli.
Sprawdzenie collation dla baz wykonasz zapytaniem:
SELECT name,collation_name FROM sys.databases
Znalezienie kolumn z określonym dla nich collation możesz wykonać:
use [DBName]
SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLLATION_NAME from INFORMATION_SCHEMA.COLUMNS
WHERE COLLATION_NAME IS NOT NULL
2014-06-20
Laptop Lenovo. Na początku zostało założone konto lokalne niepowiązane z kontem Microsoft. Pierwszym objawem problemów, było to że nie dało się zainstalować oprogramowania ze sklepu Microsoft. No ale cóż. Da się przeboleć. Kiedy jednak zainstalowane aplikacje zaczęły zgłaszać informację „Jest dostępna nowa wersja aplikacji. Wykonaj aktualizację.” a bez aktualizacji pracować nie chciały, problem trzeba było rozwiązać.
Zakupy/pobieranie aplikacji ze sklepu Microsoft muszą być powiązane z kontem Microsoft. Jakimś pomysłem na rowiązanie problemu wydawało się stworzenie konta Microsoft, wykonanie aktualizacji na nim i powrót do konta lokalnego. Jednak tworzenie konta Microsoft kończyło się błędem, a właściwie kręcącym się w nieskończoność kółeczkiem.
Zacząłem od udostępnionych przez Microsoft narzędzi do naprawy podobnych problemów. Widać autorzy są świadomi problemów z ich aplikacjami:
Chociaż wyżej wymienione programy znalazły pewne problemy i nawet je ponaprawiały to mój problem został nie naprawiony… Czytaj dalej »
2014-06-18
Zdarzyło się pewnego razu, że mimo wykonania restartu nadal nie można było odinstalować SQL serwera, ponieważ… był wymagany restart.
Co u mnie pomogło:
1. regedit
2. Otworzyć klucz
HKLM\System\CurrentControlSet\Control\Session Manager
4. Poszukać właściwości PendingFileRenameOperations
5. W tym miejscu są zapisane nazwy plików, z którymi Windows powinien coś zrobić po restarcie.
6. Wyedytuj tą właściwość i wyczyść jej zawartość.
U mnie działa!
2014-06-06
Podczas wykonywania polecenia
Invoke-Command -computer … -script { … }
wyskakuje błąd:
+ CategoryInfo : NotSpecified: (:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Unhandled Exception: OutOfMemoryException.
O co chodzi? W skrypcie przekazywanym o zdalnego wykonania wywoływany był program exe, który korzystał z większej ilości pamięci. Błąd OutOfMemory świadczy o tym, że tej pamięci zabrakło. Zauważ, że w takim przypadku wszelkie mechanizmy obsługi błędów po zdalnej stronie zawodzą, bo przecież brakło pamięci na skrypt!
Jak to naprawić?
Komenda:
winrm get winrm/config/winrs
wyświetli ile pamięci może być wykorzystywane przez sesje zdalne.
Zmień ten parametr poleceniem
winrm set winrm/config/winrs `@`{MaxMemoryPerShellMB=`”512`”`}
Oczywiście oba polecenia wykonujemy na zdalnym systemie.
U mnie to działa!
2014-06-03
Chcesz utworzyć serwer linkowany, ale w taki sposób aby jeden wybrany użytkownik z lokalnego serwera mógł uruchomić jedną konkretną procedurę na serwerze zdalnym.
1. Na serwerze zdalnym załóż login sql. Nadaj mu odpowiednie minimalne uprawnienia (user w bazie i execute na wybranej procedurze)
2. Na obu serwerach upewnij się, że jest włączona opcja remote access. Dzięki niej uruchamianie procedur przez linked serwer jest możliwe.
exec sp_configure ‘remote access’, 1
RECONFIGURE WITH OVERRIDE
Zmiana opcji wymaga restartu SQL
3. Na serwerze lokalnym zdefiniuj linked server:
Czytaj dalej »