Course Overview:
This course covers everything a database administrator needs to know to successfully deploy and maintain MongoDB databases.
Course Objectives:
- 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.
Pre-requisites:
- Web and Java Application developer
Target Audience:
- A Basic knowledge of core java
- Experience with any other web framework will be helpful
Course Duration:
- 21 hours – 3 days
Course Content:
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
- Summary and Closing Remarks