Tags Posts tagged with "baza danych"

baza danych

przez -
0 510
Canonical

Jakiś czas temu Canonical ogłosiło, że przestaje użytkować CouchDB, jak i jest możliwe zaprzestanie używania DesktopCouch – API pulpitu dla CouchDB. Dowiedzieliśmy się także, że firma zamierza stworzyć swoje własne rozwiązanie o nazwie U1DB, które miałoby sprostać wymaganiom. Po kilkudziesięciu dniach pracy Canonical ogłosiło udostępnienie szkicu technicznego, który obrazuje, jak będzie wyglądała przyszłe API model danych zaprojektowany do współpracy z każdą bazą danych potrafiącą pełnić rolę magazynu.

API zostało stworzone, aby umożliwić przechowywanie dokumentów JSON w synchronizowanej bazie danych i uprościć cały proces. Póki co całość jest oparta o API Pythona oraz SQLite, ale znajdziemy również implementację w Vala. Deweloperzy planują także port na iOS w Objective C i SQLite, oraz na Androida – Java z SQLite. W opisie pojawiają się wzmianki o przenośnym API, zarządzaniu rewizjami ID, autoryzację HTTP, indeksowania i replikację.

przez -
2 542
Canonical

Canonical zdecydowało się porzucić CouchDB, jako usługę synchronizacji Ubuntu One. Informację tę podał John Lenton, Senior Engineering Manager. CouchDB było używane w celu zapewnienia synchronizacji przechowywanych i dystrybuowanych dowolnie struktur danych, taki jak kontakty, notatki i listy odtwarzania. Opiekunem nierelacyjnej bazy danych jest Apache Foundation, która oferuje przechowywanie oparte na dokumentach z kodowaniem JSON i zintegrowany system synchronizacji.

Canonical współpracowało z Fundacją Apache, aby zapewnić skalowalność bazy danych w sposób szczególny, jednakże nie było to możliwe. Lenton powiedział, że Ubuntu One potrzebuje skalowalności do milionów użytkowników, jednocześnie zapewniając przyzwoite ładowanie na małych maszynach klientów. Dalszym problemem jest to, że zostaje wyłączony całkowicie dostęp z zewnętrznych lokalizacji i każda inna baza danych przechowywana w serwisie chmury, zostanie usunięta. Kontakty, notatki i playlisty pozostaną nadal dostępne.

Firma oświadczyła, że pracuje nad nowym rozwiązaniem – U1DB, jednakże nie zobaczymy tego w Ubuntu 12.04 LTS. Ubuntu One zatem nie będzie już używało CouchDB, w tym desktop service application i desktopcouch. Będzie to również powodem braku synchronizacji.

przez -
3 477
MySQL

Oracle ogłosiło wydanie MySQL 5.5.18, regularnej aktualizacji produkcyjnej wersji otwartoźródłowej bazy danych. Firma oznaczyła niebezpieczne zapytania dla replikacji o nie oparte (statement-based replication). Zapytania te opierają się głównie o wynik polecenia SELECT, gdzie nie można ustalić kolejności wyników. Poprawiono także błąd w replikacji, gdzie master mógł wysłać niebezpieczne zdarzenia do slaves, jeżeli dysk przechowywał binarne logi na masterze, który stał się przepełniony.

Inne zmiany obejmują poprawki w bibliotece libedit w pakiecie MySQL, usuwanie i zwalnianie niepotrzebnej alokacji pamięci, podczas otwierania tabel, poprawiono awarie związane z tabelami ARCHIVE i FEDERATED. Usunięto możliwą awarię w komendzie OPTIMIZE TABLE przy użyciu MyISAM. Programiści umożliwili także użycie RPM w celu zastąpienia dowolnie zainstalowanej wersji MySQL inną z tej samej rodziny, np. podczas aktualizacji z wersji darmowej do komercyjnej.

przez -
0 625
Firebird

Pojawiła się pierwsza aktualizacja do serii Firebird 2.5.x – otwarto-źródłowego systemu zarządzania relacyjnymi bazami danych, zgodnego ze standardem ANSI SQL-92. Jest jednym z trzech najpopularniejszych systemów zarządzania bazą danych. Oferuje również wiele elementów standardu SQL-99 oraz SQL:2003. Działa w środowisku systemu operacyjnego Linux, Windows, Mac OS X i wielu innych.

Najnowsza wersja ulepsza wydajność przywracania bazy danych i zawiera możliwość zapisania do tymczasowych globalnych tabel w bazach tylko do odczytu. Prócz tego dodano możliwość skasowania oczekiwania w Lock Manager, zaktualizowano optymalizator zapytań, usprawniono zdalny interfejs oraz poprawiono wiele innych błędów.

Firebird 2.5.1 jest w pełni zgodny wstecznie z dyskowymi strukturami wersji 2.5.0. Wszystkie osoby posiadające starsze wersje, są proszone o aktualizację.

przez -
0 847
MySQL

Oracle ogłosiło dostępność komercyjnych rozszerzeń dla bazy danych MySQL. Nowe rozszerzenia są dostępne dla Enterprise Edition i będą potem rozróżniały wersję komercyjną od społecznościowej. Wcześnie, Enterprise Edition zawierała jedynie zewnętrzne narzędzia – MySQL Enterprise Monitor i MySQL Enterprise Backup, jako część ich pakietu, jednakże nowe rozszerzenia są bardziej zintegrowane z bazą.

Narzędzie Thread Pool, np. oferuje ulepszoną wydajność na 16 rdzeniowych lub większych systemach. Dzięki takim rozszerzeniom jest możliwe zwiększenie ogólnej wydajności od 3 do 20 razy.

Okazuje się także, że decyzja firmy spotkała się zarówno z ciepłym przyjęciem, jak i niezadowoleniem części osób.

przez -
8 1404
MySQL

Firma Oracle poinformowała o nowościach jakie czekają nas w nadchodzącym wydaniu serwera baz danych MySQL 5.6. Firma skupiła się głównie na zwiększeniu skalowalności, wydajności i elastyczności swojego produktu. Przede wszystkim zaktualizowano silnik składowania danych InnoDB. Otrzymał on pełne wsparcie dla przeszukiwania pełnotekstowego. Możliwe jest również tworzenie indeksów pełnotekstowych oraz przeszukiwanie treści w tabelach InnoDB.

Ulepszono również start samego serwera dzięki opcji Buffer Pool Pre-loading. Umożliwia to automatyczne lub ręczne wstępnie ładowanie buforów InnoDB. Znacznie skraca to czas startu lub restartu serwera.

Zwiększono również wielkość redo logów z 4 GB do 2 TB. Pozwala to na zwiększenie wydajności w aplikacjach, które bardzo intensywnie zapisują dane do dziennika. Ograniczy to częstotliwość zamykania i tworzenia nowych plików.

Pojawiło się również BinLog API. Otwiera to nowe podejście do replikacji MySQL do innych systemów lub baz danych. API pozwala na odczyt i dekodowanie logów binarnych serwera, które są wykorzystywane w mechanizmie replikacji. Poprawiono również sam mechanizm binlogów, dodając do niego Group Commit. Od teraz aktualizacje do dziennika mogą być wykonywane równolegle co zwiększa wydajność całej replikacji.

Wydanie Preview MySQL 5.6 dostępne jest w serwisie labs.mysql.com. Oprogramowanie to nie nadaje się do produkcyjnego wykorzystania. Brakuje jeszcze wielu elementów, a spora z nich część jest nadal w rozwoju.

przez -
11 1539
MySQL

Firma Oracle ogłosiła wydanie serwera bazodanowego MySQL 5.5.8. Jest to pierwsze stabilne wydanie, które cechuje się zwiększoną stabilnością oraz szybkością. Firma zrezygnowała ze starego silnika MyISAM i zamiast niego domyślnie wykorzystywany jest InnoDB. Silnik ten rozwija spółka Innobase, której właścicielem jest Oracle. Nowy silnik daje dużo większą szybkość realizacji zapytań. Według producenta działa on ponad 15 razy szybciej niż stary silnik.

W systemach typu Linux zyskuje się ponad 360% wydajność w operacjach odczyt/zapis oraz do 200% zysku w przypadku operacji odczytu. Dla systemu Windows jest to odpowiednio 1500% i 500% w porównaniu do MySQL 5.1.

Zwiększona została stabilność samego silnika. Pozbyto się globalnych blokad, a wykorzystano blokady dla poszczególnych zadań. Dzięki temu MySQL działa znacznie stabilniej na wielordzeniowych maszynach. Przy wykorzystaniu większej liczby segmentów wycofania, półsynchronicznej replikacji oraz wykorzystania asynchronicznego mechanizmu wejścia/wyjścia w Linuksie zwiększona została stabilność i niezawodność systemu.

Kolejną zmianą jest możliwość wykorzystania różnych metod uwierzytelniania do bazy danych. Starsze wersje serwera korzystały jedynie z wewnętrznego mechanizmu zarządzania użytkownikami. Pojawił się specjalny użytkownik Proxy User, który odpowiada jedynie za przyporządkowanie innemu użytkownikowi odpowiednich uprawnień. Dzięki odpowiednim pluginom, możliwa stała się autoryzacja po LDAP oraz mechanizmie PAM.

Aby skorzystać z mechanizmu, należy użyć nowego polecenia GRANT PROXY. Mechanizm ten pozwala, na przekazanie loginów oraz haseł innej usłudze (np. LDAP), która następnie dostarczy do serwera MySQL odpowiednie dane do autoryzacji.

CREATE USER ''@'' IDENTIFIED WITH ldap_plugin AS 'O=Oracle, OU=MySQL';
CREATE USER 'developer' IDENTIFIED BY 'test';
CREATE USER 'manager' IDENTIFIED BY 'test2';
GRANT PROXY ON 'manager' TO ''@'';
GRANT PROXY ON 'developer' TO ''@'';

Szczegółowa dokumentacja nowego mechanizmu autoryzacji znajduje się na stronie dev.mysql.com.

przez -
4 2157
Importowanie wpisów z innej bazy MySQL do Wordpressa

Przenoszenie danych pomiędzy różnego rodzaju silnikami CMS może być kłopotliwe. Silnik WordPressa pozwala na importowanie wpisów z takich serwisów jak Blogger czy LiveJournal. Możliwy jest również import z innej wersji WordPressa za pomocą specjalnego pliku XML. A co jeśli chcemy przenieść dane ze starego systemu takiego jak np. jPortal lub własnego CMSa, którego dawno porzuciliśmy?

Jak się okazuje nie jest to takie trudne zadanie. Możemy do tego celu wykorzystać funkcję wp_insert_post(). Jest ona wbudowana w silnik WordPressa. Do tego celu napiszemy skrypt PHP, który połączy się ze starą bazą danych i przekonwertuje wpisy.

W pierwszej kolejności musimy połączyć się ze starą bazą:

$db_host = 'localhost';
$db_user = 'jportal';
$db_pass = 'haslo';
$db_name = 'jportal';

mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name);

Jeżeli wszystkie dane podaliśmy poprawnie, będziemy mogli wyciągnąć z bazy istniejące wpisy:

$sql = "SELECT * FROM `jp_news`;";
$result = mysql_query($sql);

W następnej kolejności musimy zbudować tablicę zawierającą wpisy skonwertowane do wersji WordPressa. Ustawiamy status wpisu oraz kategorię w jakiej mają się pojawić. Datę newsa musimy podać w formacie: Y-m-d H:i:s.

$i = 0;
while($wiersz = mysql_fetch_array($result))
{	
	$post = array();
	$post['post_status'] = 'publish'; //Opublikuj wpis automatycznie
	$post['post_category'] = array(8104); // Dodaj do kategorii numer 8104
	$post['post_date'] = date('Y-m-d H:i:s',strtotime($wiersz['date'])); // Skonwertuj datę publikacji
	$post['post_title'] = iconv('iso-8859-2','utf-8',$wiersz['title']); // Zmień kodowanie tematu
	$post['post_content'] = iconv('iso-8859-2','utf-8',$wiersz['text'] . "\r\n\r\n" . $wiersz['textcd']); // Zmień kodowanie treści wpisu
	$posts[$i] = $post;
	$i++;
}
mysql_close();

Szczegółowe informacje na temat funkcji wp_insert_post() można przeczytać w dokumentacji. Ostatnim etapem będzie dodanie treści do istniejącego WordPressa.

require('./wp-load.php');
foreach ($posts as $post) {
  wp_insert_post($post);
}

Dodanie około 1000 wpisów na serwerze, zajęło około 8 sekund. Jeżeli posiadamy więcej wpisów, warto je dodawać partiami, aby nie obciążyć znacznie maszyny.

Polecane

Canonical Ubuntu

0 179
Najpierw może zacznijmy od najważniejszego, a mianowicie od daty wydania. Ubuntu 19.04 beta pojawi się już w marcu, a mianowicie 28 marca 2019 roku,...