Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody
Klient tekstowy mysql Program mysql jest prostym programem uruchamianym w konsoli shell do obsługi zapytań SQL. Uruchomienie programu: mysql db_name mysql -u root -p db_name mysql --user=root --password=rootpass db_name
Opcje programu mysql --help, -? pozwala wyświetlić dostępne opcje programu --compress, -C opcja pozwala na przesyłanie danych pomiędzy serwerem a klientem w postaci skompresowanej --delimiter=str zmiana znaku rozdzielającego zapytania na str we wprowadzanych zapytaniach (skrypcie) --execute=statement uruchomienie jednego zapytania mysql -p --execute="select User, Host FROM mysql.user" mysql -e "SELECT VERSION();SELECT NOW()"
Opcje programu mysql --host=host_name, -h host_name zdalne połączenie do serwera baz danych na maszynie host_name --port=port_num, -P port_num zmiana domyślnego portu --password[=password], -p[password] automatyczne logowanie po podaniu hasła --user=user_name, -u user_name wprowadzenie nazwy użytkownika (domyślnie to nazwa użytkownika systemu) mysql test -u test -ptest mysql test --user=test --password=test
Opcje programu mysql --xml, -X opcja pozwalająca uzyskać wynik w postaci XML inne: batch, table, html mysql --execute="select User, Host FROM mysql.user" --xml <?xml version="1.0"?> <resultset statement="select User, Host FROM mysql.user " xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <row> <field name="user">test</field> <field name="host">%</field> </row> <row> <field name="user">root</field> <field name="host">localhost</field> </row> <!--- inne wiersze --> </resultset>
Komendy mysql help,? pomoc do programu clear czyszczenie konsoli exit, quit wyjście z programu status informacje o aktualnym połączeniu system wywołanie komendy systemowej z poziomu mysql help atrybut komenda help pozwala także na wyświetlenie informacji (pomocy) na temat podanego parametru (np. komenda help select wyświetli pomoc na temat komendy SQL - select
Aktualne bazy danych Po zalogowaniu się do programu mysql należy wybrać bazę danych na której chcemy pracować (jeśli baza nie została wpisana w komendzie uruchomienia programu). Ta sama komenda służy do zmiany aktualnej bazy danych: CONNECT test lub USE test
Podgląd struktury bazy danych Do podglądu elementów struktury danych służą komendy: SHOW DATABASES SHOW [FULL] TABLES SHOW [FULL] COLUMNS SHOW INDEX SHOW CHARACTER SET SHOW COLLATION
Podgląd struktury bazy danych Alternatywnie do wyświetlenia struktury służy program mysqlshow: mysqlshow wyświetla bazy danych mysqlshow mysql wyświetla tabele mysqlshow mysql user wyświetla kolumny mysqlshow mysql user host wyświetla opis kolumny
Mechanizm składowania Mechanizm składowania mechanizm sposobu zapisu danych wprowadzanych do bazy. Dostępne mechanizmy składowania: InnoDB, MRG_MYISAM, BLACKHOLE, CSV, MEMORY, FEDERATED, ARCHIVE, MyISAM Dostępne mechanizmy składowania (silniki zapisu danych) można wpisać za pośrednictwem komendy SHOW ENGINES
MyISAM - Zalety Maksymalny rozmiar tabeli 65536TB (chyba że ograniczone systemem) Niski koszt przechowywania (efektywna obsługa składowania) Wsparcie indeksów B-Tree, FullText Bardzo szybkie wykonywanie zapytań INSERT i pobierających SELECT Szybkie wykonywanie zapytań zliczających liczbę wierszy w tabeli
MyISAM - Wady Brak mechanizmu transakcji Blokowanie na poziomie tabeli Brak mechanizmu crash recovery Blokowanie wykonywania kopii zapasowej online Brak możliwości nadawania ograniczeń kluczy obcych
InnoDB - Zalety Zgodność z ACID - atomicity - atomowość, consistency - spójność, isolation - izolacja, durability trwałość Wsparcie crash recovery Wysoki limit zajętości (64TB dla każdej przestrzeni tabel) Nieograniczone blokady na poziomie wierszy Backup nieblokujący online Zaawansowane mechanizmy pamięci cache
InnoDB - Wady Brak wsparcie dla indeksów fulltext Wymaga większych zasobów pamięci i dyskowych
MEMORY - Zalety Bardzo szybkie wykonywanie operacji zapisu i odczytu Wsparcie dla indeksów tree i hash Zarządzanie główną pamięcią bazy danych
MEMORY - Wady Dane nie są zachowywane między wyłączeniami serwera Brak wsparcia dla transakcji Brak wsparcia dla kluczy obcych Brak indeksów pełnotekstowych Blokady na poziomie tabeli Brak możliwości używania typów BLOB lub Text
Monitorowanie bazy danych Monitorowanie działania bazy danych odbywa się przez uruchomienie logów systemu, tzw dzienników. Ogólny plik dzienników jest zapisywany w pliku wskazywanym przez zmienną systemową: general_log_file oraz oraz general_log musi być włączone. Zmienne te można ustawić w pliku /etc/mysql/my.cnf: general_log_file = /var/log/mysql/mysql.log general_log = 1 Wartości te są domyślnie zakomentowane.
Monitorowanie bazy danych Można monitorować zapytania których wykonanie trwa pewien ustalony limit czasu: log_slow_queries Czas po przekroczeniu którego zapytanie zostanie zapisane do pliku logów przypisany jest do zmiennej: long_query_time w sekundach. Wartości te mogą być modyfikowane w czasie działania bazy danych: SET GLOBAL long_query_time = 10; Wprowadzenie opcji: log-queries-not-using-indexes pozwala na zapisywanie zapytań, które nie używają indeksów.
Monitorowanie bazy danych Dziennik binarny log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M Zapis wszystkich operacji, które powodują zmiany w bazie danych. Możliwość odtworzenia wszystkich wykonanych operacji: mysqlbinlog /var/log/mysql/mysql-bin.000001
Administracja bazami danych dr inż. Grzegorz Michalski