Truncate ongedaan maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

Software developer (Python)

Functie Je komt te werken in het IT-team bestaande uit de Lead developer en 4 (medior/senior) developers. Gezamenlijk werken jullie aan de verbetering en uitbreiding van de software. Binnen het development team is er veel vrijheid en zelfstandigheid, zonder dat ze hiermee afdoen aan de kwaliteit. Zo hebben ze elke ochtend een korte stand-up (10:00 uur) en houden ze zo nu en dan pair-programming sessies. Ook is er een hele professionele ontwikkelcyclus waarbij code altijd eerst door een collega wordt getest voordat het naar deployement gaat. Je hebt in je werk oog voor kwaliteit, risico’s en het klantbelang. Communicatie met

Bekijk vacature »

PHP Developer

Dit ga je doen Je werkt nauw samen met het websitebureau aan de ontwikkeling en optimalisering van het internationale platform; Je ziet nieuwe webshops op en voert optimalisaties door; Je bouwt aan technische, functioneel en commercial resultaat; Je vindt het leuk om zelfstandig binnen een internationale organisatie te werken, maar krijgt ook energie om samen met collega's te werken. Hier ga je werken Voor een bedrijf in de regio Rotterdam zijn wij opzoek naar een PHP Developer. Je wordt onderdeel van het communicatieteam en gaat je bezighouden met het optimaliseren van de website van dit internationale bedrijf. Je schakelt veel

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

C# developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als C# Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the Year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

C# .NET Software Ontwikkelaar

Functie omschrijving Gezocht: Software Developer C# .NET voor een dynamische organisatie! Ben je onlangs afgestudeerd of ben je toe aan de volgende stap in je professionele carrière? Lees dan verder! We zijn momenteel op zoek naar een Software Developer die klaar is voor een nieuwe uitdaging en die onze eindklant in de regio Arnhem kan versterken. In deze functie werk je aan verschillende projecten en bezoek je vaak klanten. Je kunt een rol verwachten met veel uitdaging, diversiteit en verantwoordelijkheid. Bedrijfsprofiel Binnen welke organisatie ga je aan de slag? Je gaat werken bij een organisatie die zich specialiseert in het

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Rotterdam dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Back-End Web Developer

As a Back-End Web Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a Back-End Web Developer at Coolblue? As a Back-End Web Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you also feel confident with setting up microservices in Typescript or are open to learning this. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing pure

Bekijk vacature »

Junior Fullstack Developer

Functie omschrijving Heb jij je universitair diploma Informatica afgerond en ben jij op zoek naar een startersfunctie waar jouw ontwikkeling in een hoog vaandel staat? Voor een softwarebedrijf in Amsterdam zijn wij op zoek naar een Junior Fullstack Developer. Je begint met een op maat gemaakte training om de kennis bij te spijkeren die jij nog mist. Uiteraard leer je het meeste tijdens je werk, maar de training geeft je hiervoor alvast de juiste handvatten. Je kunt het volgende verwachten! Jij ontwikkelt in technieken als Java, Javascript en SQL. Je werkt hierbij volgens de Agile/Scrum methode; Na het afronden van

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Front end developer

Functie Het team bestaat uit User Experience designers, Data Scientists en Software Engineers met passie voor hun vak. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van ontwerp en ontwikkeling zullen samenkomen in een proof of concept. Nadat is vastgesteld dat de oplossing voldoet aan de belangrijkste behoeftes worden producten of services gevalideerd door middel van korte iteraties. Hiermee zorgen ze ervoor dat het werk voldoet aan de technische vereisten en gebruikersbehoefte. Door het inzetten van de nieuwste technologieën die toekomstbestendig zijn weten ze klanten omver te blazen. Ook geven en organiseren ze veel

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Junior Developer Low-code

Dit ga je doen Low-code ontwikkeling van software voor landelijk bekende organisaties; Samenwerken in een team van 10 collega's; Opleveren van mooie eindproducten, middels de Agile methodiek; Direct contact met de eindklant over de gewenste oplossingen. Hier ga je werken Als startende IT-professional kom je te werken in de regio van Lelystad bij een organisatie die met toonaangevende klanten uit heel Nederland samen werkt. De producten en diensten van de organisatie bereiken miljoenen Nederlanders. Hierbij komt een grote hoeveelheid informatie kijken en deze moet discreet en veilig verwerkt worden. De processen die hierbij horen worden door het IT team vormgegeven.

Bekijk vacature »

Klein team zoekt grote fullstack .NET developer to

Bedrijfsomschrijving Deze werkgever is marktleider in de Benelux en is Europees ook al aardig aan de weg aan het timmeren. Ze voorzien technische winkels van apparatuur om producten een langer leven te geven. Hiermee reduceren ze flink wat CO2 uitstoot en dat is natuurlijk goed voor iedereen! IT speelt een belangrijke rol in de bedrijfsvoering en de applicaties zijn van goed niveau. Als fullstack .NET developer ga jij je bijdrage leveren aan het verder verbeteren van de applicaties en de interne processen. Ze zijn nu met ruim 50 medewerkers in totaal en de afdeling development bestaat uit een 5tal developers.

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »
Bas hooff

bas hooff

28/10/2016 15:53:56
Quote Anchor link
Beste PHP'ers,

Ik heb zonder back-up mijn (alle!) tabellen ge-truncate, dit was ook de bedoeling omdat ik een schone DB wilden.
Twee tabellen mochten echter niet geleegd worden ?

Kan ik vanuit DirectAdmin een DB herstel doen / afterimage naar een uur terug ?

Grt,

Bas
 
PHP hulp

PHP hulp

25/04/2024 16:53:02
 
- Ariën  -
Beheerder

- Ariën -

28/10/2016 16:34:30
Quote Anchor link
Nee, helaas. Er is geen standaard mogelijkheid voor MySQL noch DirectAdmin om de boel terug te zetten.
Ik hoop dat jij of je hosting ergens nog backups heeft, en die vrij wilt stellen.
 
Bas hooff

bas hooff

28/10/2016 17:25:20
Quote Anchor link
Hi Arien, schade is beperkt..handmatig al 40% teruggezet. Toch maar is kijken hoe ik dit in het vervolg kan voorkomen.
Het kost je (in dit geval mij) toch een werkdag.
 
- Ariën  -
Beheerder

- Ariën -

28/10/2016 17:38:59
Quote Anchor link
Door backups te maken, of gewoon niet te TRUNCATEN.

Ik draai zelf in Directadmin (op Admin-niveau) elke nacht een backup naar een externe server via de DA API. Maar dat kan natuurlijk ook op User niveau.
Gewijzigd op 28/10/2016 17:39:18 door - Ariën -
 
Pg Vincent

Pg Vincent

28/10/2016 17:58:46
Quote Anchor link
TRUNCATE is sowieso iets wat je eigenlijk niet moet doen, er zitten allerlei haken en ogen aan zoals het niet afgaan van DELETE triggers etc. Gewoon niet meer doen.

In MySQL is het ook nog eens gevaarlijk omdat het een impliciete COMMIT doet.

Dus als je iets doet als:

BEGIN;
TRUNCATE foo;
TRUNCATE bar;
TRUNCATE mary;
ROLLBACK;

dan zal de truncate van tabel 'bar' de transactie committen en daarmee is 'foo' vor eeuwig weg, ookal staat er verderop dus een ROLLBACK.

MySQL heeft meer van dit soort levensgevaarlijke fouten die niemand weet tot ze op een dag hun halve database kwijt zijn...
 
Bas hooff

bas hooff

28/10/2016 18:02:36
Quote Anchor link
Bestaat er versie beheer voor databases welke je op je PC kan draaien ? soort van incrementele back-up die constant synchroniseert met een externe locatie (PC) ?
Gewijzigd op 28/10/2016 18:04:29 door bas hooff
 
Pg Vincent

Pg Vincent

28/10/2016 19:57:53
Quote Anchor link
De beste manier is om gewoon elke X uur een volledige backup te trekken. Dat levert je namelijk de simpelste backups en elke backup is 100% compleet en niet afhankelijk van een ander "basis" bestand waar het op uitbreidt.

Qua incrementele backups is er maar één optie en dat is een "binary log". Dat is een log waarin wordt vastgelegd wat er precies door elke query in de tabellen wordt veranderd. Groot voordeel daarvan is dat je b.v. elke dag een basis-backup kunt maken en dan de rest van de dag alleen de wijzigingen noteert. Gaat er iets stuk dan kun je de basisbackup vna die dag terugzetten en dan vannuit het binary log de veranderingen van die dag doorvoeren tot vlak voor het moment dat het stuk ging.

Echter, dat eist een ijzeren discipline qua het maken van bsisbackups en de binary logs, je *MOET* een recente basisbackup hebben en je moet alle logs vanaf die basisbackup tot het moment van falen hebben.

Je kunt ook niet de veranderingen van na de fout terugzetten, want die zijn afhankelijk van de situatie zoals hij was nadat de fout gemaakt was. Echt versiebeheer zoals in GIT en SVN gaat dus ook niet omdat tabellen onderling afhankelijk zijn.
 
Aad B

Aad B

29/10/2016 22:33:03
Quote Anchor link
Pg Vincent op 28/10/2016 17:58:46:
In MySQL is het ook nog eens gevaarlijk omdat het een impliciete COMMIT doet.
MySQL heeft meer van dit soort levensgevaarlijke fouten die niemand weet tot ze op een dag hun halve database kwijt zijn...
De impliciete COMMIT is geen gevaarlijke fout in MySQL, het is maar net hoe je MySQL configureert en met name welk database engine je configureert. Enne "levensgevaarlijke fouten" is dat niet een beetje kort door de bocht ??

Truncate is bijna altijd definitief. Alleen wanneer je met transactions werkt kan truncate in bepaalde gevallen met rollback teruggedraaid worden (SQLserver en Postgres). Dit geldt niet voor alle database enigines. In MySQL en Oracle is truncate bijvoorbeeld altijd onherroepelijk en dat is conform SQL-2008 standaards. Truncate is namelijk DDL en geen DML.
Gewijzigd op 30/10/2016 22:21:30 door Aad B
 
Ivo P

Ivo P

31/10/2016 00:55:21
Quote Anchor link
je kunt eventueel de betreffende user die de truncate uitvoert de rechten op die 2 tabellen niet geven, zodat hij die ook niet kán truncaten.
 
Pg Vincent

Pg Vincent

31/10/2016 09:36:27
Quote Anchor link
Ik heb me voorgenomen om mijn tijd niet meer te verdoen aan MySQL bashing omdat men er blijkbaar toch niets van leert, maar ik wil dit wel even toelichten omdat het anders van mijn kant wel erg ongefundeerd klinkt....

Quote:
De impliciete COMMIT is geen gevaarlijke fout in MySQL, het is maar net hoe je MySQL configureert en met name welk database engine je configureert. Enne "levensgevaarlijke fouten" is dat niet een beetje kort door de bocht ??


Dat het configureerbaar is en afhankelijk van de engine is zo mogelijk een groter probleem dan het gedrag zelf. MySQL's gedrag kan verschillen per implementatie. Niet alleen per versie of engine, maar per implementatie. Hoe de database zich bedraagt hangt af van hoe de pet van de beheerder staat, en als je een applicatie voor een derde schrijft moet je feitelijk een lijst meegeven met instellingen voor de server, niet om de performance te halen of beveiliging te garanderen, maar gewoon om te zorgen dat je applicatie blijft werken...

En ja, levensgevaarlijk, voor je data in ieder geval. (Ik hoop dat er geen bedrijven zijn die MySQL gebruiken voor data die *echt* belangrijk is).
Voorbeeldje; Onlangs probeerde ik een password te resetten via ALTER USER, wat opzich niet vreemd is, toch? Maar toen kwam ik dit tegen in de handleiding:

"ALTER USER was added in MySQL 5.6.6. However, in 5.6.6, ALTER USER also sets the Password column to the empty string, so do not use this statement until 5.6.7."

Ze wisten dat alter-user zonder te vragen het wachtwoord aanpaste, en toch hebben ze het vrijgegeven.
Dus ja, "levensgevaarlijk" is nog niet eens zo'n overdreven term voor het soort fouten dat MySQL bevat.


Afijn, ik heb mijn zegje gezegd, ik ga er verder niet over door want dat levert toch alleen maar poep op.

Laat de conclusie voorlopig zijn dat je TRUNCATE alleen moet gebruiken als je 100% zeker bent dat de data weg mag, en dat je altijd moet zorgen dat je goede backups hebt voordat je data gaat weggooien (al is het maar voor als je een tikfout maakt en de verkeerde tabel leegt)
 
Aad B

Aad B

31/10/2016 10:20:30
Quote Anchor link
Pg Vincent op 31/10/2016 09:36:27:
Ik heb me voorgenomen om mijn tijd niet meer te verdoen aan MySQL bashing omdat men er blijkbaar toch niets van leert, maar ik wil dit wel even toelichten omdat het anders van mijn kant wel erg ongefundeerd klinkt....
Quote:
Vervolgens ga je er rustig mee door. Helaas heb je te weinig kennis om er echt serieus iets over te zeggen, helaas. Ik heb drie jaar met EnterpriseDB (Postgres) gewerkt na vele jaren Oracle. Ik kan je vertellen dat EnterpriseDB nog lang niet volwassen is maar ik zie geen enkele reden om maar doorlopend Progres of MySQL te bashen. Het zou je sieren om MySQL beheerders wat opbouwende tips te geven in plaats van te bashen. Vertel ze hoe ze het op moeten lossen zonder te migreren naar Progress of stop echt met commentaar leveren op MySQL. Zowel MySQL als Postgres zijn goedkope open source initiatieven voor duurdere gelicenseerde Database Engines zoals Oracle en zowel Postgres als MySQL hebben met name door hun open source karakter nog wat risico's voor toepassing. Maar in geen enkel geval is er sprake van "levensgevaarlijke fouten" zoals jij stelt. Wel mag geconstateerd worden dat MySQL voornamelijk door ondeskundige hosters wordt beheerd en dat er gemiddeld veel te weinig kennis is bij php developers vwb de ins en outs van database engines. Doorgaans wordt het "as is" gebruikt.
Gewijzigd op 31/10/2016 10:28:28 door Aad B
 
Pg Vincent

Pg Vincent

31/10/2016 12:20:29
Quote Anchor link
Oh gut, heb ik op de tenen van de plaatselijke database guru gestaan?

Afijn, dit is het soort poep dat ik bedoel, en waar ik geen zin meer in heb.


Een jaar of wat ben ik van PHPHulp af gegaan om precies dit soort gezeik en het blijkt nog net zo erg te zijn.
Veel plezier verder!
 
John D

John D

31/10/2016 16:18:54
Quote Anchor link
Een kritische maar zeer nette noot van Aad B en Vincent PostGres geeft het op, kiest de makkelijkste weg. Helaas.
 
Ben van Velzen

Ben van Velzen

31/10/2016 16:33:13
Quote Anchor link
John D: Leuk, maar MySQL is het soort poep dat out of the box het ontzettend fijn vindt om je data te corrupten, en hosters gaan niet een database configureren om dat te voorkomen, die hebben daar over het algemeen geen verstand van. Een punt dat terecht wordt aangehaald door Vincent is dat je het gedrag van MySQL kunt veranderen in de configuratie, waardoor je als applicatiebouwer een working config moet gaan aanleveren zodat niet alles naar beneden komt donderen doordat de database andere dingen doet dan je zou verwachten.

De kritiek wordt gegeven op semantisch vlak, en die semantiek heeft alles te maken met hoe belangrijk je data voor je is. Ook wordt EnterpriseDB aangehaald, en ik snap niet helemaal wat het punt daar is. Leuk, je hebt met EnterpriseDB gewerkt. Heb je ook met een *echte* PostgreSQL installatie gewerkt?
 
Ozzie PHP

Ozzie PHP

31/10/2016 17:26:30
Quote Anchor link
Time-out

Alvorens in een welles-nietes discussie (al of niet gerechtvaardigd) te vervallen, is het wel zo netjes om even te vragen of de vraagsteller inmiddels antwoord heeft op zijn vraag

@bas hooff: is je vraag beantwoord?

Wat betreft de databases ... voer de discussie a.u.b. netjes zonder te jij-bakken. Door elkaar verwijten te maken en het spelletje "ik heb gelijk en jij niet" te gaan spelen, krijg je een vertroebelde discussie waar niemand bij gebaat is. Beter gewoon op een neutrale manier de voors en tegens opsommen, dan blijft het een beetje gezellig ;-)

(PS @John ... die laatste opmerking is niet helemaal fijn/terecht en je weet zelf ook wel waarom ...)
 
Bas hooff

bas hooff

01/11/2016 11:45:41
Quote Anchor link
Ozzie, het is nu duidelijk geworden dat wat ik had gedaan onomkeerbaar is.
Les: nooit meer doen zonder back-up.
 
Ozzie PHP

Ozzie PHP

01/11/2016 16:56:08
Quote Anchor link
Bedankt voor de terugkoppeling Bas ... en laat het inderdaad een goede les zijn ;-)

Voor wie nog iets wil zeggen over databases ... het kan weer ... maar hou het een beetje beschaafd ;-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.