BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: mslangu ที่ มีนาคม 31, 2011, 10:27:18 AM
-
พอดีลองนั่งดูพื้นที่เก็บข้อมูลใน server แล้วเอ๊ะใจมากหน่อย ว่าทำไมฮาร์ดดิสก์พืนที่เหลือจัง ทั้งที่เพิ่งขึ้นระบบมาประมาณปีกว่าๆเองไหงฮาร์ดิสก์เหลือน้อยลงทุกที แล้วไปดูก็พบว่ามีไฟล์ mysql-bin.0000xx ที่มีทุกวัน ไม่ทราบว่าไฟล์ตัวนี้เก็บรายละเอียดไรไว้บ้าง และถ้าผมจะลบไฟล์นี้ได้หรือเปล่าครับ หรือผมจะ config ไม่ให้มีไฟล์นี้ได้หรือเปล่า ไฟลืนี้มีประโยชน์มากหรือเปล่าครับ รบกวนหน่อยนะครับ
-
;D ;D ;D ขอดู my.cnf ครับ
-
ไฟล์ log ของ mysql copy ออกมาเก็บไว้ เพื่อใช้กู้คืนระบบ เวลามีปัญหา หรือ จะลบทิ้งก็ได้ ถ้าคิดว่าไม่ได้ใช้
-
My.cnf ครับผม
-
;D ;D ;D ฟังค์ชั่นเหล่านี้ทำให้เกิด log ตัวที่ว่าขึ้นมาน่ะครับเป็น log เกี่ยวกับ Replication
# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
# binary logging format - mixed recommended
binlog_format=mixed
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
# Replication Slave (comment out master section to use this)
#
-
ขอบคุณมากครับ แล้วผมต้องทำอย่างไรบ้างครับ เกี่ยวกับlog ตัวนี้ ถ้าไม่มีจะสงผลอย่างไรบ้างครับ
-
;D ;D ;D
ถ้าท่านมี Replication ที่ทำจาก Hosxp หมายถึง initial import & Run Agent อยู่แล้วก็ปิดฟังค์ชั่นนี้ไปเลยก็ได้ครับโดยใส่ # ไว้ข้างหน้า
เช่น #server-id = 1
แต่ถ้าทำ Replication จาก my.cnf แนะนำว่าเอาไว้อย่างนั้นล่ะครับ ;D
-
ผมยอมเสีย PC ไปหนึ่งเครื่องเพื่อทำ Replication ครับ เพื่อประกันความชัวร์ ;D
เพราะยังอ่อน เรื่อง my.cnf ;D
-
ตอนนี้ทำ riplicate run agent อยู่ครับ ถ้าผมไปปิดฟังก์ชันตัวนี้ ปิดคำสั่งบรรทัดใดบ้างครับ รบกวนหน่อยครับผม ขอบคุณทุกคำตอบครับผม
-
ขอบคุณมากครับ แล้วผมต้องทำอย่างไรบ้างครับ เกี่ยวกับlog ตัวนี้ ถ้าไม่มีจะสงผลอย่างไรบ้างครับ
สำหรับผม ผมว่ามันมีประโยชน์ในการ data recovery ตอนระบบมัน crash ครับ
ใน my.cnf
log-bin=mysql-bin
variable ตัวนี้ จะสร้างไฟล์ mysql-binxxx ขึ้นมา
และไฟล์นี้จะช่วยในการ recovery ข้อมูลกลับมาได้ ถ้า MySQL เกิด crash ขึ้นมา
ระบบจะไปดึงข้อมูลจากไฟล์ mysql-binxxx มาใช้ครับ
สำหรับที่ รพ. ใส่ไว้ครับ เพราะเห็นประโยชน์มาแล้ว ...
และอีกอย่าง ... ถึงเวลา upgrade structure ที ก็พิจารณาลบออกอีกทีครับ
ก็แล้วแต่จะพิจารณาครับว่าจะใส่หรือไม่ ;) ;)
ปล.
1. ถ้าจะลบออกหรือแ้ก้ไข my.cnf ขอให้ stop service mysql ก่อนนะครับ กรณีที่ยังต้องการให้มีการเก็บ log-bin มีสองทางเลือกครับ ...โดย
2. ถ้าต้องการลบ mysql-binxxx ออกทั้งหมดต้องลบไฟล์ mysql-bin.index ออกด้วยนะครับ เมือ start mysql ใหม่แล้วระบบจะเริ่มสร้าง mysql-binxxx ใหม่ และ พร้อมสร้างไฟล์ index ที่ชื่อ mysql-bin.index ขึ้นมาใหม่ แต่ ...
3. ถ้าต้องการลบ mysql-binxxx แต่ต้องการเก็บไฟล์อันดับท้าย ๆ ไว้ จะต้องเข้าไปแก้ไขไฟล์ mysql-bin.index ด้วยโดยให้ลบบรรทัดที่เป็นชื่อไฟล์ mysql-binxxx ที่ลบออกไปเท่านั้น
... ;) ;)
-
สำหรับ log ที่ว่านั้น จะใช้ทำระบบ replicate ให้ server 2เครื่อง ทั้ง master และ slave replicate กัน
ซึ่งระบบนี้ต้อง set ค่า ที่ my.cnf ทั้ง master และ slave และ สามารถ ให้ replicate ไปเก็บ ที่ slave ได้หลายเครื่อง ระบบนี้ จะทำให้ข้อมูล เท่ากันทั้ง master และ slave ในช่วงเวลาอันสั้น เมื่อไหร่ ที่ master มีปัญหา ด้าน hardware อย่างน้อยก็รับประกัน ได้ว่า ยัง มี ข้อมูล ใน slave ก็เชื่อถือได้ระดับหนึ่ง
ถ้าไม่ได้ทำตรงนี้ ก็ ให้ comment log-bin=mysql-bin ไว้ หรือลบออก เพราะมันจะสิ้นเปลืองพื้นที่เก็บ ข้อมูล
และอีกทางหนึ่งก็ ใช้ระบบ replicate ที่มากับ hosxp แต่ต้องใช้ client อีกเครื่องมา รัน agent เอาไว้
........ตามประสบการณ์ ที่เคยช่วยติดตั้งให้ รพ.ใกล้เคียง ผมใช้ replication โดย config ที่ my.cnf ทั้ง master และ slave ข้อมูลทั้ง 2 เครื่อง เท่ากันทุกประการ โดยไม่ต้อง เสียอีกเครื่อง รัน agent และสามารถตั้ง ให้ files log ใน master หมดอายุ นั้นก็คือ ลบ แบบ auto จะได้ไม่กวน พื่นที่จัดเก็บข้อมูล ใน master ระบบนี้เรียก master to slave replication เป็นแบบ one-way
......อีกแบบ คือ master to master replication อันนี้ ต้องมี server 2 เครื่องขึ้นไป แต่ละเครื่อง ก็ให้บริการในโซนของตัวเอง เช่น server 1 วางที่โซน ipd , server 2 วางที่โซน opd ทั้ง 2 เครื่องจะ replication กัน ทำให้ข้อมูลเท่ากัน ผมยังติดการทำเอกสารตัวนี้ครับ มา 3 ปีแล้ว ยังหาเวลาว่างอยู่
ส่วน master to slave replication ผมทำไว้แล้วอยู่ใน ที่นี่ แหล่ะครับ ลองค้นดู
....ขอบพระคุณครับ
-
ถ้าต้องการลบ mysql-binxxx แต่ต้องการเก็บไฟล์อันดับท้าย ๆ ไว้ จะต้องเข้าไปแก้ไขไฟล์ mysql-bin.index ด้วยโดยให้ลบบรรทัดที่เป็นชื่อไฟล์ mysql-binxxx ที่ลบออกไปเท่านั้น
... ;) ;)
ถ้าต้องการลบไฟล์logถึง mysql-binxxx
ให้ใช้คำสั่งใน mysql
PURGE BINARY LOGS TO 'mysql-bin.000xxx';
....สามารถตั้ง ให้ files log ใน master หมดอายุ นั้นก็คือ ลบ แบบ auto จะได้ไม่กวน พื่นที่จัดเก็บข้อมูล ใน master ......
ตอนนี้ตั้ง expire_logs_days ไว้กี่วันครับ
..... ;D
-
สำหรับ log ที่ว่านั้น จะใช้ทำระบบ replicate ให้ server 2เครื่อง ทั้ง master และ slave replicate กัน
ซึ่งระบบนี้ต้อง set ค่า ที่ my.cnf ทั้ง master และ slave และ สามารถ ให้ replicate ไปเก็บ ที่ slave ได้หลายเครื่อง ระบบนี้ จะทำให้ข้อมูล เท่ากันทั้ง master และ slave ในช่วงเวลาอันสั้น
ขอบคุณมากครับผม ความรู้เพิ่มขึ้นเยอะเลย ถามต่อครับผม my.cnf ขอ slave จะต้องเหมือนกับ master หรือเปล่าครับ หรือเราจะต้องเพิ่มคำสั่งในตัว slave ครับ และคำสั่งในการสั่งลบ auto เราจะต้องเพิ่มทั้งสองฝั่งหรือเปล่าครับ ไม่ทราบว่าใช้คำสั่งอย่างไรครับ เมื่อคอนฟิกจาก my.cnf แบบนี้แล้วเราไม่จำเป็นต้องไปรัน agentจากตัว hosxp ใช่หรือเปล่าครับ ข้อมูลจะไหลไป slave โดยอัตโนมัติใช่หรือเปล่าครับ ขอบคุณมากครับ