He is operational, but at the same time calm. He is intelligent, analytical and always focused. These are the main qualities that make it possible for a DBA specialist to succeed.
In between the presentations, on the sidelines of the
PG Day'16 conference, we literally won the attention of experienced administrators for a couple of minutes and asked what they thought about their profession, what unfortunate mistakes they made in their work and what advice they would give to newcomers.
Anton Bushmelev, Alexander Chistyakov, Dmitry Vasilyev, Mikhail Tyurin and
Bruce Momzhan recalled the stories at the start of their careers and told how thorny their path turned out to be.
Who is a database administrator, and how does he differ from other IT people?
')
Alexander Chistyakov : The database administrator is a person who
can read the query plan . Basically, this is what makes him different from other IT people. In fact, a person who can read a request plan is a
bit sad , because he would like other IT people to do that, but they can't. He tries to push them, but they don’t want to. There is some conflict. A person who does not want to be who he is, but forced.
Anton Bushmelev : Database Administrator -
an expert in his business . It must be a person with experience. It is advisable, with the background in the design, to
immediately notice the shoals when “rolling” the release. The administrator must be the most qualified person on the team. Behind him a big responsibility, he alone is responsible for many bases at once. What is different from the rest of "IT people"?
He should be a fan of his business , love his work!
Dmitry Vasilyev : The database engineer is
responsible not only for the current work of the applications, but also for the safety of data, including historical data. Sometimes, the heart and circulatory system of any model project is a database. There is nothing more important than data integrity; it is a very large burden on a person.
Mikhail Tyurin : The database administrator is different from other IT people in that
it is difficult to find . Extremely rare specialist. To him
increased demands . It is very rare to find someone who simultaneously understands what a transaction and bash script are.
Bruce Momzhan : The administrator works with requests that are written by application developers, and adjusts the database so that the
performance does not fall , the work is reliable, updates happen in time. It also installs additional packages, makes backup copies, etc. - There are many tasks on the backend that the database administrator performs to help application developers. This person is responsible for ensuring that all tables are created, manages user rights, controls how everything works, and monitors performance.
What is important in the profession?
Alexander Chistyakov :
Clarity . I think it is necessary to remember how we found ourselves in the current situation so as not to be guilty. Good memory is needed.
Anton Bushmelev :
Calm , without this very hard. Must be focus on results. No need to say to the developers: “Your software is g * clearly!”, For them it will not be of interest. We need to show them: “Guys, if you do this and that, it will be faster. Let's try to remake! ”- a good DBA should have such an approach.
Dmitry Vasilyev : The ability to
analyze ,
prudence , the ability to avoid making quick, rash decisions.
Mikhail Tyurin : If you are not philosophizing at all, but talking about specific skills, this is an
understanding of the algorithms and structures that are the basis of the databases. And
scripting programming skills , both within the database and in a general-purpose language.
Bruce Momzhan : The ability to honestly recognize
who you really are and not try to jump above your head. 19 years ago, I considered myself a good application developer until I started working internationally and did not meet people who are much cooler than me. Then I realized that this had to be taken, and I chose a way - to emotionally motivate people, to create an atmosphere in which everyone would be as productive as possible and feel their belonging to something important.
Tell us about your most annoying mistake.
Alexander Chistyakov : My most annoying mistake was when I
deleted the customer's production base in real time . I came from the Tver region, slept very little and not that I mixed up the bases ... I don’t remember what exactly happened, but
we could not recover about
30% of the customer’s base . I recovered the remaining 70%, because I knew how the base worked. And then he would have lost 100%. And I would have lost the customer, nothing more. The fact is that a system administrator is a person who can leave 600 people without a salary and not lose anything.
Anton Bushmelev : It was a
bank , it was in the morning, I was making a definition (Oracle database), and everything was fine. After definition, indexes are beaten. I checked that the indexes had taken over. These were global indices for partitions and subpartitions. I checked everything except subpartitions. I fell asleep safely.
At 8 o'clock the blocking problems started, since the indices on subpartitions were still disabled, and the
bank stood for 2 hours . Minus 20% was given later. After this incident, I pay very close attention to monitoring so that all this is caught. At night, you can forget something, and monitoring works constantly.
Dmitry Vasiliev : When I was only allowed to use the database superuser at the console, I,
without having read the documentation for the TRUNCATE command , executed it for the largest table with logs, which is why
production stopped for several hours .
Mikhail Tyurin : Well, I did not do DROP DATABASE, because it is impossible to do DROP DATABASE on a loaded system. Connections are coming, and it will not just drop like that. Pesky mistakes are the mistakes of work organization: something could be done more efficiently if I could agree with someone, decide something before implementation.
It may also be an error to
underestimate the scale of the disaster . What is obvious to a person with many years of experience working with data may not be completely obvious to a programmer who overestimates his strength and skills, with a highly raised flag, he is eager to do something if he is not stopped in time.
Specific examples of errors are uninteresting things: I
forgot to turn off logging , I forgot to close the connection, I went on vacation. You lie on the beach for the fifth day, and suddenly they call you that the request has stopped working. You ask to show stat_activity, and there is a transaction that you forgot to close before you left.
Bruce Momzhan : The first few years left much to be desired, my
ability to assess labor costs . I said: “I will do it in a day!”, And three days later I was still working on the same task. Then I realized that I give marks based on the scenario where everything goes perfectly. But nothing is ever perfect. Therefore, I
began to double the estimate of time and add another 10% for force majeure . So if I used to call 2 days, now I started saying 4, 5. I had to spend a lot of time trying to derive this formula, but now it works fine.
What advice would you give to those who want to deal with databases and think about whether to become a DB?
Alexander Chistyakov :
Go to our conferences and listen well to what is happening in the community. This is a business, there are trends there, and you need to feel them.
Anton Bushmelev : Start with concepts and
basics , do not chase after hack work, do not look for a silver bullet to solve problems. When there is a good base, everything else will go faster.
Dmitry Vasiliev : I myself did not immediately come to the DBA. Miscellaneous, tried a lot. All things are interesting, but the specificity of the database is that it is a slightly different world, it moves at a different pace because of the responsibility that lies with the engineers of the database. But this does not mean that it is not interesting. You have to know the iron, and how everything is arranged. Enough time to figure out what the problem is. Like Japanese Zen,
you need to contemplate and understand what is actually happening there .
Mikhail Tyurin :
Broaden horizons . When people talk about DBA, it's like that joke - you're a programmer, go figure it out! Everything related to data is sent to the DBA, and in fact, the DBA is forced to solve the problems of organizing and architecture of a wide stack of applications. The data is involved in all interactions within the system, and the decisions that the DBA makes will affect all levels of the request processing stack from the end user. It is necessary to understand how the other levels of the system, which supports the DBA. This will help him understand the problems that arise in people who write customers to the database.
You need to know the classic problems of computer science . We know at least three of them: cache invalidation, naming of objects, and the third problem is the problem of lost edinichka. In general, the main problem is that everyone loves distributed processing, and in distributed systems it often happens that the same thing is repeated several times.
Bruce Momzhan : If you like to
organize everything, you will enjoy working with databases. Programming languages ​​and technologies come and go, but the databases remain. This is such a fundamental part of development that affects things that affect the performance of large organizations.
I would recommend learning Postgres . This is not a project that suddenly appeared and will soon disappear. In the USA, Postgres specialists are very much appreciated, and in Russia too, because they
are not enough . They are some kind of superstars in their companies, and it would be great if more people understood this and wanted to become such specialists. Those who seek to learn new things, learn, will surely reach career heights.
To be continued…