Coś dla fanów PostgreSQL. Co to jest Transaction ID Exhaustion (Wraparound) i jak uniknąć vacuum które zablokuje pozostałe transakcje.
https://tomasz-gintowt.medium.com/postgresql-transaction-id-exhaustion-wraparound-e8440046472a
Historia jak wiele innych, zaplanowana przez deweloperów poranna wrzuta przeciąga się w nieskończoność. Większość operacji na bazie trwa niemiłosiernie długo. Ktoś wpadł na pomysł, żeby ubić proces…
https://tomasz-gintowt.medium.com/postgresql-transaction-id-exhaustion-wraparound-e8440046472aWydajna internacjonalizacja w PostgreSQL + Hibernate / JPA - tabela towarzysząca z tłumaczeniami
Kontynuując nasze rozważania jak optymalnie zaimplementować wyszukiwanie tekstowe na poziomie pojedynczych pól w systemie opiszemy koncepcję tabeli towarzyszącej z tłumaczeniami, którą będziemy tworzyć dla każdej klasy. Zastosujemy tutaj indeksy typu GIN / GiST opisane na początku niniejszej serii artykułów oraz spróbujemy zaimplementować opisywaną koncepcję w technologii Spring Data JPA, Hibernate oraz Postgres.
Nowy artykuł na naszym blogu: https://walczak.it/pl/blog/wydajna-internacjonalizacja-w-postgresql-hibernate-jpa-tabela-towarzyszaca-z-tlumaczeniami
W psycopg będzie wsparcie dla asynca oraz connection poole. Nareszcie.
https://www.psycopg.org/psycopg3/docs/advanced/pool.html
https://www.psycopg.org/psycopg3/docs/advanced/async.html#async
Oracle ma Database Control podobnie jak MySQL ma phpMyAdmin, a PostgreSQL ma pgAdmin. Łatwy w instalacji, przyjazny w użyciu i z intuicyjnym interfejsem :-)
Instalacja Database Control:
emca -config dbcontrol db -repos create
#database #rdbms #oracle #mysql #postgresql #dba #backend #dba4dev #marcinbadtke
Noworoczne życzenia -
Pomyślności w 2021 roku ! Coby optymalizator zawsze wybierał optymalny plan dla Waszych SQLi, bazy zawsze miały dość miejsca na dane, a log transakcyjny nigdy się nie zapychał :-)
#database #rdbms #oracle #mysql #postgresql #sqlserver #sql #plsql #backend #dba4dev #marcinbadtke
Czym różni się backup fizyczny od logicznego ?
Fizyczny backup polega na skopiowaniu fizycznej struktury bazy danych. Czyli plików. Narzędzia wykonujące backup fizyczny kopiują plik po pliku. Wyjątkiem jest Oracle RMAN - Recovery MANager - kopiujący pliki bazy danych blok po bloku. O czym mowa w: .
Logiczny backup, natomiast, polega na skopiowaniu logicznej struktury bazy danych. Czyli schematów, tabel, danych. Narzędzie wykonujące backup logiczny kopiuje obiekty bazy danych, jeden po drugim, często przetwarzając je na komendy języka SQL. Tak działa np. Oracle expdp
, narzędzie PostgreSQL - pg_dump
, MySQL mysqldump
czy SQL Server bcp
.
Każdy backup gorący wymaga uspójnienia - recovery. W przypadku fizycznego backup'u instancja bazy danych wykorzystuje do tego log transakcyjny. O czy mowa w: https://4programmers.net/Mikroblogi/View/89851 . Jak uspójnić gorący backup logiczny ? Nie da się. Trzeba od razu wykonać backup spójny. Wykorzystywane są do tego mechanizmy transakcyjności i MVCC.
Aby Oracle expdp wykonał spójny backup należy użyć parameteru FLASHBACK_SCN lub FLASHBACK_TIME. Przy czym FLASHBACK_TIME jest konwertowany na najbliższy SCN. Wartości tych parametrów mogą wskazywać na wcześniejszy punkt w czasie niż moment rozpoczęcia backup'u logicznego. Aby backup zakończył się sukcesem należy zapewnić odpowiednią ilość przestrzeni UNDO. Bez użycia parameterów FLASHBACK_SCN lub FLASHBACK_TIME expdp
wykona backup spójny, ale tylko dla poszczególnych tabel. Dane w różnych tabelach nie będą spójne.
Dla odmiany PostgreSQL pg_dump
zawsze wykonuje backup spójny. Wykorzystuje do tego pojedynczą transakcję i mechanizm MVCC.
Aby zapewnić spójność backup'u logicznego w MySQL należy użyć przełącznika --single-transaction
. Zadziała dla InnoDB. Aby wykonać spójny backup danych nietransakcyjnych - np. MyISAM - należy zablokować całą bazę danych na czas backup'u.
Do czego przydają się backup'y logiczne ?
Są przenośne pomiędzy platformami i różnymi wersjami bazy danych. Dzięki nim możemy przenieść dane z AIX do Linux lub Windows. Lub z Oracle 12c do 10g. Lub do chmury.
Dodatkowym atutem jest weryfikacja spójności logicznej bazy danych. Posiadanie backup'u logicznego jest, również kolejnym zabezpieczeniem na wypadek utraty środowiska razem ze wszystkimi backup'ami.
#database #oracle #sql #plsql #backend #mysql #postgresql #sqlserver #dba4dev #marcinbadtke #expdp #backup #dba4dev #marcinbadtke
Czasami jak nie ma dostępu do webowego klienta na hostingu to używam https://www.adminer.org/ daje radę.