PostgreSQL தரவுத்தளத்தை காப்புப்பிரதி மற்றும் மீட்டமைப்பது எப்படி


ஒரு உற்பத்தி சூழலில், உங்கள் PostgreSQL தரவுத்தளம் எவ்வளவு பெரியதாக இருந்தாலும் சிறியதாக இருந்தாலும் சரி, தரவுத்தள நிர்வாகத்தின் வழக்கமான அம்சம் வழக்கமான பின்புறம் ஆகும். இந்த கட்டுரையில், ஒரு PostgreSQL தரவுத்தளத்தை எவ்வாறு காப்புப் பிரதி எடுப்பது மற்றும் மீட்டமைப்பது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள்.

PostgreSQL தரவுத்தள அமைப்பின் செயல்பாட்டு நிறுவலை நீங்கள் ஏற்கனவே வைத்திருப்பதாக நாங்கள் கருதுகிறோம். இல்லையெனில், உங்கள் லினக்ஸ் விநியோகத்தில் PostgreSQL ஐ நிறுவ எங்கள் பின்வரும் கட்டுரைகளைப் படிக்கவும்.

  • உபுண்டு 20.04 இல் PostgreSQL மற்றும் pgAdmin4 ஐ எவ்வாறு நிறுவுவது
  • CentOS 8 இல் PostgreSQL மற்றும் pgAdmin ஐ எவ்வாறு நிறுவுவது
  • RHEL 8 இல் PostgreSQL மற்றும் pgAdmin ஐ எவ்வாறு நிறுவுவது

தொடங்குவோம்…

ஒற்றை PostgreSQL தரவுத்தளத்தை காப்புப்பிரதி எடுக்கவும்

தரவுத்தளங்களை காப்புப் பிரதி எடுக்க உங்களுக்கு உதவ pg_dump பயன்பாட்டை PostgreSQL வழங்குகிறது. இது எதிர்காலத்தில் எளிதில் மீட்டெடுக்கக்கூடிய வடிவத்தில் SQL கட்டளைகளுடன் ஒரு தரவுத்தள கோப்பை உருவாக்குகிறது.

காப்புப் பிரதி எடுக்க, ஒரு போஸ்ட்கிரெஸ்க்யூல் தரவுத்தளம், உங்கள் தரவுத்தள சேவையகத்தில் உள்நுழைவதன் மூலம் தொடங்கவும், பின்னர் போஸ்ட்கிரெஸ் பயனர் கணக்கில் மாறவும், பின்வருமாறு pg_dump ஐ இயக்கவும் ( tecmintdb ஐ நீங்கள் காப்புப் பிரதி எடுக்க விரும்பும் தரவுத்தளத்தின் பெயருடன் மாற்றவும்) . இயல்பாக, வெளியீட்டு வடிவம் ஒரு எளிய உரை SQL ஸ்கிரிப்ட் கோப்பு.

$ pg_dump tecmintdb > tecmintdb.sql

Pg_dump மற்ற வெளியீட்டு வடிவங்களையும் ஆதரிக்கிறது. -F விருப்பத்தைப் பயன்படுத்தி வெளியீட்டு வடிவமைப்பை நீங்கள் குறிப்பிடலாம், அங்கு c என்பது தனிப்பயன் வடிவமைப்பு காப்பகக் கோப்பு, d என்பது அடைவு வடிவமைப்பு காப்பகம் மற்றும் <குறியீடு > டி என்பது தார் வடிவமைப்பு காப்பக கோப்பு என்று பொருள்: அனைத்து வடிவங்களும் pg_restore இல் உள்ளீடு செய்ய ஏற்றது.

உதாரணத்திற்கு:

$ pg_dump -F c tecmintdb > tecmintdb.dump
OR
$ pg_dump -F t tecmintdb > tecmintdb.tar

அடைவு வெளியீட்டு வடிவமைப்பில் வெளியீட்டைக் குவிக்க, ஒரு கோப்பிற்கு பதிலாக இலக்கு கோப்பகத்தைக் குறிப்பிட -f கொடியை (வெளியீட்டு கோப்பைக் குறிப்பிடப் பயன்படுகிறது) பயன்படுத்தவும். Pg_dump ஆல் உருவாக்கப்படும் அடைவு இருக்கக்கூடாது.

$ pg_dump -F d tecmintdb -f tecmintdumpdir	

அனைத்து PostgreSQL தரவுத்தளங்களையும் காப்புப் பிரதி எடுக்க, காட்டப்பட்டுள்ளபடி pg_dumpall கருவியைப் பயன்படுத்தவும்.

$ pg_dumpall > all_pg_dbs.sql

காட்டப்பட்டுள்ளபடி psql ஐப் பயன்படுத்தி டம்பை மீட்டெடுக்கலாம்.

$ pgsql -f all_pg_dbs.sql postgres

PostgreSQL தரவுத்தளத்தை மீட்டமைக்கிறது

PostgreSQL தரவுத்தளத்தை மீட்டமைக்க, நீங்கள் psql அல்லது pg_restore பயன்பாடுகளைப் பயன்படுத்தலாம். pg_dump ஆல் உருவாக்கப்பட்ட உரை கோப்புகளை மீட்டமைக்க psql பயன்படுத்தப்படுகிறது, அதே சமயம் pg_restore ஒரு போஸ்ட்கிரெஸ்க்யூல் தரவுத்தளத்தை pg_dump உருவாக்கிய காப்பகத்திலிருந்து வெற்று-உரை அல்லாத வடிவங்களில் ஒன்றில் (தனிப்பயன், தார் அல்லது அடைவு) மீட்டமைக்கப் பயன்படுகிறது.

எளிய உரை கோப்பு டம்பை எவ்வாறு மீட்டெடுப்பது என்பதற்கான எடுத்துக்காட்டு இங்கே:

$ psql tecmintdb < tecmintdb.sql

மேலே குறிப்பிட்டுள்ளபடி, தனிப்பயன்-வடிவ டம்ப் pgsql க்கான ஸ்கிரிப்ட் அல்ல, எனவே இது காட்டப்பட்டுள்ளபடி pg_restore உடன் மீட்டமைக்கப்பட வேண்டும்.

$ pg_restore -d tecmintdb tecmintdb.dump
OR
$ pg_restore -d tecmintdb tecmintdb.tar
OR
$ pg_restore -d tecmintdb tecmintdumpdir	

காப்புப்பிரதி பெரிய PostgreSQL தரவுத்தளங்கள்

நீங்கள் காப்புப் பிரதி எடுக்கும் தரவுத்தளம் பெரியதாக இருந்தால், நீங்கள் ஒரு சிறிய வெளியீட்டு கோப்பை உருவாக்க விரும்பினால், நீங்கள் ஒரு சுருக்கப்பட்ட டம்பை இயக்கலாம், அங்கு நீங்கள் pg_dump இன் வெளியீட்டை gzip அல்லது உங்களுக்கு பிடித்த ஏதேனும் ஒரு சுருக்க கருவி மூலம் வடிகட்ட வேண்டும்:

$ pg_dump tecmintdb | gzip > tecmintdb.gz

தரவுத்தளம் மிகப் பெரியதாக இருந்தால், காண்பிக்கப்பட்டுள்ளபடி, -j கொடியைப் பயன்படுத்தி ஒரே நேரத்தில் எண்_ஆப்_ஜோப்ஸ் அட்டவணையை கொட்டுவதன் மூலம் இணையாக டம்ப் செய்யலாம்.

$ pg_dump -F d -j 5 -f tecmintdumpdir

இணையான டம்ப் விருப்பம் டம்பின் நேரத்தைக் குறைக்கிறது என்பதைக் கவனத்தில் கொள்ள வேண்டும், ஆனால் மறுபுறம், இது தரவுத்தள சேவையகத்தில் சுமை அதிகரிக்கிறது.

காப்புப்பிரதி தொலை போஸ்ட்கிரெஸ்க்யூல் தரவுத்தளங்கள்

pg_dump ஒரு வழக்கமான PostgreSQL கிளையன்ட் கருவியாகும், இது தொலை தரவுத்தள சேவையகங்களில் செயல்பாடுகளை ஆதரிக்கிறது. தொலைநிலை தரவுத்தள சேவையகத்தைக் குறிப்பிட pg_dump தொடர்பு கொள்ள வேண்டும், தொலைநிலை ஹோஸ்டைக் குறிப்பிட கட்டளை-வரி விருப்பங்கள் -h ஐப் பயன்படுத்தவும் மற்றும் -p தரவுத்தள சேவையகம் கேட்கும் தொலை துறைமுகத்தைக் குறிப்பிடுகிறது . தவிர, இணைக்க தரவுத்தள பங்கு பெயரைக் குறிப்பிட -U கொடியைப் பயன்படுத்தவும்.

10.10.20.10 மற்றும் 5432 மற்றும் tecmintdb ஐ உங்கள் தொலை ஹோஸ்ட் ஐபி முகவரி அல்லது ஹோஸ்ட்பெயர், தரவுத்தள போர்ட் மற்றும் தரவுத்தள பெயருடன் முறையே மாற்ற நினைவில் கொள்க.

$ pg_dump -U tecmint -h 10.10.20.10 -p 5432 tecmintdb > tecmintdb.sql

தொலைதூரத்தில் இணைக்கும் பயனருக்கு தரவுத்தளத்தை அணுக தேவையான சலுகைகள் இருப்பதை உறுதிசெய்து, பொருத்தமான தரவுத்தள அங்கீகார முறை தரவுத்தள சேவையகத்தில் கட்டமைக்கப்பட்டுள்ளது, இல்லையெனில், பின்வரும் ஸ்கிரீன்ஷாட்டில் காட்டப்பட்டுள்ளதைப் போன்ற பிழையைப் பெறுவீர்கள்.

ஒரு தரவுத்தளத்தை ஒரு சேவையகத்திலிருந்து நேரடியாக மற்றொரு சேவையகத்திற்குக் கொட்டவும், காட்டப்பட்டுள்ளபடி pg_dump மற்றும் psql பயன்பாடுகளைப் பயன்படுத்தவும் முடியும்.

$ pg_dump -U tecmint -h 10.10.20.10 tecmintdb | pqsl -U tecmint -h 10.10.20.30 tecmintdb

கிரான் வேலையைப் பயன்படுத்தி தானியங்கு காப்புப்பிரதி PostgreSQL தரவுத்தளம்

கிரான் வேலைகளைப் பயன்படுத்தி சீரான இடைவெளியில் காப்புப்பிரதிகளைச் செய்யலாம். கிரான் வேலைகள் ஒரு சேவையகத்தில் இயங்க பல்வேறு வகையான பணிகளை திட்டமிடுவதற்கு பொதுவாக பயன்படுத்தப்படும் வழிமுறையாகும்.

PostgreSQL தரவுத்தள காப்புப்பிரதியை பின்வருமாறு தானியங்குபடுத்துவதற்கு நீங்கள் ஒரு கிரான் வேலையை உள்ளமைக்கலாம். PostgreSQL சூப்பர் யூசராக பின்வரும் கட்டளைகளை இயக்க வேண்டும் என்பதை நினைவில் கொள்க:

$ mkdir -p /srv/backups/databases

அடுத்து, புதிய கிரான் வேலையைச் சேர்க்க கிராண்டாப்பைத் திருத்த பின்வரும் கட்டளையை இயக்கவும்.

$ crontab -e

பின்வரும் வரியை நகலெடுத்து ஒட்டவும். மேலே விளக்கப்பட்டுள்ள எந்த டம்ப் வடிவங்களையும் நீங்கள் பயன்படுத்தலாம்.

0 0 * * *  pg_dump  -U postgres tecmintdb > /srv/backups/postgres/tecmintdb.sql

கோப்பை சேமித்து வெளியேறவும்.

மறுதொடக்கம் இல்லாமல் கிரான் சேவை தானாகவே இந்த புதிய வேலையை இயக்கத் தொடங்கும். இந்த கிரான் வேலை ஒவ்வொரு நாளும் நள்ளிரவில் இயங்கும், இது காப்புப் பணிக்கு குறைந்தபட்ச தீர்வாகும்.

கிரான் வேலைகளை எவ்வாறு திட்டமிடுவது என்பது பற்றிய கூடுதல் தகவலுக்கு, காண்க: லினக்ஸில் கிரான் வேலைகளை உருவாக்குவது மற்றும் நிர்வகிப்பது எப்படி

இப்போதைக்கு அதுதான்! தரவை காப்புப் பிரதி எடுப்பது உங்கள் தரவுத்தள மேலாண்மை வழக்கத்தின் ஒரு பகுதியாக மாற்றுவது நல்லது. ஏதேனும் கேள்விகள் அல்லது கருத்துகளுக்கு எங்களை அணுக, கீழே உள்ள கருத்து படிவத்தைப் பயன்படுத்தவும். மேலும் தகவலுக்கு, pg_restore குறிப்பு பக்கங்களைப் பார்க்கவும்.