601-szy wpisz na blogu – Kupony na kurs powershell

2016-03-14

Właśnie zauważyliśmy, że mamy już 600 wpisów na blogu, a ten jest 601! Z tej okazji dzielimy się tym co mamy

1 kupon na kurs Powershell ZA DARMO (!) – po prostu pierwszy lepszy: kupon PIERWSZYLEPSZY

600 kuponów na kurs Powershell w wyjątkowej cenie 10$ – kupon: 601WPIS

Kupon należy wprowadzić podczas zamawiania kursu. Ważność kuponów – do końca marca.

Przy okazji przypominamy, że póki co pierwsza część kursu przygotowującego do egzaminu 70-461 „Querying SQL Server” jest ciągle dostępna za darmo. Kolejne części już niebawem.

Kursy znajdują się na platformie Udemy. Kliknij w tytuł wybranego kursu

Kurs_powershell_landscape_620

Kurs_sql#1_landscape_620

SQL: Kopiowanie bazy z szyfrowanymi danymi

2016-03-14

Po skopiowaniu bazy SSISDB z jednego serwera na inny pojawił się komunikat o braku Database Master Key (DMK). I słusznie. Na serwerze A DMK jest zaszyfrowany za pomocą Service Master Key (SMK). Ewentualne poufne dane pakietów SSIS w bazie SSISDB są z kolei zaszyfrowane przez DMK. Jeśli baza została przeniesiona na serwer B, to znajdujący się tam SMK nie może być używany do rozszyfrowania DMK, a tym samym traci się dostęp do zaszyfrowanych danych w bazie.

Aby naprawić sytuację, trzeba skopiować DMK z serwera A na serwer B, tak aby zaszyfrował się na serwerze B za pomocą znajdującego się tam SMK. Na serwerze A należy więc wykonać backup key, a na serwerze B restore key. A oto szczegóły:

Najpierw przejdź do omawianej bazy:

USE SSISDB
GO

Zobacz, jakie klucze są aktualnie zdefiniowane (powinien pojawić się Database Master Key)

SELECT * FROM sys.symmetric_keys

Wykonaj kopię klucza:

BACKUP MASTER KEY TO FILE = 'N:\SQLServer\ssisdb_mk.bak'
    ENCRYPTION BY PASSWORD = 'Pa$$w0rd'

A teraz na serwerze docelowym – przejdź do omawianej bazy:

USE SSISDB

GO Czytaj dalej »

By admin in SQL

Oferta pracy w IBM

2016-03-14

A jeśli chcszesz się sprawdzić w IBM:

Linux: Fedora Core 23: Jak wyłączyć protokół IPv6

2016-03-10

Koniec końców musiało się to stać. Trafiłem na aplikację, która łączy się do serwera z wykorzystaniem protokołu IPv6, z tym tylko, że serwer takiego połączenia nie akceptuje. Konkretnie mam tutaj na myśli serwer Sybase ASE, dla którego klientem jest jest instalator Job Schedulera (srvbuild).

Podczas instalacji Job Schedulera dostawałem komunikat o błędzie:

jst_svr_update_statistics: 100% complete.
Installing SybBackupDbToDiskTemplate.xml in the SAP Adaptive Server
Enterprise...
Task failed
 ----------------------------------------------------------------
                  W E L C O M E   T O
   TemplateImport Utility [version 1.11]    Mar 9, 2016 8:11:51 PM
     Runtime Switches:
     TemplateImport Properties:
                Server_Machine_Name: localhost
                       Server_Name: SAP1
                       Server_Port: 5000
     Template_Description_Override: Dumps specified database(s).
      Template_Group_Path_Override: Backups
                 Template_Language: en
            Template_Name_Override: Backup Database to Disk Template
         Template_Version_Override: 3.1
                 Template_XML_File: /opt/sap/ASE-16_0/jobscheduler/Templates/xml/en/SybBackupDbToDiskTemplate.xml
----------------------------------------------------------------
Reading XML File: /opt/sap/ASE-16_0/jobscheduler/Templates/xml/en/SybBackupDbToDiskTemplate.xml
XML File Read Completed Successfully
Creating Initial Template Record
SQLException: JZ006: Caught IOException: java.net.ConnectException: Connection refused 
(port 5000 to address ::ffff:127.0.0.1 (localhost))
SQLException during getConnection: java.sql.SQLException: JZ006: Caught IOException: java.net.ConnectException: 
Connection refused (port 5000 to address ::ffff:127.0.0.1 (localhost))
Exception  : SQLException when trying to connect.



Czytaj dalej »

By Rafał Kraik in Linuxy, Sybase

SQL: Indeksacja dużej tabeli

2016-03-10

Chyba niestety dość częsty scenariusz…. Duża baza, no cóż zdarza się. W dużej bazie duża tabela – no cóż bywa. I oprócz tego… prawie nic więcej. Tak jakby ktoś pozbierał wszystkie excele z firmy i zapisał je w bazie. Niestety jedyny indeks w tabeli się pofragmentował. Nie ma problemu, trzeba uruchomić reindeksację. Ale o reindeksacji dużych obiektów wiadomo:

Indexes with more than 128 extents are rebuilt in two separate phases: logical and physical. In the logical phase, the existing allocation units used by the index are marked for deallocation, the data rows are copied and sorted, then moved to new allocation units created to store the rebuilt index. In the physical phase, the allocation units previously marked for deallocation are physically dropped in short transactions that happen in the background, and do not require many locks.

(https://technet.microsoft.com/en-us/library/ms189858(v=sql.110).aspx)

Ile więc potrzeba miejsca na reindeksację? Jeśli nie masz ochoty czytać dalej, to mniej więcej tyle samo, co reindeksowany obiekt aktualnie zajmuje. A właściwie to trochę więcej, dajmy na to 120%. Podczas reindeksowania można posłużyć się opcją SORT_IN_TEMPDB, która ma pewien wpływ na ilość potrzebnego miejsca. Jednak opcja ta nie spowoduje, że miejsce jest potrzebne tylko w temp! Nadal potrzebujesz miejsca w bazie. Nie pomoże również dostępna w edycji ENTERPRISE opcja ONLINE. Będzie nawet trochę gorzej, bo opccja online powoduje, że SQL gwarantuje możliwość korzystania z indeksu podczas reindeksacji. Potrzebuje więc, aby zbudować dodatkową tabelę mapującą, która pozwoli odpowiadać na zapytania użytkowników podczas indeksowania.

A teraz już dokładniej:

  • żeby zindeksować 10 GB musisz obok istniejącego indeksu stworzyć jego kopię. Jeśli kopia jest tworzona z FILL FACTOR 80% to do rozmiaru trzeba dorzucić 20%
  • podczas budowania indeksu dane są roboczo sortowane i tu mamy 2 przypadki:
    • Nie było opcji SORT_IN_TEMPDB – wtedy te dodatkowe obiekty są tworzone w bieżącej bazie. Ilość miejsca jest zależna od wielkości klucza podstawowego. Za to w tym scenariuszu tempdb nie cierpi
    • Była opcja SORT_IN_TEMPDB – wtedy nowy indeks powstaje i tak w oryginalnej bazie danych, co łącznie z FILL FACTOR znowu sprowadza nas do 120% wielkości indeksu. Jednak dane robocze są sortowane w tempdb, a jeśli wydajnie skonfigurowano tempdb (jako oddzielny szybki napęd), to takie indeksowanie skończy się trochę szybciej. Niestety tempdb potrzebuje teraz więcej miejsca i jest dociążone. Użycie tej opcji spowoduje więc, że sumarycznie będzie potrzebne jeszcze więcej miejsca na dysku.
  • Jeśli korzystasz z edycji ENTERPRISE i decydujesz się skorzystać z opcji ONLINE, to  płacisz za to znowu dodatkowym miejscem.

Artykuł https://technet.microsoft.com/en-us/library/ms191183(v=sql.105).aspx analizuje te przypadki o wiele dokładniej. Dla mnie wniosek jest jeden. W przypadku takich baz i takich tabel, zasada, która będzie zakłądać, że w każdej bazie danych mam mieć co najmniej (czytaj około) 20% wolnego miejsca, bierze w łeb. W normalnym życiu bazy, 20% zapasu wystarczy, ale przy reindeksacji, potrzeba będzie około 1.5 raza tyle co największy obiekt….

Polecam też: https://blogs.msdn.microsoft.com/sqlserverstorageengine/2007/01/24/checkdb-part-7-how-long-will-checkdb-take-to-run/

By Rafał Kraik in SQL

Zmiana cenników kursów na Udemy

2016-03-10

Wszystko się kiedyś kończy…

Od  1 IV wzrasta cena szkolenia „Powershell dla administratorów” na Udemy. Kursy będą miały odgórnie ustaloną cenę i niestety taniej nie będzie. Dlatego jeżeli chcesz skorzystać z ostatniej chwili, to korzystając z kuponu „STARACENA” możesz obniżyć sobie cenę do 10$.

Nie trać czasu…

Powershell dla administratora Windows – kompletny kurs

Kurs wprowadzający w jezyk skryptowy, pozwalający Ci na samodzielną automatyzację Windows. Zaczyna się od całkowitych podstaw, a kończy na zaawansowanych zastosowaniach powershella w administracji. Tylko do końca marca w promocyjnej cenie 10 $ z kodem STARACENA

SQL Server wprowadzenie. Instalacja narzędzia. Exam 70-461

Szkoła podstawowa SQL. Pierwszy kurs z serii kursów przygotowujących do egzaminu 70-461. Przedstawia, jak zainstalować SQL server w podstawowej konfiguracji, jak wgrać przykładową bazę danych oraz jak z nią pracować. Są to konieczne podstawy, do pełnego udziału w dalszych kursach serii.

 

 

By Rafał Kraik in Aktualności

Linux: Jaki mam adres IP

2016-03-08

Prosta rzecz, a nie wiedziałem. Jak sprawdzić jaki mam adres ip, czyli taki odpowiednik ipconfig z Windows:

ip addr show

[sybase@localhost log]$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:15:5d:01:6e:04 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.104/24 brd 192.168.1.255 scope global dynamic eth0
       valid_lft 78732sec preferred_lft 78732sec
    inet6 fe80::215:5dff:fe01:6e04/64 scope link
       valid_lft forever preferred_lft forever
By Rafał Kraik in Linuxy