วิธีเปิด mysql 2 instance ในเครื่องเดียวกัน by

31
Oct
0

ปกติคงไม่ค่อยมีใครคิดจะเปิด mysql 2 instance เท่าไหร่ แต่พอดีว่าผมมีเคสที่ต้องใช้นั่นก็คืออยากจะเปิดฐานข้อมูลที่ backup ไว้ (ซึ่งเก็บไว้ในเครื่องเดียวกัน) ด้วย Percona XtraBackup ขึ้นมาเพื่อดึงเอาข้อมูลเก่าแค่บางส่วนที่ทำพลาดไปมาใช้ ซึ่งก่อนหน้านี้ได้ทำการ tar gzip ก้อน backup db ขนาด 60GB ไปลงเครื่องอื่นเพื่อรัน แต่ก็ส่งข้อมูลข้ามเครื่องได้ช้าเหลือเกิน กว่าจะ untar เสร็จ ไรเสร็จล่อไป 1-2 ชม. เสียเวลาอย่างยิ่งยวด แต่เนื่องจากผมจำได้ว่าเคยอ่านเจอในเว็บ percona ว่าก้อนที่ backup ออกมามันก็คือ datadir ของ mysql เฉยๆ นี่แหละ ฉะนั้นในทางทฤษฏีแล้วในเมื่อมันก็คือตัวข้อมูลของฐานข้อมูลโดยตรง งั้นสิ่งที่ต้องทำก็น่าจะแค่รัน mysql อีก instance แต่ชี้ไปที่ข้อมูลไปที่ข้อมูลที่เรา backup ไว้ให้ได้เป็นอันจบ มาลองกันเลยดีกว่า

  1. mkdir /var/lib/mysql2/ ขึ้นมา หรืออาจ copy จาก db ปัจจุบันก็ได้ (ถ้าจะ copy ต้องปิด mysql ก่อน copy) หรือถ้าจะรันจาก backup ตรงๆ อย่างผมก็ไม่ต้องทำอะไร
  2. chown -R mysql:mysql /path/to/ข้อ 1
  3. copy my.cnf ที่ใช้รัน ตั้งชื่อใหม่เป็น my2.cnf (หรือถ้า debian ก็ทั้ง /etc/mysql เป็น /etc/mysql2)
  4. edit my2.cnf ที่ copy มาดังนี้
    - port – แก้ 3306 เป็น 3307 (หรืออื่นๆ ที่ไม่ได้ใช้งาน)
    - datadir – path ที่เราสร้างในข้อ 1
    - socket – เปลี่ยนชื่อ mysql.sock เป็น mysql2.sock
    - innodb_data_home_dir - path ที่เราสร้างในข้อ 1
    -  innodb_log_group_home_dir – path ที่เราสร้างในข้อ 1
    -  innodb_buffer_pool_size – อันนี้จริงๆ ไม่ต้องแก้ก็ได้ แต่ถ้าเครื่อง ram น้อย แล้วไฟล์ my.cnf ต้นฉบับตั้งค่าไว้เยอะก็ลดลงไปหน่อยไม่ให้ล้น ram ที่มี
  5. mysql_install_db –user=mysql –datadir=/path/to/ข้อ 1
  6. mysqld_safe –defaults-file=/path/to/my2.cnf &
  7. mysql -S /path/to/mysql2.sock -uroot -p
    เพื่อทดสอบการเชื่อมต่อ ถ้า login ได้แสดงว่าทำสำเร็จ แล้วใน config phpmyadmin (config.inc.php) ก็อาจไปเพิ่มบรรทัดนี้
    $cfg['Servers'][$i]['port'] = ’3307′;
    ก็จะเข้าไปดูข้อมูลหรือ export ข้อมูลแบบใช้ GUI ได้ตามสะดวกโยธิน
  8. mysqladmin -S /path/to/mysqld2.sock shutdown เพื่อปิด instance เวลาเลิกใช้งาน

เปิด mysql ได้สอง Instance แล้วเรียบร้อย จะ copy ข้อมูลข้ามกันไปมายังไงก็ได้แล้ว ง่ายแค่นี้เอง :)

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน