I. ¹é¾÷ÀÇ Á¾·ù 1. Àüü ¹é¾÷(full backup) : µ¥ÀÌÅÍ Àüü¸¦ ¹é¾÷ÇÑ´Ù. ¶ÇÇÑ ÁøÇà ÁßÀÎ Æ®·£Àè¼ÇÀÇ ·Î±×µµ ¹Þ´Â´Ù. (·Î±× Àüü¸¦ ¹é¾÷ ¹Þ´Â °ÍÀº ¾Æ´Ï´Ù.) 2. Â÷µî ¹é¾÷(differential backup) : ¸¶Áö¸· Àüü ¹é¾÷ ÀÌÈÄ º¯°æµÈ ¸ðµç µ¥ÀÌÅÍ ÆäÀÌÁö¸¦ ¹é¾÷ÇÑ´Ù. µû¶ó¼­ Àüü ¹é¾÷À» ¹ÞÀº ÈÄ Â÷µî ¹é¾÷À» µÎ ¹ø ¹Þ¾Ò´Ù¸é µÎ¹ø° Â÷µî¹é¾÷Àº ù¹ø° Â÷µî¹é¾÷ÀÇ ³»¿ëµµ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ¹é¾÷ ½Ã°£Àº ¿À·¡ °É¸®Áö¸¸ º¹¿ø ¼Óµµ°¡ ºü¸£´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. 3. Æ®·£Àè¼Ç ·Î±× ¹é¾÷(transaction log backup) : ÀÏÁ¾ÀÇ incremental ¹é¾÷À¸·Î, ·Î±× ¹é¾÷À» ¹ÞÀ¸¸é ¹é¾÷ ¹ÞÀº ·Î±×´Â Áö¿öÁö¹Ç·Î µ¿ÀÏÇÑ ³»¿ëÀÌ ´Ù½Ã ¹é¾÷ µÇÁö ¾Ê´Â´Ù. µû¶ó¼­ ·Î±× ¹é¾÷Àº Àü¿¡ ¹ÞÀº ·Î±× ¹é¾÷ ÀÌÈÄÀÇ °Í¸¸ ¹é¾÷ÀÌ µÈ´Ù. ¹é¾÷Àº ºü¸£Áö¸¸ º¹¿øÀº Àüü¹é¾÷À» º¹±¸ÇÑ ÈÄ °¢°¢ÀÇ ·Î±× ¹é¾÷À» º¹±¸ÇØ¾ß ÇϹǷΠ½Ã°£ÀÌ ¿À·¡ °É¸°´Ù. ¶ÇÇÑ ¸¸¾à Áß°£ÀÇ ·Î±× ¹é¾÷À» ÀÒ¾î ¹ö¸®¸é ±× ÀüÀÇ ·Î±× ¹é¾÷±îÁöÀÇ µ¥ÀÌÅ͸¸ »ì¸± ¼ö ÀÖ´Ù. II. ±âº»ÀûÀÎ º¹±¸ ½Ã³ª¸®¿À. : ´ÙÀ½ÀÇ 3°¡Áö·Î ³ª´²º¼ ¼ö ÀÖ´Ù. - Àüü¹é¾÷¿¡¼­ º¹±¸ - differential ¹é¾÷¿¡¼­ º¹±¸ - transaction log ¹é¾÷¿¡¼­ º¹±¸ 1. Àüü ¹é¾÷¿¡¼­ º¹¿øÇϱâ : Àüü ¹é¾÷¿¡¼­ º¹¿øÀº Ç×»ó ¸¶Áö¸· Àüü ¹é¾÷À¸·ÎºÎÅÍ º¹¿øÀ» ÇÑ´Ù. ´ÙÀ½ ÀÛ¾÷Àº ¹é¾÷À» À§ÇÑ µð¹ÙÀ̽º¸¦ ¸¸µé°í µ¥ÀÌÅ͸¦ º¯°æÇÑ ÈÄ, Àüü¹é¾÷À» ¹Þ°í ÀÌ ¹é¾÷À» ÀÌ¿ëÇØ º¹¿øÀ» ÇÏ´Â °úÁ¤ÀÌ´Ù. 1) ¹é¾÷ µð¹ÙÀ̽º ¸¸µé±â sp_addumpdevice 'disk','pubs_bak','c:\pubsbk.bak' ( C:\¿¡ pubsbk.bak¶ó´Â ¹é¾÷ µð¹ÙÀ̽º¸¦ ¸¸µé°í À̸§À» pubs_bak¶ó ÇÑ´Ù.) 2) pubs database¸¦ º¯°æÇÑ ÈÄ º¯°æÀ» È®ÀÎÇÑ´Ù. create table test1 (id int, name char(10)) insert test1 values (1, '»ç¿ëÀÚ1') select * from test1 (¡°1, »ç¿ëÀÚ1¡±ÀÌ ³ªÅ¸³­´Ù.) 3) pubs database¸¦ ¹é¾÷ ¹Þ´Â´Ù. backup database pubs to pubs_bak 4) ¹®Á¦¸¦ ¹ß»ý½ÃÅ°°í ³­ ÈÄ(pubs¸¦ Áö¿î ÈÄ), ±âÁ¸ÀÇ ¹é¾÷À¸·ÎºÎÅÍ º¹¿øÀ» ÇÑ´Ù. use master drop database pubs go restore database pubs from pubs_bak 5) º¹±¸µÈ µ¥ÀÌÅ͸¦ È®ÀÎÇÑ´Ù. use pubs select * from test1 2. Differential ¹é¾÷¿¡¼­ º¹±¸Çϱâ : differential ¹é¾÷ÀÇ Æ¯Â¡Àº ¸Å¹ø ¹é¾÷À» ¹ÞÀ» ¶§¸¶´Ù ÀÌÀü Àüü¹é¾÷ ÀÌÈÄÀÇ ¸ðµç µ¥ÀÌÅ͸¦ ´Ù½Ã ¹é¾÷ ¹Þ´Â´Ù´Â °ÍÀÌ´Ù. µû¶ó¼­ ¸ðµç µ¥ÀÌÅÍ°¡ ¹é¾÷À» ¹ÞÀ» ¶§¸¶´Ù Áߺ¹µÇ¾î ¹ÞÀ¸¹Ç·Î ¹é¾÷ ½Ã°£ÀÌ ¿À·¡ °É¸°´Ù. ÇÏÁö¸¸ º¹¿ø ½Ã¿¡´Â Àüü ¹é¾÷°ú ¸¶Áö¸·¿¡ ¹ÞÀº differential ¹é¾÷¸¸ ÀÖÀ¸¸é µÇ¹Ç·Î º¹¿ø¼Óµµ°¡ »ó´çÈ÷ ºü¸£´Ù. ´ÙÀ½ ÀÛ¾÷Àº Àüü ¹é¾÷À» ¹ÞÀº ÈÄ µÎ ¹øÀÇ differential ¹é¾÷À» ¹ÞÀº ÈÄ º¹¿ø ½Ã¿¡´Â Àüü ¹é¾÷°ú µÎ¹ø°ÀÇ differential ¹é¾÷À» °¡Áö°í º¹¿øÇÏ´Â °úÁ¤À» ³ªÅ¸³½ °ÍÀÌ´Ù. ¶ÇÇÑ Æ¯±âÇÒ ¸¸ÇÑ »çÇ×Àº µ¥ÀÌÅÍ°¡ ¼Õ»óµÇ¾î database¿¡ Á¢±ÙÀ» ÇÒ ¼ö ¾ø´Â °æ¿ì¿¡µµ ±×¶§±îÁöÀÇ ·Î±×¸¦ ¹ÞÀ» ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. backup log ¡¦ with no_truncate ¿É¼ÇÀ» »ç¿ëÇÏ¸é µÈ´Ù. 1) ¹é¾÷ µð¹ÙÀ̽º¸¦ ¸¸µç´Ù. exec sp_addumpdevice 'disk', 'pubs_full', 'c:\pubs_full.bak' exec sp_addumpdevice 'disk', 'pubs_diff1', 'c:\pubs_diff1.bak' exec sp_addumpdevice 'disk', 'pubs_diff2', 'c:\pubs_diff2.bak' exec sp_addumpdevice 'disk', 'pubs_log', 'c:\pubs_log.bak' (Àüü¹é¾÷¿ë, °¢°¢ÀÇ differential ¹é¾÷¿ë, ·Î±× ¹é¾÷¿ë) 2) pubs database¸¦ ¿ÏÀüº¹±¸ ¸ðµå·Î º¯°æÇÑ´Ù. alter database pubs set recovery full exec sp_helpdb pubs 3) db¸¦ º¯°æÇÑ´Ù. use pubs go create table test_diff (name char(10), score int) insert test_diff values('Çлý1', 100) go select * from test_diff (=> ¡°Çлý1, 100¡±ÀÌ Ãâ·ÂµÈ´Ù.) 4) pubs database¸¦ full backupÇÑ´Ù. backup database pubs to pubs_full 5) db¸¦ º¯°æÇÑ´Ù. insert test_diff values('Çлý2', 900) select * from test_diff (=> ¡°Çлý1, 100¡±, ¡°Çлý2, 90¡±ÀÌ Ãâ·ÂµÈ´Ù.) 6) ù¹ø° differential ¹é¾÷À» ÇÑ´Ù. backup database pubs to pubs_diff1 with differential 7) db¸¦ ´Ù½Ã º¯°æÇÑ´Ù. insert test_diff values('Çлý3', 80) select * from test_diff (=> ¡°Çлý1, 100¡±, ¡°Çлý2, 90¡±, ¡°Çлý3, 80¡±ÀÌ Ãâ·ÂµÈ´Ù.) 8) µÎ¹ø° differential ¹é¾÷À» ¹Þ´Â´Ù. backup database pubs to pubs_diff2 with differential 9) db¸¦ º¯°æÇÑ´Ù. insert test_diff values ('Çлý4', 60) select * from test_diff (=> ¡°Çлý1, 100¡±, ¡°Çлý2, 90¡±, ¡°Çлý3, 80¡±, ¡°Çлý4, 60¡±°¡ Ãâ·ÂµÈ´Ù.) 10) db¿¡ ¹®Á¦¸¦ ¹ß»ý½ÃŲ´Ù. SQL Server ¼­ºñ½º¸¦ Á¤ÁöÇÑ ÈÄ, pubs databaseÀÇ data file(pubs.mdf)À» Áö¿î´Ù. ´Ù½Ã SQL Server ¼­ºñ½º¸¦ ½ÃÀÛÇϸé, pubs database°¡ suspect»óÅ°¡ µÈ´Ù. 11) pubs database¿¡ ´ëÇÑ log¸¦ ¹é¾÷ ¹Þ´Â´Ù. ºñ·Ï pubs database´Â ¹®Á¦°¡ ¹ß»ýÇÏ¿© Á¢±ÙÇÒ ¼ö ¾øÁö¸¸, log´Â ¹ÞÀ» ¼ö ÀÖ´Ù. backup log pubs to pubs_log with no_truncate 12) pubs database¸¦ º¹¿øÇÑ´Ù. À̶§ ÇÊ¿äÇÑ ¹é¾÷Àº ´ÙÀ½°ú °°´Ù. a. Àüü ¹é¾÷. b. µÎ¹ø° differential ¹é¾÷. c. ¸¶Áö¸·¿¡ ¹ÞÀº ·Î±× ¹é¾÷. use master go restore database pubs from pubs_full with norecovery restore database pubs from pubs_diff2 with norecovery restore log pubs from pubs_log (ÀÌ ¶§ ¸¶Áö¸· ¹é¾÷À» º¹¿øÇÏ´Â °Í ¿Ü¿¡´Â ¹Ýµå½Ã with norecovery ¿É¼ÇÀ» ºÙ¿©Áà¾ß ÇÑ´Ù. norecovery¿É¼ÇÀº ´ÙÀ½¿¡ ´õ º¹¿øµÉ ºÎºÐÀÌ ³²¾ÆÀÖ´Ù´Â ¶æ.) 13) select¸¦ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅÍ°¡ ´Ù º¹±¸µÇ¾ú´ÂÁö ¾Ë¾Æº»´Ù. use pubs go select * from test_diff (=> differential ¹é¾÷ ÀÌÈÄ¿¡ Ãß°¡µÈ »çÇ× ¿¡ ´ëÇؼ­µµ ¿Ïº®ÇÏ°Ô º¹±¸µÇ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.) 3. Transactional Log ¹é¾÷¿¡¼­ º¹±¸Çϱâ : transactional log ¹é¾÷Àº Àüü ¹é¾÷ ÈÄ º¯°æµÈ ºÎºÐÀ» ¹é¾÷À» ¹Þ´Â´Ù. ¹é¾÷ ÈÄ¿¡´Â ·Î±×¸¦ Áö¿ö¹ö¸®¹Ç·Î ·Î±×¹é¾÷À» ¹ÞÀ¸¸é ÀÌÀü ¹é¾÷ ¹ÞÀº ´ÙÀ½ ºÎºÐºÎÅÍ ¹é¾÷À» ¹Þ´Â´Ù. ÀÌ ¹æ¹ýÀº ¹é¾÷½Ã°£Àº ´ÜÃàµÇÁö¸¸ º¹¿øÀº Àüü ¹é¾÷°ú ¸ðµç ·Î±× ¹é¾÷ÀÌ ÀÖ¾î¾ß ÇϹǷΠ½Ã°£ÀÌ ¸¹ÀÌ °É¸°´Ù. ¶ÇÇÑ Áß°£ÀÇ ·Î±×¸¦ ÀÒ¾î ¹ö¸®¸é ±× ´ÙÀ½ ·Î±×´Â ¹é¾÷¿¡ »ç¿ëµÉ ¼ö ¾ø´Ù. ÀÌ ÀÛ¾÷¿¡¼­´Â Àüü¹é¾÷À» ¹ÞÀº ÈÄ ·Î±× ¹é¾÷À» ¿©·¯ ¹ø ¹Þ°í º¹¿ø ½Ã Àüü ¹é¾÷°ú °¢°¢ÀÇ ·Î±× ¹é¾÷À» ÀÌ¿ëÇÏ´Â °ÍÀ» º¸¿©ÁØ´Ù. 1) ¹é¾÷¿¡ »ç¿ëµÉ µð¹ÙÀ̽º¸¦ ¸¸µç´Ù. (Àüü¹é¾÷, °¢°¢ÀÇ ·Î±× ¹é¾÷À» À§ÇÑ µð¹ÙÀ̽º¸¦ ¸¸µç´Ù.) use master go exec sp_addumpdevice 'disk', 'nwind_full', 'c:\nwindfull.bak' exec sp_addumpdevice 'disk', 'nwind_log1', 'c:\nwindlog1.bak' exec sp_addumpdevice 'disk', 'nwind_log2', 'c:\nwindlog2.bak' exec sp_addumpdevice 'disk', 'nwind_log', 'c:\nwindlog.bak' 2) northwind database¸¦ ¿ÏÀüº¹±¸ ¸ðµå·Î ¹Ù²Û´Ù. alter database northwind set recovery full exec sp_helpdb northwind 3) database¿¡ »õ·Î¿î Å×À̺íÀ» ¸¸µé°í µ¥ÀÌÅ͸¦ ÀÔ·ÂÇÑ´Ù. use northwind go create table nwind_log (id int, name char(10)) go select * from nwind_log go insert nwind_log values(1, '¼Õ´Ô1') select * from nwind_log 4) Àüü ¹é¾÷À» ¹Þ´Â´Ù. backup database northwind to nwind_full go 5) µ¥ÀÌÅ͸¦ Ãß°¡ÇÑ´Ù. insert nwind_log values(2, '¼Õ´Ô2') select * from nwind_log 6) ù¹ø° ·Î±× ¹é¾÷À» ¹Þ´Â´Ù. backup log northwind to nwind_log1 7) µ¥ÀÌÅ͸¦ Ãß°¡ÇÑ´Ù. insert nwind_log values(3, '¼Õ´Ô3') select * from nwind_log 8) µÎ¹ø° ·Î±× ¹é¾÷À» ¹Þ´Â´Ù. backup log northwind to nwind_log2 9) µ¥ÀÌÅ͸¦ Ãß°¡ÇÑ´Ù. insert nwind_log values (4, '¼Õ´Ô4') select * from nwind_log 10) Àå¾Ö¸¦ ¹ß»ý½ÃŲ´Ù. (SQL Server ¼­ºñ½º¸¦ ¸ØÃá ÈÄ northwnd.mdf ÆÄÀÏÀ» »èÁ¦ÇÏ°í ´Ù½Ã SQL Server ¼­ºñ½º¸¦ ½ÃÀÛÇÑ´Ù. ±×·¯¸é northwind database°¡ suspect »óÅ·ΠµÈ´Ù.) 11) Àå¾Ö°¡ ¹ß»ýÇÑ ½ÃÁ¡±îÁöÀÇ ·Î±×¸¦ ¹é¾÷ ¹Þ´Â´Ù. backup log northwind to nwind_log with no_truncate 12) º¹¿øÀ» Çϴµ¥ À̹ø¿¡´Â Àüü ¹é¾÷°ú ¸ðµç ·Î±× ¹é¾÷ÀÌ ÇÊ¿äÇÏ´Ù. use master go restore database northwind from nwind_full with norecovery restore log northwind from nwind_log1 with norecovery restore log northwind from nwind_log2 with norecovery restore log northwind from nwind_log 13) µ¥ÀÌÅ͸¦ ´Ù½Ã selectÇÏ¿© ¸ðµç µ¥ÀÌÅÍ°¡ µé¾îÀÖ´Â °ÍÀ» È®ÀÎÇÑ´Ù. use northwind go select * from nwind_log III. °í±Þ º¹±¸ ½Ã³ª¸®¿À - ÆÄÀÏ±×·ì ¹é¾÷ ¹× º¹±¸ - ƯÁ¤ ½ÃÁ¡À¸·Î º¹¿øÇϱâ(stopat, stopatmarkµî) - µ¥ÀÌÅÍ ÆÄÀϷκÎÅÍ º¹¿ø(sp_attach_db, sp_attach_single_file_dbµî) 1. ÆÄÀÏ ±×·ì ¹é¾÷ ¹× º¹±¸ : ÆÄÀÏ ±×·ìÀº ´ë¿ë·® DB¸¦ À¯Áö°ü¸®Çϱ⠽±°Ô Çϱâ À§ÇØ »ý°Ü³­ °³³äÀ¸·Î µ¥ÀÌÅ͸¦ °¢°¢ ´Ù¸¥ Çϵ忡 ºÐ»ê ÀúÀåÇÏ¸ç ¹é¾÷°ú º¹¿øÀ» °¢ ÆÄÀÏ ±×·ìº°·Î ÇÒ ¼ö ÀÖ¾î Àüü µ¥ÀÌÅͺ£À̽º¸¦ ¹é¾÷ÇÒ ¶§¿¡ ºñÇØ ¿ùµîÇÑ ¼ÓµµÇâ»ó°ú ÆíÀǼºÀ» Á¦°øÇÑ´Ù. ÀÌ ÀÛ¾÷¿¡¼­´Â ÆÄÀÏ ±×·ìÀ» »ý¼ºÇÑ ÈÄ °¢ ÆÄÀÏ ±×·ìº°·Î ¹é¾÷À» ¹Þ °í ±× Áß ÇϳªÀÇ µ¥ÀÌÅÍ ÆÄÀÏÀÌ ¼Õ»óµÇ¾úÀ» ¶§ º¹¿øÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æ º»´Ù. 1) ÆÄÀÏ ±×·ì »ý¼º. CREATE DATABASE fileG ON ( NAME = fileG , FILENAME = 'c:\data\fileG.mdf' , SIZE = 10 ), FILEGROUP fileG2 ( NAME = fileG2 , FILENAME = 'd:\data\fileG2.ndf' , SIZE = 10 ), FILEGROUP fileG3 ( NAME = fileG3 , FILENAME = 'e:\data\fileG3.ndf' , SIZE = 10) LOG ON ( NAME = 'fileGLog' , FILENAME = 'f:\data\fileG.ldf' , SIZE = 5MB ) GO : fileG databaseÀÇ dataºÎºÐÀ» C:, D:, E:¿¡ ³ª´©¾î¼­ »ý¼ºÀ» ÇÏ¿´°í, ·Î±×µµ F: µå¶óÀ̺꿡 º°µµ·Î »ý¼ºÀ» ÇÏ¿´À½. 2) µ¥ÀÌÅ͸¦ Ãß°¡ÇÑ´Ù. use fileG create table a(id int) create table b(id int)on fileG2 create table c(id int)on fileG3 EXEC sp_helpdb fileG 3) Àüü ¹é¾÷À» ¹Þ´Â´Ù. backup database fileG to disk='c:\full.bak' 4) primary file Group¿¡ µ¥ÀÌÅ͸¦ Áý¾î ³Ö´Â´Ù. insert a values(1) 5) primary file Group¸¸ ¹é¾÷À» ¹Þ´Â´Ù. backup database fileG filegroup='primary' to disk='c:\file1.bak' 6) µ¥ÀÌÅ͸¦ fileG2¿Í fileG3¿¡µµ ³Ö´Â´Ù. insert b values(1) insert c values(1) 7) fileG¿¡ ´ëÇØ ·Î±× ¹é¾÷À» ¹Þ´Â´Ù. backup log fileG to disk='c:\log1.bak' 8) µÎ¹ø° ÆÄÀÏ ±×·ìÀÎ fileG2¿¡ ´ëÇÑ µ¥ÀÌÅÍ ¹é¾÷À» ¹Þ´Â´Ù. backup database fileG filegroup='fileG2' to disk='c:\file2.bak' 9) µ¥ÀÌÅ͸¦ Ãß°¡ÇÑ´Ù. insert b values(2) insert c values(2) insert a values(2) 10) fileG¿¡ ´ëÇÑ ·Î±× ¹é¾÷À» ¹Þ´Â´Ù. backup log fileG to disk='c:\log2.bak' 11) ¼¼¹ø° ÆÄÀÏ ±×·ìÀÎ fileG3¿¡ ´ëÇØ ¹é¾÷À» ¹Þ´Â´Ù. backup database fileG filegroup='fileG3' to disk='c:\file3.bak' 12) µ¥ÀÌÅ͸¦ ¾÷µ¥ÀÌÆ® ÇÑ´Ù. insert c values(3) insert a values(3) insert b values(3) 13) ÀÌ ¶§ Àå¾Ö°¡ ¼¼¹ø° ÆÄÀÏ ±×·ìÀÇ µ¥ÀÌÅÍ ÆÄÀÏÀÌ ¼Õ»óµÇ¾ú´Ù. (fileG3.ndf¸¦ »èÁ¦ÇÑ´Ù.) 14) ÀÌ ¶§±îÁöÀÇ ·Î±×¸¦ ¹Þ´Â´Ù. backup log fileG to disk='c:\log3.bak' with init,no_truncate 15) ÀÌÁ¦ ¼Õ»óµÈ fileG¸¦ º¹¿øÇÑ´Ù. À̶§´Â Àüü ¹é¾÷À» º¹±¸ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¼¼¹ø° ÆÄÀÏ ±×·ì¿¡ ´ëÇÑ ¹é¾÷°ú ¸¶Áö¸·¿¡ ¹ÞÀº ·Î±×¸¦ °¡Áö°í º¹¿øÀ» ÇÑ´Ù. restore database fileG filegroup='fileG3' from disk='c:\file3.bak'with norecovery restore log fileG from disk='c:\log3.bak' 16) fileGÀÇ ¸ðµç tableÀ» select ÇØ º»´Ù. use fileG go select * from a select * from b select * from c ¸ðµç Ç׸ñµéÀÌ ´Ù ³ª¿Í ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù. File GroupÀÇ Æ¯Â¡Àº ´ë¿ë·® µ¥ÀÌÅÍ º£À̽º¸¦ ¹é¾÷ ¹× º¹¿øÀ» ÇÒ ¶§ ¸ðµç µ¥ÀÌÅÍ¿¡ ´ëÇÏ¿© ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó file Group º°·Î ³ª´©¾î ¹é¾÷À» ÇÏ°í ƯÁ¤ ÆÄÀϱ׷ìÀÌ ±úÁø °æ¿ì¿¡´Â ÇØ´çµÇ´Â file GroupÀÇ ¹é¾÷¸¸ º¹¿øÇØ ÁÖ¸é µÇ¹Ç·Î ¹é¾÷°ú º¹¿ø¿¡ ½Ã°£ÀÌ Àû°Ô °É¸®°Ô µÇ¾î À¯Áöº¸¼ö¿¡ À¯¿ëÇÑ ¸ðµ¨ÀÌ´Ù. 2. ƯÁ¤ ½ÃÁ¡À¸·Î º¹¿øÇϱâ. : stopat, stopatmark, stopbeforemark 1) stopat : µ¥ÀÌÅ͸¦ ¿øÇÏ´Â ½ÃÁ¡À¸·Î µÇµ¹¸± ¼ö ÀÖ´Â ¹æ¹ý. ´ÙÀ½°ú °°Àº °æ¿ì¿¡ Àû¿ëµÈ´Ù. a. ¿ÀÀü 9:00 Àüü¹é¾÷ b. ´Ù¾çÇÑ ÀÛ¾÷À» ÇÔ. c. ¿ÀÀü 10:00 ½Ç¼ö·Î where Àý ¾øÀÌ delete¹® ¼öÇàÇÏ¿© Å×À̺í AÀÇ ¸ðµç µ¥ÀÌÅ͸¦ Áö¿ò. d. ¿ÀÀü 10:30ºÐ ·Î±× ¹é¾÷. e. 11:00 ´ë·®À¸·Î À߸øµÈ ÀÛ¾÷ÀÌ ¼öÇàµÇ¾úÀ½À» ¹ß°ß. ÀÌ ¶§´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¾÷ÇØ ÁØ´Ù. ¤¡. Àüü¹é¾÷À» º¹¿øÇÑ´Ù. ¤¤. ¹é¾÷µÈ ·Î±×¸¦ º¹¿øÇϸ鼭 ´ÙÀ½°ú °°Àº ¿É¼ÇÀ» ÁØ´Ù. RESTORE LOG ¡¦ FROM ¡¦ WITH STOPAT = ¡®2001-12-24 10:00:01 ¿¹Á¦] pubs db¸¦ ÀÌ¿ëÇÏ¿© stopatÀ» Å×½ºÆ® ÇØ º»´Ù. a. ÇöÀçÀÇ titles.price Ä÷³ÀÇ °¡°ÝÀÌ ¾ó¸¶·Î ½ÃÀ۵ǴÂÁö È®ÀÎÇÑ´Ù. SELECT TOP 1 price FROM pubs..titles (19.99°¡ ³ª¿Â´Ù.) b. pubs database¸¦ Àüüº¹±¸ ¸ðµå·Î ¹Ù²Û´Ù. ALTER DATABASE pubs SET RECOVERY full Exec sp_helpdb pubs c. pubs database¸¦ Àüü¹é¾÷ ¹Þ´Â´Ù. BACKUP DATABASE pubs to disk = ¡®c:\pubsfull.bak¡¯ d. titlesÀÇ °ªÀ» µÎ¹è·Î ¸¸µç´Ù. UPDATE pubs..titles SET price=price*2 SELECT TOP 1 price FROM pubs..titles (39.98ÀÌ ³ª¿Â´Ù.) e. log ¹é¾÷À» ¹Þ´Â´Ù. BACKUP LOG pubs to disk = ¡®c:\pubslog1.bak¡¯ f. Çѹø ´õ °¡°ÝÀ» ÀλóÇÑ´Ù. UPDATE pubs..titles SET price=price*2 SELECT TOP 1 price FROM pubs..titles (79.96ÀÌ ³ª¿Â´Ù.) g. ¼­¹öÀÇ ½Ã°£À» ±â·ÏÇÑ´Ù. SELECT getdate() h. À̹ø¿¡´Â titlesÀÇ °ªÀ» ÀüºÎ 100À¸·Î º¯°æÇÑ´Ù. (ÀÌ ÀÛ¾÷Àº Àá½Ã ½ÃÂ÷¸¦ µÎ°í ÇÏ´Â °ÍÀÌ ÁÁ´Ù.) UPDATE pubs..titles SET price = 100 SELECT TOP 1 price FROM pubs..titles (100ÀÌ ³ª¿Â´Ù.) i. ´Ù½Ã Çѹø ·Î±× ¹é¾÷À» ¹Þ´Â´Ù. BACKUP LOG pubs to disk = ¡®c:\pubslog2.bak¡¯ j. Áö±Ý ÇöÀç full ¹é¾÷°ú ·Î±× ¹é¾÷ÀÌ 2°³°¡ ÀÖ´Ù. °¢°¢À» »ç¿ëÇÏ¿© º¹¿øÀ» ½ÃµµÇØ º¸¸é ´ÙÀ½°ú °°Àº °á°ú°¡ ³ª¿Â´Ù. Full ¹é¾÷¸¸ »ç¿ëÇÏ¿© º¹¿øÇÑ °æ¿ì RESTORE DATABASE pubs FROM disk = ¡®c:\pubsfull.bak¡¯ SELECT TOP 1 price FROM pubs..titles (19.99°¡ ³ª¿Â´Ù.) ù¹ø° ·Î±×±îÁö »ç¿ëÇÏ¿© º¹¿øÇÑ °æ¿ì RESTORE DATABASE pubs FROM disk = ¡®c:\pubsfull.bak WITH NORECOVERY RESTORE LOG pubs FROM disk = ¡®c:\pubslog1.bak¡¯ SELECT TOP 1 price FROM pubs..titles (39.98ÀÌ ³ª¿Â´Ù.) µÎ¹ø° ·Î±×±îÁö »ç¿ëÇÏ¿© º¹¿øÇÑ °æ¿ì RESTORE DATABASE pubs FROM disk = ¡®c:\pubsfull.bak¡¯ WITH NORECOVERY RESTORE LOG pubs FROM disk = ¡®c:\pubslog1.bak¡¯ WITH NORECOVERY RESTORE LOG pubs FROM disk = ¡®c:\pubslog2.bak¡¯ SELECT TOP 1 price FROM pubs..titles (100ÀÌ ³ª¿Â´Ù.) À߸øµÈ ÀÛ¾÷À» Çϱâ ÀüÀÇ µ¥ÀÌÅÍ·Î µ¹¸®·Á¸é STOPAT ¿É¼ÇÀ» »ç¿ëÇÑ´Ù. RESTORE DATABASE pubs FROM disk =¡¯c:\pubsfull.bak¡¯ WITH NO RECOVERY RESTORE LOG pubs FROM disk = ¡®c:\pubslog1.bak¡¯ WITH NORECOVERY RESTORE LOG pubs FROM disk = ¡®c:\pubslog2.bak¡¯ WITH STOPAT = ¡®2001-12-24 14:53:07.310¡¯(À߸øµÈ ÀÛ¾÷À» Çϱâ ÀüÀÇ ½Ã°£) SELECT TOP 1 price FROM pubs..titles (79.96ÀÌ ³ª¿Â´Ù. Áï, À߸øµÈ ÀÛ¾÷À» Çϱâ ÀüÀÇ °ªÀÌ ³ª¿Â´Ù.) ÀϹÝÀûÀ¸·Î STOPAT ¿É¼ÇÀº ½Ã°£À» ±â¾ïÇؼ­ ¿Ã¹Ù¸¥ ½Ã°£À» ÀÔ·ÂÇØ¾ß ÇÑ´Ù´Â ºÎ´ãÀÌ ÀÖ´Ù. ÀÌ°ÍÀ» ±Øº¹Çϱâ À§ÇØ ³ª¿Â ¿É¼ÇÀÌ STOPATMARK ¿É¼ÇÀÌ´Ù. 2) STOPATMARK, STOPBEFOREMARK : STOPAT¿É¼ÇÀÌ ½Ã°£À» ±â¹ÝÀ¸·Î µÇµ¹¸®´Â ÀÛ¾÷À» Çß´Ù¸é, STOPATMARK´Â ÇØ´ç MARK±îÁö º¹¿øÇÑ´Ù. À̸¦ »ç¿ëÇϱâ À§Çؼ­´Â Æ®·£Àè¼ÇÀ» ½ÃÀÛÇÒ ¶§ ¸¶Å©¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. BEGIN TRAN tran1 WITH MARK ¡¦ (ÇØ´çÀÛ¾÷) COMMIT º¹¿ø ½Ã´Â ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù. RESTORE LOG ¡¦ FROM ¡¦ WITH STOPATMARK = ¡®tran1¡¯ TransactionÀÌ ¿©·¯ ¹ø »ç¿ëµÇ¾úÀ¸¸é ´ÙÀ½°ú °°ÀÌ AFTER ¿É¼ÇÀ» ÁØ´Ù. WITH STOPAT = ¡®tran1¡¯ AFTER 2001-12-24 14:53:07.310 STOPATMARK´Â ÇØ´ç Æ®·£Àè¼Ç±îÁö º¹¿øÇÏ°í, STOPBEFOREMARK´Â ÇØ´ç Æ®·£Àè¼Ç Á÷Àü¿¡¼­ º¹¿øÀ» ÁßÁöÇÑ´Ù. ¿¹Á¦] stopatmark¸¦ ÀÌ¿ëÇÏ¿© µ¥ÀÌÅÍ º¹±¸Çϱâ a. pubs database¸¦ Full º¹¿ø¸ðµå·Î º¯°æÇÑ ÈÄ Àüü ¹é¾÷À» ¹Þ´Â´Ù. ALTER DATABASE pubs SET RECOVERY FULL BACKUP DATABASE pubs to disk = ¡®c:\fullpubs.bak¡¯ b. sales table¿¡ ÃÑ 21°ÇÀÇ µ¥ÀÌÅÍ°¡ ÀÖÀ½À» È®ÀÎÇÏ´Ù. use pubs select count(*) from sales c. ´ÙÀ½°ú °°Àº Æ®·£Àè¼Ç¿¡ Ç¥½Ã¸¦ ÁÖ°í ½ÃÀÛÇÑ´Ù. Begin tran tran1 WITH MARK set rowcount 10 delete sales set rowcount 0 select count(*) from sales COMMIT (10°³ÀÇ ÇàÀÌ Áö¿öÁ® ÃÑ 11ÇàÀÌ ³²´Â´Ù.) d. ´Ù½Ã ¸ðµç ÇàÀ» Áö¿î´Ù. delete sales e. ·Î±× ¹é¾÷À» ÇÑ´Ù. BACKUP LOG pubs to disk = ¡®c:\log1.bak¡¯ f. ¹é¾÷À» ¸ðµÎ º¹¿øÇÑ´Ù. use master RESTORE DATABASE pubs FROM disk = ¡®c:\fullpubs.bak¡¯ WITH NORECOVERY RESTORE LOG pubs FROM disk = ¡®c:\log1.bak¡¯ SELECT count(*) from pubs..sales ( 0°³°¡ ³ª¿Â´Ù.) g. STOPATMARK¸¦ »ç¿ëÇÏ¿© transactionÀÇ ³¡±îÁö¸¸ º¹¿øÀ» ÇÑ´Ù. RESTORE DATABASE pubs FROM disk = ¡®c:\fullpubs.bak¡¯ WITH NORECOVERY RESTORE LOG pubs FROM disk = ¡®c:\log1.bak¡¯ WITH STOPATMARK = ¡®tran1¡¯ SELECT count(*) from pubs..sales (11°ÇÀÇ µ¥¾îÅÍ°¡ ³ª¿Â´Ù.) h. STOPBEFOREMARK¸¦ »ç¿ëÇÏ¿© Ç¥½ÃµÈ Æ®·£Àè¼Ç ÀÛ¾÷ Á÷Àü±îÁö¸¸ º¹¿ø ÇÑ´Ù. RESTORE DATABASE pubs FROM disk = ¡®c:\fullpubs.bak¡¯ WITH NORECOVERY RESTORE LOG pubs FROM disk = ¡®c:\log1.bak¡¯ WITH STOPBEFOREMARK = ¡®tran1¡¯ SELECT count(*) from pubs..sales (21°ÇÀÌ ³ª¿Â´Ù.) 3) µ¥ÀÌÅÍ ÆÄÀϷκÎÅÍ º¹¿ø : sp_attach_db, sp_detach_db, sp_attach_single_file_db DB¸¦ º¹±¸ÇÏ·Á°í Çϴµ¥ ¹é¾÷º»ÀÌ ¾ø°í µ¥ÀÌÅÍ ÆÄÀÏ°ú ·Î±× ÆÄÀϸ¸ ÀÖ´Â °æ¿ì ¶Ç´Â µ¥ÀÌÅÍ ÆÄÀϸ¸ ÀÖ´Â °æ¿ì ÀÌ ÆÄÀϵéÀ» ÀÌ¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º¸¦ º¹¿øÇÒ ¼ö ÀÖ´Ù. a. sp_attach_db : µ¥ÀÌÅÍ¿Í ·Î±× ÆÄÀÏÀ» ¸ðµÎ °¡Áö°í ÀÖ´Â °æ¿ì »ç¿ëµÇ´Â ¹æ¹ýÀ¸·Î »ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù. sp_attach_db ¡®test¡¯, ¡®c:\data\test.mdf¡¯, ¡®c:\data\test_log.ldf¡¯ (test.mdf¿Í test_log.ldf µÎ °³ÀÇ ÆÄÀÏÀÌ ÀÖÀ» ¶§ ÀÌ ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© test¶ó´Â database¸¦ ¸¸µç´Ù.) b. sp_attach_single_file_db : ·Î±× ÆÄÀÏÀº ¾ø°í µ¥ÀÌÅÍ ÆÄÀϸ¸ ³²Àº °æ¿ì »ç¿ëÇÑ´Ù. sp_attach_single_file_db ¡®test¡¯, ¡®c:\data\test.mdf¡¯ (test.mdf µ¥ÀÌÅÍ ÆÄÀϸ¸ °¡Áö°í test db¸¦ ´Ù½Ã ¸¸µé¾ú´Ù. ÀÌ ¶§ ·Î±×´Â »õ·Î ¸¸µé¾î Áø´Ù.) c. sp_detach_db : ±âÁ¸ÀÇ database¸¦ data¿Í log ÆÄÀϸ¸ ³²°Ü ³õÀº ä Áö¿ö¹ö¸°´Ù. sp_detach_db ¡®test¡¯ (test database¸¦ Áö¿î ÈÄ µ¥ÀÌÅÍ ÆÄÀÏ°ú ·Î±× ÆÄÀϸ¸ ³²±ä´Ù. ÀÌ ÇÁ·Î½ÃÀú´Â sp_attach_db¿Í °°ÀÌ »ç¿ëµÇ¾î ÇÑ ¼­¹ö¿¡ ÀÖ´Â µ¥ÀÌÅͺ£À̽º¸¦ ´Ù¸¥ ¼­¹ö·Î À̵¿ÇÒ ¶§ »ç¿ëµÈ´Ù.) ¿¹Á¦] sp_detach_db¿Í sp_attach_db, sp_attach_single_file_db ¸¦ ÀÌ¿ëÇϱâ a. pubs database¸¦ detach ÇÑ´Ù. sp_detach_db pubs b. select¸¦ ¼öÇàÇÏ¿© pubs databaseÀÇ Å×À̺íÀ» queryÇÑ´Ù. SELECT * from pubs..titles (pubs database¸¦ ãÀ» ¼ö ¾ø´Ù°í ³ª¿Â´Ù.) c. pubs.mdf¿Í pubs_log.ldf¸¦ c:\data Æú´õ·Î ¿Å±ä´Ù. d. pubs database¸¦ attachÇÑ´Ù. sp_attach_db 'pubs', 'c:\data\pubs.mdf', 'c:\data\pubs_log.ldf' e. SELECT¸¦ ÇÏ¿© pubs database°¡ ´Ù½Ã »ç¿ë°¡´ÉÇÑ °ÍÀ» È®ÀÎÇÑ´Ù. SELECT * from pubs..titles (°á°ú°ªÀÌ Ãâ·ÂµÇ´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.) f. ´Ù½Ã pubs database¸¦ detachÇÑ´Ù. sp_detach_db pubs g. ·Î±×ÆÄÀÏ(pubs_log.ldf)À» »èÁ¦ÇÑ´Ù. h. sp_attach_single_file_db¸¦ ½ÇÇàÇÑ´Ù. sp_attach_single_file_db ¡®pubs¡¯, ¡®c:\data\pubs.mdf¡¯ (pubs database°¡ ´Ù½Ã »ý±â°í logµµ ´Ù½Ã »ý¼ºµÇ¾î ÀÖÀ½À» ¾Ë ¼ö ÀÖ´Ù.)