diverse Software | Tobit DvISE | Virtualisierung | Emulatoren | SQL-Server | CMS | Groupware | DMS

Thursday, 05-Apr-2012 21:20:27 CEST

sonstige Tipps und FAQs


MS SQL Server / MSDE
MySQL Server

Datensicherung für MSDE Datenbanken DBSave
SQL Firewall Projekt GreenSQL für MySQL und PostgreSQL

 

Seitenanfang

MS SQL Server / MSDE

Download: MSDE 2000
MS SQL Server 2005 Express Edition SP4
MS SQL Server 2008 Express SP1
SQL Server 2008 R2 Express
Microsoft SQL Server 2008 R2 RTM – Express mit Verwaltungstools
Microsoft SQL Server 2008 R2 RTM – Express mit Advanced Services
Microsoft SQL Server 2008 R2 Management Studio Express (SSMSE)
Access Runtime 2007
SQL Feature Pack/SQL Native Client 2005
SQL Feature Pack/SQL Native Client 2008
SQL Feature Pack/SQL Native Client 2008 R2

Installation
MSSQL Express mit Netzwerk
Upgrade mit einem ServicePack
Anmelden am SQL Server
Datensicherung | Restore
SQL Datenbank importieren | exportieren
SQL Datenbank umbenennen
Lizenzen
sonstiges

KB 272318 Transaktion Protokoll verkleinern
KB224071 SQL Datenbank verschieben
SQLmaint
MSSQL Hilfe alle Versionen

Seitenanfang

Installation

MSDE2000

den Download entpacken nach z.B. C:\Temp\MSDE. Dann die Installation starten durch

setup.exe /settings setup.ini
[Options]
SECURITYMODE=SQL
UPGRADEUSER=sa
BLANKSAPWD=1
INSTANCENAME="SQLDATA"
DISABLENETWORKPROTOCOLS=0

oder

setup.exe SAPWD="AStrongPassword" SECURITYMODE=SQL INSTANCENAME="SQLDATA"
Seitenanfang

MSSQL Express mit Netzwerk

SQL2008

alle Programme | Microsoft SQL Server | Konfigurationstools | SQL Server-Konfigurations-Manager
SQL Server xxxx-Dienste | SQL Server-Browser: starten
SQL Server Netzwerkkonfiguration | Protokolle für xxx
TCP/IP: aktivieren

Verbindung testen

eine Datei mit der Endung .udl erstellen, Eigenschaften
Provider: Microsoft OLE DB Provider for SQL Server
Verbindungen
Servername: <SQL-Server\Instanz>
Benutzername: <wie angelegt>
Passwort: <wie angelegt>
Datenbank auf dem Server: <Datenbank>

zum Abschluß Verbindung testen

Seitenanfang

Upgrade mit einem ServicePack

- bei einem Upgrade ist unbedingt der Instanzname mit anzugeben, hier ein Beispiel für ein Upgrade der Standardinstanz. Hier ist unbedingt "upgradesp" anzugeben (für den User "sa" ist kein Passwort gesetzt).

setup /upgradesp SQLRUN SECURITYMODE=SQL UPGRADEUSER=sa BLANKSAPWD=1 /L*v C:\MSDELog.log
setup.exe /upgradesp sqlrun INSTANCENAME=SQLDATA DISABLENETWORKPROTOCOLS=0 BLANKSAPWD=1

man kann das Upgrade auch mit Hilfe der "setup.ini" erledigen

setup.exe /settings setup.ini /upgradesp sqlrun

Beispiel für eine "setup.ini" zum Upgraden.

[Options]
UPGRADEUSER=sa
BLANKSAPWD=1
INSTANCENAME=SQLDATA
DISABLENETWORKPROTOCOLS=0

wenn es eine Stardardinstanz upgraden will, darf man "INSTANCENAME" nicht angeben. Es kann auch beim Upgrade zu Problemen kommen, wenn der "INSTANCENAME" in der .ini Datei in Anführungszeichen gesetzt ist.

Optionen
- Passwort bei der Installation festlegen
SAPWD="AStrongPassword"
- mit leerem Passwort installieren
BLANKSAPWD=1
- gemischte Modus SQL als auch Benutzerautentifizierung ist erlaubt
SECURITYMODE=SQL
- eine Benutzerdefinierte Instanz anlegen (SQLDATA)
INSTANCENAME="SQLDATA"
- den Netzwerkzugriff für andere Clients erlauben
DISABLENETWORKPROTOCOLS=0
für den Netzwerkzugriff benutzt MSDE den TCP Port 1433
- Upgrade mit einem ServicePACK
UPGRADEUSER=admin
UPGRADEPWD=admin_pwd

- Ändern des Authentifizierungsmodus bei einer Standard MSDE Instanz
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]
"LoginMode"=dword:00000002

Schlüssel für eine Benutzerdefinierte Instanz SQLDATA
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SQLDATA\MSSQLServer]
"LoginMode"=dword:00000000

Seitenanfang

Anmelden am SQL Server

mit dem Tools osql eine Verbindung zu MSDE herstellen, osql ist Interaktiv.

osql -U sa
oder
osql -U sa -P "Kennwort"
oder
osql -E
oder
osql -U sa -S server\sqldata

mit der Option -S kann man die SQLServer Instanz wählen, auf einem Server können bis zu 16 Instanzen installiert werden (eine Standardinstanz und 15 weitere).

- Passwort Benutzer sa ändern (Kommando Prozedurname altes_Kennwort, neues_Kennwort, Loginname), das alte Kennwort ist leer, deshalb muss der Wert NULL übergeben werden.

sp_password @old = null, @new = 'newpasswd',  @loginame ='sa'
go
oder
sp_password null, 'newpasswd', 'sa'
go

- Datenbank Test erstellen

create database test
go

Datenbank wird im angegebenen Verzeichnis erstellt, mit Protokolldatei

CREATE DATABASE SATest
 ON (NAME = SATest_Daten, FILENAME = 'c:\SQLDATA\SATest_Daten.MDF')
 LOG ON (NAME = SATest_Protokoll, FILENAME = 'c:\SQLDATA\SATest_Protokoll.LDF')
GO

- Datenbank auf Fehler prüfen (sollte regelmäßig vor der Datensicherung erfolgen)

dbcc checkdb ('test')
go

- Datenbank Test löschen

drop database test
go

- eine zweite Instanz (SQLDATA) von MSDE auf einem Rechner installieren. Diese Instanz wird in der Systemsteuerung unter Software extra aufgeführt und kann auch einzeln wieder deinstalliert werden.

[Options]
SAPWD="sa"
SECURITYMODE=SQL
INSTANCENAME="SQLDATA2"

auf dies neu angelegte Instanz kann man dann mittels osql -U sa -P sa -S msde-server\sqldata zugreifen. Option -U Username, -P Passwort, -S Server\Instanz

- Netzwerkzugriff konfigurieren mittels SVRNETCN
C:\Programme\Microsoft SQL Server\80\Tools\Binn\SVRNETCN.exe

Hilfe für die Verwendung von osql

- einem System Anmelde oder Benutzerkonto eine Verbindung zur SQL Server-Instanz

EXEC sp_grantlogin 'server\user'
go

- einem SQL-Benutzer den Zugriff auf eine MSDE-Instanz erlauben.

EXEC sp_addlogin 'user','passwd'
go

- OSQL kann auch am PROMPT oder in einem Batch verwendet werden

osql -U SA -P "Kennwort" -d model -Q "dbcc checkdb"

hier wird die Datenbank "MODEL" auf Fehler überprüft oder interaktiv

dbcc checkdb ('model') -o "D:\ERGEBNIS.TXT"
go

Die Ausgabe kann auch zur späteren Kontrolle in eine Datei umgeleitet werden.

osql -U SA -P "Kennwort" -d model -Q "dbcc checkdb" -o "D:\ERGEBNIS.TXT"
Seitenanfang

Datensicherung | Restore

- Offlinesicherung, vor der Datensicherung muß der Server angehalten werden, nun kann man das komplette MSDE Verzeichniss sichern

NET STOP MSSQLSERVER
xcopy c:\MSSQL c:\Backup

- Onlinesicherung, der SQLServer läuft bei der Sicherung, es wird jede Datenbank einzeln gesichert.

osql -U SA -P "Kennwort" -Q "backup database samuster to disk =
 'c:\backup\samuster.bak' with init" -o c:\backup\samuster.txt

- interaktive Datensicherung

backup database samuster to disk = 'c:\backup\samuster.bak' with init -o d:\backups\samuster.txt
go
BACKUP LOG samuster TO DISK = 'C:\backup\samuster_log.bak'

man kann die Protokolldatei auch einzeln sichern.

Datenbank BackupScript über SQLAgent (SQL 2000)

EXECUTE master.dbo.xp_sqlmaint N'-PlanID xxx-xxx-xxx-xxx -WriteHistory  -VrfyBackup -BkUpMedia DISK
 -BkUpDB "D:\Backup\SQL-Backup"  -BkExt "BAK"'

LOG BackupScript über SQLAgent (SQL 2000)

EXECUTE master.dbo.xp_sqlmaint N'-PlanID xxx-xxx-xxx-xxx -WriteHistory  -VrfyBackup -BkUpMedia DISK
 -BkUpLog "D:\Backup\SQL-Backup" -BkExt "TRN"'

DelBkUps - Zeitspanne wann die erstellte Sicherung gelöscht wird ( Beispiele 12weeks, 3months, 15days )
CrBkSubDir - Im Backup Verzeichnis wird ein Unterordner für jede Datenbank erstellt

Datenbank Backup SQLExpress (SQL2008 R2)

Beispiel: FullBackup.sql
Aufbewahrung der Sicherung 14 Tage (RETAINDAYS = 14)
nach Sicherung überprüfen (RESTORE VERIFYONLY)

BACKUP DATABASE [David_Database] TO  DISK = N'E:\Sicherung\MSSQL\David\David_Database.bak' WITH  RETAINDAYS = 14,
 NOFORMAT, NOINIT,  NAME = N'David_Database-VollDBSicherung', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO
declare @backupSetId as int
select @backupSetId = position from msdb..backupset where database_name=N'David_Database'
 and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'David_Database' )
if @backupSetId is null begin raiserror(N'Fehler beim Überprüfen. Sicherungsinformationen für die David_Database-Datenbank wurden nicht gefunden.', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = N'E:\Sicherung\MSSQL\David\David_Database.bak' WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
GO

Beispiel: Batch für den Taskplaner

@echo off
echo Ausführen eines Full Backup der David-Datenbank
echo.
"C:\Programme\Microsoft SQL Server\90\Tools\binn\SQLCMD.EXE" -S SRV\DAVID -E -i C:\StartStop\David_Database-Backup.sql -o C:\StartStop\BackupLog.txt
rem Zeitstempel erzeugen
for /f "delims=. tokens=1-3" %%a in ('echo %date%') do set date=%%c-%%b-%%a
for /f "tokens=1-4 delims=.:, " %%a in ('echo %time%') do set time=%%a-%%b
REM Log-Datei mit Zeitstempel umbenennen
ren C:\StartStop\BackupLog.txt FullBackup-%date%-%time%.txt

 

Wiederherstellen der gesicherten Daten

osql -U SA -P "Kennwort" -Q "restore database samuster from disk =
 'c:\backup\samuster.bak' with replace" -o c:\backup\samuster.txt

- interaktive Wiederherstellung

restore database samuster from disk = 'c:\backup\samuster.bak' with replace -o d:\backups\samuster.txt
go

Datenbank sichern, Transaktionslog verkleinern
im SQL Server Management Studio | Datenbanken | Datenbank wählen | Eigenschaften | Optionen | Wiederherstellungsmodell einstellen Einfach, Massenprotokolliert oder Vollständig

Variante Beschreibung
Einfach Protokoll braucht nicht gesichert werden, Wiederherstellung bis zur Sicherung möglich
Massenprotokolliert Protokollsicherung notwendig, Zeitpunktwiederherstellung wird unterstützt
Vollständig Protokollsicherung notwendig, Zeitpunktwiederherstellung wird nicht unterstützt

Übersicht Wiederherstellungsmethoden

RESTORE DATABASE [David_Database] FROM  DISK = N'C:\Temp\David_Database.bak'
 WITH  FILE = 1,
 MOVE N'David_Database'
 TO N'c:\MSSQL-DB\MSSQL10_50.DAVID\MSSQL\DATA\David_Database.mdf',
 MOVE N'David_Database_log' TO N'c:\MSSQL-DB\MSSQL10_50.DAVID\MSSQL\DATA\David_Database_1.LDF',
 NOUNLOAD,  STATS = 10
GO

 

Seitenanfang

SQL Datenbank importieren | exportieren

USE [master]
GO
CREATE DATABASE [SASystem] ON
 ( FILENAME = N'C:\Programme\Microsoft SQL Server\MSSQL\Data\SASystem_Daten.MDF' ),
 ( FILENAME = N'C:\Programme\Microsoft SQL Server\MSSQL\Data\SASystem_Protokoll.LDF' )
FOR ATTACH
GO

- Datenbank vom Server trennen (Datenbank wird vom Server entfernt, wird aber nicht physikalisch gelöscht), nach dem trennen kann man die Datenbank auf den gleichen oder einen anderen Server wieder einfügen.

EXEC sp_detach_db 'SASystem'

- eine Datenbank auf einem Server einfügen

EXEC sp_attach_db @dbname = N'SASystem',
   @filename1 = N'C:\Programme\Microsoft SQL Server\MSSQL\Data\SASystem_Daten.mdf',
   @filename2 = N'C:\Programme\Microsoft SQL Server\MSSQL\Data\SASystem_Protokoll.ldf'
go
Seitenanfang

SQL Datenbank umbenennen

im SQL Server Management Studio unter Datenbanken | Datenbank wählen | Eigenschaften | Optionen | Status: Zugriff beschränken von Multi-User auf Single_User stellen, hinter der Datenbank wird dann (Einzellbenutzermodus) angezeigt.

ALTER DATABASE old_dbName MODIFY NAME = new_dbName
oder
EXEC sp_renamedb 'old_dbName', 'new_dbName'

 

Seitenanfang

Lizenzen

 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\MSSQLLicenseInfo\MSSQL9.00

Name		Type		Value
Mode		REG_DWORD 2	ß LICENSE_MODE_PERPROC
ConcurrentLimit	REG_DWORD 4	ß Number of Processors

Name		Type		Value
Mode		REG_DWORD 0	ß LICENSE_MODE_PERSEAT
ConcurrentLimit	REG_DWORD 100	ß No. of client licenses registered for SQL Server in Per Seat mode.

- Lizenz prüfen

SELECT  ServerProperty('LicenseType') as LicenseType, ServerProperty('NumLicenses') as ProcessorCount

 

Seitenanfang

sonstiges

- SQL Version anzeigen

select @@VERSION

mit einer Datenbank auf anderen Server umziehen

SQL mit Benutzer und Passwörter migrieren
Using the Copy Database Wizard
Datenbank markieren | Task | Copy Database

Prozedur
sp_updatestats

 

Seitenanfang

MySQL Server

Hilfe: MySQL

- am MySQL Server interaktiv anmelden

mysql -u username -p datenbank

- Datenbank sichern

mysqldump datenbank > datenkank.sav

Datenbank als Textdatei exportieren

mysqldump -p -A -x --add-drop-database > backup.sql

Option -x sperrt die Datenbank bei der Sicherung

- Datenbanksicherung zurückspielen

mysql datenbank < datenkank.sav

Textdatei Sicherung wieder einspielen

mysql < backup.sql

- Datenbank löschen

mysqladmin drop datenbank

- Datenbank erstellen

mysqladmin create datenbank
mysqladmin -u root -p create datenbank

- Datenbank anzeigen

mysqlshow datenbank

- Passwort entfernen

mysqladmin password "" -p

- Passwort setzen

mysqladmin password "geheim"

 

MYSQL Interaktiv ausführen

Referenz SQL-Anweisungssyntax

einen neuen MySQL Benutzer anlegen, mit Passwort

CREATE USER Benutzer IDENTIFIED BY 'PassWort';

User mit allen Rechten setzen

GRANT ALL ON *.* TO benutzer@localhost IDENTIFIED BY "" WITH GRANT OPTION;

User hat Rechte für die Datenbank sample_db

GRANT ALL ON sampel_db.* TO benutzer@localhost IDENTIFIED BY "";

User löschen

DROP USER 'Benutzer'@'localhost';

Benutzer umbenennen

RENAME USER 'Benutzer'@'localhost' TO 'user'@'localhost';

alle Datenbanken anzeigen

show databases;

alle Tabellen der Datenbank anzeigen

show tables from [DB-Name];

Inhalt aller Datenbank anzeigen

use [DB-Name];
select * from information_schema.tables;