This is the problem, companies these days don't want to train their employees to do their jobs, they want them to come pre-trained which is of course ideal but hardly realistic for sufficiently complicated job duties.
I built this network from 3 servers to over 80, I have skillsets in all the technologies used in this company. Those skillsets are hardly unique, there are thousands of engineers in the area that could do large portions of it but probably none that could do it all. To replace me they would need to hire someone with a diverse skillset then train them through on-the-job work or formal education so that they get the rest.
Internal to my department I solve this problem by mentoring, if I see someone has a particular personality or interest in something I'll teach them, someone who is a network junkie probably isn't interested in the DBA work. That means I mentor the programmer who talks to the database all day and he gains skills as well as understanding why I don't like it when he builds apps certain ways. As a result we all get along better and knowledge is shared across a number of people rather than staying in one basket.
I did it all out of a stress standpoint, while it's nice to feel wanted it sucks never getting to take a vacation and it sucks feeling like the entire weight of the company is on your shoulders so I cross-train and then the load gets shared across many people. Now I still get grey hairs but at a much slower pace. Of course now the company thinks I'm easy to replace but you can't control that, they would have thought that before anyway since they don't know IT. Increasingly IT workers are seen as mechanics instead of engineers that never see the exact same thing twice.