MySQL 8.0 : क्लोन सुविधा का प्रयोग करें2023/09/14 |
MySQL बैकअप लेने के लिए क्लोन फ़ीचर का उपयोग करें जिसे MySQL 8.0.17 पर लागू किया गया है।
|
|
[1] | क्लोन सुविधा डिफ़ॉल्ट रूप से सक्षम नहीं है, इसलिए इसे सक्षम करें। |
root@dlp:~#
mysqld --version /usr/sbin/mysqld Ver 8.0.30-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
root@dlp:~#
vi /etc/mysql/mysql.conf.d/mysqld.cnf # [mysqld] अनुभाग में जोड़ें [mysqld] ..... .....
plugin-load=mysql_clone.so
# पंक्ति 32 : यदि अन्य होस्ट से क्लोनिंग हो रही है, तो बाइंड एड्रेस बदलें
bind-address = 0.0.0.0
mysqlx-bind-address = 127.0.0.1
root@dlp:~#
systemctl restart mysql
# प्लगइन्स दिखाएं root@dlp:~# mysql -e "select plugin_name, plugin_status, plugin_type from information_schema.plugins where plugin_name = 'clone';" Enter password: +-------------+---------------+-------------+ | plugin_name | plugin_status | plugin_type | +-------------+---------------+-------------+ | clone | ACTIVE | CLONE | +-------------+---------------+-------------+ |
[2] | लोकलहोस्ट पर एक निर्देशिका में क्लोन प्राप्त करें। |
# क्लोन डेटा के लिए एक निर्देशिका बनाएं root@dlp:~# mkdir /home/mysql_backup root@dlp:~# chown mysql. /home/mysql_backup # क्लोनिंग के लिए लक्ष्य निर्देशिका में लिखना AppArmor द्वारा अस्वीकार कर दिया गया है, इसलिए चलने से पहले इसे अनुमति दें root@dlp:~# vi /etc/apparmor.d/usr.sbin.mysqld # mysqld को लिखने की अनुमति देने के लिए लक्ष्य निर्देशिका जोड़ें
/usr/sbin/mysqld {
.....
.....
/home/mysql_backup/ r,
/home/mysql_backup/** rwk,
}
root@dlp:~#
systemctl restart apparmor
# क्लोन प्राप्त करके चलाएँ # यदि निर्दिष्ट निर्देशिका फ़ाइल सिस्टम पर पहले से मौजूद है, तो यह त्रुटि होगी, # इसलिए [directory = ***] अनुभाग के लिए नई निर्देशिका निर्दिष्ट करें root@dlp:~# mysql -e "clone local data directory = '/home/mysql_backup/backup01/';"
ll /home/mysql_backup/backup01 total 70692 drwxr-x--- 2 mysql mysql 4096 Sep 28 03:54 '#clone'/ drwxr-x--- 2 mysql mysql 4096 Sep 28 03:54 '#innodb_redo'/ drwxr-x--- 7 mysql mysql 4096 Sep 28 03:54 ./ drwxr-xr-x 3 mysql mysql 4096 Sep 28 03:54 ../ -rw-r----- 1 mysql mysql 4414 Sep 28 03:54 ib_buffer_pool -rw-r----- 1 mysql mysql 12582912 Sep 28 03:54 ibdata1 drwxr-x--- 2 mysql mysql 4096 Sep 28 03:54 mysql/ -rw-r----- 1 mysql mysql 26214400 Sep 28 03:54 mysql.ibd drwxr-x--- 2 mysql mysql 4096 Sep 28 03:54 sys/ drwxr-x--- 2 mysql mysql 4096 Sep 28 03:54 test_database/ -rw-r----- 1 mysql mysql 16777216 Sep 28 03:54 undo_001 -rw-r----- 1 mysql mysql 16777216 Sep 28 03:54 undo_002 |
[3] | [CLONE INSTANCE FROM] का उपयोग करने के लिए, किसी दूरस्थ होस्ट से सीधे क्लोन प्राप्त करना संभव है। आधिकारिक दस्तावेज़ों पर, क्लोन स्रोत को [Donor] कहा जाता है और क्लोन लक्ष्य को [Recipient] कहा जाता है। |
# डोनर होस्ट पर, एक उपयोगकर्ता बनाएं और क्लोन के लिए [BACKUP_ADMIN] विशेषाधिकार जोड़ें root@dlp:~# mysql mysql> create user 'clone_user'@'%' identified by 'password'; Query OK, 0 rows affected (0.09 sec) mysql> grant BACKUP_ADMIN on *.* to 'clone_user'@'%'; Query OK, 0 rows affected (0.10 sec) # प्राप्तकर्ता होस्ट पर, एक उपयोगकर्ता बनाएं और क्लोन के लिए [CLONE_ADMIN] विशेषाधिकार जोड़ें root@node01:~# mysql mysql> create user 'clone_user'@'%' identified by 'password'; Query OK, 0 rows affected (0.11 sec) mysql> grant CLONE_ADMIN on *.* to 'clone_user'@'%'; Query OK, 0 rows affected (0.04 sec) # प्राप्तकर्ता होस्ट पर, क्लोन कार्य चलाएँ # क्लोन से पहले, [set global clone_valid_donor_list = (Donor IP address:port)] सेट करें # क्लोन डेटा को [/var/lib/mysql] के अंतर्गत कॉपी किया गया है mysql> set global clone_valid_donor_list = '10.0.0.30:3306'; Query OK, 0 rows affected (0.00 sec) mysql> clone instance from clone_user@10.0.0.30:3306 identified by 'password'; Query OK, 0 rows affected (0.45 sec) # क्लोन स्थिति की पुष्टि करें # ठीक है यदि [STATE] [Completed] है mysql> select STATE from performance_schema.clone_status; +-----------+ | STATE | +-----------+ | Completed | +-----------+ 1 row in set (0.00 sec) # यदि क्लोन लक्ष्य निर्देशिका निर्दिष्ट करें, तो [data directory = '***'] जोड़ें # लेकिन फिर इसे लक्ष्य निर्देशिका जैसे [2], [3] के लिए उपयुक्त अनुमति सेट करने की आवश्यकता है mysql> clone instance from clone_user@10.0.0.30:3306 identified by 'password' data directory = '/home/mysql_backup/backup01/'; |
Sponsored Link |
|