Overview
This course covers everything a database administrator needs to know to successfully deploy and maintain MongoDB databases.
Diagnosing performance issues, importing and exporting data, and establishing the proper backup and restore routines, overview of the MongoDB CRUD API, the command shell, and the drivers are also covered.
The audience of this course include people who want to:
- Understand MongoDB from a developer’s perspective, including its command shell, query API, and driver tools.
- Deploy MongoDB in all its configurations – as a single server, with master/slave replication, as a replica set, and as a sharded cluster.
- Evaluate applications and choose hardware appropriately.
- Monitor MongoDB instances and integrate with standard monitoring software (Munin, Nagios, etc.)
- Plan for backups and manage large data imports and exports.
- Troubleshoot the most common developer issues and failure scenarios.
Each delegate will need to perform a series of practical exercises.
Requirements
Basics of an operating system administration.
Course Outline
MongoDB Architectural Overview
- Origin, design goals, key features
- Process structure (mongos, mongod, config servers)
- Directory / file structure
Working with the MongoDB Shell
- Documents and data types
- CRUD (Inserts, queries, updates, deletes)
- System commands
Single-server Configuration and Deployment
- Configuration files
- Data files and allocation
- Log files
- Hardware and file-system recommendations
Security
- Built-in authentication
- Recommendations for secure deployment
Monitoring MongoDB
- mongostat
- Analyzing memory and IO performance
- Integration with monitoring tools: Munin / Cacti / Nagios
- MongoDB’s web console
Indexing and Query Optimization
- Managing indexes and MongoDB indexing internals
- Single / Compound / Geo indexes
- Identifying sub-optimal queries. Using the query profiler.
Introduction to drivers (Java/Python/Ruby/PHP/Perl)
- How the drivers and shell communicate with MongoDB
- BSON and the MongoDB Wire Protocol
- Troubleshooting application connections
Intro to Read and Write scalability
Replication and Durability
- Master-slave replication
- Replica sets
- Using write concern for durability
- Handling replication failures
Auto-Sharding
- How sharding works
- Setting up a MongoDB shard cluster
Choosing a shard key
Sharding and indexes
- Sharding and Replica Set Topologies
- Administering a sharded cluster
Shard / Chunk Migration
Backup and Restore Plans
- Filesystem-based strategies
- mongodump / mongorestore
- rsync
- mongoimport / mongoexport