Truncate ongedaan maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving: De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van bromen snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie.De opdracht bestaat uit: het programmeren van de diverse modules;het tijdens demo's tonen van de

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van IT Operations Manager! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

.NET developer

Functie Als junior .NET ontwikkelaar ga jij aan de slag in één van de 5 IT teams van dit bedrijf. Jullie werken op basis van interne klantprojecten aan voornamelijk webapplicaties. Dit betekent dat jij continu uitgedaagd wordt en veelal met verschillende soorten projecten bezig bent. Het gave is dan ook dat jullie als team samen bekijken welke technieken het beste passen bij het project waar jullie verantwoordelijk voor zijn. Zo kan het zijn dat jij als .NET developer gaat werken aan een project, maar dat jullie als team liever gebruik maken van Haskell of F# om de klus te klaren.

Bekijk vacature »

HBO startersfunctie .NET Ontwikkelaar

Functie omschrijving We are looking for a dutch native speaker Ben je in januari 2023 klaar met je HBO opleiding en zoek je een mooie uitdaging? Wacht niet langer en solliciteer direct! Voor een familiebedrijf in de regio van Boxtel ben ik op zoek naar een C#.NET Ontwikkelaar. Jij gaat aan de slag met de (door)ontwikkeling van de maatwerksoftware projecten en gaat ook nieuwe software bouwen, middels de Microsoft-stack. Het bedrijf maakt gebruik van de volgende technieken: C# & ASP.NET; MVC; MS SQL; Entity Framework; Je krijgt hier veel tijd om te leren en eventueel door te groeien en het

Bekijk vacature »

Magento2 Developer

Functie Ben jij een ontwikkelaar en wil jij een volgende stap zetten en als teamlead aan de slag? Lees dan snel verder! Voor een gewilde opdrachtgever in omgeving Delft zijn wij op zoek naar een programmeur die als meewerkend voorman aan de slag wilt gaan. Een developer die een team van twee man aan zal sturen. Jouw werkzaamheden zullen er als volgt uitzien; Ontwikkelen en ontwerpen van API's; Maatwerkoplossingen; Databeveiliging; Optimalisatie webshops; Ontwikkelen technische implementaties voor verbetering database; Aanspreekpunt voor de organisatie en verantwoordelijk voor de aansturing van externe developers. Zoek je veel uitdaging en veelzijdigheid in je werk dan

Bekijk vacature »

Python developer Consultancy

Functie Als Python developer bij deze organisatie werk je voor verschillende klanten. Doordat de oprichter een groot netwerk heeft kun je zelf voorkeuren uitspreken in het type projecten dat je wilt gaan doen. Zo zijn er bijvoorbeeld langdurige of juist korte projecten, maar is ook het type klant, of project bespreekbaar. Werk jij bijvoorbeeld graag aan een nieuw, state-of-the-art web portaal of ben je liever betrokken bij een migratietraject van een bestaande applicatie? Wij gaan voor jou aan de slag! Eisen • Je bent een gedreven developer met sterke voorkeur voor Python • Je bent meer dan een codeklopper •

Bekijk vacature »

Developer Front-end

Functie omschrijving Front-end Developer gezocht! Wij zijn op zoek naar een front-end developer voor een organisatie in de regio Veenendaal die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. Je hebt in deze functie een adviserende rol hiervoor moet je beschikken over een grote dosis vakinhoudelijke kennis. Je creëert unieke concepten door samen met collega’s en klanten te overleggen over aangeleverde designs. Hiermee draag jij je steentje bij aan de groeiambities van de klant. Jij wordt het vaste aanspreekpunt voor klanten wanneer het gaat over planningen, hierin is het jouw taak om alle betrokkenen goed

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 »

.NET Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een .NET Developer! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans en kijk snel of jouw vaardigheden aansluiten bij onderstaand profiel! Je kunt een uitdagende rol gaan vervullen als .NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving Bergen. Dit bedrijf is zeer vooruitstrevend en verricht betekenisvol werk. Binnen dit bedrijf wordt gewerkt aan de productie en ontwikkeling van medische middelen. Als .NET Developer ga jij je bezig houden met het volgende: Je wordt betrokken bij alle fasen van software

Bekijk vacature »

Medior/senior Front-end developer

Functie Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden gebouwd, of grote complexe wijzigingen worden doorgevoerd op bestaande omgevingen. Je kunt (afhankelijk van jouw wensen en doelen) dus afwisselend werken in beide teams. Hiernaast participeer je in het Chapter Front-end development waar gezamenlijk kennis en ervaring wordt gedeeld. Als Front-end developer is het jouw doel

Bekijk vacature »

PHP Developer Symfony

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail. Hier ga je werken Als PHP Developer kom je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development teams welke ieder verantwoordelijk zijn voor hun 'eigen' klanten. Jouw team bestaat uit 6 backend

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

18/02/2025 09:59:58
 
- 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.