10
This is a conceptual question that fits into two on-topic themes of Software architecture and engineering. Concepts and practice and database question involving SQL on server. As this type of question tends to be too broad, the suggested approach and specific situations to be considered restrict it to something more tangible.
Suggested approach
- The answer is conceptual, not practical. You can use a tool as an example for a concept, but the focus is the concept.
- One should avoid relying heavily on personal opinion to the detriment of recognised methodologies or authors. OK if you are a DBA with decades of experience
- It is not necessary to explain issues like application having to work in high availability, however during backup the application cannot stop without justification. Estimated restoration time should be cited
- One should give a notion, even if vague, of the periodicity of the backup. How many in how many hours?
- Should explain which strategy to erase old backups. Consider restoration can be requested for recent event or event 7 or more days ago.
- Should succinct, in a few paragraphs or a list of arguments come up with concepts that you believe every developer should know. Imagine as an explanation to a new developer or a non-technical supervisor who will pay for your hardware
Specific situations to be considered
Consider a typical web application. It has any SQL database, and the application runs in any language, which stores user files in a standard file system. To avoid the question being closed as too broad, it is proposed to address two situations below in the answer:
Situation A
- The database is small, can be extracted quickly, and you can store unlimited backups
- The amount of files is small, can be compressed quickly, and you have hardware to store up to 60x
- The hardware is not extremely reliable: it is a new desktop or server hardware machine with more than 4 years of use. There is no RAID redundancy.
- There may be human failure
Situation B
- The database is huge, and extraction without due care locks the application. You have room for at most 5x backups
- Amount of files is great, compressing into the file server is stressful. You have backups for 2x~5x backups
- The hardware is extremely reliable: hardware redundancy and server-specific hardware machines
- There may be human failure
Despite all the warnings about "this is a conceptual question", it remains the problem. I suggest in such questions to base at least with Wikipedia. Example: in the English article about Backups the relevance of defining the backup goal (RPO, RTO or security). Another much discussed point is architecture, because different data (eg. different schemes of the base) may have different strategies and objectives.
– Peter Krauss