DBeaver poączenie z MSSQL Express oraz kopie zapasowe
Alternatywą dla zasobożernego i bardzo wolno działającego SQL Server Management Studio jest otwartoźródłowy DBeaver. Program ma gigantyczne wręcz możliwości i jest bardzo szybki. Dla przykładu: wykonanie kopii zapasowej bazy danych Płatnika zajmuje mu zaledwie 3 sekundy na komputerze ze starym dyskiem HDD. Na tym samym starym komputerze narzędzie od MS męczy się niemiłosiernie przez prawie dwie minuty... W dodatku DBeaver obsługuje całą masę baz danych - zaczynając od MSSQL poprzez PostgreSQL, MySQL, MariaDB a kończąc na SQLite. Jest tego znacznie więcej.
Kod źródłowy programu można pobrać z gita: https://github.com/dbeaver/dbeaver
Zaś strona projektu oferuje gotowe binarki (w tym także pakiety dla Linuxa lub Maca): https://dbeaver.io
Wszystkie obsługiwane przez program bazy danych można przejrzeć tutaj: https://dbeaver.com/databases/
Ja wymienię tylko te najpopularniejsze:
- Athena
- Apache Calcite Avatica
- Apache Derby
- Apache Drill
- Apache Ignite
- Apache Hive
- Apache Kylin
- Apache Kyuubi
- Apache Phoenix
- Apache Spark
- Azure Databricks
- Azure SQL Server
- Babelfish
- Cache
- Clickhouse
- Cloudera Impala
- CockroachDB
- CrateDB
- CUBRID
- DB2
- Dameng
- DuckDB
- Data Virtuality
- DBF
- Denodo 8
- Dremio
- EDB
- Elasticsearch
- Exasol
- Firebird
- Gemfire XD
- Google BigQuery
- Google Cloud Spanner
- Greenplum
- H2
- H2GIS
- HSQL
- Informix
- Ingres
- InterSystems IRIS
- Kognitio
- Machbase
- MariaDB
- Materialize
- Microsoft SQL Server
- MySQL
- SAP MaxDB
- Mimer SQL
- Monet DB
- Netezza
- Neo4j
- NuoDB
- OceanBase
- Ocient
- OmniSci
- Open Distro Elasticsearch
- OpenEdge
- OpenSearch
- Oracle
- OrientDB
- Pervasive SQL
- PostgreSQL
- PrestoSQL
- PrestoDB
- Redshift
- Salesforce CDP
- SAP HANA
- SnappyData
- Snowflake
- Solr
- SQream DB
- SQLite
- Sybase
- TDengine
- TDengine Cloud
- Teradata
- TimescaleDB
- TiDB
- TiDB Cloud
- Trino
- Virtuoso
- Vertica
- WMI
- Yellowbrick
- YugabyteDB
A to nie jest pełna lista!
Ale przejdźmy do meritum. Program, po pobraniu można zainstalować, albo rozpakować wersję zip i po prostu uruchomić.
W pierwszym etapie łączymy się z bazą danych. Podłączenie się do MySQLa albo MariaDB lub SQLite jest bajecznie proste. Trudności sprawia, jak zwykle, produkt MS. Tutaj trzeba najpierw pogrzebać w konfiguracji SQL Server Configuration Manager. To prosty programik, w którym ustawiamy podstawowe parametry bazy danych. Uruchamiamy ten program.
Po lewej stronie mamy drzewko różnych elementów SQL. Wybieramy SQL Server Network Configuration. Następnie Protocols for SQLExpress. Po prawej stronie wyświetli się nam teraz kilka nowych opcji (zazwyczaj są trzy). Wybieramy TCP/IP i klikamy na to dwa razy (lub prawy przycisk myszy i właściwości).
W nowym oknie, w karcie Protocol ustawiamy Enabled na Yes (standardowo jest No). Następnie przechodzimy na kartę IP Adresses i szukamy w tabeli adresów nagłówka IPAll. Znajdujemy go i w wierszu TCP Port wpisujemy port bazy danych 1433. Teraz należy zastosować zmiany.
Ale to nie wszystko. Aby port 1433 został otworzony dla DBeaver musimy zrestartować usługę. W tym celu, w tym samym programie, po lewej stronie (tam gdzie jest drzewko opcji) wybieramy SQL Server Services. I po prawej stronie wybieramy nasz serwer SQL (SQL Server), prawy przycisk myszy i klikamy na opcję Restart. Usługa się wyłączy, a później włączy z już zmienionymi parametrami.
Teraz możemy włączyć DBeaver i wybrać opcję nowego połączenia z bazą danych (CTRL+SHIFT+N). Wyświetli nam się nowe okienko, w którym musimy wskazać rodzaj podłączanej bazy danych. W naszym przypadku jest to SQL Server. Zaznaczamy i klikamy Next. W nowym oknie wpisujemy parametry połączenia. Host - to komputer z bazą SQL, jeśli baza jest na tym samym komputerze co program zostawiamy localhost. Port 1433.
Najważniejsza jest autoryzacja przy logowaniu. Wybieramy rodzaj autoryzacji. Może to być po prostu autoryzacja Windowsa (popularna opcja przy bazie płatnika). Klikamy listę rozwijaną i wybieramy Windows Authentitcation. W takim wypadku pozostaje nam już tylko zrobić Test Connection (dolna część okna). Jeśli wszystko się uda można wybrać opcję Finish. I to tyle. Mamy połączenie z bazą danych. Oczywiście można wybrać opcję łączenia poprzez logowanie się użytkownika np. słynnego sa. Wówczas musimy podać Username i Password aby połączyć się z bazą danych.
Osobną kwestią jest kopia zapasowa bazy danych. Nie wiem dlaczego, ale wyklikać taką opcję można tylko w przypadku MySQL i PostgreSQL. Jeśli mamy MSSQL to opcji backupu nie można wyklikać. Ale to nie znaczy, że nie można takiej kopii wykonać, albo nawet wykonywać regularnie za pomocą tasków.
Żeby wykonać kopię bazy MSSQL w programie DBeaver trzeba użyć konsoli SQL. Wykonujemy proste polecenie:
BACKUP DATABASE nazwa_bazy TO DISK = 'C:\BACKUP\testowy_backup.bak'
Polecenia nie muszę chyba tłumaczyć. Działa, sprawdziłem, kopia zapasowa powstaje bezproblemowo.
Można też wykonać polecenie kopii różnicowej:
BACKUP DATABASE nazwa_bazy TO DISK = 'C:\BACKUP\testowy_backup.bak' WITH DIFFERENTIAL
Ja jednak zawsze robię pełną kopię.
Przywracanie bazy danych też jest możliwe:
RESTORE DATABASE nazwa_bazy FROM DISK = 'C:\BACKUP\testowy_backup.bak' WITH REPLACE
Warto stworzyć sobie zadanie (task), które będzie wykonywać skrypt:
DECLARE @BackupFileName NVARCHAR(255)
SET @BackupFileName = 'C:\BACKUP\kopia_backup' + REPLACE(CONVERT(NVARCHAR, GETDATE(), 120), ':', '') + '.bak'
BACKUP DATABASE nazwa_bazy_danych
TO DISK = @BackupFileName
Powyższy skrypt wykonuje kopię dodając do nazwy pliku datę kopii zapasowej.
Czy program polecam? Na pewno jest szybszy w działaniu niż SQL Server Management Studio. A jego otwartoźródłowość i możliwość obsługi praktycznie każdej bazy powoduje, że jest to dobry wybór.
Komentarze
Prześlij komentarz