Moduł 03

Transkrypt

Moduł 03
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
? – pomoc do programu
• help,
• clear
– czyszczenie konsoli
quit – wyjście z programu
• exit,
• status
– informacje o aktualnym połączeniu
• system
– wywołanie komendy systemowej z poziomu mysql
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
• help
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
lub
test
• 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
tabeli
wykonywanie zapytań zliczających liczbę wierszy w
MyISAM - Wady
• Brak
mechanizmu transakcji
• Blokowanie
• Brak
mechanizmu crash recovery
• Blokowanie
• Brak
na poziomie tabeli
wykonywania kopii zapasowej online
możliwości nadawania ograniczeń kluczy obcych
InnoDB - Zalety
• Zgodność
z ACID - atomicity - atomowość, consistency spójność, isolation - izolacja, durability – trwałość
• Wsparcie
• Wysoki
crash recovery
limit zajętości (64TB dla każdej przestrzeni tabel)
• Nieograniczone
• Backup
blokady na poziomie wierszy
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
• Brak
na poziomie tabeli
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

Podobne dokumenty