8.1 ডাটাবেস ব্যাকআপের প্রয়োজন
আপনি শিখেছেন কিভাবে ডাটাবেস স্কিমা, টেবিল তৈরি করতে হয়, সেগুলো দেখতে হয়। এছাড়াও ডেটা দিয়ে এই টেবিলগুলি পূরণ করুন এবং তাদের পরিবর্তন করুন। এখন আপনাকে সবচেয়ে গুরুত্বপূর্ণ জিনিসটি শিখতে হবে - ব্যাকআপ করতে।
ডাটাবেস ভাঙ্গা খুব সহজ. আসল বিষয়টি হ'ল ডাটাবেসটি সাধারণত ধ্রুবক পরিবর্তনের অবস্থায় থাকে: কিছু ক্রমাগত সংরক্ষণ করা হয় এবং এতে যুক্ত করা হয়।
কল্পনা করুন যে আপনার ব্রাউজারে একটি ট্যাব খোলা আছে এবং আপনি এটির তথ্য হারিয়ে যেতে চান না। সম্মত হন যে আপনি যদি এটি কখনই বন্ধ না করার সিদ্ধান্ত নেন তবে এটি সেরা বিকল্প হবে না। সর্বোপরি, ব্রাউজারটি হিমায়িত হতে পারে, এটি দুর্ঘটনাক্রমে বন্ধ হয়ে যেতে পারে, আপনি আলো হারাতে পারেন বা আপনার কম্পিউটার বার্ন করতে পারেন। উইন্ডোজ অন্য আপডেট ইনস্টল করতে পারে, কিন্তু আপনি কি জানেন না।
সুতরাং, আপনার ডাটাবেস একই ট্যাব. এবং এটি শুধুমাত্র সময়ের ব্যাপার যখন ডিস্কে পরবর্তী লেখার সময় কিছু ভুল হয়ে যায়। অতএব, আপনাকে অবশ্যই ব্যাকআপগুলি কীভাবে তৈরি করতে হয় তা শিখতে হবে।
ব্যাকআপ তৈরি করা আপনার দাঁত ব্রাশ করার মতো, সাধারণ কোম্পানিগুলি প্রতি রাতে প্রতিটি ডাটাবেসের বিষয়বস্তুর ব্যাকআপ তৈরি করে। এবং যেহেতু হার্ড ড্রাইভগুলিও ব্যর্থ হতে পারে এবং ডেটা সেন্টারগুলিতে আগুন লেগে যায়, তাই বিশ্বের বিভিন্ন অংশে ডেটা সেন্টারে সাধারণত 2-3 কপিতে ব্যাকআপ সংরক্ষণ করা হয়।
একটি ব্যাকআপ তৈরি করার জন্য বিভিন্ন পদ্ধতি রয়েছে।
ব্যাকআপ ফাইল। যেহেতু সমস্ত ডাটাবেস ডেটা ফাইলগুলির একটি সেট হিসাবে ডিস্কে সংরক্ষণ করা হয় , তাই সবচেয়ে সহজ উপায় হল এই ফাইলগুলিকে কোথাও অনুলিপি করা। অথবা প্রথমে এটিকে একটি সংরক্ষণাগারে সংরক্ষণ করুন এবং তারপর এটিকে কোথাও অনুলিপি করুন৷
এটি একটি ব্যাকআপ করার দ্রুততম উপায়, কিন্তু এটির জন্য ফাইলগুলি কপি/আর্কাইভ করার সময় পরিবর্তন না করা প্রয়োজন৷ অনুলিপি তৈরি করার সময় ডাটাবেস হিমায়িত করা আবশ্যক, অন্যথায় অনুলিপিটি আঁকাবাঁকা হয়ে যাবে। সর্বোপরি, এমন পরিস্থিতি হতে পারে যে কিছু নতুন ডেটা ডাটাবেসে রেকর্ড করা হয়েছে, এবং কিছু এখনও নেই।
এসকিউএল কোয়েরি আকারে ব্যাকআপ । আপনি ইতিমধ্যেই জানেন, SQL সার্ভার ডাটাবেসে ডেটা যোগ করা এবং পরিবর্তন করা সবসময় SQL কোয়েরি হিসাবে উপস্থাপন করা হয়। তাই আপনি SQL সার্ভারকে একটি নির্দিষ্ট টেবিল বা টেবিলের বিষয়বস্তু SQL কোয়েরি আকারে একটি ফাইলে সংরক্ষণ করতে বলতে পারেন।
এই পদ্ধতিটি আগেরটির চেয়ে ধীর, তবে এটি বিভিন্ন নির্মাতাদের থেকে SQL সার্ভারের মধ্যে ডেটা স্থানান্তর করতে ব্যবহার করা যেতে পারে।
এছাড়াও, সব তথ্য সবসময় সংরক্ষণ করার প্রয়োজন হয় না। প্রায়শই আপনার টেবিলে একগুচ্ছ পরিষেবা বা অপ্রচলিত তথ্য থাকে এবং আপনি SQL সার্ভারকে এটি সংরক্ষণ না করতে বলতে পারেন।
এছাড়াও, টেবিলের জন্য যেগুলি সময়ের রেফারেন্স সহ কিছু ইভেন্ট সঞ্চয় করে, আপনি কেবল শেষ দিনের জন্য এই ধরনের ইভেন্টগুলি নির্বাচন করতে পারেন এবং শুধুমাত্র সেগুলি সংরক্ষণ করতে পারেন।
বিভিন্ন ইউটিলিটি । কোম্পানিগুলি তাদের ডেটা অক্ষত এবং নিরাপদ থাকবে এমন গ্যারান্টি পেতে প্রচুর অর্থ দিতে ইচ্ছুক। তাই, বিভিন্ন আইটি কোম্পানি সব অনুষ্ঠানের জন্য সমাধান দিতে শুরু করে। উদাহরণস্বরূপ, এমন কিছু প্রোগ্রাম রয়েছে যা ফাইলের আকারে ব্যাকআপ ডাটাবেস তৈরি করতে পারে এবং একই সময়ে এই ফাইলগুলি পরিবর্তন না করার প্রয়োজন হয় না।
উদাহরণস্বরূপ, আপনি অপারেটিং সিস্টেমে বিশেষ ড্রাইভার ইনস্টল করতে পারেন এবং কখন, কী এবং কোথায় পরিবর্তন হয়েছে তা ট্র্যাক করতে পারেন।
8.2 ডাটাবেস ব্যাক আপ করা
ওয়ার্কবেঞ্চ এটির সাথে কাজ করে এমন ডাটাবেস থেকে ডেটা রপ্তানি এবং আমদানিতে দুর্দান্ত। এটি করার জন্য, আপনাকে কেবল মেনু আইটেমটি টিপুন: Server-> Data Export
. এবং আপনি এই মত কিছু দেখতে পাবেন:
![](https://cdn.codegym.cc/images/article/3bc1564d-b5cb-4378-9968-570697e9603a/1024.jpeg)
এখন কিছু ব্যাখ্যা যোগ করা যাক:
![](https://cdn.codegym.cc/images/article/821a37d4-c6f3-4ccf-80bf-4873f3d8d061/1024.jpeg)
আদেশটি এই:
- প্রথমে, স্কিমা বা স্কিমা নির্বাচন করুন যা এক্সপোর্ট করা হবে।
- তারপর ডানদিকে আমরা ব্যাকআপের জন্য টেবিলগুলি নির্দিষ্ট করি।
- এরপরে, আমরা ঠিক কী রপ্তানি করব তা বেছে নিতে হবে:
- শুধুমাত্র তথ্য;
- শুধুমাত্র গঠন (টেবিল হবে, কিন্তু খালি);
- তথ্য এবং গঠন।
- কীভাবে ডেটা সংরক্ষণ করবেন তা চয়ন করুন:
- প্রতিটি টেবিলের জন্য একটি ফাইল;
- সমস্ত টেবিলের জন্য একটি ফাইল।
- আপনি ফাইলের শীর্ষে স্কিমা তৈরির কোড যোগ করতে পারেন। বিভিন্ন DBMS এর মধ্যে ডেটা স্থানান্তর করার সময় এটি কার্যকর।
8.3 টেবিল স্কিমা ব্যাক আপ করা
আসল ডেটা ছাড়াই শুধুমাত্র স্কিমা ব্যাক আপ করা যাক।
আমি শুধুমাত্র ডাম্প স্ট্রাকচার নির্বাচন করেছি এবং স্টার্ট এক্সপোর্ট ক্লিক করেছি।
![](https://cdn.codegym.cc/images/article/18f4743c-0edb-468b-8408-52f59c75a20f/1024.jpeg)
এবং এই আমি কি ওয়ার্কবেঞ্চ তৈরি করা ফাইল পাওয়া গেছে.
--
-- Table structure for table `user`
--
DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`name` varchar(100) DEFAULT NULL,
`level` int(11) DEFAULT NULL,
`created_date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
এটা ঠিক, এটি আমাদের টেবিলের স্কিমা, যদি আমি একটি একক টেবিল সম্পর্কে বলতে পারি।
8.4 ডেটা ব্যাক আপ করা
এখন শুধু ডাটা ব্যাকআপ করা যাক, কিন্তু স্কিমা স্ট্রাকচার ছাড়াই।
আসুন শুধুমাত্র ডাম্প ডেটা নির্বাচন করি এবং দেখুন তারা আমাদের কী দেয়:
![](https://cdn.codegym.cc/images/article/b81bb769-5767-4f8a-9a45-bf36e59746e2/1024.jpeg)
এবং এই আমি কি ওয়ার্কবেঞ্চ তৈরি করা ফাইল পাওয়া গেছে.
--
-- Dumping data for table `user`
--
LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES
(1,'Ivanov Ivan',40,'2022-05-11'),
(2,'Petrov Nikola',1,'2021-05-01'),
(3,'Sidroov Vitaly',8,'2022-05-12');
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
হ্যাঁ, অনেকটাই সত্যের মতো। আমরা এখানে একটি বিশেষ কোডও দেখতে পাচ্ছি যা ব্যবহারকারীর টেবিল লক করে দেয়। এটি করা হয়েছে যাতে আপনি সহজভাবে এই SQL স্ক্রিপ্টটি চালাতে পারেন: এতে এমন সমস্ত নির্দেশ রয়েছে যা যেকোনো SQL সার্ভারকে সঠিকভাবে ডেটা পুনরুদ্ধার করার অনুমতি দেবে।
8.5 একটি ব্যাকআপ স্থাপন করা
এবং অবশেষে, শেষ জিনিস একটি ব্যাকআপ থেকে ডাটাবেস পুনরুদ্ধার করা হয়. এই অ্যাকশন খুবই সহজ কিন্তু দরকারী।
ধরা যাক আমি চাই আমার সমস্ত ছাত্রদের একটি নির্দিষ্ট ডাটাবেস থাকুক যাতে আপনি শিখতে পারেন কিভাবে এটিতে প্রশ্ন লিখতে হয়। তারপর আমি আপনাকে ফাইলটির একটি লিঙ্ক দেব যা আপনি স্থানীয়ভাবে স্থাপন করেছেন এবং এটিই।
এবং এমনকি যদি আপনি দুর্ঘটনাক্রমে কিছু ডেটা, টেবিল বা এমনকি সম্পূর্ণ স্কিমা মুছে ফেলেন তবে এটি সর্বদা একটি ব্যাকআপ থেকে পুনরুদ্ধার করা যেতে পারে।
ডেটা আমদানি করার জন্য, আপনাকে মেনুতে থাকা আইটেমটিতে ক্লিক করতে হবে Server-> Data Import
। তারপর আপনি এই ছবিটি দেখতে পাবেন:
![](https://cdn.codegym.cc/images/article/3e3e48d4-9f99-4fa1-a2cb-121920583570/1024.jpeg)
রপ্তানির ক্ষেত্রে যেমন, আপনাকে প্রথমে একটি ডেটা উত্স নির্বাচন করতে বলা হয়: ফাইলগুলির একটি গ্রুপ বা একটি ফাইলে সমস্ত ডেটা।
তারপরে আপনাকে সেই স্কিমটি নির্বাচন করতে হবে যেখানে নির্দিষ্ট ডেটা আপলোড করা হবে। আপনি একটি বিদ্যমান স্কিম নির্বাচন করতে পারেন বা একটি নতুন তৈরি করতে পারেন৷
গুরুত্বপূর্ণ ! যদি আপনার ব্যাকআপে কেবল ডেটাই থাকে না, তবে টেবিলের কাঠামোর বিবরণও থাকে, তবে টেবিলগুলি পুনরায় তৈরি করা হবে (যদি লক্ষ্য স্কিমাতে ইতিমধ্যেই থাকে)।
GO TO FULL VERSION