Adatbázis: SQL, XML DB

mysql replikáció csak bizonyos táblákra

Sziasztok!

Adott 2 mysql adatbázis ugyan azzal a struktúrával. Megoldható-e az, hogy kijelölve az egyiket master példánynak, bizonyos táblák replikálódjanak a slave példányba. Természetesen az adatbázist író alkalmazás oldalon garantálva lesz hogy ezek a bizonyos táblák csak az egyik alkalmazásból lesznek írva. 

[ Megoldva] MariaDB corruption

Sziasztok,

 

Egy áramszünet után a Raspberry Pi-ra (Raspbian / Stretch) telepített MariaDB nem akar elindulni (Nextcloudhoz van (volt...) használva). A file-rendszer ext4 - ami elvileg naplózó, de valahogy mégis megsérültek a dolgok (nem értek hozzá, gondolom az adatbázis file-ok lehetnek inkonzisztensek akkor is, ha maguk a file-ok a file-rendszerben nem serültek)

Próbáltam több dolgot, első körben leállítottam meg elindítottam a service-t, meg újraindítottam az gépet, keresgéltem Google-lel, nem találtam megoldást.

Az egész adatbázist (/var/lib/mysql/*) átraktam PC-re (Debian / Stretch), ott is ugyanaz történik.

Itt van a log.

Vissza lehet ezt még hozni vagy újra kell csinálnom az adatbázist a Nextcloud alá?

Van valakinek ötlete, hogy mit lenne még érdemes megpróbálni mielőtt újratelepítem?

 

Köszi

 

Sok probálkozás és file másolgatás után (már nem emlékszem, hogy melyik file-ok lettek végül felülírva, az ibdata1 illetve a nextcloud könyvtár biztosan az eredeti maradt) a megoldás az lett, hogy elindítottam egy "mysqld --innodb-force-recovery=5"-öt, amivel vegül nem abortált a szerver és csináltam egy dumpot a nextcloud adatbázisáról, majd töröltem mindent a /var/lib/mysql könyvtárból, utána pedig mysqld --initialize. Visszamásoltam a mysql könyvtárat (tehát /var/lib/mysql/mysql), csináltam egy nextcloud adatbázist és visszatöltöttem a dumpból az adatokat. Most működik a rendszer.

Excel tábláknál jobb és hatékonyabb adattárolás

Előszóként: adminisztrációban dolgozok, többnyire adatokkal (adatkezelés, feldolgozás, ellenőrzés, jelentéskészítés), de nem vagyok képzett informatikus, csak hozzáértő/lelkes amatőr, jó pár év gyakorlattal, mérnöki végzettséggel és gondolkodással.

Új munkakörbe kerültem és tisztességes adatbázisok helyett szivárványszínűre színezett excel-táblázatokkal találtam szemben magam, emailben érkező updatekkel, hálózati meghajtón tárolt összevissza elnevezett verziókkal, satöbbi. Ettől persze égnek áll a hajam... A kérdésem pedig az lenne, hogy mibe/hogyan tegyem át ezeket, hogy ne kapjak idegbajt már rövidtávon.

Az adat maga (egyelőre) nem túl sok: pár száz, max. 1-2 ezer sor, 30-40-50 oszloppal; ezek egy része számszerű érték, vagy egy (nagyjából) fix lista, de persze vannak szöveges kommentek is. A nehezítés inkább az, hogy ezeket (egy-egy részét) külső kontaktoknak elküldjük, akik kitöltve-frissítve visszaküldik nekünk, a fent említett színes-ömlesztett excel táblák formájában. Nyilván ezt a részét jó lenne valami olyan rendszerben kiküldeni-bekérni, hogy ne lehessen belőle nagy kuplerájt csinálni. Egy kolléga a kívülről is használható webes survey-rendszerünket használja/javasolja ahol valamennyire le lehet korlátozni, hogy mit írhassanak be, a bejövő válaszokat egyben lehet exportálni (gondolom excelbe), és így legalább az emaileket meg lehet spórolni. Sajnos nem vagyok meggyőződve, hogy ez nekünk is jó megoldás. Az egyéb belső rendszereket valószínűleg nem tudom megosztani a külső kontaktokkal.

De ha ez nem is megy, akkor legalább a belső nyilvántartásunkat áttenném valami használhatóbb formába. MS eszközök rendelkezésre állnak, de egyedi szoftvert nem fognak a kedvemért vásárolni. Akár komolyabb adatbázisokban is gondolkodhatok, bár mint feljebb írtam, nem az adat mennyisége a probléma, inkább a kezelése (illetve kezelhetetlensége). És persze az is jó lenne, ha a munkatársaim is tudnák legalább alapszinten használni (adatot bevinni-kivenni) ha épp nem vagyok ott, tehát egyszerű szűrés, export, (esetleg import) képességek jók volnának.

Erre szeretnék remek ötleteket kapni tőletek :-)

update: nem akarom megváltani a világot; nem akarom a külső felhasználókat átképezni; nem akarok felmondani. Köszi!

MySQL - Memcached ebben az esetben segithet?

Sziasztok!

 

Adott egy adatbazis, amin minden honapban egyszer egy brutal nagy query-t futtatnak. (idonyilvantarto rendszer, egy tobb ezres allomany blokkolasi adatait adja at a berszamfejtesre). A Lekerdezes van hogy egy oran at is tarthat. 

 

Az lenne a kerdesem, hogy egy Memcached beillesztese segithet szerintetek ezen a dolgon? Azt tudom, hogy alapvetoen minden Mysql performance/cache tuning arra van kihegyezve, hogy sok felhasznalot tudjon viszonylag kis lekerdezesekkel kiszolgalni egyszerre gyorsan, de ennel a rendszernel pont forditott a helyzet. Viszonylag keves felhasznalo hasznalja, Viszont nagyon nagy lekerdezesekkel.

 

Ha a Memcached nem jo erre, akkor esetleg van otletetek, mi az, amivel egy ilyen tipusu adatbazis teljesitenyet lehet novelni? (Most csak uzemeltetesi szempontbol kerdezem, magat a programot nem mi irtuk, tehat a program oldali opimalizalashoz nincs kozunk)

Ingyenes adatbázis alkalmazás

Adott egy halom access 2000-ben készített gyűjteményi adatbázis. Arra szeretnék megoldást, alkalmazást találni, hogy szakítani lehessen accessel. Legrosszabb esetben szeretném csak átvinni libreoffice base-be, de ha van rá jobb alternatíva, várom az ötleteket.

Az adatbázisok felépítése gyűjtemény típusától függően eltérő, de ami közös bennük, hogy van egy kereső felület és egy űrlap feltöltő felülete.

A kereső felületen van egy indexkép az adott tárgyról és információk. Ilyenek, mint Tárgy megnevezés, leltári szám, szöveges ismertető, gyűjtő/felajánló neve, előző tulajdonosok stb.

Az indexkép alatt van egy oda-vissza lépető és egy sorszám, ami léptethető, ez a rekordszám az adattáblában.

A tárgy részletes leírását kivéve az összes adatmező egyben keresőmező is.

Tehát ha pl a feltáró régész nevére kattintok, legördülő listában látom az adatbázisban szereplő összes régész nevét és ha másik névre kattintok, akkor átugrik a legközelebbi olyan rekordra, amelyikben a kiválasztott régész első tárgya látható.

Programozói tudás hiányában nem akarok és nem is fogok adatbázist írni. Kérdés létezik-e olyan windows platformon futó és ingyenesen is használható adatbázismotor, amivel meg lehet oldani a feladatot.

A programnak tudnia kell excel importot.

postgres tervezési hiba

Sziasztok! 

Ez a hiba csak a postgres alatt merül fel egyáltalán. 

Egy hosszú hiszti helyett. Itt egy példa kód:

CREATE TABLE test_new (
    id serial primary key ,
    payload text
);

insert into test_new (payload ) values ('sf');
insert into test_new (payload ) values ('sf');
insert into test_new (id,payload ) values (3,'sf');
insert into test_new (id,payload ) values (4,'sf');
--SELECT setval('test_new_id_seq', max(id)) FROM test_new e ;--igen ez lenne a megoldás
insert into test_new (payload ) values ('sf');

Szükségem lenne arra, hogy betöltsek adatokat. Több embernek volt már ezzel baja, de egy jó rtfm-et nem találtam. Valami egyszerű triggert írt már rá valaki?

[Megoldva] Charset konverzió

Két LXD konténerben telepítettem ugyanazt az alkalmazást. Egyik maradb, másik mysql.

Mariadb a helyes karakterkódolással importál a táblákba:

MariaDB [(none)]> SHOW VARIABLES LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

A mysql, nem 4 biten tárolja az ékezetes karaktereket, hibás az import.

mysql> SHOW VARIABLES LIKE '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.10 sec)

A táblák üresek, nincs bennük adat, ha valami elszáll nem gond. Sokat olvasgattam, de nem találtam meg, hogyan lehetne az értékeket mindenhol utf8mb4-re állítani. Sajnos sql-ben nem vagyok járatos...

[megoldva] AWS db elérési út

Egy (jól működő) AWS szerveren egy webalkalmazás adatbázis-konfigurációjában az látszik, hogy 'dsn' => 'pgsql:host=127.0.0.1
Valójában pedig az adatbázis egy másik gépen,  ….eu-west-1.rds.amazonaws.com-on van. Hogyhogy működik ez? A /etc/hosts-ban nincs semmi extra a 127.0.0.1-re. Valami port trükközés lehet? (5432, Postgres) Vagy ssh tunnel? Hogy tudnám ezt megnézni? Esetleg van erre valami bejáratott AWS módszer?