Truncate ongedaan maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP developer - Digital Agency

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

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 »

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 »

Back end developer Python, PHP

Functie Jij als full stack ontwikkelaar zult komen te werken samen met 1 PHP ontwikkelaar een PO en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult voornamelijk (lees 75%) werken aan de roostersoftware. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere flexwerkers ingezet kan worden. Verder willen ze financiële koppelingen gaan maken

Bekijk vacature »

.NET Software Developer

Dit ga je doen Als .NET Software Developer zul jij je voornamelijk bezig houden met: Het van scratch af aan bouwen van applicaties (.NET, C#, Bootstrap, KnockoutJs en WebAPI2); Het testen van jouw code d.m.v. het uitvoeren van unittesten; Het oplossen van bugs in de code; Het onderhouden van contact met collega's betreffende de door jouw ontwikkelde applicaties; Het verbeteren en doorontwikkelen van maatwerkapplicaties. Hier ga je werken Jij gaat aan de slag als .NET Software Developer en gaat je focussen op het bedenken, ontwikkelen en testen van maatwerkapplicaties in voornamelijk C#. Dit ga je doen bij een grote, internationale

Bekijk vacature »

C# Developer

Dit ga je doen De requirements in kaart brengen van de klant; Implementeren van functionele en technische specificaties bij opdrachtgevers; Oplossen van bugs; Meewerken aan maatwerksoftware voor nieuwe opdrachtgevers; Het testen en uitleveren van nieuwe functionaliteiten naar de acceptatie en productieomgeving De database ontwikkelen en onderhouden; Hier ga je werken Onze klant is gevestigd in het westen van Nederland en is gespecialiseerd in het ontwikkelen van software voor de levensmiddelen industrie. De software die het team maakt optimaliseert voornamelijk de administratieve processen, maakt deze meetbaar en zorgt ervoor dat de data zo goed mogelijk gebruikt kan worden. Binnen een van

Bekijk vacature »

.NET Developer

Dit ga je doen Programmeren in .NET, Javascript & C# en ontwikkelen in Web Services, Windows Services en MS SQL Server; Zelfstandig verbanden maken Analyseren, testen, bugs fixen, reviewen en rapporteren; Juiste prioriteiten stellen en verantwoordelijkheid nemen; Op architectuur niveau meedenken; Af en toe klanten bezoeken. Hier ga je werken Voor onze relatie zijn wij opzoek naar een .NET ontwikkelaar met minimaal 3 jaar werkervaring. Je komt te werken in een groeiend bedrijf met betrokken collega's die zorgen voor een familiaire sfeer op de werkvloer. Als .NET ontwikkelaar word jij vanaf de eerste werkdag betrokken bij het gehele ontwikkelproces. De

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

Full stack .NET developer Microsoft 365

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET Developer start jij in een team met 15 developers. In het team is er genoeg senioriteit om ervoor te zorgen dat jij de juiste begeleiding krijgt. Jij begint als eerst alle software pakketten en processen eigen te maken. Vervolgens ga jij deze software programmeren, onderhouden en testen. Ook ga jij research doen naar nieuwe mogelijkheden en zoek jij uit hoe je dit kan implementeren. Jullie werken intern op project basis en afhankelijk van het project werken jullie wel of niet iedere ochtend met een standup. Je gaat als Full stack developer aan de slag en gaat

Bekijk vacature »

Front-end React developer

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

Bekijk vacature »

Senior pega developer

You work on software that makes colleagues and customers happy! Thanks to your IT skills, De Mandemakers Groep really makes a difference for its customers. Do coding, testing and deployments make your heart beat faster? Then apply today as Senior Pega Developer at De Mandemakers Groep! Wat ga je doen? The job title gives it away: You will be developing Pega software. This ranges from technical design, coding and testing to test automation, deployments and bug fixing. Your goal is to continuously improve our systems so that colleagues can work efficiently and customers receive optimal service. You don't have to

Bekijk vacature »

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

Digitale Tovenaar Gezocht: Junior Low-code/No-code

Bedrijfsomschrijving Duik mee in een wereld vol innovatieve avonturen waar gegevens en technologie een magische symbiose aangaan! Al meer dan twee decennia lang zijn we de tovenaars achter de schermen die oplossingen creëren voor de meest complexe klantcontactvraagstukken en datagedreven software-uitdagingen. Bij ons draait het om de kracht van samenwerking en groei. We zijn een hechte vriendengroep die samen bergen verzet om elkaar én onze klanten te laten schitteren. Jouw succes is ons succes en we streven ernaar om elkaar naar nieuwe hoogten te tillen, niet voor even, maar voor altijd. We willen dat jij je helemaal thuis voelt in

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

22/12/2024 21:12:09
 
- 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.