డేటాబేస్ బ్యాకప్‌లను సెటప్ చేయడం డేటాబేస్ అడ్మినిస్ట్రేటర్‌గా నిర్వహించడానికి చాలా ముఖ్యమైన విషయం. RDS వంటి డేటాబేస్-డిఫాల్ట్ ఆటోమేటిక్ బ్యాకప్‌లకు మద్దతు ఇస్తున్నప్పటికీ, మీరు మీ స్వంత సర్వర్‌ని ఉపయోగిస్తుంటే, మీరు మీరే బ్యాకప్‌లను సెటప్ చేయాలి.

ఉత్తమ బ్యాకప్ వ్యూహం ఏమిటి?

పూర్తిగా నిర్వహించబడే డేటాబేస్-ఎ-సేవగా ఉపయోగించడం మరియు నియంత్రణ ప్యానెల్ నుండి ఆటోమేటిక్ బ్యాకప్‌లను కాన్ఫిగర్ చేయడం చాలా ఇబ్బంది లేని బ్యాకప్ వ్యూహం. ఇందులో AWS RDS మరియు DocumentDB, అలాగే మొంగో యొక్క అట్లాస్ వంటి సేవలు ఉన్నాయి, ఇవి రెండూ S3 కు ఆటోమేటిక్ బ్యాకప్‌లకు మద్దతు ఇస్తాయి. అయితే, ప్రతి ఒక్కరూ వాటిని ఉపయోగించరు మరియు మీరు చేయకపోతే, మీరు వాటిని మీరే నిర్వహించాలి.

మీరు వాటిని మీరే నిర్వహించకూడదనుకుంటే, మీ హార్డ్‌వేర్‌లో డేటాబేస్ను అమలు చేయాల్సిన అవసరం ఉంటే, మీరు మొంగో యొక్క క్లౌడ్ మేనేజర్‌ను ప్రయత్నించవచ్చు, ఇది సర్వర్‌కు నెలకు $ 40 ఖర్చవుతుంది మరియు ఆటోమేటిక్ బ్యాకప్ మరియు ఆపరేషన్స్ పర్యవేక్షణకు మద్దతు ఇస్తుంది. విచ్ఛిన్నమైన క్లస్టర్‌లు మరియు ప్రతిరూప సెట్‌లకు ఇది చాలా ఉత్తమమైన ఎంపిక, కాబట్టి మీరు ఒకే డేటాబేస్ కంటే ఎక్కువ ఏదైనా ఉపయోగిస్తుంటే, దాన్ని సెటప్ చేయాలని మేము సిఫార్సు చేస్తున్నాము.

అయితే, ఏదీ ఉచితం కాదు మరియు మీరు సాధారణ క్రాన్ జాబ్‌తో బ్యాకప్‌లను మీరే సెటప్ చేసుకోవచ్చు. మీకు రెండు ఎంపికలు ఉన్నాయి: ఫైల్ సిస్టమ్ యొక్క స్నాప్‌షాట్‌తో అంతర్లీన ఫైల్‌లను బ్యాకప్ చేయండి లేదా అమలు చేయండి mongodump. రెండూ చెల్లుబాటు అయ్యే పద్ధతులు మరియు రెండూ రన్నింగ్ డేటాబేస్లో చేయవచ్చు, కాబట్టి ఎంపిక మీ ఇష్టం. మేము వెళ్తాము mongodump ఇది చాలా సరళమైనది, కానీ మీకు చాలా పెద్ద డేటాబేస్ ఉంటే, మీరు బదులుగా ఫైల్ సిస్టమ్ స్నాప్‌షాట్‌లను ఉపయోగించవచ్చు.

మొంగోడంప్ మరియు ఎస్ 3 యొక్క కాన్ఫిగరేషన్

మొదట, మీకు AWS CLI ఇన్‌స్టాల్ చేయబడి, లక్ష్య బకెట్‌ను యాక్సెస్ చేయగల IAM ఖాతాతో కాన్ఫిగర్ చేయబడాలి. మీరు బ్యాకప్‌లను హోస్ట్ చేసే బకెట్‌ను కూడా సృష్టించాలి.

అప్పుడు, ఈ స్క్రిప్ట్‌ను సర్వర్‌కు కాపీ చేయండి:

export HOME=/home/ubuntu/

HOST=localhost

# DB name
DBNAME=database

# S3 bucket name
BUCKET=backups

# Linux user account
USER=ubuntu

# Current time
TIME=`/bin/date +%d-%m-%Y-%T`

# Backup directory
DEST=/home/$USER/tmp

# Tar file of backup directory
TAR=$DEST/../$TIME.tar

# Create backup dir (-p to avoid warning if already exists)
/bin/mkdir -p $DEST

# Log
echo "Backing up $HOST/$DBNAME to s3://$BUCKET/ on $TIME";

# Dump from mongodb host into backup directory
/usr/bin/mongodump -h $HOST -d $DBNAME -o $DEST

# Create tar of backup directory
/bin/tar cvf $TAR -C $DEST .

# Upload tar to s3
/usr/bin/aws s3 cp $TAR s3://$BUCKET/ --storage-class STANDARD_IA

# Remove tar file locally
/bin/rm -f $TAR

# Remove backup directory
/bin/rm -rf $DEST

# All done
echo "Backup available at https://s3.amazonaws.com/$BUCKET/$TIME.tar"

ఇది HOME వేరియబుల్‌తో సహా వేరియబుల్స్ సమూహాన్ని సెట్ చేస్తుంది cron అనుకూలత, అలాగే డేటాబేస్ మరియు బకెట్ సెట్టింగులు. అప్పుడు ఒక ఫైల్ సృష్టించండి ~/tmp డంప్‌ను సేవ్ చేసి అమలు చేయడానికి ఫోల్డర్ mongodump లక్ష్య డేటాబేస్లో. Corre tar బ్యాకప్ డైరెక్టరీకి (నుండి mongodump ప్రతి సేకరణకు ప్రత్యేక ఫైళ్ళను సేవ్ చేయండి), ఆపై ఫైల్‌ను ఎస్ 3 కి అప్‌లోడ్ చేయండి, అరుదైన యాక్సెస్ టైర్‌లో పేర్కొన్న బకెట్‌లో నిల్వ చేస్తుంది, ఇది నిల్వ ఖర్చులపై డబ్బు ఆదా చేస్తుంది మరియు ఈ ఉపయోగ సందర్భానికి అనువైనది.

మీరు ఈ స్క్రిప్ట్‌ను అమలు చేస్తే, మీరు టార్గెట్ బకెట్‌లో కొత్త బ్యాకప్ తారు చూడాలి. ఇది పనిచేస్తుంటే, మీ క్రోంటాబ్‌ను దీనితో తెరవండి:

crontab -e

మరియు ఈ స్క్రిప్ట్ కోసం క్రొత్త పంక్తిని జోడించండి:

మీరు దీన్ని దీన్ని సెట్ చేయాలనుకుంటున్నారు * * * * * ప్రతి నిమిషం పని చేయడానికి, ఇది క్రాన్ నుండి పనిచేస్తుందని నిర్ధారించుకోవడానికి. అది జరిగిందని ధృవీకరించిన తర్వాత, మీరు దీన్ని రోజుకు ఒకటి లేదా రెండుసార్లు వంటి మరింత సహేతుకమైనదిగా సెట్ చేయవచ్చు. మీ షెడ్యూల్ క్రమం తప్పకుండా ఉందని నిర్ధారించుకోవడానికి మీరు ఈ ఆన్‌లైన్ క్రాన్ షెడ్యూలర్‌ను ఉపయోగించవచ్చు.

ఎస్ 3 జీవితచక్రం ఆకృతీకరించుట

ఈ బ్యాకప్‌లు డేటాబేస్ డంప్‌లు మాత్రమే కాబట్టి, మీరు బహుశా ఒకటి లేదా రెండు వారాలకు మించి ఆర్కైవ్ చేయకూడదనుకుంటున్నారు, లేకుంటే అవి మీ ఎస్ 3 బకెట్‌ను చాలా వేగంగా నింపుతాయి.

S3 లైఫ్ సైకిల్స్ తో బకెట్ల నుండి తిరిగే వస్తువులను S3 నిర్వహించగలదు. బకెట్ సెట్టింగుల నుండి, “నిర్వహణ” మరియు “జీవితచక్ర నియమాన్ని జోడించు” క్లిక్ చేయండి.

బకెట్‌లోని అన్ని వస్తువులకు వర్తించేలా దీన్ని సెట్ చేయండి మరియు దానికి ఒక పేరు ఇవ్వండి. పరివర్తనాలు దాటవేయి.

గడువు కింద, బకెట్‌లో నిర్దిష్ట రోజుల తర్వాత వస్తువులను తొలగించడానికి మీరు దీన్ని కాన్ఫిగర్ చేయవచ్చు. మీరు మునుపటి వస్తువుల సంస్కరణలను కూడా తొలగించవచ్చు, కానీ స్క్రిప్ట్ టైమ్‌స్టాంప్ బ్యాకప్‌ల వలె, ఇది అవసరం లేదు.

సృష్టించు క్లిక్ చేయండి మరియు విధానం అమలులో ఉంటుంది.

Source link