ডেটা দুর্নীতি বা দুর্ঘটনাক্রমে মুছে ফেলার ক্ষেত্রে আপনি ডেটা পুনরুদ্ধার করতে পারেন তা নিশ্চিত করার জন্য, ডাটাবেস ব্যাকআপগুলিকে একটি রুটিন রক্ষণাবেক্ষণ কার্যকলাপ করুন৷ এই পোস্টটি Vertica® ডাটাবেস ব্যাকআপ এবং পুনরুদ্ধার অন্বেষণ করে৷
৷পরিচয়
ভার্টিকা, একটি বিশ্লেষণাত্মক ডাটাবেস ম্যানেজমেন্ট সিস্টেম, একটি কলামার-স্টোরেজ প্ল্যাটফর্ম যা প্রচুর পরিমাণে ডেটা পরিচালনা করার জন্য ডিজাইন করা হয়েছে, যা দ্রুত ক্যোয়ারী কর্মক্ষমতা পরম্পরাগতভাবে সম্পদ-নিবিড় পরিস্থিতিতে সক্ষম করে।
ভার্টিকা নিম্নলিখিত সুবিধাগুলি অফার করে:
- প্রথাগত ডাটাবেস রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেমের উপর ক্যোয়ারী কর্মক্ষমতা উন্নত করে।
- উচ্চ প্রাপ্যতা প্রদান করে।
- পণ্য এন্টারপ্রাইজ সার্ভারে পেটাবাইট স্কেলেবিলিটি প্রদান করে।
ডাটাবেস ব্যাকআপ এবং পুনরুদ্ধার প্রক্রিয়া রক্ষণাবেক্ষণ এবং দুর্যোগ পুনরুদ্ধারের সময় ডাউনটাইম হ্রাস করে৷
একটি ডাটাবেস ব্যাক আপ এবং পুনরুদ্ধার করুন
ভার্টিকার সাহায্যে, আপনি হট ব্যাকআপ, পুনরুদ্ধার পয়েন্টের একটি অনির্দিষ্ট সংখ্যা সহ ক্রমবর্ধমান অনুলিপি এবং একটি সম্পূর্ণ ডাটাবেসের ব্যাকআপ বা ডাটাবেসের একটি উপসেট (স্কিম, টেবিল এবং আরও) তৈরি করতে পারেন। নিম্নলিখিত ব্যাকআপ স্তরগুলি উপলব্ধ:
- সম্পূর্ণ স্তর :এই স্তরটি নিশ্চিত করে যে আপনি সম্পূর্ণ ভার্টিকা ডাটাবেস ব্যাক আপ এবং পুনরুদ্ধার করতে পারবেন।
- ক্রমবর্ধমান স্তর :এই স্তরটি একটি পরবর্তী ব্যাকআপ যা শুধুমাত্র নতুন বা পরিবর্তিত ডেটা নিয়ে গঠিত৷ ৷
- বস্তু-স্তর :এই স্তরটি পুনরুদ্ধারের জন্য একটি বস্তুর ব্যাকআপ।
ভার্টিকা সম্পূর্ণ ব্যাকআপ থেকে নির্দিষ্ট বস্তু (যেমন স্কিমা এবং টেবিল) পুনরুদ্ধার করতে নমনীয়তা এবং গ্রানুলারিটির স্তর সরবরাহ করে।
স্ন্যাপশট
ডেটাবেস স্ন্যাপশটগুলি ডেটাবেসের সমস্ত বস্তু এবং ডেটার একটি সামঞ্জস্যপূর্ণ চিত্র ক্যাপচার করে। অ্যানোবজেক্ট-স্তরের স্ন্যাপশটে অন্তর্ভুক্ত করার জন্য আপনি ডাটাবেস অবজেক্টের একটি উপসেট নির্বাচন করতে পারেন, যেটিতে স্ন্যাপশটের সময় ডাটাবেসে সম্পর্কিত ডেটা এবং নির্ভরতা গ্রাফের অন্যান্য অবজেক্ট রয়েছে। আপনি আপনার পছন্দ মতো আপনার স্ন্যাপশটের নাম দিতে পারেন (উদাহরণস্বরূপ:স্ন্যাপ, অবজেক্টসন্যাপ1, ফুলস্ন্যাপ ইত্যাদি)।
ব্যাকআপ অবস্থান
ব্যাকআপ অবস্থান হল একটি ব্যাকআপ হোস্টের ডিরেক্টরি যেখানে আপনি স্ন্যাপশট এবং তাদের সম্পর্কিত সংরক্ষণাগারগুলি সংরক্ষণ করেন৷ যেহেতু স্ন্যাপশটগুলি সামঞ্জস্যপূর্ণ, আপনি একটি সম্পূর্ণ ডাটাবেস স্ন্যাপশট থেকে একটি ডেটাবেস পুনরুদ্ধার করার পরে আপনি একই ব্যাকআপ অবস্থান থেকে যেকোনো বস্তুর স্ন্যাপশট ব্যবহার করতে পারেন। একই ব্যাকআপ অবস্থানের সমস্ত স্ন্যাপশট হার্ড লিঙ্কের মাধ্যমে শেয়ার করা ডেটা ফাইল।
হার্ড-লিঙ্ক ব্যাকআপ
৷ভার্টিকা কম খরচে এবং স্থান-দক্ষ কপি প্রদান করে (হার্ড-লিঙ্ক স্থানীয় ব্যাকআপ )স্থানীয় ক্লাস্টার অবকাঠামোতে ডাটাবেস ব্যাকআপ। আপনি এই ব্যাকআপগুলি দ্রুত পুনরুদ্ধার করতে পারেন কারণ সিস্টেমটি একটি বহিরাগত ব্যাকআপ পরিবেশে ব্যবহারকারীর ডেটা অনুলিপি করে না। ভার্টিকা শুধুমাত্র ক্যাটালগ ডেটা কপি করে এবং ফাইল সিস্টেমের মধ্যে লিনাক্স®-ভিত্তিক হার্ড লিঙ্ক শুরু করে।
ছবির উৎস :https://www.vertica.com/wp-content/uploads/2016/04/sidestep1.png
এই ব্যাকআপগুলি স্টোরেজ ব্লকের একই সেট ভাগ করে নেয় এবং প্রতিটি ব্যাকআপ তাদের পয়েন্ট-ইন-টাইম কপি ট্র্যাক করে। সিস্টেমটি একাধিক অবস্থানে একই সামগ্রী সংরক্ষণ করে না৷
৷ব্যাকআপ এবং পুনরুদ্ধার প্রক্রিয়া প্রবাহ
ব্যাকআপ এবং পুনরুদ্ধার প্রবাহ নিম্নলিখিত ধাপগুলি নিয়ে গঠিত:
- স্ন্যাপশট টাইপ নির্বাচন করুন, যেমন ফুল, ইনক্রিমেন্টাল, বা অবজেক্ট-লেভেল ব্যাকআপ।
- ভার্টিকা ব্যাকআপ এবং রিকভারি টুল ব্যবহার করে একটি কনফিগারেশন ফাইল তৈরি করুন।
- ব্যাকআপ ফাইল সংরক্ষণ করতে একটি ব্যাকআপ অবস্থান শুরু করুন৷ ৷
- কনফিগারেশন ফাইল ব্যবহার করে একটি ব্যাকআপ নিন।
- ব্যাকআপ অবস্থানে ব্যাকআপগুলি যাচাই করুন৷ ৷
- সমান বা ভিন্ন ভার্টিকা ক্লাস্টারে সম্পূর্ণ ডাটাবেস বা ডাটাবেস অবজেক্ট পুনরুদ্ধার করুন।
ছবির উৎস :https://www.vertica.com/kb/Copy-and-Restore-Data-from-a-Vertica-Cluster-to-a-Backup/Content/BestPractices/Copy-and-Restore-Data-from-a -Vertica-Cluster-to-a-Backup.htm
একটি কনফিগারেশন ফাইল তৈরি করুন
vbr.py ইউটিলিটি একটি কনফিগারেশন ফাইল তৈরি করে যার তথ্য ভার্টিকেয়ারে সম্পূর্ণ, বর্ধিত, বা অবজেক্ট-লেভেল স্ন্যাপশটগুলির ব্যাক আপ এবং পুনরুদ্ধার করতে হয়৷ আপনি কনফিগারেশন ফাইল ছাড়া ডেটাবেস বা বস্তুর ব্যাক আপ বা পুনরুদ্ধার করতে পারবেন না এবং কোনও ডিফল্ট ফাইল বিদ্যমান নেই৷
আপনি যতগুলি প্রয়োজন ততগুলি ব্যাকআপ কনফিগারেশন ফাইল তৈরি করতে পারেন (যেমন সম্পূর্ণ বা ইনক্রিমেন্টাল, অবজেক্ট বা স্কিমা-নির্দিষ্ট, বা অবস্থান-নির্দিষ্ট ফাইল)।
সম্পূর্ণ ব্যাকআপ কনফিগারেশন ফাইল
নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ ডেটাবেস ব্যাকআপ নেওয়ার জন্য একটি কনফিগারেশন ফাইল তৈরি করতে সহায়তা করে৷
$ vbr.py --setupconfig
Snapshot name (backup_snapshot): full_bkp_snap
Backup vertica configurations? (n) [y/n]: y
Number of restore points (1):
Specify objects (no default):
Vertica user name (dbadmin): dbadmin
Save password to avoid runtime prompt? (n) [y/n]: n
Node v_testdb_node0001
Backup host name (no default): v_testdb_node0001
Backup directory (no default): /vert_backup/backup
Node v_testdb_node0002
Backup host name (no default): v_testdb_node0002
Backup directory (no default): /vert_backup/backup
Node v_testdb_node0003
Backup host name (no default): v_testdb_node0003
Backup directory (no default): /vert_backup/backup
Config file name (full_bkp_snap.ini): /vert_backup/backup_conf/full_bkp_snap.ini
Change advanced settings? (n) [y/n]: n
Saved vbr configuration to /vert_backup/backup_conf/full_bkp_snap.ini.
অবজেক্ট-নির্দিষ্ট ব্যাকআপ কনফিগারেশন ফাইল
একটি অবজেক্ট-নির্দিষ্ট কনফিগারেশন ফাইল তৈরি করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
ডাটাবেসের বস্তুর তালিকা করুন এবং কোনটি ব্যবহার করবেন তা চয়ন করুন। নিম্নলিখিত বস্তুগুলি আমাদের ভার্টিকা ডাটাবেসে উপস্থিত রয়েছে:
List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows)
-
public.tab1 এর ব্যাকআপ নিতে একটি কনফিগারেশন ফাইল তৈরি করতে নিম্নলিখিত কমান্ডটি চালান টেবিল:
$ vbr.py --setupconfig Snapshot name (backup_snapshot): tab1_bkp_snap Backup vertica configurations? (n) [y/n]: n Number of restore points (1): Specify objects (no default): public.tab1 Vertica user name (dbadmin): dbadmin Save password to avoid runtime prompt? (n) [y/n]: n Node v_testdb_node0001 Backup host name (no default): v_testdb_node0001 Backup directory (no default): /vert_backup/backup Node v_testdb_node0002 Backup host name (no default): v_testdb_node0002 Backup directory (no default): /vert_backup/backup Node v_testdb_node0003 Backup host name (no default): v_testdb_node0003 Backup directory (no default): /vert_backup/backup Config file name (tab1_bkp_snap.ini): /vert_backup/backup_conf/tab1_bkp_snap.ini Change advanced settings? (n) [y/n]: n Saved vbr configuration to /vert_backup/backup_conf/tab1_bkp_snap.ini.
-
তৈরি ব্যাকআপ কনফিগারেশন ফাইল তালিকাভুক্ত করতে নিম্নলিখিত কমান্ডগুলি চালান:
$ cd /vert_backup/backup_conf/ $ ls -la total 20 drwxr-xr-x. 2 dbadmin dbadmin 4096 Jan 20 14:21 . -rw-rw-r--. 1 dbadmin dbadmin 488 Jan 20 14:21 tab1_bkp_snap.ini -rw-rw-r--. 1 dbadmin dbadmin 475 Jan 20 14:04 full_bkp_snap.ini
ব্যাকআপ অবস্থান শুরু করুন
সোর্স ক্লাস্টারে সম্পূর্ণ এবং অবজেক্ট-লেভেল ব্যাকআপের জন্য ব্যাকআপ অবস্থানগুলি শুরু করতে, নিম্নলিখিত init
চালান বিবৃতি:
$ /opt/vertica/bin/vbr.py -t init --config-file full_bkp_snap.ini
$ /opt/vertica/bin/vbr.py -t init --config-file tab1_bkp_snap.ini
একটি ব্যাকআপ নিন
৷একটি সম্পূর্ণ ডাটাবেস বা একটি অবজেক্ট-লেভেল ব্যাকআপ নিন।
সম্পূর্ণ ডাটাবেস ব্যাকআপ
পূর্বে তৈরি করা কনফিগারেশন ফাইল,full_bkp_snap.ini ব্যবহার করে সম্পূর্ণ ডাটাবেস ব্যাকআপ নিন :
$ vbr.py --task backup --config-file full_bkp_snap.ini
Please input vertica password:
pparing...
Found Database port: 5433
Copying...
348900 out of 348900, 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!
একক বস্তুর ব্যাকআপ
৷কনফিগারেশন ফাইলটি ব্যবহার করুন, tab1_bkp_snap.ini , অবজেক্ট-লেভেল ব্যাকআপ নিতে:
$ vbr.py --task backup --config-file tab1_bkp_snap.ini
Please input vertica password:
pparing...
Found Database port: 5433
Copying...
78920 out of 78920, 100%
All child processes terminated successfully.
Committing changes on all backup sites...
backup done!
ব্যাকআপ অবস্থান যাচাই করুন
ব্যাকআপ অবস্থান যাচাই করতে নিম্নলিখিত কমান্ডগুলি চালান:
$ cd vert_backup/
$ ls -la
total 16
drwxr-xr-x. 4 dbadmin dbadmin 4096 Jan 20 13:40 .
dr-xr-xr-x. 28 root root 4096 Jan 20 13:53 ..
drwxr-xr-x. 5 dbadmin dbadmin 4096 Jan 20 15:22 backup
drwxr-xr-x. 2 dbadmin dbadmin 4096 Jan 20 15:29 backup_conf
$ cd backup/
$ ll
total 12
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0001
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0002
drwxrwxr-x. 8 dbadmin dbadmin 4096 Jan 20 15:29 v_testdb_node0003
$ cd v_testdb_node0001/
$ ll
total 12
drwx------. 3 dbadmin dbadmin 4096 Jan 20 15:29 tab1_bkp_snap
drwx------. 3 dbadmin dbadmin 4096 Jan 20 15:22 full_bkp_snap
ব্যাকআপ পুনরুদ্ধার করুন
সম্পূর্ণ বা অবজেক্ট-লেভেল ব্যাকআপ পুনরুদ্ধার করুন।
একটি পূর্ণ-ডাটাবেস ব্যাকআপ থেকে পুনরুদ্ধার করুন
দ্রষ্টব্য :সম্পূর্ণ ব্যাকআপ পুনরুদ্ধার করতে ডাটাবেস অবশ্যই ডাউন হতে হবে।
একটি সম্পূর্ণ-ডাটাবেস পুনরুদ্ধার করতে নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করুন:
-
আপনার ডাটাবেসের সমস্ত অবজেক্ট ড্রপ করুন এবং সম্প্রতি তৈরি ব্যাকআপের সাথে সেগুলি পুনরুদ্ধার করুন:
cluster=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows) cluster=> drop table tab1,tab2,tab3; DROP TABLE cluster=> dt No relations found.
-
ডাটাবেস ডাউন করে, সম্পূর্ণ ব্যাকআপ ব্যবহার করে ডাটাবেস পুনরুদ্ধার করুন:
$ vbr.py --task restore --config-file full_bkp_snap.ini Please input vertica password: Preparing... Found Database port: 5433 Copying... 248556 out of 248556, 100% All child processes terminated successfully. restore done!
-
ডাটাবেস শুরু করুন এবং অবজেক্ট পুনরুদ্ধার সফল হয়েছে কিনা তা পরীক্ষা করুন। নিম্নলিখিত উদাহরণ দেখায় যে পুনরুদ্ধার সফল হয়েছে:
cluster=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows)
একটি অবজেক্ট-লেভেল ব্যাকআপ পুনরুদ্ধার করুন
দ্রষ্টব্য :অবজেক্ট-লেভেল পুনরুদ্ধারের জন্য ডাটাবেস আপ এবং চলমান হতে হবে।
একটি অবজেক্ট পুনরুদ্ধার করতে, আপনাকে একটি বিদ্যমান অবজেক্ট-লেভেল ব্যাকআপ ব্যবহার করতে হবে। নিচের কোডটি ট্যাব1 কমে যায় পুনরুদ্ধারের প্রস্তুতিতে:
cluster=> drop table tab1;
DROP TABLE
cluster=> dt
List of tables
Schema | Name | Kind | Owner | Comment
-------+-------+-------+---------+---------
public | tab2 | table | dbadmin |
public | tab3 | table | dbadmin |
(2 rows)
অবজেক্ট-লেভেল ব্যাকআপ থেকে একটি অবজেক্ট পুনরুদ্ধার করতে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
-
বস্তুটি পুনরুদ্ধার করুন:
$ vbr.py --task restore --config-file tab1_bkp_snap.ini Please input vertica password:xxxxxxxx Preparing... Found Database port: 5433 Copying... out of , 100% All child processes terminated successfully. Copying... 2970 out of 2970, 100% All child processes terminated successfully. restore done!
-
বস্তু পুনরুদ্ধার সফল হয়েছে কিনা তা পরীক্ষা করুন। নিম্নলিখিত উদাহরণটি public.tab1-এর সফল পুনরুদ্ধার দেখায় অবজেক্ট-লেভেল ব্যাকআপ থেকে:
$ vsql Password:xxxxxxx dbadmin=> dt List of tables Schema | Name | Kind | Owner | Comment --------+-------+-------+---------+--------- public | tab1 | table | dbadmin | public | tab2 | table | dbadmin | public | tab3 | table | dbadmin | (3 rows) dbadmin=> d tab1 ; List of Fields by Tables Schema | Table | Column | Type | Size | Default | Not Null | Primary Key | Foreign Key --------+-------+--------+--------------+------+---------+----------+-------------+------------- public | tab1 | col1 | numeric(3,) | 8 | | f | f |
উপসংহার
এই পোস্টটি ভার্টিকা ডাটাবেস ব্যাকআপ এবং পুনরুদ্ধার প্রক্রিয়ার পিছনে যুক্তি তুলে ধরে। এটি একটি ভার্টিকা ডাটাবেস বিভিন্ন স্তরের ব্যাক আপ এবং পুনরুদ্ধার করার পদক্ষেপগুলিও প্রদান করে, যেমন পূর্ণ, ক্রমবর্ধমান এবং অবজেক্ট-লেভেল।
ডেটাবেস সম্পর্কে আরও জানুন।
www.rackspace.com এ যান এবং সেলস চ্যাট এ ক্লিক করুন একটি কথোপকথন শুরু করতে৷
কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাবটি ব্যবহার করুন৷
৷