Skip to content

Instantly share code, notes, and snippets.

View mhelmstetter's full-sized avatar

Mark Helmstetter mhelmstetter

  • MongoDB
  • San Diego, CA
View GitHub Profile
db.adminCommand({'listDatabases':1, nameOnly:true}).databases.forEach(function(mydb) {
var dbName = mydb.name;
if (! ["admin", "config", "local"].includes(dbName)) {
var currentDB = db.getSiblingDB(dbName);
var collectionNames = currentDB.getCollectionNames();
collectionNames.forEach(function (collName) {
if (/^system\./.test(collName)){
return;
}
var indexes = currentDB[collName].getIndexes();
/* global db, tojson, tojsononeline, rs, print, printjson */
/* =================================================
* getMongoData.js: MongoDB Config and Schema Report
* =================================================
*
* Copyright MongoDB, Inc, 2015
*
* Gather MongoDB configuration and schema information.
*
db.adminCommand( { listDatabases: 1 } ).databases.forEach(function (dbObj) {
var stats = db.getSiblingDB(dbObj["name"]).stats();
if (stats.objects == 0) {
print(dbObj["name"]);
}
});
var dbCount = 0;
var collCount = 0;
var dataSize = 0;
var storageSize = 0;
var indexSize = 0;
db.adminCommand( { listDatabases: 1 } ).databases.forEach(function (dbObj) {
var stats = db.getSiblingDB(dbObj["name"]).stats(1024*1024*1024);
dbCount++;
collCount += stats.collections;
dataSize += stats.dataSize;
@mhelmstetter
mhelmstetter / dbstats.txt
Created September 14, 2021 17:50
db stats all dbs
mongo --quiet --eval 'db.adminCommand( { listDatabases: 1 } ).databases.forEach(function (dbObj) {printjson(db.getSiblingDB(dbObj["name"]).stats(1024*1024*1024));});'
db = db.getSiblingDB("admin");
dbs = db.runCommand({ "listDatabases": 1 }).databases;
dbs.forEach(function(database) {
db = db.getSiblingDB(database.name);
cols = db.getCollectionNames();
cols.forEach(function(col) {
print(`*** ${col} ***`);
printjson(db.getCollection(col).getIndexes());
});
});
// Number of chars of the first two groups (most-significant) in UUID string
var UUIDHeadChars = 12;
// Max number of integers that can be represented using
var UUIDHeadMax = Math.pow(16, UUIDHeadChars);
function UUIDFromInt(num) {
assert(num < UUIDHeadMax);
// Format num as hexadecimal string with enough left-zero-padding
// to reach UUIDHeadChars
db.adminCommand( { listDatabases: 1 } ).databases.forEach(function (dbObj) {
var dbName = dbObj["name"];
if (dbName != null) {
var collectionNames = db.getSiblingDB(dbName).getCollectionNames();
collectionNames.forEach(function (collName) {
if (collName != null) {
var count = db.getSiblingDB(dbName).getCollection(collName).count();
print(`${dbName}.${collName}: ${count}`)
}
});
db.getCollectionNames().forEach(function(coll) {
var indexes = db[coll].getIndexes();
indexes.forEach(function(ix) {
if (ix["expireAfterSeconds"] !== undefined) {
print(`${ix.ns} ${ix["expireAfterSeconds"]}`);
var collName = ix.ns.split('.')[1];
var mod = db.runCommand({
"collMod": collName,
"index": {
name: ix.name,
[Unit]
Description=Disable Transparent Huge Pages (THP)
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=mongod.service
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null'
ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/defrag > /dev/null'