Oracle DBA Mentor: Succeeding as an Oracle Database Administrator
()
About this ebook
What makes Oracle DBA Mentor different is that it also teaches you how to obtain answers that are not found in this or other books. Focus is given to creating a test bed and running test cases to examine hypotheses and prove out solutions so you can be sure they work in production. Attention is given to navigating product documentation and networking in forums and social media to build your skills and a network to draw on when solving problems under pressure. There are chapters of step-by-step technical content as well as coverage of essential skills to succeed as a DBA no matter which database engine you administer.
By the time you are done reading this book, you will have confidence to face many of the situations thrown in your direction. You will know where to go for the answers you don’t yet know that you need. You’ll be able to work and troubleshoot under pressure. You’ll know how to create a database, institute backup and recovery procedures, secure the database and its valuable corporate data, and acquire more knowledge as needed so you can run a database to meet the needs of your organization.
What You'll Learn
- Install Oracle Database with best practices
- Implement backup and recovery procedures
- Understand the fundamentals of databases and data security
- Find answers to technical problems using Oracle documentation, Oracle Support, and other resources
- Patch and upgrade an Oracle database
Who This Book Is For
The novice database administrator who wants help getting off the ground with their DBA career, and in building the skills to let that career flourish in the long term. Mid-level DBAs will also find the book helpful as they try to grow their career to the next level. While the book is geared toward the Oracle platform, database administrators from other platforms can benefit from the soft skills covered in this book.
Related to Oracle DBA Mentor
Related ebooks
Dynamic SQL: Applications, Performance, and Security in Microsoft SQL Server Rating: 0 out of 5 stars0 ratingsExpert T-SQL Window Functions in SQL Server 2019: The Hidden Secret to Fast Analytic and Reporting Queries Rating: 0 out of 5 stars0 ratingsScala Programming for Big Data Analytics: Get Started With Big Data Analytics Using Apache Spark Rating: 0 out of 5 stars0 ratingsLearn PySpark: Build Python-based Machine Learning and Deep Learning Models Rating: 0 out of 5 stars0 ratingsBeginning Oracle Database 12c Administration: From Novice to Professional Rating: 0 out of 5 stars0 ratingsSQL Primer: An Accelerated Introduction to SQL Basics Rating: 0 out of 5 stars0 ratingsSQL and NoSQL Interview Questions: Your essential guide to acing SQL and NoSQL job interviews (English Edition) Rating: 0 out of 5 stars0 ratingsExpert Oracle RAC 12c Rating: 0 out of 5 stars0 ratingsBeginning SQL Server Reporting Services Rating: 0 out of 5 stars0 ratingsDatabase Security A Complete Guide - 2021 Edition Rating: 0 out of 5 stars0 ratingsOracle 11g Streams Implementer's Guide Rating: 0 out of 5 stars0 ratingsQuery Optimization A Complete Guide - 2020 Edition Rating: 0 out of 5 stars0 ratingsOracle Goldengate 11g Complete Cookbook Rating: 5 out of 5 stars5/5MongoDB Recipes: With Data Modeling and Query Building Strategies Rating: 0 out of 5 stars0 ratingsSQL 101 Crash Course: Comprehensive Guide to SQL Fundamentals and Practical Applications Rating: 5 out of 5 stars5/5Oracle GoldenGate 11g Implementer's guide Rating: 5 out of 5 stars5/5Data Normalization A Complete Guide - 2020 Edition Rating: 0 out of 5 stars0 ratingsIntroducing Microsoft SQL Server 2019: Reliability, scalability, and security both on premises and in the cloud Rating: 0 out of 5 stars0 ratingsCOBOL A Complete Guide - 2019 Edition Rating: 0 out of 5 stars0 ratingsAzure Data Factory Cookbook: A data engineer's guide to building and managing ETL and ELT pipelines with data integration Rating: 0 out of 5 stars0 ratingsWhat Is Sql ?: Fundamentals of Sql,T-Sql,Pl/Sql and Datawarehousing. Rating: 0 out of 5 stars0 ratingsMicrosoft SQL Server 2005: A Beginner''s Guide Rating: 0 out of 5 stars0 ratingsManaging Multimedia and Unstructured Data in the Oracle Database Rating: 0 out of 5 stars0 ratingsQuery Store for SQL Server 2019: Identify and Fix Poorly Performing Queries Rating: 0 out of 5 stars0 ratingsSQL Server MVP Deep Dives Rating: 0 out of 5 stars0 ratingsOracle SQL Developer 2.1 Rating: 0 out of 5 stars0 ratingsGetting Started with Oracle Data Integrator 11g: A Hands-On Tutorial Rating: 5 out of 5 stars5/5Oracle RAC Database A Complete Guide Rating: 0 out of 5 stars0 ratingsPractical Oracle Cloud Infrastructure: Infrastructure as a Service, Autonomous Database, Managed Kubernetes, and Serverless Rating: 0 out of 5 stars0 ratingsAzure SQL Revealed: A Guide to the Cloud for SQL Server Professionals Rating: 0 out of 5 stars0 ratings
Databases For You
Serverless Architectures on AWS, Second Edition Rating: 5 out of 5 stars5/5COMPUTER SCIENCE FOR ROOKIES Rating: 0 out of 5 stars0 ratingsSQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Access 2019 For Dummies Rating: 0 out of 5 stars0 ratingsThe AI Bible, Making Money with Artificial Intelligence: Real Case Studies and How-To's for Implementation Rating: 4 out of 5 stars4/5CompTIA DataSys+ Study Guide: Exam DS0-001 Rating: 0 out of 5 stars0 ratingsDeveloping Analytic Talent: Becoming a Data Scientist Rating: 3 out of 5 stars3/5Blockchain Basics: A Non-Technical Introduction in 25 Steps Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Learn SQL Server Administration in a Month of Lunches Rating: 3 out of 5 stars3/5Learn SQL in 24 Hours Rating: 5 out of 5 stars5/5Practical Data Analysis Rating: 4 out of 5 stars4/5Visual Basic 6.0 Programming By Examples Rating: 5 out of 5 stars5/5Access 2010 All-in-One For Dummies Rating: 4 out of 5 stars4/5Visualizing Graph Data Rating: 0 out of 5 stars0 ratingsLearn Git in a Month of Lunches Rating: 0 out of 5 stars0 ratingsGo in Action Rating: 5 out of 5 stars5/5Python Projects for Everyone Rating: 0 out of 5 stars0 ratingsTroubleshooting PostgreSQL Rating: 5 out of 5 stars5/5MATLAB Machine Learning Recipes: A Problem-Solution Approach Rating: 0 out of 5 stars0 ratingsArtificial Intelligence Basics: A Non-Technical Introduction Rating: 5 out of 5 stars5/5Starting Database Administration: Oracle DBA Rating: 3 out of 5 stars3/5Star Schema The Complete Reference Rating: 0 out of 5 stars0 ratingsAdvanced Analytics in Power BI with R and Python: Ingesting, Transforming, Visualizing Rating: 0 out of 5 stars0 ratingsSQL Server: Tips and Tricks - 2 Rating: 4 out of 5 stars4/5Data Analysis with R Rating: 5 out of 5 stars5/5Query Store for SQL Server 2019: Identify and Fix Poorly Performing Queries Rating: 0 out of 5 stars0 ratingsTeach Yourself VISUALLY Access 2010 Rating: 0 out of 5 stars0 ratings
Reviews for Oracle DBA Mentor
0 ratings0 reviews
Book preview
Oracle DBA Mentor - Brian Peasland
Part IInitial Setup
© Brian Peasland 2019
Brian PeaslandOracle DBA Mentorhttps://doi.org/10.1007/978-1-4842-4321-3_1
1. Introduction
Brian Peasland¹
(1)
Fargo, ND, USA
If you have grabbed a copy of this book, you most likely have landed (or are hoping to land) a job as an Oracle database administrator (DBA) and are looking for assistance on the next steps in your career. There are plenty of books on the market that will relate tons of technical information on how the Oracle database works. I have many such books in my library. Those books provide a wealth of useful information and are great resources.
As the title of this book indicates, it is intended to serve as a mentor to you in your career as a DBA. A mentor is often there to work hand in hand with the mentee, guiding their career. I cannot be there by your side, so I figured the next best thing to do is to write down the advice and insights I have imparted to others over the years. I want this book to feel more personal than a typical computer book, more like any other mentor/mentee relationship, so I use words like I
and we
often. This book will most likely be one of many mentors you will have in your career. Many entry-level database administrators work alongside a senior-level DBA, who is their primary mentor. This book should supplement your primary mentor’s guidance. You will also receive advice from other Oracle professionals you encounter, who will impact your career growth without being an official mentor.
What makes this book that you are reading different is that its aim is to teach you how to find the answers that are not in the other books on this topic. What happens if you need more information? Where do you turn? The most common answer is to look in the Oracle documentation, and that is a great response. Too often, people are afraid to use the Oracle documentation because it is vast and complex. In Chapter 13 of this book I will teach you how to leverage the documentation to your advantage. Unfortunately, the Oracle documentation is not always complete, so where do you go next? This book will give you pointers on how to proceed when the information is not readily available.
Sometimes the best resource for the answers you seek is within yourself. One of the most common types of questions I get from many entry-level Oracle DBAs is something along the lines of "Can I do X in Oracle? If you’ve asked that question, then the answer is clearly
No!" because it indicates you haven’t even tried. During the course of this book, we will build a system where we can create answers to many of our own questions. While building this system, we will cover many best practices. If you follow the advice in this book, not only will you have a testbed to work with, but you will have confidence that the Oracle systems you are creating and administering will be able to handle many of the different needs required from the system.
This book is not highly technical. It is meant to be used in the beginning of your database administration career. Some might call this a junior DBA level. Intermediate-level DBAs may also find some useful information in here as well. If you are a senior-level DBA, you likely know most of the information presented in this book. However, I have found that too many senior DBAs have had to learn this information the hard way and wish someone would have given them the knowledge presented in this book earlier in their careers (which was part of my motivation to write this book). This book is just a start on your career-long journey. No one becomes a great DBA overnight. You’ve probably met some great DBAs in your career already. How did they get to such lofty status? Through hard work and constant learning. I’ve been an Oracle DBA for over 20 years and I’m still learning new things all the time. It is the challenge of solving complex database problems and learning how to leverage the database engine’s features that is the most rewarding aspect of this career for many of the top-level database administrators I have met.
Much of what is in this book stems from things I have learned from the many DBAs that have mentored me through the years, but sadly I lacked a true hands-on mentor in my early days. I was the only DBA at my first job in this field, so there was no one to mentor me. Most of my mentors
have never even met me and probably don’t even know my name or that they helped my career. But during my career I’ve taken tips and tidbits from many different people and used those to formulate the basis of what you will be reading here.
Now comes my first bit of advice to help you grow your career: give as much as you get. It sounds simple, right? However, giving takes time, energy, and discipline and, as such, people typically do not share enough of their knowledge as they could. One of the secrets I’ve learned over the years is that the act of sharing my knowledge with others teaches me as much as I teach them. When you must formulate your thoughts, especially in written form, something happens in the brain where you learn the material better than had you not written anything. Most of knowledge sharing in the Oracle community is done in written form through books, blog posts, white papers, and forums.
Tip
Share your knowledge. You will learn just as much as you teach.
While this book is Oracle focused, you can use these same principles and techniques for working with other database systems. For example, in Chapter 13 we will spend time learning about the Oracle documentation. If you are a SQL Server DBA, you just need to convert this knowledge to Microsoft’s Books Online. While this book covers Oracle-related forums, there are many for SQL Server as well. The advice is the same, and you just need to convert it to work for the other database engine.
It is highly likely that in your career you will be asked to work with multiple database platforms. In my current job, I work primarily with Oracle but also SQL Server and MongoDB. I have worked with PostgreSQL, MySQL, and DB2 over the years. Whenever I work with a new database system, I try to figure out how I do a task in Oracle and then see how the other database engine does the same thing. For example, all database engines have some form of transaction logging. In Oracle, it is the online redo log. In SQL Server, it is called the transaction log. Both engines have the same capability. It is how they implement that functionality that differs.
Becoming a DBA
Typically, there are two career paths to becoming a database administrator. In general, the junior-level database administrator was either an application developer or a system administrator (SysAdmin) prior to working as a DBA. Application developers that become DBAs normally have experience working on database-centric applications and have already been exposed to tables, queries, and other database activities. Former system administrators understand the operating system, disk subsystems, and basic networking skills, all of which are essential for a database administrator to understand. No matter which of these two paths the DBA traveled before embarking on their database career, they most likely demonstrated a high degree of skill before being promoted to fill a junior-level DBA position in their company. Sometimes, the DBA will work on database-related projects in their organization without being an official database administrator. They may take this job experience and parlay that into an entry-level DBA position at another company. While possible, it is more rare for someone to obtain a DBA position without having been a developer or SysAdmin in the past. Those who start as a DBA without coming from one of these two paths typically focused on database systems in college.
I’ve often told people that the database engine sits between the application and the server. As such, it makes sense to hire junior-level DBAs from one end or the other. Ideally, the candidate would have experience in both servers and application development, but that is often harder to find.
It can be difficult to obtain your first database administrator job. For starters, the job is technically complex, but that is also one of the reasons it can be very exciting. In addition to understanding how the database engine works, the DBA needs to have good knowledge of system administration and application development, as already discussed. The DBA also needs to understand networking and storage, and possess a thorough grasp of IT security. Today’s DBA should have experience with cloud technologies. One of the challenges facing database administrators is the breadth of knowledge required to be good at this job. But this also is very appealing to many DBAs—the job never gets dull because there is so much to learn and so many different areas to explore. The variety, complexity, and chance to explore new features are attractive qualities of the job to many different people.
Another stumbling block to landing that first DBA job is the importance of the data within a company. Data is an organizational asset. It needs to be protected yet made available to support the business. Many companies are reluctant to trust individuals with little experience to manage, maintain, and secure one of the most important pieces of their IT infrastructure. We will discuss this further in the section Data Guardian
later in this chapter.
So how do you land that first DBA job? For most people, you begin your career in either system administration or application development, as mentioned earlier. If you started as a SysAdmin, then learn as much as you can about networking and storage and IT security. If you began as an application developer, then take the time to understand as much as you can about creating good database applications. Learn the ins and outs of table design, formulating SQL statements, and how to get the best application performance by leveraging the proper database features like indexes, materialized views, and more.
Next, try to focus your career with a slant in the database direction. Talk to your manager about your desire to learn more about database administration. Volunteer for small database-related projects, even if they are out of scope for your traditional duties. As you will learn later in this book, you can download the Oracle database, install it on a test system, and begin playing with the product. There is nothing stopping you from building your Oracle database knowledge and experience right now! At some point in your career, you will likely build other skills, both soft and technical, relevant to the DBA role.
Once you’ve had a chance to test the waters on a few DBA tasks, start keeping an eye out for junior-level DBA job openings. Many times, if your manager knows of your interest, they may be willing to take a chance on you, as a good employee, to grow your career in your desired direction. A good manager understands the value in keeping good employees happy, even if it means the employees have to replace their skillset as they move to another position within the company.
Not all managers are willing to help their employees grow their career paths. Another stumbling block may simply be the lack of opportunities within your current company. In this case, managers cannot simply create a job opening just because an employee wants to change positions. If either of these situations applies to you, it may be time to look for employment outside your current company. At the end of the day, it is up to you to move your career forward. You may desire to move forward with your current company or you may have to decide to make a bigger change if your company cannot help you fulfill your career aspirations.
If you are interviewing for a new position at some other company, you will inevitably be asked a question like Where do you see yourself in five years?
This is your chance to tell the prospective new employer of your desire to work your way toward a DBA position. Seize the day! Make it plain and let your intentions be known. Some companies may determine that you are not a good fit for them based on this answer, but many others will, as they understand the value of engaged and enthusiastic employees. From my own experience, I’d rather work for a company that takes an interest in helping me advance my career in my desired direction than to obtain a job where I see no future career growth. Too many people are stuck in jobs they hate. I’d rather have a career that gives me satisfaction doing work that is challenging and rewarding. Ultimately, you have to look inside yourself to find out what motivates and excites you. For me, that is being a DBA. I cannot imagine working a different job. Since you’re reading this book, you may feel the same. No matter which avenue you choose to get to that first DBA job, good luck to you!
Typical Day of the DBA
The title of this section is a bit of a misnomer, because a typical data doesn’t exist for the DBA. Sure, every DBA I’ve talked to starts their day by getting a copy of coffee or other morning beverage and then checking their e-mail for anything that requires immediate attention, but after that, the day is likely to be anything but typical. The variety is appealing to many DBAs because they are not stuck doing the same thing day after day.
Most database administrators do have a similar portfolio of duties and responsibilities, such as:
Checking backup job status
Securing databases
Creating new databases
Creating new database objects
Making sure the data is up and running
Tuning database performance
Designing databases
Planning database capacity
Working closely with other IT staff and application developers
Participating in an on-call rotation
Installing software
Performing extract, transform, and load (ETL) activities
Troubleshooting
This is not an exhaustive list by any means, and the DBA will likely have other duties as well. Many times, you will not work actively on an assigned duty for a long period of time. For example, I only perform capacity planning activities a few times each year, but checking the backup job status is a daily function. There are ebbs and flows, and seasonal variation, all of which keeps things interesting.
DBA duties will vary from company to company as well. Different organizations have tailored the position for their own needs and purposes. For example, I worked at one company that used only third-party software applications. In this context the DBA was responsible for working with the application vendor to provide database services for the software. At another company I was required to work closely with the application developers and assist them in writing SQL statements. Both jobs gave me a DBA title, but the nature of the work was considerably different.
The Data Guardian
I alluded to it in the previous section, but mastering this topic is vitally important to your success as a database administrator. The DBA is the company’s data guardian. However, when I ask fellow DBAs what they consider their most important duties, the typical reply is backups.
My reply to the most important duty of a DBA question is to protect the data.
Backups are just one component of the overall mission of protecting the data.
Data is a valuable asset. Companies like Google and Facebook give you their products for free. Have you ever wondered why? The simple answer is that they make money off data you generate for them. What you search for and who you follow generate data points that build a profile of you, the user. Those data points are then used in a variety of ways. Google and Facebook, for example, can generate targeted advertisements for other companies with these profiles. They can sell the data to third parties.
Even if your company is not in the business of buying or selling data, the data in their databases is still a valuable corporate asset. A company that sells products may want to learn more about its customers. In college, I learned about a famous case where a grocery store mined data on their customers’ buying patterns and discovered that beer and diapers were sold together in high frequency on the weekends. The grocery store surmised that the father was sent to the store to get diapers for the baby and bought some beer to take home as well. The grocery chain started putting beer and diapers next to each other at the end of an aisle and increased sales on both. Learning about their customers is one way companies leverage their data assets.
Even if you do not think your company’s data is valuable, hackers certainly do. Hackers will try all sorts of methods to obtain access to your company’s data. The company invests a large amount of money for hardware, licenses, and salaries to store data and make it available to the business. Yet as Data Guardians, we cannot allow unrestricted access to this data. To do so could potentially jeopardize business operations. We simply cannot have anyone and everyone making changes to the data. For example, a company that sells sporting goods has data showing the inventory of the products they sell. If the company has ten baseball bats in stock, then the database should reflect that fact. If someone nefariously or accidently changes the data to reflect there are zero bats in the inventory, then customers won’t be able to order the product and the company will lose potential sales. Conversely, if someone changes the data to indicate there are 100 baseball bats in the inventory, then the sales system may try to sell 90 bats that do not exist, leading to upset customers when these orders are not able to be fulfilled. Having upset customers leads to lost sales in the future, and this must be avoided. This sporting goods company needs an accurate inventory of their products reflected in their databases.
Many database systems today also store information that has value in its own right, due to its sensitive nature, such as personally identifiable information (PII). PII is data that can be used to identify a specific individual, such as name and birth date, tax identification numbers, credit card numbers, and more. Any PII in the database needs to be encrypted so that should a hacker obtain access to the database, they cannot get any value from this data.
Failure to protect data is bad for business on many levels, as we know from the many headlines of yet another data breach in recent times. For example, in 2013, Target Corporation suffered a well-known data breach, and this reportedly cost the company over $300 million! Yahoo suffered a data breach to over 3 billion accounts in 2013-2014. When Yahoo was purchased by Verizon, the sale price was estimated to be $350 million less than it would have been had the breach not occurred. It is estimated that 60% of small companies that suffer a data breach go out of business.
I’ve always taken the approach that as a DBA, I am my company’s data guardian. The DBA needs to be the one that is always thinking about protecting the data. This means ensuring that only those that have a legitimate business need are able to access the data, and only those with appropriate authority to modify data can do so. We restrict access to the data as much as possible. The DBA is constantly being asked to provide access to data to new avenues within the business. As companies learn to leverage their data as an asset, they are exploring new ways to use that data to drive revenues. Not only will data be used in new and exciting ways, the DBA may need to give business units just what they need, and no more, to protect the data. The DBA may also need to cleanse data before another business unit gains access.
Data protection is much more than just backups. The DBA needs to make sure database engines have the most up-to-date security patches applied. The DBA grants and revokes privileges in the database. The DBA needs to be familiar with SQL injection and other database hacking techniques. The DBA needs to learn how to encrypt data in the database as well as how to protect the encryption keys. Hopefully, this section has convinced you that the most important job of the DBA is not backups. Rather, the DBA must be adept at all aspects of data protection. The DBA needs to be the data guardian.
Moving On
As stated earlier, this book is different than others because it not only focuses on technical information necessary to become a successful Oracle database administrator, but also gives you advice on how to learn things you won’t find in any books. This book can help serve as one of the many mentors you will use to advance your database administrator career. I have designed this book to not only help you learn more about administering Oracle databases, but also to help you discover how to learn things you will not find in other books, even the Oracle documentation.
The next chapter does not have what you might consider to be technical information. Rather, it focuses on the soft skills necessary to perform work as a database administrator. Please do not skip this chapter because it still contains very important information.
© Brian Peasland 2019
Brian PeaslandOracle DBA Mentorhttps://doi.org/10.1007/978-1-4842-4321-3_2
2. Working As a DBA
Brian Peasland¹
(1)
Fargo, ND, USA
The previous chapter I went over the career path to becoming a database administrator as well as the general duties and responsbilities of the DBA, including their role as the Data Guardian. In this chapter, we will spend time discussing how to work as a database administrator. The information in this chapter is not technical in nature and can be used by non-Oracle DBAs as well. Rather, this chapter will focus on the soft skills all good database administrators should possess. Much of the information in this chapter can be used outside of the DBA role and applied to other positions in the organization as well.
The Rude DBA
Depending on whom you ask, the database administrator is usually a well-respected profession in the IT world. As we discussed in the previous chapter, the DBA usually comes from either an application development or system administration background. It is more rare for someone to become a database administrator straight out of college. Typically, the DBA worked up to the position and demonstrated a high degree of skill to get there.
When you are working as a DBA, try to remember that you not only represent yourself and your organization, but you also represent this profession. I’ve always thought of the database administrator as being one of the top positions of the IT career ladder. As such, you will interact with many people inside your organization. If you follow the advice in future chapters, you will interact with many people in the world-wide Oracle community. Representing yourself in a positive manner will have greater impact on your lifelong career than if you are demonstrating poor behavior. Sadly, I’ve come across too many DBAs in this world who are always grumpy and obstructionists to others, traits not exclusive to DBAs. As an example, a DBA refuses to grant privileges or create new databases regardless of the business need and without giving an explanation. I’ve heard too many stories about the DBA being a jerk and being hard to work with. There could be many reasons why some DBAs have this attitude, but please do not be this type of DBA. If you get a request for a privilege or a new database and you know the request should not be satisfied, instead of refusing the request in some rude manner, a better approach is to figure out what the requestor really needs and how you can help them do their job. Do not respond Your request is denied
but rather Sorry, but satisfying that request as you have outlined it will cause other problems. Can we do it another way so that you can do your job but my concerns are still met?
Tip
Don’t be the rude DBA. Be the helpful one.
I’ve always been of the unsubstantiated opinion that the rude DBA is a small part of the reason for the rise of the schema-less databases that have become very popular today. Application developers have stated that these databases, like MongoDB, are great because they can install and set them up and begin coding without ever having to get assistance from the DBA. My counterpoint is that by avoiding the DBA, developers miss many other aspects of database administration the DBA normally thinks about. A few of those aspects relate to database security and a proven backup and recovery implementation. The application developer is not used to being the data guardian, a concept we talked about in the previous chapter. In Chapter 7, we will discuss how a DBA should think of recovery before backups, a viewpoint that most application developers do not even consider. In 2017, over 25,000 unsecured MongoDB databases were hit with ransomware¹. It’s not that MongoDB is an insecure database platform. Rather, these deployments had weak passwords and default usernames. The DBA was bypassed, security was never given a thought, and companies paid the price. Had DBAs been involved in these projects, the databases likely would have been secured because a good DBA thinks about these things. I wonder how many of the companies with those 25,000+ MongoDB installations now wish their DBA was in charge of their database platform.
This example is not meant as an indictment of MongoDB. It’s a great product and I currently manage a few MongoDB databases. Out of the box, MongoDB, Oracle, and other database platforms are not secure. It is the database administrator’s job to lock things down no matter which database platform is being deployed. The point of the example is that people try to avoid rude DBAs and will find workarounds that lack security and other controls essential to good data governance.
Tip
The rude DBA is a liability. The helpful DBA is an asset.
Being helpful doesn’t mean the DBA needs to do whatever a coworker requests. There are many times I will deny a request. Any time I deny a request, I do so with politeness and a follow-up on how to get the requestor back to work. The requestor needs to get their job done. They know something in the database is currently blocking them from completing their task. Most requestors I have met are not as knowledgeable as the database administrator as to how to properly get past their database roadblock. This is where the DBA must help formulate the request into something that satisfies both parties.
Multiplatform Work
Today’s DBA usually has to work with a variety of database platforms. It is rare for a database administrator to focus solely on one database platform. Early in my career as a DBA, I was hired to work at a company that only used Oracle database systems. Our small team of DBAs worked day in and day out with Oracle. One day, our manager told us that SQL Server was coming into the shop and one of us would need to get up to speed on the product. I jumped at the opportunity. I was surprised I didn’t have a fight on my hands deciding which DBA on the team would manage this new product. While my primary expertise lies with Oracle, since that day, I have never had a job where I did not have to manage both Oracle and SQL Server. On that day, I knew that being able to manage multiple platforms would be good for my future career prospects. I have found that it is more beneficial to my career growth to be able to work successfully with multiple database platforms. After I learned SQL Server in addition to Oracle, I did not stop there. I continued to learn more about other database products, especially as new ones were introduced to the community.
Over the years, I’ve worked on many different database engines: Oracle, SQL Server, MongoDB, MySQL, PostgreSQL, and DB2, to name a few. Today’s database administrator is being asked to do the same. Many times, you will be asked to support different database platforms due to third-party software deployments. One product works on Oracle and another product only supports SQL Server, as an example. With the rise of NoSQL databases, you may find that your trusted relational databases are not an appropriate solution to satisfy ever-increasing volumes of data. As such, your career will more than likely have you working on multiple database platforms. So how do you do it? How do you work with all these products that can be so different from each other?
I learned in my first SQL Server administration class how I needed to approach the new system. Prior to my DBA career, I made the personal choice to attend college and obtain a degree in computer science, with a focus on database systems. In college, I learned the theory of how database systems should work. I studied normal forms, properties of transactions, relational database theory, and so much more. I never gave it much more thought as I learned to be an Oracle DBA. Sitting there in my first class on SQL Server, the instructor was talking about creating tables in a SQL Server database. My thoughts started to center on how in Oracle we create the table in a tablespace and a database is composed of multiple tablespaces, but SQL Server is a bit different. Then I remembered how one of my professors in college talked about the database engine having the responsibility of abstracting the storage from the database design. That’s when it occurred to me that I should rely on the relational database theory I was taught in college and that all I needed to do was to figure out how each database platform implemented the theory. The next day of the SQL Server administration class, we were going to be discussing backup and recovery. I knew how this worked in Oracle. I remembered from my college days that database systems have a transaction journal and that a backup plus the journal lets me recover my data to a point in time. From an Oracle perspective, that transaction journal is the online and archived redo logs. I learned in class that SQL Server keeps a transaction log for each database. My foundation in how database systems work in general, from my college courses, let me easily spot how Oracle implements the details, as I was now in the workforce. Working on a new platform, I immediately knew I needed to just figure out how that system implemented the transaction journal, after which I was off and running.
Tip
If you know the general database theory, encountering a different platform means you just need to know how the platform implements the theory.
For me, those college days are a distant memory. Database systems have changed so much since then. Database vendors are constantly implementing new features, like materialized views, that I never learned about in college. Oracle introduced materialized views and I’ve used them to successfully improve application performance in certain situations. One day I needed to do something with SQL Server and I thought materialized views would be a good fit if I could just figure out how SQL Server implements that feature. In those cases, when I know which feature to leverage in Oracle and want to implement it in another database engine, I do a simple web search with the Oracle feature and other platform name. A quick web search for SQL Server materialized view
led me quickly to a Microsoft feature called indexed views—different name but very close to the same feature. I then searched for SQL Server indexed views
and was off and running with the other platform. It works both ways. If you come from a SQL Server background and have to work on Oracle, searching for Oracle indexed views
will quickly lead you to the materialized view feature name.
After I know which feature in the new database engine promises to give me the functionality I seek, I then turn to the product’s official documentation to learn more.
Tip
If you know the feature on one platform and want to find a similar feature on a different platform, perform a web search for "other_platform feature_name" and you can quickly figure out which feature is similar on the other platform.
So long as you know what feature you use on one platform to do the job, it normally doesn’t take long to find out the similar feature’s name on another database platform. This allows you to quickly perform tasks on a platform that you may not be familiar with.
Another tip is to search for "old_platform for the new_platform DBA. This will provide guides to help you translate from one platform you already know to another one you are starting to work with. For example, you could search for
Oracle for the SQL Server DBA or vice versa. When working with a new database platform on which I need to get up to speed quickly, I often perform a similar search. It doesn’t take too long for me to find a
cheat sheet (or several). The cheat sheet quickly clues me in to the terminology I need for the new database engine. However, you should only use the results as a guide. Use the product’s official documentation for the best source of information. All too often I find a cheat sheet written by someone who knows one database engine well and only has a cursory knowledge of the other product, and they often miss some very important information. For example, when contrasting and comparing Oracle’s
database to a SQL Server
database, it is common for cheat sheets to fail to explain clearly that the term
database" means two different things in the two different platforms. A cheat sheet typically devotes one sentence to highlight the differences when a full paragraph is needed to explain more accurately the differences. Therefore, you should refer to the official documentation to learn more.
Lastly, having a good foundation in database theory is not essential but it does help. Oracle is a relational database. As such, the Oracle DBA should learn Dr. Edgar F. Codd’s relational theory as well as the work of Christopher J. Date. Codd and Date are the pioneers of the relational database that we use today. As I alluded to earlier, if you know the theory of how the engine is supposed to work, then you can easily focus on how the engine implements that theory.
Let me illustrate the point with a car example. Would you take your Toyota to a mechanic that only knows how to fix a Chevy 5.7L engine? I would rather take my vehicle to a mechanic that knows the principals of how a combustion engine is supposed to work. Gas is mixed with oxygen and moved into a cylinder. A spark ignites the gas fuel mixture, which pushes