ผมได้รับ PM แล้วครับ จากโจทย์ ของคุณที่ต้องการให้ HQ ทำ report ได้สะดวกขึ้น
การเอา data มาไว้ที่ local นับเป็นการแก้ปัญหาแบบหนึ่ง ถ้าคุณต้องการทำงานลักษณะนี้
การที่คุณเลือก database replication จะใช้ BW ค่อนข้างสูง และกินกำลังเครื่องด้วย
แต่ได้ข้อดีคือการที่ database ฝั่ง 2nd สามารถ read ได้ตลอดเวลา ซึ่งจริงๆ แล้ว คุณ
สามารถกำหนดเวลาที่จะ read ได้เนื่องจากการทำ report ไม่ได้เกิดขึ้นโดยไม่รู้ตัว ถูกไหมครั
การทำ database replicate ของ MS SQL ทำได้สองทางคือ
1. แบบที่คุณเลือกทำคือ 2Phase Commit ซึ่งหาก BW ต่ำจะทำให้การ commit ช้าครับ
เนื่องจากต้อง commit ให้ได้ทั้งสองด้านก่อน จึงจะตอบกลับ application ว่า commit แล้ว
2. แบบ database mirror อันนี้ก็ไม่ยาก แต่ว่ากินเครื่องครับ เพราะ mirror engine จะ
ตรวจการ insert ตลอดเวลา แล้วก็ใช้ BW ค่อนข้างมากอยู่
แต่ถ้าคุณเลือกที่จะทำ manual startup เอง ผมแนะนำการใช้ log shift ครับ ลักษณะนี้
จะคล้ายๆ oracle dataguard ในการทำงาน เพียงแต่ dataguard จะมี log ของเครื่องใคร
เครื่องมัน แต่การส่ง log shift นั้น จะทำให้ database ฝั่ง DR อยู่ในสภาพ standby
คุณต้อง stop log shift แล้วก็ startup ก่อนที่จะ read เท่านั้นเอง พอทำ report เสร็จ
คุณก็ shutdown แล้วก็ start log shift ต่อไป
ขอบคุณมากๆครับพี่ Carboy
ตอนนี้ก็รอดูก่อนครับ ถ้าผู้บริหารโอเค ก็คงเดินรูปแบบนี้ไปก่อนครับ
ส่วนที่พี่แนะนำมา คงต้องศึกษาเตรียมตัวไว้
ถ้าติดปัญหาอีก คงจะรบกวน PM ปรึกษาหน่อยนะครับ