Skrypty oznaczone posty

Informacje o tabelach, ilościach wierszy i wielkościach danych zawartych w bazie danych.

Przedstawiam skrypt, który umożliwia wyświtlenie listy wszystkich tabel zawartych, w wybranej bazie danych.  W stworzonej tabeli tymczasowej zawarte są następujące pola:

servername – nazwa servera z nazwą instancji,

basename – nazwa bazy danych,

name – nazwa tabeli,

rows – ilość wierszy w tabeli,

reserved – ilość zarezerwowanego miejsca w KB,

data – wielkość danych w KB,

index_size – wilekość indeksów w KB,

unused – wielkość nieużywana w KB

Informacje te uzyskuje się z procedury sp_spaceused.

Skrypt testowany na MS SQL Server 2000, 2008.

/* -----------------------------------------------------------------
 Script   : ListTableInBase.sql
 Author   : Dariusz 'DBSoft' Brejnak (c) 2010
 Created  : 2010-09-01
 
 Skrypt wyświetla listę tabel zawartych w aktualnej bazie danych.
 Za pomocą procedura sp_spaceused
 zwracane są informacje o liczbie wierszy, wielkości plików bazy danych
  w KB  lub obiektów bazodanowych i liczbie pustych stron w
 poszczególnych plikach...
Czytaj dalej

Sprawdzenie modeli odtwarzania baz danych w MS SQL Server 2000-2008.

W MS SQL Server od wersji 2000 zostały wprowadzone modele odtwarzania, które pomagają w planowaniu kopii bezpieczeństwa.

Dostępne są trzy modele odtwarzania:

• Pełny (Full recovery)
• Rejestracja masowa (Bulk-logged recovery)
• Prosty (Simple recovery)

Komenda DATABASEPROPERTYEX zwraca  model odtwarzania dla podanej bazy:

Select DATABASEPROPERTYEX ('nazwa_bazy_danych', 'recovery')

W odpowiedzi system zwróci jedną nazwę z trzech modeli:

  • FULL,
  • BULK_LOGGED,
  • SIMPLE.

Poniżej przedstawiam skrypt wyświetlający modele dla wszystkich baz danych umieszczonych na serwerze.

Testowany skrypt był na wersjach SQL Server: 2000, 2005 i 2008. Na 2008 R2 nie testowałem.

------------------------------------------------------
-- Script     : Recorvery_model.sql
-- Author     : Dariusz Brejnak aka `DBSoft (c) 2010
-- Created    : 2010-08-27
-- SQL Version: 2000, 2005, 2008
-----------------------------------------------------
USE master
GO

DECLARE @DBName varchar(255)

DECLARE DB_Cursor CURSOR FOR
SELECT
DATABASE_NAME   = db_name(s.dbid)
FROM
[master].[dbo].[sysdatabases] s
GROUP BY s...
Czytaj dalej

Przenoszenie logins, default databases, server roles pomiędzy MS SQL Server 2000.

Po przeniesieniu z jednej instancji na drugą baz danych w MS SQL Server 2000 należy wykonąc kolejne czynności:

1. Przeniesienie do Security: Logins, Server Roles, User Mapping.

Na stronie Microsoftu „How to transfer logins and passwords between instances of SQL Server” znajduje się artykuł na ten temat.

Opisane są tam dwie metody:

metoda 1: przedstawia dwie procedury składowane sp_hexadecimal i sp_help_revlogin. Uruchamia się skrypt z poziomu bazy master.

Skrypt ten generuje kod tworzący loginy. Przystosowany jest on do przenoszenia loginów z wersji 2000 na wersję 2000 !!!

metoda 2: przedstawia dwie procedury składowane sp_hexadecimal i sp_help_revlogin_2000_to_2005. Uruchamia się skrypt z poziomu bazy master.

Skrypt ten generuje kod tworzący loginy, defaultowe bazy i role. Przystosowany jest on do przenoszenia loginów z wersji 2000 na wersję 2005 !!!

Po odpowiedniej modifikacji tych dwóch skryptów stworzyłem:

metoda 3: przedstawia dwie procedury składowane sp_hexadecimal i sp_help_revlogin_2000_to_2000_DBrejnak. Uruchamia się skrypt z poziomu bazy master.

Skrypt ten generuje kod tworzący loginy, defaultowe bazy i role...

Czytaj dalej

Przenoszenie danych pomiędzy MS SQL Server 2000

Ostatnio musiałem przenieść całą zawartość SQL Servera 2000 na inną maszyne. Od samego początku napotykałem problemy ale dzięki pomocy uzyskanej na forum Codeguru.pl i GoldenLine.pl zebrałem odpowiednią wiedzę, którą chce przedstawić poniżej.

1. Wykonanie kopii zapasowej dziennika transakcji za pomocą polecenia:


BACKUP LOG NazwaBazyDanych TO DISK='C:\NazwaBazyDanych_LogBackup.trn'

Wykonujemy to dla wszystkich baz danych umieszczonych na serwerze.
(Odpowiedni skrypt, który automatycznie wykonuje backup logu po „dopracowaniu” przedstawię wkrótce w osobnej poradzie.

2. Wykonanie kopii zapasowej bazy danych.
W celu wykonania kopii zapasowych bazy danych można użyć polecenia:

BACKUP DATABASE NazwaBazyDanych TO  DISK = C:\NazwaBazyDanych_Backup.bak'   WITH NOFORMAT, INIT,  NAME = N'NazwaBazyDanych - Full Database Backup',  SKIP, NOREWIND, NOUNLOAD,  STATS = 100;

Osobiście polecam użycie skryptu, który automatycznie wykona backup wszystkich baz danych zawartych na serwerze.

Skrypt taki napisałem , jego opis jak i kod umieściłem w poradzie:

Jak wykonać automatyczny backup i „zip” baz w MS SQL Server 2000 ?

(Wersja dla MS SQL Server 2005/2008...

Czytaj dalej

Automatyczny backup i zip baz w MS SQL Server 2000

Przedstawiam skrypt,, który automatycznie wykonuje backup wszystkich baz danych umieszczonych w aktualnej instancji SQL Server 2000.

Nazwy wszystkie kopii składają się z prefixu (w tym wypadku używam nazwy instancji serwera), roku, miesiąca i dnia wykonania kopi oraz z samej nazwy bazy danych.

Dodatkowo stworzyłem fragment, który jest odpowiedzialny za wykonanie pakowania, ( za pomocą zipa, rara, 7zipa itp – odpowiednią komendę podaje się w zmiennej tekstowej) backapów baz danych.

W zmiennej @choice ustawia się odpowiednie parametry dotyczące sposobu wykonywania kopii, i tak dla:

0 – Wykonywany jest backup, który jest pakowany a następnie pliki *.bak są zakasowywane (opcja oszczędzająca miejsce na dysku)

1 – Wykonywany jest backup, który jest pakowany, pliki *.bak nie są kasowane (podwójne zabezpieczenie)

2 – Wykonywany jest tylko sam backup. Pakowanie nie jest wykonywane.

W zmiennej @VirtualPath ustawiamy ścieżkę docelową składowania backapu.

W zmiennej @Prefix ustawiamy przedrostek do nazwy kopii.

W zmiennej @CommandArchive ustawiamy komendę uruchamiającą archiwizator

Z uwagi na to, że skrypt używa „xp_cmdshell” może on być uruchomiony ...

Czytaj dalej

Automatyczny backup i zip baz w MS SQL Server 2005/2008

Zmęczony ręcznym tworzeniem backupów z SQL Servera oraz pamiętaniem, które bazy należy kopiować zacząłem szukać rozwiązania do automatycznego backupu. Na forum CodeGuru.pl znalazłem namiastkę rozwiązania przedstawiono przez „alazif” . Po modyfikacji i dopisaniu kodu stworzyłem skrypt, który automatycznie wykonuje backup wszystkich baz danych umieszczonych w aktualnej instancji serwera. Nazwy wszystkie kopii składają się z prefixu (w tym wypadku używam nazwy instancji serwera), roku, miesiąca i dnia wykonania kopi oraz z samej nazwy bazy danych. Dodatkowo stworzyłem fragment, który jest odpowiedzialny za wykonanie pakowania, ( za pomocą zipa, rara, 7zipa itp – odpowiednią komendę podaje się w zmiennej tekstowej) backapów baz danych. W zmiennej @choice ustawia się odpowiednie parametry dotyczące sposobu wykonywania kopii, i tak dla: 0 – Wykonywany jest backup, który jest pakowany a następnie pliki *.bak są zakasowywane (opcja oszczędzająca miejsce na dysku) 1 – Wykonywany jest backup, który jest pakowany, pliki *.bak nie są kasowane (podwójne zabezpieczenie) 2 – Wykonywany jest tylko sam backup. Pakowanie nie jest wykonywane...

Czytaj dalej
DBBS