Amazon Best VPN GoSearch

Ulubiona usługa OnWorks

mysqldbcompare - Online w chmurze

Uruchom mysqldbcompare u dostawcy bezpłatnego hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

To jest polecenie mysqldbcompare, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu darmowych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


mysqldbcompare - Porównaj dwie bazy danych i zidentyfikuj różnice

STRESZCZENIE


mysqldbporównaj [Opcje] db1 [:db2] ...

OPIS


To narzędzie porównuje obiekty i dane z dwóch baz danych, aby znaleźć różnice. Ono
identyfikuje obiekty o różnych definicjach w obu bazach danych i prezentuje je w
wybrany format w stylu diff. Różnice w danych pokazano za pomocą podobnego
format w stylu diff. Zmienione lub brakujące wiersze są wyświetlane w standardowym formacie GRID, CSV,
TAB lub PIONOWO.

Użyj notacji db1:db2 do nazwania dwóch baz danych do porównania lub alternatywnie po prostu db1 do
porównaj dwie bazy danych o tej samej nazwie. Ten ostatni przypadek jest notacją wygodną dla
porównywanie baz danych o tych samych nazwach na różnych serwerach.

Porównanie można przeprowadzić na dwóch bazach danych o różnych nazwach na jednym serwerze przez:
określając tylko --serwer 1 opcja. Użytkownik może również połączyć się z innym serwerem przez
określając --serwer 2 opcja. W tym przypadku db1 jest pobierane z serwera 1, a db2 z
serwer2.

Obiekty uwzględniane w bazie danych obejmują tabele, widoki, wyzwalacze, procedury,
funkcje i zdarzenia. Liczbę dla każdego typu obiektu można wyświetlić za pomocą -w opcja.

Sprawdzenie odbywa się za pomocą serii kroków zwanych testami. Domyślnie narzędzie zatrzymuje się
w pierwszym nieudanym teście, ale możesz określić --uruchom-wszystkie-testy możliwość spowodowania
narzędzie do uruchamiania wszystkich testów niezależnie od ich stanu końcowego.

Uwaga: za pomocą --uruchom-wszystkie-testy może powodować spodziewane awarie kaskadowe. Na przykład, jeśli wiersz
liczby różnią się między dwiema porównywanymi tabelami, spójność danych również nie powiedzie się.

Testy obejmują:

1. Sprawdź definicje baz danych

Sprawdzenie warunku wstępnego istnienia bazy danych zapewnia, że ​​istnieją obie bazy danych. Jeśli to zrobią
nie, dalsze przetwarzanie nie jest możliwe, a --uruchom-wszystkie-testy opcja jest ignorowana.

2. Sprawdź istnienie obiektów w obu bazach danych

Test obiektów w obu bazach danych identyfikuje obiekty, których brakuje w jednej lub
inną bazę danych. Pozostałe testy dotyczą tylko tych obiektów, które pojawiają się w obu
bazy danych. Aby pominąć ten test, użyj --pomiń-porównanie-obiektów opcja. To może się przydać
gdy w bazach danych są znane brakujące obiekty.

3. Porównaj definicje obiektów

Definicje ( TWORZENIE zestawienia) są porównywane i prezentowane są różnice. Do
pomiń ten test, użyj --pomiń różnice opcja. Może to być przydatne, gdy istnieje obiekt
różnice nazw tylko te, które chcesz zignorować.

4. Sprawdź liczbę wierszy w tabeli

To sprawdzenie zapewnia, że ​​obie tabele mają tę samą liczbę wierszy. To nie gwarantuje
czy dane w tabeli są spójne. To tylko pobieżne sprawdzenie, aby wskazać możliwe
brakujące wiersze w jednej lub drugiej tabeli. Kontrola spójności danych identyfikuje
brakujące wiersze. Aby pominąć ten test, użyj --pomiń liczbę wierszy opcja.

5. Sprawdź spójność danych w tabeli

Ta kontrola identyfikuje zarówno zmienione wiersze, jak i brakujące wiersze z jednego lub drugiego z
tabele w bazach danych. Zmienione wiersze są wyświetlane jako raport w stylu porównania z:
wybrany format (GRID domyślnie) i brakujące wiersze są również wyświetlane za pomocą
wybrany format. Aby pominąć ten test, użyj --pomiń sprawdzanie danych opcja.

Możesz użyć opcji --skip-xxx, aby uruchomić tylko jeden z testów. To może być
pomocne podczas pracy nad synchronizacją dwóch baz danych, aby uniknąć uruchamiania wszystkich
testy wielokrotnie w trakcie procesu.

Każdy test kończy się jednym z następujących stanów:

· przechodzić

Test się powiódł.

· FAIL

Test się nie powiódł. Błędy są wyświetlane po wierszu stanu testowego.

· POMINĄĆ

Test został pominięty z powodu braku wymagania wstępnego lub opcji pominięcia.

· OSTRZEC

Test napotkał nietypowy, ale nie krytyczny błąd.

· -

Test nie dotyczy tego obiektu.

Aby określić sposób wyświetlania danych wyjściowych w stylu diff, użyj jednej z poniższych wartości z parametrem
--zróżnicowany typ opcja:

· Ujednolicony (Domyślne)

Wyświetl zunifikowany format wyjściowy.

· kontekst

Wyświetl wyjście w formacie kontekstowym.

· różnić się

Wyświetl wyjście w formacie różniącym się stylem.

· sql

Wyświetl dane wyjściowe instrukcji transformacji SQL.

Aby określić sposób wyświetlania danych wyjściowych dla zmienionych lub brakujących wierszy, użyj jednego z poniższych
wartości z --format opcja:

· ruszt (Domyślne)

Wyświetlaj dane wyjściowe w formacie siatki lub tabeli, takim jak w mysql monitor.

· CSV

Wyświetlaj dane wyjściowe w formacie wartości rozdzielanych przecinkami.

· Zakładka

Wyświetlaj dane wyjściowe w formacie rozdzielanym tabulatorami.

· pionowy

Wyświetlaj dane wyjściowe w formacie jednokolumnowym, takim jak polecenie \G dla mysql
monitor.

--zmiany-dla opcja kontroluje kierunek różnicy (poprzez określenie
obiekt do transformacji) w raporcie różnic (domyślnie) lub transformacji
raport (oznaczony symbolem --difftype=kw opcja). Rozważ następujące polecenie:

mysqldbcompare --server1=root@host1 --server2=root@host2 --difftype=sql \
db1:dbx

Baza danych po lewej stronie (db1) istnieje na serwerze wyznaczonym przez --serwer 1 opcja
(host1). Baza danych z prawej strony (dbx) istnieje na serwerze wyznaczonym przez --serwer 2
opcja (host2).

· --changes-for=serwer1: Przygotuj dane wyjściowe, które pokazują, jak tworzyć definicje
obiekty na serwerze1 jak definicje odpowiednich obiektów na serwerze2.

· --changes-for=serwer2: Przygotuj dane wyjściowe, które pokazują, jak tworzyć definicje
obiekty na serwerze2 jak definicje odpowiednich obiektów na serwerze1.

Domyślnym kierunkiem jest serwer1.

Musisz podać parametry połączenia (użytkownik, host, hasło itd.) dla konta
który ma odpowiednie uprawnienia dostępu do wszystkich obiektów w operacji.

Jeśli narzędzie ma być uruchomione na serwerze z włączonym logowaniem binarnym, a Ty nie
chcesz zarejestrować kroki porównania, użyj --wyłącz-binarne-logowanie opcja.
OPCJE

mysqldbporównaj akceptuje następujące opcje wiersza polecenia:

· --wszystkie, -a

Uwzględnij wszystkie bazy danych. Dodano w wersji 1.3.5.

· --Wsparcie

Wyświetl komunikat pomocy i wyjdź.

· --zmiany-dla=

Określ serwer, aby wyświetlić przekształcenia zgodne z innym serwerem. Na przykład, aby
zobacz transformację do przekształcania definicji obiektów na serwerze 1 w celu dopasowania do
odpowiednie definicje na serwerze2, użyj --changes-for=serwer1. Dozwolone wartości to
server1 i server2, Wartość domyślna to server1.

· --difftype= , -D

Określ format wyświetlania różnicy. Dozwolone wartości formatu to Ujednolicony, kontekst,
różnić się, sql, Wartość domyślna to Ujednolicony.

· --wyłącz logowanie binarne

Jeśli logowanie binarne jest włączone, wyłącz je podczas operacji, aby zapobiec porównywaniu
operacje od zapisu do dziennika binarnego. Uwaga: wyłączanie rejestrowania binarnego
wymaga SUPER przywilej.

· --wyklucz= , -x

Wyklucz jedną lub więcej baz danych z operacji, używając określonej nazwy, takiej jak
db1 lub wzorzec wyszukiwania. Użyj tej opcji wiele razy, aby określić wiele
wyłączenia. Domyślnie wzorce używają wzorców baz danych, takich jak LIKE, Z --wyrażenie regularne
opcja, wzorce używają wyrażeń regularnych do dopasowywania nazw. Dodano w wersji 1.3.5.

· --format= , -F

Określ format wyświetlania zmienionych lub brakujących wierszy. Dozwolone wartości formatu to
ruszt, CSV, Zakładka, pionowy, Wartość domyślna to ruszt.

· --cicho, -q

Nie drukuj niczego. Zwróć tylko kod zakończenia sukcesu lub niepowodzenia.

· --regexp, --basic-regexp, -G

Wykonaj dopasowania wzorców za pomocą REGEXP operator. Domyślnie jest używać LIKE dla
dopasowanie. Dodano w wersji 1.3.5.

· --uruchom-wszystkie-testy, -t

Nie zatrzymuj się przy pierwszej znalezionej różnicy. Przetwarzaj wszystkie obiekty. Zmieniono skrót z
-a do -t w wydaniu 1.3.5.

· --serwer1=

Informacje o połączeniu dla pierwszego serwera w formacie:
<użytkownik>[:passwd>]@gospodarz>[:Port>][:gniazdo>] lubścieżka-logowania>[:Port>][:gniazdo>].

· --serwer2=

Informacje o połączeniu dla drugiego serwera w formacie:
<użytkownik>[:passwd>]@gospodarz>[:Port>][:gniazdo>] lubścieżka-logowania>>::Port>][::gniazdo>].

· --pokaż-odwrotnie

Utwórz raport transformacji zawierający instrukcje SQL, aby dostosować obiekt
definicje podane w odwrotnej kolejności. Na przykład, jeśli --changes-for jest ustawione na server1,
wygeneruj również transformację dla server2. Uwaga: odwrotne zmiany są opatrzone adnotacjami
i oznaczone jako komentarze.

· --pomiń sprawdzanie danych

Pomiń sprawdzanie spójności danych.

· --pomiń-różnic

Pomiń sprawdzanie różnicy definicji obiektu.

· --pomiń-obiekt-porównaj

Pomiń sprawdzanie porównania obiektów.

· --pomiń liczbę wierszy

Pomiń sprawdzanie liczby wierszy.

· --rozpiętość-klucza-rozpiętości=

Zmień rozmiar klucza używanego do porównywania zawartości tabeli. Wyższa wartość może pomóc
uzyskać dokładniejsze wyniki porównując duże bazy danych, ale może spowolnić algorytm.

Wartość domyślna to 8.

· --gadatliwy, -v

Określ ilość informacji do wyświetlenia. Użyj tej opcji wiele razy, aby zwiększyć
ilość informacji. Na przykład, -v = gadatliwy, -w = bardziej gadatliwy, -vvv =
odpluskwić.

· --wersja

Wyświetl informacje o wersji i zakończ.

· --szerokość=

Zmień szerokość wyświetlania raportu z testu. Wartość domyślna to 75 znaków.
UWAGI

Logujący się użytkownik musi mieć odpowiednie uprawnienia, aby czytać wszystkie bazy danych i tabele
katalogowany.

Dla --zróżnicowany typ opcja, dozwolone wartości nie uwzględniają wielkości liter. Ponadto,
wartości można określić jako dowolny jednoznaczny przedrostek prawidłowej wartości. Na przykład,
--difftype=d określa inny typ. Błąd występuje, jeśli prefiks pasuje do więcej niż jednego
prawidłowa wartość.

Ścieżka do narzędzi klienta MySQL powinna być zawarta w zmiennej środowiskowej PATH w
aby skorzystać z mechanizmu uwierzytelniania ze ścieżkami logowania. Umożliwi to narzędziu:
użyj narzędzi my_print_defaults, które są wymagane do odczytania wartości ścieżki logowania z
plik konfiguracyjny logowania (.mylogin.cnf).

Jeśli jakikolwiek identyfikator bazy danych określony jako argument zawiera znaki specjalne lub jest
słowo zastrzeżone, to musi być odpowiednio ujęte w cudzysłów (`). Z kolei nazwiska
cytowane z backtickami muszą być również cytowane w apostrofach pojedynczych lub podwójnych w zależności od
system operacyjny, tj. (") w systemie Windows lub (') w systemach innych niż Windows, aby
narzędzia do odczytu identyfikatorów w cudzysłowie z zaznaczeniem jako pojedynczego argumentu. Na przykład, aby
porównaj bazę danych z nazwą dziwne `db.name w inne: dziwne `db.name, para baz danych
należy określić przy użyciu następującej składni (w systemach innych niż Windows):
'`dziwne``db.name`:`inne:dziwne``db.name`'.
PRZYKŁADY

Użyj następującego polecenia, aby porównać bazy danych emp1 i emp2 na serwerze lokalnym, i
uruchom wszystkie testy, nawet jeśli wcześniejsze testy zakończą się niepowodzeniem:

$ mysqldbcompare --server1=root@localhost emp1:emp2 --run-all-tests
# serwer1 na hoście lokalnym: ... podłączony.
# Sprawdzanie baz danych emp1 na serwerze1 i emp2 na serwerze2
OSTRZEŻENIE: Obiekty w server2:emp2, ale nie w server1:emp1:
SPUST: trg
PROCEDURA: p1
TABELA: t1
WIDOK: v1
Dane wiersza definicji
Wpisz nazwę obiektu Różnica liczby Sprawdź
-------------------------------------------------- -------------------------
FUNKCJA f1 pass - -
TABELA wydziałów przechodzi zaliczenie FAIL
Różnice w danych znalezione między wierszami:
--- emp1.działy
+++ emp2.działy
@@ -1,4 +1,4 @@
************************* 1. rząd ********************** ***
numer_działu: d002
- nazwa_działu: nie wiem
+ nazwa_działu: Finanse
1 rzędy.
Wiersze w emp1.departments nie w emp2.departments
************************* 1. rząd ********************** ***
numer_działu: d008
nazwa_działu: Badania
1 rzędy.
Wiersze w emp2.departments nie w emp1.departments
************************* 1. rząd ********************** ***
numer_działu: d100
nazwa_działu: głupie
1 rzędy.
TABLE dept_manager przepustka przepustka przepustka
Sprawdzanie spójności bazy danych nie powiodło się.
# ...Gotowe

Biorąc pod uwagę: dwie bazy danych o tym samym układzie tabel. Dane dla każdej tabeli zawierają:

mysql> wybierz * z db1.t1;
+-------+--------------+
| | b |
+-------+--------------+
| 1 | Test 789 |
| 2 | Test 456 |
| 3 | Test 123 |
| 4 | Nowy wiersz - db1 |
+-------+--------------+
4 rzędy w zestawie (0.00 s)
mysql> wybierz * z db2.t1;
+-------+--------------+
| | b |
+-------+--------------+
| 1 | Test 123 |
| 2 | Test 456 |
| 3 | Test 789 |
| 5 | Nowy wiersz - db2 |
+-------+--------------+
4 rzędy w zestawie (0.00 s)

Aby wygenerować instrukcje SQL dla transformacji danych, aby db1.t1 był taki sam jak db2.t1,
użyć --changes-for=serwer1 opcja. Musimy również uwzględnić -a możliwość zapewnienia, że
uruchamiany jest test spójności danych. Poniższe polecenie ilustruje użyte opcje i
fragment uzyskanych wyników:

$ mysqldbcompare --server1=root:root@localhost \
--server2=root:root@localhost db1:db2 --changes-for=serwer1 -a \
--difftype=kw
[...]
# Definiowane dane wiersza
# Typ Nazwa obiektu Różnica Liczba
Sprawdzać #
-------------------------------------------------- -----------------------
# TABELA t1 pass pass FAIL
# # Transformacje danych dla kierunku = serwer1:
# Różnice w danych znalezione między wierszami: UPDATE db1.t1 SET b = 'Test 123'
GDZIE a = „1”; AKTUALIZACJA db1.t1 SET b = 'Test 789' GDZIE a = '3'; KASOWAĆ
OD db1.t1 GDZIE a = '4'; INSERT INTO db1.t1 (a, b) VALUES('5', 'New
wiersz - db2');
# Sprawdzanie spójności bazy danych nie powiodło się. # # ...Gotowe

Podobnie, gdy to samo polecenie jest uruchamiane z --changes-for=serwer2 i --difftype=kwThe
generowany jest następujący raport:

$ mysqldbcompare --server1=root:root@localhost \
--server2=root:root@localhost db1:db2 --changes-for=serwer2 -a \
--difftype=kw
[...]
# Definiowane dane wiersza
# Typ Nazwa obiektu Różnica Liczba
Sprawdzać #
-------------------------------------------------- -----------------------
# TABELA t1 pass pass FAIL
# # Transformacje danych dla kierunku = serwer2:
# Różnice w danych znalezione między wierszami: UPDATE db2.t1 SET b = 'Test 789'
GDZIE a = „1”; AKTUALIZACJA db2.t1 SET b = 'Test 123' GDZIE a = '3'; KASOWAĆ
OD db2.t1 GDZIE a = '5'; INSERT INTO db2.t1 (a, b) VALUES('4', 'New
wiersz - db1');

Z --difftype=kw zestaw opcji generowania SQL, --pokaż-odwróć pokazuje obiekt
przekształcenia w obu kierunkach. Oto fragment wyników:

$ mysqldbcompare --server1=root:root@localhost \
--server2=root:root@localhost db1:db2 --changes-for=serwer1 \
--show-reverse -a --difftype=sql
[...]
# Definiowane dane wiersza
# Typ Nazwa obiektu Różnica Liczba
Sprawdzać #
-------------------------------------------------- -----------------------
# TABELA t1 pass pass FAIL
# # Transformacje danych dla kierunku = serwer1:
# Różnice w danych znalezione między wierszami: UPDATE db1.t1 SET b = 'Test 123'
GDZIE a = „1”; AKTUALIZACJA db1.t1 SET b = 'Test 789' GDZIE a = '3'; KASOWAĆ
OD db1.t1 GDZIE a = '4'; INSERT INTO db1.t1 (a, b) VALUES('5', 'New
wiersz - db2');
# Transformacje danych dla kierunku = serwer2:
# Różnice w danych znalezione między wierszami: UPDATE db2.t1 SET b = 'Test 789'
GDZIE a = „1”; AKTUALIZACJA db2.t1 SET b = 'Test 123' GDZIE a = '3'; KASOWAĆ
OD db2.t1 GDZIE a = '5'; INSERT INTO db2.t1 (a, b) VALUES('4', 'New
wiersz - db1');
# Sprawdzanie spójności bazy danych nie powiodło się. # # ...Gotowe

PRAWA AUTORSKIE


Korzystaj z mysqldbcompare online za pomocą usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad




×
reklama
❤️Zrób zakupy, zarezerwuj lub kup tutaj — bezpłatnie, co pomaga utrzymać bezpłatne usługi.