214 lines
3.7 KiB
Markdown
214 lines
3.7 KiB
Markdown
![]() |
> Schulung SQL QSC 02.2017
|
|||
|
|
|||
|
Freitag, 26. Februar 2016
|
|||
|
|
|||
|
21:02
|
|||
|
|
|||
|
Inntaus null Fabian Bader:
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<http://msdn.microsoft.com/en-us/library/bb510741.aspx>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
System Datenbanken :
|
|||
|
|
|||
|
Model
|
|||
|
|
|||
|
MSDN
|
|||
|
|
|||
|
Tempdb
|
|||
|
|
|||
|
Master DB
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Resource -\> ist nicht sichtbar
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
SQL Sprache ist TSQL
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Bei anlage einer neuen Datenbank owner ändern :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
USE \[RKOtestdb\]
|
|||
|
|
|||
|
GO
|
|||
|
|
|||
|
EXEC dbo.sp_changedbowner \@loginame = N\'sa_vbz\', \@map = false
|
|||
|
|
|||
|
GO
|
|||
|
|
|||
|
|
|||
|
|
|||
|
**x64 SQL Alias erstellen**
|
|||
|
|
|||
|
C:\\Windows\\System32\\cliconfg.exe aufrufen
|
|||
|
|
|||
|
Im "Alias" Tab "Selcet" ausählen
|
|||
|
|
|||
|
Unter "Server alias" wird nun der gewünschte SQL Alias Name eingetragen (z.B. MeinSQLAlias)
|
|||
|
|
|||
|
"TCP/IP" unter "Network libraries" auswählen
|
|||
|
|
|||
|
Im Feld "Server name" den NetBIOS Namen (z.B. SERVERNAME\\INSTANCE) des SQL-Servers eingetragen.
|
|||
|
|
|||
|
"Dynamically determine port" ausgewählt lassen.
|
|||
|
|
|||
|
**Es wird folgender Registry Key erstellt**
|
|||
|
|
|||
|
\[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSSQLServer\\Client\\ConnectTo\]
|
|||
|
|
|||
|
"MeinSQLAlias"="DBMSSOCN,SERVERNAME\\\\INSTANCE"
|
|||
|
|
|||
|
**x86 SQL Alias erstellen (Kompatibilität mit 32-Bit Applikationen)**
|
|||
|
|
|||
|
C:\\Windows\\SysWOW64\\cliconfg.exe aufrufen
|
|||
|
|
|||
|
Im "Alias" Tab "Selcet" ausählen
|
|||
|
|
|||
|
Unter "Server alias" wird nun der gewünschte SQL Alias Name eingetragen (z.B. MeinSQLAlias)
|
|||
|
|
|||
|
"TCP/IP" unter "Network libraries" auswählen
|
|||
|
|
|||
|
Im Feld "Server name" den NetBIOS Namen (z.B. SERVERNAME\\INSTANCE) des SQL-Servers eingetragen.
|
|||
|
|
|||
|
"Dynamically determine port" ausgewählt lassen.
|
|||
|
|
|||
|
**Es wird folgender Registry Key erstellt**
|
|||
|
|
|||
|
\[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\MSSQLServer\\Client\\ConnectTo\]
|
|||
|
|
|||
|
"MeinSQLAlias"="DBMSSOCN,SERVERNAME\\\\INSTANCE"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Aus \<<https://www.techtask.com/sql-alias-fur-sharepoint-web-applikationen-erstellen/>\>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Xp_cmdshell (Security issue)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
exec sp_configure \'show advanced option\',1
|
|||
|
|
|||
|
go
|
|||
|
|
|||
|
exec sp_configure \'xp_cmdshell\', 0 deaktiviert die Shell
|
|||
|
|
|||
|
go
|
|||
|
|
|||
|
Reconfigure;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\-- Daten eines Linked Servers abrufen : (Lokaler Server QSCDBT020 Linked ( Remote ) Server QSCDBT010)
|
|||
|
|
|||
|
select \* from \[QSCDBT010\\QSCDBT010J\].\[datenaustausch_rko\].sys.database_files
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\-- Noch ein Beispiel :
|
|||
|
|
|||
|
select \*
|
|||
|
|
|||
|
from \[QSCDBT070\\QSCDBT070J\].\[TrainerDB_LinkedServer\].\[dbo\].\[Teilnehmer\]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
\--(Hierfür muss RPC und RPC OUT in den Properties des Linked Servers Aktiviert werden.)
|
|||
|
|
|||
|
execute \[QSCDBT070\\QSCDBT070J\].\[TrainerDB_LinkedServer\].\[dbo\].\[coole_sp\]
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Create Service Account
|
|||
|
|
|||
|
<https://www.mssqltips.com/sqlservertip/2503/how-to-create-secure-sql-server-service-accounts/>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Troubleshooting :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Backup Datei ist immer eine .BAK datei.
|
|||
|
|
|||
|
In einer BAK Datei können mehrere Backup stände vorhanden sein.
|
|||
|
|
|||
|
Mit dem SQL Statement:
|
|||
|
|
|||
|
restore headeronly from Disk=N\'j:\\sql\\backups\\master.bak\';
|
|||
|
|
|||
|
|
|||
|
|
|||
|
kann man sich den Inhalt der BAK Datei anzeigen, bzw ermitteln wie viele Backups es in der Datei gibt.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Für die Master DB restore muss der Server im Single User Mode sein. Hierzu den Sql Service stoppen und die CMD verwenden :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
sqlservr.exe\" -m -s qscdbt020j Startet den Single User Mode
|
|||
|
|
|||
|
In einer 2.ten CMD dann :
|
|||
|
|
|||
|
osql -S qscdbt020\\qscdbt020j -E Startet die SQL CMD Line
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Aktives Monitoring mit
|
|||
|
|
|||
|
Aktive Monitor (Rechte Maus auf Server dann kommt der punkt.)
|
|||
|
|
|||
|
Oder SQL Abfrage mit
|
|||
|
|
|||
|
|
|||
|
|
|||
|
exec sp_WhoIsActive; NEU mehr INfos
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Oder exec sp_WhoIs2 \-\-- ALT
|
|||
|
|
|||
|
Oder exec sp_WhoIs \-\-- SEHR ALT
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Geht auch über Perfmon und Ressourcemonitor aus Windows.
|
|||
|
|
|||
|
Perfmon ist besser, Ressourcemonitor benötigt selber viele Ressourcen
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Ermitteln wieviel \"Speicher\" der SL Server wirklich nutzt :
|
|||
|
|
|||
|
|
|||
|
|
|||
|
select \* from sys.dm_os_process_memory
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Im Taskmanager werden aber nur zb 2GB angezeigt, trotzdem nutzt der SQL Server wesentlich mehr.
|
|||
|
|
|||
|
Hierzu wird die Funktion AWE genutzt. Im Error Log schuen nach in \"Use Lock Pages in Memory\"
|