गुरुवार, 12 नवंबर 2020

स्कीमा पाने के लिए अपनी FRM फ़ाइल का उपयोग करना और फिर आईडीबी फ़ाइलों को दोबारा करना ..

 यह एक ऐसा विषय है जो कुल मिलाकर आपको कभी नहीं करना चाहिए ... क्यों? क्योंकि आपने बैकअप सही बनाया है ... आपने परीक्षण किया है और बैकअप का काम जानते हैं इसलिए आप बस उन बैकअप को सुरक्षित कर सकते हैं और अपना खोया हुआ स्कीमा और संबंधित डेटा प्राप्त कर सकते हैं ... 

हालाँकि उस कोने के कार्यालय में एक उदाहरण .. आपको स्थापित करने के लिए कभी नहीं मिला .. यह महत्वपूर्ण नहीं है ... बस दुर्घटनाग्रस्त हो गया है और अब आपको एहसास हुआ कि आप वास्तव में इसका उपयोग कैसे करते हैं ... 

सब कुछ खोया नहीं है ।।  

MySQL ने अपनी MySQL उपयोग सूची को थोड़ा देर बाद जारी किया और चूंकि MySQL शेल के साथ इसे और अधिक बदल दिया गया।  

mysqlfrm अभी भी बहुत आसान है, जब एक त्वरित और सरलैंड में FRM फ़ाइल से स्कीमा को बाहर निकालने की आवश्यकता होती है और यह एक साधारण इंस्टॉल है। 

mysqlfrm --diagnostic city.frm
# WARNING: Cannot generate character set or collation names without the --server option. # CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values for the columns and the resulting statement may not be syntactically correct.
# Reading .frm file for city.frm:
# The .frm file is a TABLE.
# CREATE TABLE Statement:

CREATE TABLE `city` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `Name` char(160) DEFAULT NULL,
  `CountryCode` char(12) NOT NULL,
  `District` char(80) NOT NULL,
  `Population` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`ID`),
KEY `CountryCode` (`CountryCode`),
KEY `popkey` (`Population`)
) ENGINE=InnoDB;

#...done.


इसलिए अब आपके पास जो स्कीमा है वह आप खो चुके हैं ... डीबी या टेबल का दोबारा करें। उदाहरण के लिए, मैं कहूंगा कि हमने दुनिया का डेटा डीबी से खो दिया है। 

$ cp  city.ibd  / tmp /  

$ cp city.ibd /tmp/
mysql> LOCK TABLES city WRITE;
mysql> ALTER TABLE city DISCARD TABLESPACE;

cp city.ibd /edb/local/mysql/data/rundeck/
chown tmdba:dba /edb/local/mysql/data/rundeck/city.ibd

mysql> ALTER TABLE city IMPORT TABLESPACE;
mysql> UNLOCK TABLES;
mysql> SELECT COUNT(*) FROM city;


कोई टिप्पणी नहीं:

एक टिप्पणी भेजें