15
ตั วอย่าง

4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

ตวัอยา่ง

Page 2: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014

จัดพิมพ์และจัดจ�าหน่าย โดย พงษ์พันธ์ ศิวิลัย

ราคา 125 บาท

ISBN : 978-616-374-092-2

สงวนลิขสิทธิ์ตาม พ.ร.บ. ลิขสิทธิ์ © พ.ศ. 2557 โดย พงษ์พันธ์ ศิวิลัย

ห้ามคัดลอก ลอกเลียน ดัดแปลง ท�าซ�้า จัดพิมพ์ หรือกระท�าอื่นใด โดยวิธีการใดๆ ในรูปแบบใด ๆ

ไม่ว่าส่วนหนึ่งส่วนใดของหนังสือเล่มนี้ เพื่อเผยแพร่ในสื่อทุกประเภท หรือ เพื่อวัตถุประสงค์ใด ๆ

นอกจากจะได้รับอนุญาตจากเจ้าของลิขสิทธิ์เป็นลายลักษณ์อักษร

** กรณีที่มีค�าถามหรือต้องการติดต่อผู้เขียน สามารถติดต่อได้ที่ https://www.facebook.com/pongpunsvl

ตวัอยา่ง

Page 3: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

เกี่ยวกับผู้เขียน

ประวัติการท�างาน• ผู้เขียนหนังสือ “SQL Server 2012 ฉบับสมบูรณ์ “

• ผู้เขียนหนังสือ “SQL Server 2008 ฉบับสมบูรณ์ “

• ผู้เขียนหนังสือ “ ถาม – ตอบปัญหา SQL Server 2005 “

• ผู้เขียนหนังสือ “ สร้างรายงานอย่างมืออาชีพด้วย Crystal Reports 2008 ฉบับสมบูรณ์ “

• ผู้เขียนหนังสือ “ SQL Server 2005 ฉบับสมบูรณ์ “

• ผู้เขียนหนังสือ “ เริ่มต้นสร้างรายงานด้วย Crystal Reports Version 11 ”

• ท�า Database Performance Tuning ฐานข้อมูลของระบบงานโรงพยาลล�าปาง

• แก้ปัญหาฐานข้อมูลระบบงานโรงพยาบาลอุตรดิตถ์เสียหายและท�า Database Performance Tuning

• ท�า Database Performance Tuning ให้กับ บริษัท Center Auto Lease จ�ากัด

• ท�า Database Performance Tuning และแก้ปัญหาให้กับระบบงานธนาณัติออนไลน์ บ.ไปรษณีย์ไทย จ�ากัด

• ที่ปรึกษาการท�า Database Migration ของ ธนาคาร Sumitomo Mitsui สาขากรุงเทพ ฯ

• ออกแบบและพัฒนาระบบงานศูนย์ข้อมูลการคลัง กรุงเทพมหานคร

• ผู้บริหารโครงการ “ Postal Operation Management Information System ” บ. ไปรษณีย์ไทย จ�ากัด

• ผู้บริหารโครงการ “ EMS Pick Up Service ” ของ บริษัท ไปรษณีย์ไทย จ�ากัด

• ฯลฯ

Certification Microsoft : MCT , MCITP , MCTS , MCSE , MCDBA , MCSA

ORACLE : OCP , OCA

SUN : SCJP

พงษ์พันธ์ ศิวิลัยวศบ. Computer Engineering

สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง

ตวัอยา่ง

Page 4: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

สารบัญ

มีความสามารถอะไรใหม่ใน SQL Server 2014 ? 5

ความส�าคัญของการ Backup ฐานข้อมูล 5

การ Backup ฐานข้อมูลใน SQL Server 2014 6

Recovery Model ใน SQL Server 2014 8

ประเภทของการ Backup ฐานข้อมูล 10

ท�าความรู้จักกับ Backup Device 12

การ Backup ฐานข้อมูล 16

การบีบอัดข้อมูลจากการ Backup ( Backup Compression ) 30

การเข้ารหัสข้อมูล Backup ( Encrypt Backup ) 34

กลยุทธ์ในการ Backup ฐานข้อมูล ( Backup Strategy ) 36

Copy – only Backup 39

การน�ากลยุทธ์ในการ Backup ไปใช้งาน ( Implementing Backup Strategy ) 41

ตัวอย่างการน�ากลยุทธ์ในการ Backup ไปใช้งาน 43

ท�าความรู้จักกับ Maintenance Plan 59ตวัอยา่ง

Page 5: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

มีความสามารถอะไรใหม่ใน SQL Server 2014 ?• SQL Server Backup to URL

เราสามารถเลือก Backup ฐานข้อมูลไปยัง Windows Azure Blob Storage Service ได้ โดยใช้ผ่าน

Transact – SQL , Management Studio หรือ Maintenance Plan wizard ก็ได้ การจะใช้ความสามารถ

ในส่วนนี้ได้ จ�าเป็นจะต้องสร้าง SQL Credential และต้องมี Azure Storage Container

• SQL Server Managed Backup to Windows Azure

นอกจากเราจะสามารถ Backup ฐานข้อมูลไปเก็บไว้ที่ Windows Azure ได้แล้ว เรายังสามารถบริหาร

จัดการข้อมูลจากการ Backup ของเราใน Windows Azure ได้อีกด้วย ทั้งนี้ เราอาจจะก�าหนด Backup

Strategy โดยตั้ง Schedule การ Backup ในรูปแบบต่าง ๆ เพื่อตอบสนองความต้องการของเราได้ ความ

สามารถนี้มีข้อดีตรงที่ ข้อมูลจากการ Backup อยู่ใน Cloud โอกาสที่ข้อมูลจะสูญหายจึงมีน้อยมาก

• Encryption for Backup

SQL Server เวอร์ชันที่ผ่านมา แม้จะสามารถเลือก Encryption Backup ได้ แต่เราไม่สามารถเลือกอัลกอ

ริทึมและตัวที่ใช้เข้ารหัสได้ ใน SQL Server 2014 เราสามารถเลือกใช้อัลกอริทึม AES 128 , AES 196 ,

AES 256 , Triple DES และเลือกใช้ Certificate หรือ Asymmetric Key เพื่อใช้ในการเข้ารหัสได้ กล่าว

คือ SQL Server 2014 เปิดโอกาสให้เราเลือกใช้อัลกอริทึมและสิ่งที่ใช้เข้ารหัสได้ตามต้องการ นั่นเอง

ความส�าคัญของการ Backup ฐานข้อมูล การ Backup ฐานข้อมูลถือว่าเป็นเรื่องที่ส�าคัญมากในการท�างานกับฐานข้อมูล เนื่องจากมีความเป็นไปได้ที่

อาจจะเกิดเหตุการณ์ที่ไม่คาดคิด ท�าให้ฐานข้อมูลของเราเกิดความเสียหายในกรณีต่าง ๆ เช่น ฐานข้อมูลเกิด

Corrupt จากฮาร์ดดิสต์มี Bad Sector เกิดขึ้น , ข้อมูลถูกลบโดยไม่ได้ตั้งใจ ( Human Error ) , ฐานข้อมูลระบบ

( System Database ) เกิดความเสียหาย , เครื่อง Server เกิดความเสียหาย รวมถึงความผิดพลาดที่เกิดจากระบบ

ปฏิบัติการ Windows ท�าให้ไม่สามารถใช้งานฐานข้อมูลได้ เป็นต้น

รู้ลึก รู้จริง

Backup ฐานข้อมูล SQL Server 2014

ตวัอยา่ง

Page 6: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 20146

การ Backup ฐานข้อมูลเป็นการส�ารองข้อมูลในฐานข้อมูลเก็บเอาไว้ใช้ในการกู้คืนข้อมูล ในกรณีที่เกิดปัญหา

กับฐานข้อมูลในกรณีต่าง ๆ เพื่อให้สามารถกลับมาใช้งานฐานข้อมูลได้ดังเดิม แน่นอนว่าเป็นหน้าที่ของ DBA ที่ต้อง

เข้ามาจัดการในเรื่องนี้ ดังนั้น DBA จึงควรทราบและเข้าใจการ Backup ฐานข้อมูล เพื่อให้สามารถก�าหนดกลยุทธ์

ในการ Backup ฐานข้อมูลที่เหมาะสมและมีประสิทธิภาพสูงสุดต่อไป

การ Backup ฐานข้อมูลใน SQL Server 2014 ในการ Backup ฐานข้อมูลนั้น อย่างที่เราทราบกันว่าใน SQL Server 2014 ประกอบด้วย ฐานข้อมูล

2 ประเภท คือ

• ฐานข้อมูลระบบ ( System Database )

• ฐานข้อมูลที่เราสร้างขึ้นเองเพื่อใช้งาน ( User Database )

ฐานข้อมูลทั้ง 2 ประเภทมีความส�าคัญไม่น้อยไปกว่ากัน ซึ่งเราก็จ�าเป็นต้อง Backup ฐานข้อมูลทั้ง 2 ประเภท

นี้ด้วย

การ Backup ฐานข้อมูลระบบ ( System Database )

รายละเอียดเกี่ยวกับ Backup ฐานข้อมูลระบบ ( System Database ) ใน SQL Server 2014 ประกอบ

ด้วย

• ฐานข้อมูล master

เป็นฐานข้อมูลที่ส�าคัญที่สุดใน SQL Server 2014 หากฐานข้อมูล master เกิดความเสียหาย จะท�าให้

SQL Server 2014 ไม่สามารถท�างานได้ เนื่องจากฐานข้อมูลนี้ใช้ในการเก็บข้อมูลของระบบของ SQL

Server 2014 ทั้งหมด ดังนั้นเราจึงจ�าเป็นต้อง Backup ฐานข้อมูล master อย่างน้อยวันละครั้ง

• ฐานข้อมูล msdb

เป็นฐานข้อมูลที่ท�างานเกี่ยวข้องกับ SQL Server Agent ออบเจ็คใน SQL Server Agent นั้น ล้วนแต่

เก็บอยู่ในฐานข้อมูล msdb ทั้งสิ้น ดังนั้นจึงกล่าวได้ว่า ฐานข้อมูล msdb เป็นฐานข้อมูลที่มีความส�าคัญ

ไม่ด้อยไปกว่าฐานข้อมูล master เลย เราจึงจ�าเป็นต้อง Backup ฐานข้อมูล msdb อย่างน้อยวันละ

ครั้งด้วย

• ฐานข้อมูล model

เป็นฐานข้อมูลที่ใช้เป็นต้นแบบ ( Template ) ให้กับฐานข้อมูลที่เราสร้างขึ้นเพื่อใช้งาน ( User

Database ) ซึ่งเราไม่จ�าเป็นต้อง Backup บ่อยก็ได้ เนื่องจากเป็นฐานข้อมูลที่ไม่ค่อยมีการเปลี่ยนแปลง

ข้อมูลในฐานข้อมูล เราเพียง Backup ฐานข้อมูลนี้เฉพาะหลังจากที่เราท�าการคุณสมบัติของฐานข้อมูล

นี้ก็เพียงพอแล้ว หากในการท�างานของเราไม่เคยมีการแก้ไขคุณสมบัติของฐานข้อมูล model เลย

เราไม่ต้อง Backup ฐานข้อมูลนี้เลยก็ได้

ตวัอยา่ง

Page 7: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014 7

• ฐานข้อมูล distribution

ฐานข้อมูลนี้จะมีเฉพาะใน Server ที่ถูก�าหนดเป็น Replication Distributor เท่านั้น ฐานข้อมูลนี้ใช้ใน

การเก็บข้อมูล metadata และข้อมูลประวัติของการท�าReplicationทุกประเภท ส�าหรับ Replication

แบบ Transactional จะเก็บข้อมูลของ Transaction ในฐานข้อมูลนี้ด้วย ฐานข้อมูลนี้เราก็จ�าเป็นต้อง

Backup ด้วย ส่วนความถี่ในการ Backup นั้นขึ้นอยู่กับลักษณะงาน

• ฐานข้อมูล tempdb

เป็นฐานข้อมูลที่ใช้เก็บข้อมูลประเภท Temporary หรือใช้ในการจัดเรียงข้อมูลในค�าสั่ง ORDER BY ใน

SQL ซึ่งฐานข้อมูลนี้จะถูกสร้างใหม่ทุกครั้งที่เซอร์วิส SQL Server เริ่มต้นท�างาน และข้อมูลในฐาน

ข้อมูลจะถูกเคลียร์ทิ้งอัตโนมัติทันทีที่ตัดการเชื่อมต่อกับฐานข้อมูล ( Disconnect ) ดังนั้นเราจึงไม่

จ�าเป็นต้อง Backup ฐานข้อมูลนี้

การ Backup ฐานข้อมูลที่เราสร้างขึ้นเพื่อใช้งาน ( User Database )

เป็นฐานข้อมูลที่เราสร้างขึ้นมาเพื่อใช้ในการเก็บข้อมูลในการท�างานของเรา แน่นอนว่าเราจะต้องท�าการ

Backup ฐานข้อมูลเก็บไว้ เพื่อใช้กู้คืนข้อมูลกลับคืนมา หากเกิดความผิดพลาดในกรณีต่าง ๆ ขึ้น ส�าหรับ

ความถี่ในการ Backup นั้น ขึ้นอยู่กับลักษณะงานของฐานข้อมูลเป็นหลัก การพิจารณาว่าควร Backup

ฐานข้อมูลบ่อยเพียงใดนั้น พิจารณาจากปัจจัย ดังนี้

• เรายอมรับ Data Loss ไม่มากแค่ไหน เนื่องจากเราสามารถกู้คืนข้อมูลกลับมาได้ถึง ณ จุดที่เราBackup

เท่านั้น เช่น หากเรา Backup ครั้งสุดท้ายเมื่อเวลา 12.00 น. แล้วเกิดความผิดพลาดขึ้น เวลา 13.45 น.

เราจะสามารถกู้ข้อมูลคืนมาได้ถึง 12.00 น. ส�าหรับข้อมูลที่เกิดหลังจาก 12.00 น. จะเป็น Data Loss

เราต้องคีย์เข้าไปใหม่ เป็นต้น

• จ�านวน Transactions ที่เข้ามาท�างานกับฐานข้อมูลมีจ�านวนมาก – น้อยเพียงใด หากไม่ค่อยมี

Transactions เข้ามาท�างานกับฐานข้อมูลมากนัก เราก็ไม่จ�าเป็นต้อง Backup บ่อยก็ได้

• ลักษณะการใช้งานฐานข้อมูล ฐานข้อมูลที่ใช้ในงาน OLTP ( Online Transaction Processing ) ที่มี

การเปลี่ยนแปลงข้อมูลในฐานข้อมูลตลอดเวลา ย่อมต้องมีการ Backup บ่อยครั้งกว่า ฐานข้อมูลที่ใช้ใน

งานลักษณะ Read – only ที่นาน ๆ Backup ครั้งหนึ่งก็ได้

• ประเภทของการ Backup ฐานข้อมูลกับขนาดของฐานข้อมูล ใน SQL Server 2014 มีประเภทของการ

Backup 3 ประเภท แต่ละประเภทมีลักษณะเฉพาะตัวที่แตกต่างกัน ทั้งนี้ขนาดของฐานข้อมูลก็มีผล

ด้วย หากฐานข้อมูลขนาดใหญ่ การ Backup แบบ Full Database Backup ทุก ๆ ชั่วโมงคงไม่ดีแน่

เนื่องจากการBackupฐานข้อมูลจ�าเป็นต้องใช้ทรัพยากรระบบของServer ซึ่งFull Database Backup

เป็นการ Backup ประเภทที่ใช้เวลาในการ Backup มากที่สุด ระยะเวลาที่ใช้นั้นขึ้นอยู่กับขนาดของ

ฐานข้อมูลด้วย ซึ่งเราจะต้อง Backup ฐานข้อมูลโดยกระทบกับประสิทธิภาพโดยรวมของระบบให้น้อย

ที่สุด

ตวัอยา่ง

Page 8: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 20148

Recovery Model ใน SQL Server 2014 ก่อนที่จะท�าการ Backup ฐานข้อมูล เราจะต้องท�าความเข้าใจเรื่อง Recovery Model ของฐานข้อมูลใน

SQL Server 2014 เสียก่อน เนื่องจาก Recovery Model แต่ละชนิดมีผลกับประเภทของการ Backup ฐานข้อมูล

เช่น Simple Recovery Model ไม่สามารถ Backup แบบ Transaction Log Backup ได้ เป็นต้น Recovery

Model แต่ละชนิดมีคุณสมบัติที่แตกต่างกัน ซึ่งเราจ�าเป็นจะต้องก�าหนด Recovery Model ที่เหมาะสมให้กับ

ฐานข้อมูลของเรา เพื่อให้ฐานข้อมูลของเราท�างานได้อย่างมีประสิทธิภาพสูงสุด ใน SQL Server 2014 ประกอบ

ด้วย Recovery Model 3 ชนิด มีรายละเอียด ดังนี้

• Full Recovery Model

เป็น Model ที่บันทึกการเปลี่ยนแปลงของข้อมูลในฐานข้อมูลทุกอย่างในไฟล์ Transaction Log รวมถึง

ข้อมูลการท�า Bulk Operations เช่น SELECT INTO , การ Import ข้อมูล , WRITE TEXT , UPDATE

TEXT เป็นต้น และข้อมูลในการสร้าง Index กล่าวคือ การท�างานทุกอย่างที่ท�าให้ข้อมูลในฐานข้อมูล

เปลี่ยนแปลงจะถูกเก็บในไฟล์ Transaction Log ทั้งหมด

จากคุณสมบัติของ Full Recovery Model ท�าให้เราสามารถ Recover ฐานข้อมูลแบบระบุช่วงเวลาได้

( Point in time ) ซึ่งมักจะใช้ในการกู้ข้อมูลจากความผิดพลาดในกรณี Human Error เช่น ผู้ใช้งานเกิดลบ

ตารางข้อมูลพนักงานโดยไม่ตั้งใจ แล้วต้องการกู้ข้อมูลตารางข้อมูลพนักงานกลับมา เป็นต้น นอกจากกรณี

Human Error แล้ว เราสามารถประยุกต์ใช้ในการ Recover ฐานข้อมูลแบบระบุช่วงเวลากับกรณีอื่น ๆ ได้

อีก

Full Recovery Model สามารถ Recover ฐานข้อมูลแบบระบุช่วงเวลาได้ เนื่องจากทุก ๆ การท�างานที่

ท�าให้ข้อมูลในฐานข้อมูลเกิดความเปลี่ยนแปลงจะถูกบันทึกลงในไฟล์ Transaction Log ทั้งหมด ท�าให้

ไฟล์ Transaction Log ของฐานข้อมูลที่เป็น Full Recovery Model มีขนาดใหญ่ หากมีการ Import

ข้อมูลลงในฐานข้อมูลด้วยแล้ว จะยิ่งท�าให้ไฟล์ Transaction Log มีขนาดเพิ่มขึ้นอย่างรวดเร็ว ดังนั้นใน

การใช้งาน Full Recovery Model นั้น DBA จะต้องท�าการลดขนาดของไฟล์ Transaction Log หลังจาก

การ Backup ด้วย

การเลือกใช้งาน Full Recovery Model มักจะใช้งานกับฐานข้อมูลที่มีการท�างานกับ Transaction

ประเภท Bulk Operations รวมอยู่กับการท�างานทั่ว ๆ ไป ด้วย หากฐานข้อมูลของเราไม่มีการท�างาน

ประเภท Bulk Operations เลย เราควรจะใช้ Bulk – Logged Recovery Model

นอกจากนี้ ในบางงานก็จ�าเป็นต้องก�าหนดให้ฐานข้อมูลมี Recovery Model เป็น Full ด้วย เช่น การท�า

Database Mirroring เป็นต้น

ตวัอยา่ง

Page 9: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014 9

• Bulk – Logged Recovery Model

มีคุณสมบัติคล้ายกันกับ Full Recovery Model แต่มีข้อแตกต่างกันที่ Bulk–Logged Recovery Model

จะใช้พื้นที่ในไฟล์ Transaction Log น้อยกว่า ในการเก็บข้อมูลการท�างานประเภท Bulk Operations จะ

เก็บเพียงค�าสั่งในการท�างานเท่านั้น จะไม่เก็บข้อมูลที่เกิดความเปลี่ยนแปลงในฐานข้อมูลลงในไฟล์

Transaction Log แต่ว่าการท�างานที่ไม่ใช่ Bulk Operations จะบันทึกข้อมูลการท�างานเก็บในไฟล์

Transaction Log เหมือนกับ Full Recovery Model ทุกประการ

จากคุณสมบัติของ Bulk – Logged Recovery Model ท�าให้เราไม่สามารถ Recover ฐานข้อมูลแบบระบุ

ช่วงเวลาได้ เราจะสามารถ Recover ได้เพียงจุดสุดท้ายของ Transaction Log Backup เท่านั้น การใช้

Bulk – Logged Recovery Model กับฐานข้อมูลที่มีการท�างาน Bulk Operations มีความเสี่ยงที่จะเกิด

Data Loss ได้สูง ดังนั้น เราควรใช้ Full Recovery Model แทน เพื่อป้องกันความเสี่ยงดังกล่าว แต่ทว่า

หากฐานข้อมูลของเราไม่มีการท�างานประเภท Bulk Operations เลย ก็สามารถใช้ Bulk – Logged

Recovery Model ได้

• Simple Recovery Model

เป็น Model ที่ใช้ในงานที่อยู่ระหว่างทดสอบการใช้งาน มักจะไม่ใช้กับฐานข้อมูลที่ใช้ปฏิบัติงานจริง

เนื่องจาก Simple Recovery Model เหมาะส�าหรับฐานข้อมูลขนาดเล็กและมีข้อมูลเปลี่ยนแปลงไม่มาก

นัก ซึ่งมีรูปแบบการท�างาน คือ จะท�าการ Truncate ( ลดขนาด ) ไฟล์ Transaction Log ทันทีหลังจาก

การ Backup ฐานข้อมูล และ Simple Recovery Model จะบันทึกข้อมูลการท�างานลงในไฟล์

Transaction Log เฉพาะข้อมูลที่จ�าเป็นส�าหรับท�าให้ Database Consistency หลังจาก System Crash

หรือหลังจากการ Restore ข้อมูล กล่าวคือ จะบันทึกข้อมูลลงไฟล์ Transaction Log ให้น้อยที่สุดเท่าที่จะ

ท�าท�าได้ โดยจะบันทึกเฉพาะข้อมูลที่เกี่ยวข้องกับความถูกต้องของฐานข้อมูลเท่านั้น จึงท�าให้ Simple

Recovery Model ใช้พื้นที่ของไฟล์ Transaction Log น้อยมาก ยังผลให้เราไม่สามารถ Backup แบบ

Transaction Log Backup ได้

ในการปฏิบัติงานจริงมักจะไม่ใช้งาน Simple Recovery Model มักจะใช้ในขั้นตอนของการทดสอบการ

ใช้งานเท่านั้น

การปรับเปลี่ยน Recovery Model ของฐานข้อมูล

เราสามารถเปลี่ยน Recovery Model ของฐานข้อมูลให้เป็น Recovery Model ชนิดที่เราต้องการได้ 2 วิธี

ดังนี้

• ก�าหนดคุณสมบัติฐานข้อมูลในส่วนของ Options

ในหน้าจอก�าหนดคุณสมบัติฐานข้อมูลส่วน Options เราสามารถก�าหนด Recovery Model ชนิดที่เรา

ต้องการให้กับฐานข้อมูลได้ โดยก�าหนดในส่วนของ Recovery Model ดังรูป

ตวัอยา่ง

Page 10: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 201410

รูปที่ 1 แสดงการก�าหนด Recovery Model

• ใช้ค�าสั่ง Transact – SQL

การเปลี่ยน Recovery Model ของฐานข้อมูลใช้ค�าสั่ง ALTER DATABASE มีรูปแบบค�าสั่ง ดังนี้

ALTER DATABASE database_name

SET RECOVERY { FULL | SIMPLE | BULK_LOGGED }

ตัวอย่าง การเปลี่ยน Recovery Model ของฐานข้อมูล AdventureWorks2014 เป็น Full Recovery

Model

ALTER DATABASE AdventureWorks

SET RECOVERY FULL

ประเภทของการ Backup ฐานข้อมูล หลังจากที่เราทราบถึงคุณสมบัติของ Recovery Model แต่ละชนิด ซึ่งสัมพันธ์กับประเภทของการ Backup

ฐานข้อมูล ใน SQL Server 2014 ประกอบด้วยประเภทของการ Backup ฐานข้อมูล 4 ประเภท แต่ละประเภทมี

รายละเอียด ดังนี้

• Full Database Backup หรือที่มักจะเรียกกันว่า Full Backup

หรือเรียกว่า Full Database Backup เป็นการ Backup ที่จะท�าการ Backup ข้อมูลทั้งหมดในฐานข้อมูล

รวมถึงออบเจ็คต่าง ๆ ในฐานข้อมูลและข้อมูลในไฟล์ Transaction Log ด้วย เพื่อใช้ในการกู้คืนฐานข้อมูล

ได้ ลักษณะเด่นของ Full Backup คือ สามารถกู้คืนฐานข้อมูลได้แม้ว่าฐานข้อมูลจะเสียหายจนใช้งานไม่ได้

อีกแล้ว ให้กลับมาใช้งานได้อีกครั้ง ทั้งนี้เนื่องมาจาก Full Backup นั้นได้ท�าการ Backup ทุกสิ่งทุกอย่างใน

ตวัอยา่ง

Page 11: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014 11

ฐานข้อมูลเก็บไว้นั่นเอง จึงท�าให้ Full Backup มีความส�าคัญที่สุดในประเภทของการ Backup ฐานข้อมูล

แต่ทว่า Full Backup เป็นการ Backup ที่ใช้เวลานานที่สุด

• Differential Backup

เป็นการ Backup ข้อมูลในฐานข้อมูลโดยอ้างอิงกับการ Backup แบบ Full Backup ครั้งสุดท้าย โดยจะ

Backup เฉพาะข้อมูลที่เปลี่ยนแปลงหลังจากการ Backup แบบ Full Backup เท่านั้น กล่าวคือ Backup

เฉพาะข้อมูลที่เปลี่ยนแปลง ซึ่งมีข้อดี คือ ประหยัดเวลาในการ Backup และไม่กระทบกับประสิทธิภาพ

โดยรวมของระบบมากนัก จากที่ Differential Backup ต้องอ้างอิงกับ Full Backup ครั้งสุดท้าย จึงท�าให้

ก่อนที่จะ Backup แบบ Differential Backup ได้นั้น เราจะต้องท�าการ Backup แบบ Full Backup

เสียก่อน เช่น ก�าหนดให้ท�าการ Backup แบบ Full Backup กับฐานข้อมูล เวลา 24.00 น. ของทุกวัน และ

ทุก ๆ 4 ชั่วโมงให้ Backup แบบ Differential Backup เป็นต้น

จากคุณสมบัติที่ Backup เฉพาะข้อมูลที่เปลี่ยนแปลงจาก Full Backup ครั้งล่าสุด หากเรามีการท�า

Differential Backup หลาย ๆ ครั้ง และฐานข้อมูลของเรามีข้อมูลที่เปลี่ยนแปลงจ�านวนมาก จะเป็นผล

ให้การ Backup แต่ละครั้งจะใช้เวลานานมากขึ้น อีกทั้งข้อมูลจากการ Backup จะเพิ่มมากขึ้นในการ

Backup แต่ละครั้ง ดังนั้นจึงกลายเป็นข้อด้อยของการ Backup ในรูปแบบนี้

• Transaction Log Backup

หรือเรียกว่า Log Backup เป็นการ Backup ข้อมูลทุกอย่างในไฟล์ Transaction Log โดยอ้างอิงกับการ

Backup แบบ Transaction Log Backup ครั้งสุดท้าย กล่าวคือ จะ Backup ข้อมูลในไฟล์ Transaction

Log เฉพาะข้อมูลที่เพิ่มขึ้นมาหลังจากการ Backup แบบ Transaction Log Backup ครั้งสุดท้าย เท่านั้น

หากเป็นการ Backup แบบ Transaction Log Backup ครั้งแรก จะท�าการ Backup ข้อมูลทั้งหมดในไฟล์

Transaction Log ด้วยคุณลักษณะเด่นของ Transaction Log Backup ท�าให้เป็นการ Backup ที่ใช้พื้นที่

ของฮาร์ดดิสต์น้อยที่สุดและใช้เวลาในการ Backup น้อยที่สุดอีกด้วย แต่ทว่าการที่เราจะ Backup แบบ

Transaction Log Backup ได้นั้น เราจะต้อง Backup แบบ Full Backup เสียก่อน เช่น ก�าหนดให้ท�าการ

Backup แบบ Full Backup กับฐานข้อมูล เวลา 24.00 น. ของทุกวัน และ ทุก ๆ 15 นาที ให้ Backup

แบบ Transaction Log Backup เป็นต้น

• Database File หรือ Filegroup Backup

เป็นการ Backup เฉพาะ Database File ที่ต้องการหรือเฉพาะ Filegroup ที่ต้องการเท่านั้น ซึ่งแตกต่าง

จากการ Backup ประเภทอื่น ๆ ที่การ Backup จะมีผลกับทั้งฐานข้อมูล มักจะใช้กับฐานข้อมูลขนาดใหญ่

มาก ที่มีการสร้าง Database Files หลาย ๆ ไฟล์ หรือมีหลาย ๆ Filgroups ซึ่งการ Backup แบบ Full

Backup หรือ Differential Backup ต้องใช้เวลานาน จึงเลือกที่จะ Backup เฉพาะ Database File หรือ

Filegroup ที่ต้องการเท่านั้น เพื่อลดระยะเวลาในการ Backup แต่ว่าการ Backup ประเภทนี้ก็ยังจ�าเป็น

ต้องมีการท�า Full Backup ก่อน เช่นเดียวกับการ Backup ประเภทอื่น ๆ และยังต้องมีการ Backup แบบ

ตวัอยา่ง

Page 12: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 201412

Transaction Log Backup หลังจากที่ Backup แบบ Database File หรือ Filegroup Backup อีกด้วย

ทั้งนี้เพื่อให้สามารถกู้คืนข้อมูลได้โดยไม่มีปัญหาข้อมูลขัดแย้งกันในแต่ละ Database File หรือ Filegroup

Backup เกิดขึ้น

ท�าความรู้จักกับ Backup Device Backup Device คือ ไดร์ฟของ Tape Backup หรือไดร์ฟของฮาร์ดดิสต์ ( Disk Drive ) ที่ใช้ในการ Backup

– Restore ฐานข้อมูล กล่าวคือ เราสามารถเลือกที่จะ Backup ฐานข้อมูล โดยเก็บข้อมูลการ Backup หรือ ไฟล์

Backup ไว้ใน Tape Backup หรือเก็บในฮาร์ดดิสต์ก็ได้ ในทางปฏิบัติมักจะก�าหนดให้ Backup ลงฮาร์ดดิสต์ของ

เครื่อง Server ก่อน แล้วจึงย้ายข้อมูลลง Tape Backup ในภายหลัง เนื่องจากความเร็วในการเขียนข้อมูลของ

ฮาร์ดดิสต์นั้นเร็วกว่า Tape Backup มาก หากให้ Backup โดยเขียนข้อมูลลง Tape Backup เลย อาจจะท�าให้

ประสิทธิภาพในการท�างานของฐานข้อมูลจะลดลงได้ขณะที่ก�าหลัง Backup

การ Backup ลงในฮาร์ดดิสต์นั้น เราสามารถก�าหนดให้เป็นฮาร์ดดิสต์ของเครื่อง Server ของเราหรือ

ฮาร์ดดิสต์ของเครื่อง Server อื่นก็ได้ ( Remote Server ) การ Backup แบบ Remote Server นั้น เราจะต้อง

ก�าหนดตาม Universal Naming Convention ( UNC ) ซึ่งอยู่ในรูปแบบของ \\<Systemname>\ <Share-

name>\<Path>\<Filename> เช่น \\sql2014\backup_path\AdventureWorks.bak เป็นต้น ซึ่งเราจะต้อง

ได้รับสิทธิ์ในการเขียนข้อมูลลงในเครื่อง Remote Server ด้วย

การสร้าง Backup Device สามารถท�าได้ โดยมีขั้นตอน ดังนี้

1. เข้ามาที่โฟลเดอร์ Server Objects คลิกขวาที่โฟลเดอร์ Backup Devices เลือก New Backup

Device … ดังรูป

รูปที่ 2 แสดงการเลือกสร้าง Backup Device

ตวัอยา่ง

Page 13: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014 13

2. หลังจากเลือกตามข้อ 1 แล้ว หน้าจอการสร้าง Backup Device จะปรากฏ ซึ่งเราสามารถก�าหนดชื่อ

Backup Device ได้ตามต้องการ ดังรูป

รูปที่ 3 แสดงการสร้าง Backup Device

จากรูปที่ 3 เราจะเห็นว่า เราสามารถก�าหนด Backup Device เป็นไดร์ฟของ Tape Backup และไฟล์

ข้อมูลในฮาร์ดดิสต์ เนื่องจากที่เครื่องของผู้เขียนไม่ได้ติดตั้ง Tape Backup จึงไม่สามารถเลือกที่ Tape

Backup ได้

3. จากรูปที่ 3 เราจะเห็นว่าในส่วน File จะเป็นไดเรกเทอรี่ที่เป็น Default ของ SQL Server 2014 ซึ่งเรา

สามารถก�าหนดไดเรกเทอรี่หรือโฟลเดอร์ที่เราต้องการได้ โดยคลิกปุ่ม เพื่อค้นหาโฟลเดอร์ที่เรา

ต้องการและก�าหนดชื่อไฟล์ที่เก็บข้อมูลการ Backup ในที่นี้ขอก�าหนดเป็นโฟลเดอร์ Backup ในไดร์ฟ C:

(เราต้องสร้างโฟลเดอร์เอาไว้ก่อนท�าในตัวอย่าง) และก�าหนดชื่อไฟล์เป็น AdventureWorks_device.bak

ดังรูป

ตวัอยา่ง

Page 14: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 201414

รูปที่ 4 แสดงการก�าหนดชื่อไฟล์ – ไดเรกเทอรี่ของ Backup Device

4. คลิกปุ่ม จะกลับมาที่หน้าจอการสร้าง Backup Device ตอนนี้จะแสดงชื่อไฟล์ – ไดเรกเทอรี่

ที่เราก�าหนดใน Backup Device ดังรูป

รูปที่ 5 แสดงแสดงหน้าจอการสร้าง Backup Device

ตวัอยา่ง

Page 15: 4* 0 % F5 - static.se-ed.com · รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014. 7 • ฐานข้อมูล distribution ฐานข้อมูลนี้จะมีเฉพาะใน

รู้ลึก รู้จริง Backup ฐานข้อมูล SQL Server 2014 15

5. คลิกปุ่ม เพื่อสร้าง Backup Device ตามคุณสมบัติที่เราก�าหนด หน้าจอการสร้าง Backup

Device จะปิดโดยอัตโนมัติ เราจะเห็นว่าใน SQL Server Management Studio ในโฟลเดอร์ Backup

Device จะพบ Backup Device ที่เราสร้างแสดงอยู่ ดังรูป

รูปที่ 6 แสดง Backup Device ที่เราสร้าง

Notes : ส�าหรับการก�าหนดไฟล์ใน Remote Server เราสามารถก�าหนดโดยพิมพ์ Path และชื่อไฟล์ที่ต้องการลง

ในส่วน File ในหน้าจอการสร้าง Backup Device ได้ จากตัวอย่าง หลังจากที่เราสร้าง Backup Device

แล้ว หากเราเข้าไปในโฟลเดอร์ที่เราก�าหนดใน Backup Device จะเห็นว่ายังไม่มีไฟล์ใด ๆ เกิดขึ้นเลย

ทั้งนี้เนื่องจากไฟล์ดังกล่าวจะเกิดขึ้นก็ต่อเมื่อมีการ Backup โดยใช้ Backup Device ของเราเสียก่อน

หลังจากที่ Backup เสร็จเรียบร้อย เราก็จะพบว่ามีไฟล์ข้อมูลจากการ Backup ที่มีชื่อไฟล์และอยู่ใน

ไดเรกเทอรี่ตามที่เราก�าหนดใน Backup Device ทุกประการ

ส�าหรับการสร้าง Backup Device ด้วยค�าสั่ง Transact – SQL สามารถท�าได้ โดยใช้ Stored Procedure

ชื่อ sp_addumpdevice ในฐานข้อมูล master มีรูปแบบค�าสั่ง ดังนี้

sp_addumpdevice [ @devtype = ] ‘device_type’

, [ @logicalname = ] ‘logical_name’

, [ @physicalname = ] ‘physical_name’

[ , { [ @cntrltype = ] controller_type |

[ @devstatus = ] ‘device_status’ }

]

ตวัอยา่ง