ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
SMALL
์ถ์ฒ : http://www.sqlworld.pe.kr
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์๋ชป๋ ํธ๋์ ์ ์ผ๋ก ์ธํ์ฌ ๊ทธ ์ด์ ์ ์ํ๋ก ๋ณต๊ตฌํด์ผ ํ๋ ํ์์ฑ์ ๋๋ผ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์๋ชปํด์ ํ ์ด๋ธ์ ์ ๋ถ ์ง์๋ฒ๋ฆฐ ๊ฒฝ์ฐ ๊ทธ ์ด์ ์ํ๋ก ๋ณต๊ตฌํ๊ฑฐ๋ ์๋๋ฉด ์์์ ์ผ๋ก ์ ๋ ฅํด์ผ ํฉ๋๋ค.
๋ก๊ทธ ๋ฐฑ์ ์ ์ด์ฉํ์ฌ ํน์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ฐ๋ ์ด๋ฐ ์ง๋ฌธ์ ๋ฐ์ต๋๋ค.
"ํฐ์ผ ๋ฌ์ด์. ์๋ชปํด์ ํ ์ด๋ธ์ ๋ค ์ง์๋ฒ๋ ธ๊ฑฐ๋ ์. ์ด๊ฑฐ ๋ณต๊ตฌํ์ง ๋ชปํ๋ฉด ์ ์งค๋ ค์. ์ ๋ฐ ์ด๋ ค์ฃผ์ธ์.."
์ ๋ ์์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๊ฒฝํํ ์ ์ด ์์์ต๋๋ค. ๋ถ๋ช ํ SELECT๋ฅผ ํ๋ ค๋ ์๊ฐ์ผ๋ก ์ฟผ๋ฆฌ๋ฌธ์ ๋ ๋ ธ๋๋ฐ ์๋ฟ์ฌ, ์ ๊ฐ ์ํํ ์ฟผ๋ฆฌ๋ฌธ์ SELECT ๋ฌธ์ด ์๋๊ณ DELETE ๋ฌธ์ด์์ต๋๋ค. ์ฐธ์ผ๋ก ํฉ๋นํ๋๊ตฐ์.
SQL ์๋ฒ์์๋ ํธ๋์ญ์ ๋ก๊ทธ ๋ฐฑ์ ์ ์ด์ฉํ์ฌ ํน์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์์ ๊ฐ์ด ํ ์ด๋ธ์ ์ ๋ถ ์ง์๋ฒ๋ ธ์ผ๋ฉด ์ง์ฐ๊ธฐ ๋ฐ๋ก ์ด์ ์ํ๋ก ๋ณต๊ตฌํ๋ฉด ๋ชจ๋ ๋ฌธ์ ๋ ํด๊ฒฐ์ด ๋ฉ๋๋ค. ๋ฌผ๋ก ์ด์ ๊ฐ์ ๋ณต๊ตฌ ์์ ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ด ๋ง์กฑ๋ ์ํ์ฌ์ผ ํฉ๋๋ค.
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ ๋ชจ๋ธ์ด "์ต๋" ์ฌ์ผ ํฉ๋๋ค.
โก ์ ์ฒด ๋ฐฑ์ ์ ๋ฐ์ ์ํ์ฌ์ผ ํฉ๋๋ค.
โข ์ด์ ์ ๋ก๊ทธ๋ฐฑ์ ์ด ์๋ค๋ฉด ์์ ํ๊ฒ ๋ณด๊ด๋ ์ํ์ฌ์ผ ํฉ๋๋ค.
์ง๊ธ ๋ถํฐ์ ๋ณต๊ตฌ ์์ ๋ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์ด๋ฃจ์ด ์ง๋๋ค.
o ์์ ํ ์ด๋ธ ๋ง๋ค๊ธฐ
o ํ ์ด๋ธ์ 5๊ฐ์ ๋ ์ฝ๋ ์ถ๊ฐ
o ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด ๋ฐฑ์
o ํ ์ด๋ธ์ 5๊ฐ์ ๋ ์ฝ๋ ์ถ๊ฐ
o ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ ๋ฐฑ์
o ํ ์ด๋ธ์ 5๊ฐ์ ๋ ์ฝ๋ ์ถ๊ฐ
o ํ ์ด๋ธ ์ญ์ (๋ฌธ์ ๋ฐ์)
o ํ ์์ ์ ๋ก๊ทธ ๋ฐฑ์
o ์ ์ฒด๋ฐฑ์ Restore
o ๊ธฐ์กด ๋ก๊ทธ ๋ฐฑ์ Restore
o ๋ฌธ์ ๋ฐ์ํ ๋ฐฑ์ ๋ฐ์ ๋ก๊ทธ Restore(ํ ์ด๋ธ์ ์ง์ฐ๊ธฐ ์ ๊น์ง๋ง)
๋จ, ์์ ์ ์ฌ์ฉ๋๋ sqlworld ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณต๊ตฌ๋ชจ๋ธ์ "์ต๋" ์ ๋๋ค.
1) ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด ๋ฐฑ์
์ฐ์ Test1 ์ด๋ผ๋ ์์ ํ ์ด๋ธ์ ๋ง๋ค๊ณ ๋ ์ฝ๋ 5๊ฐ๋ฅผ ์ถ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
CREATE TABLE Test1
(
col1 int,
col2 char(05)
)
GO
INSERT INTO Test1 VALUES(1,'AAAAA')
INSERT INTO Test1 VALUES(2,'BBBBB')
INSERT INTO Test1 VALUES(3,'CCCCC')
INSERT INTO Test1 VALUES(4,'DDDDD')
INSERT INTO Test1 VALUES(5,'EEEEE')
์ด์ ์ง๊ธ ์ํ์ sqlworld ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ฒด ๋ฐฑ์ ๋ฐ๋๋ก ํ๊ฒ ์ต๋๋ค.
BACKUP DATABASE sqlworld TO DISK = 'D:\sqlworld.bak'
์ ์ ์ฒด ๋ฐฑ์ ์ผ๋ก ์ธํด ์ฐ๋ฆฌ๋ ์ด๋ค ์ฌํ๊ฐ ๋ฐ์ํ๋๋ผ๋ Test1 ํ ์ด๋ธ์ 5๊ฐ์ ๋ ์ฝ๋๊ฐ ์ถ๊ฐ๋ ์ํ๋ก ๋ณต๊ตฌ๋ฅผ ํ ์ ์์ต๋๋ค.(๋น์ฐํ์ฃ )
2) ๋ก๊ทธ๋ฐฑ์
์ด์ Test1 ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ 5๊ฐ ๋ ์ถ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
INSERT INTO Test1 VALUES(6,'FFFFF')
INSERT INTO Test1 VALUES(7,'GGGGG')
INSERT INTO Test1 VALUES(8,'HHHHH')
INSERT INTO Test1 VALUES(9,'IIIII')
INSERT INTO Test1 VALUES(10,'JJJJJ')
์์์ ์ ์ฒด ๋ฐฑ์ ์ ๋ฐ์ ์ํ์ด๋ฏ๋ก ์ด์ ๋ ๋ฐฉ๊ธ ์์ ํ(5๊ฐ์ ๋ ์ฝ๋ ์ถ๊ฐ) ํธ๋์ญ์ ๋ง์ ๋ณด๊ดํ๋๋ก ๋ก๊ทธ ๋ฐฑ์ ์ ๋ฐ๋๋ก ํ๊ฒ ์ต๋๋ค. (๋ฌผ๋ก ์ง๊ธ ๊ฐ์ ๊ฒฝ์ฐ๋ ์์ ์ด๋ฏ๋ก ๋ฐ์ดํฐ๋์ด ๋ง์ง ์์ ์ ์ฒด ๋ฐฑ์ ์ ๋ค์ ๋ฐ์๋ ๋์ง๋ง ์ค๋ฌด์์๋ ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ด ์์ฒญ ํฐ ๊ฒฝ์ฐ๋ผ๋ฉด ๋ก๊ทธ ๋ฐฑ์ ์ ๋ฐ๋๊ฒ ๋ ํจ์จ์ ์ผ ์ ์์ต๋๋ค.)
BACKUP LOG sqlworld TO DIsk = 'D:\sqlworld_log.bak'
๋ง์ผ ์ด ์ํ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ๋ณต๊ตฌ๋ฅผ ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์ฒ์์ ๋ฐ์ ์ ์ฒด ๋ฐฑ์ ์ Restore ํ ํ์ ๋ค์ ๋ฐ์ ๋ก๊ทธ ๋ฐฑ์ ์ Restore ํ๋ฉด ๋ฉ๋๋ค. ์ฌ๊ธฐ ๊น์ง๋ ๋๊ตฌ๋ ๋ค ์๋ ์ฌ์ค์ ๋๋ค.
3) ์ฌํ๋ฐ์
์ด์ Test1 ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ 5๊ฐ ๋ ์ถ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
INSERT INTO Test1 VALUES(11,'KKKKK')
INSERT INTO Test1 VALUES(12,'LLLLL')
INSERT INTO Test1 VALUES(13,'MMMMM')
INSERT INTO Test1 VALUES(14,'NNNNN')
INSERT INTO Test1 VALUES(15,'OOOOO')
์! ์ง๊ธ๊น์ง๋ ์ผ๋ฐ์ ์ธ ์์ ์ด ์์กฐ๋กญ๊ฒ ์งํ์ด ๋๊ณ ์๋ ์ํ์์ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ ๊ฐ ์๋ชปํด์ ์ด ์ํ์์ ๋ค์๊ณผ ๊ฐ์ ํด๋ฆฌ๋ฌธ์ ์ด์ฉํ์ฌ Test1 ํ ์ด๋ธ์ ์ ๋ถ ์ญ์ ํด ๋ฒ๋ ธ์ต๋๋ค. ์ด ๋์ ์๊ฐ์ด 2001-11-19 1:10AM ์ ๋๋ค.
DELETE FROM Test1
ํฐ์ผ ๋ฌ์ต๋๋ค!
์์ฒญ๋(?) ์์ Test1 ํ ์ด๋ธ์ด ์ ๋ถ ์ง์์ ธ ๋ฒ๋ ธ์ต๋๋ค!
4) ๋ณต๊ตฌํ๊ธฐ
์ด์ ํด์ผ ํ ์ผ์ Test1 ํ ์ด๋ธ์ ์ง์ฐ๊ธฐ์ ์ฆ 15๊ฐ์ ๋ ์ฝ๋๊ฐ ์กด์ฌํ๋ ์ํ๋ก ๋ณต๊ตฌํ๋ ๊ฒ์ ๋๋ค. ๋ค์์ ์์๋ฅผ ์ ํํ ๊ธฐ์ตํ์๊ธฐ ๋ฐ๋๋๋ค.
1) ํ์ฌ ์์ ์ ๋ก๊ทธ๋ฅผ NO_TRUNCATE ์ต์ ์ ์ด์ฉํ์ฌ ๋ฐฑ์ ๋ฐ๊ธฐ
๋ค์๊ณผ ๊ฐ์ด NO_TRUNCATE ์ต์ ์ ์ด์ฉํ์ฌ ํ์ฌ ์ํ์ ๋ก๊ทธ๋ฅผ ๋ฐฑ์ ๋ฐ์ต๋๋ค.(์ค๋ฌด์์๋ "๋ชจ๋ ์์ ์ ๋ฉ์ถ์์ค!" ๋ผ๊ณ ์ธ์น๊ณ ๋ฐฑ์ ๋ฐ์์ผ ํฉ๋๋ค)
BACKUP LOG sqlworld TO DISK = 'D:\Check.bak' WITH NO_TRUNCATE
2) ์ ์ฒด ๋ฐฑ์ Restore
์ฐ์ ์ ์ผ ๋จผ์ ๋ฐฑ์ ๋ฐ์ ์ ์ฒด ๋ฐฑ์ ์ Restoreํด์ผ ํฉ๋๋ค. ๋จ ๊ณ์ํด์ ์ถ๊ฐ์ ์ธ Restore ์์ ์ด ์ํ๋์ด์ผ ํ๋ฏ๋ก WITH NORECOVERY ์ต์ ์ ์ด์ฉํด์ผ ํฉ๋๋ค.
RESTORE DATABASE sqlworld FROM DISK = 'D:\sqlworld.bak' WITH NORECOVERY
์ด์ ์ฒ์ ๋ ์ฝ๋ 5๊ฐ๊ฐ ์ถ๊ฐ๋ ์ํ๋ก๋ ๋ณต๊ตฌ๊ฐ ๋์์ต๋๋ค. ํ์ง๋ง WITH NORECOVERY๋ฅผ ์ฌ์ฉํ์ผ๋ฏ๋ก ์์ง์ ์ ๊ทผํ ์ ์๋ ์ํ์ ๋๋ค.
3) ๋ก๊ทธ ๋ฐฑ์ Restore
์ ์ฒด ๋ฐฑ์ ํ์ 5๊ฐ์ ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ ๋ฐฑ์ ๋ฐ์ ๋ก๊ทธ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ WITH NORECOVERY ์ต์ ์ผ๋ก ๊ณ์ํด์ Restore ํด์ผ ํฉ๋๋ค.
RESTORE LOG sqlworld FROM DISK = 'D:\sqlworld_log.bak' WITH NORECOVERY
์ด์ ์ฒ์ ๋ ์ฝ๋ 5๊ฐ๋ฅผ ํฌํจํด์ ์๋ก ์ถ๊ฐ๋ 5๊ฐ์ ๋ ์ฝ๋ ๊น์ง๋ ๋ณต๊ตฌ๊ฐ ๋ ์ ์ ๋๋ค. ํ์ง๋ง WITH NORECOVERY๋ฅผ ์ฌ์ฉํ์ผ๋ฏ๋ก ์ฌ์ ํ ์ ๊ทผํ ์ ์๋ ์ํ์ ๋๋ค
4) STOPAT์ ์ด์ฉํ ํน์ ์์ ๊น์ง์ ๋ก๊ทธ ๋ฐฑ์ Restore
๋ฌธ์ ๋ฐ์ํ ๋ฐฑ์ ๋ฐ์ ๋ก๊ทธ ์์๋ ์๋กญ๊ฒ ์ถ๊ฐ๋ 5๊ฐ์ ๋ ์ฝ๋์ ๋ํ ์์ ๊ณผ ํจ๊ป ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ง์ด ์์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ง์ด ์์ ๋ฐ๋ก ์ด์ ๊น์ง๋ง Restore๋ฅผ ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ์ฌ์ฉ๋๋ ๊ฒ์ด STOPAT ์ด๋ผ๋ ์ต์ ์ ๋๋ค.
์ด ์ต์ ์ ์ด์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ง์ ๋ 2001-11-19 1:10AM ์ด์ ๊น์ง๋ง Restore ํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋์ 2001-11-19 01:09 ๊น์ง๋ง Restore ํ๊ฒ ์ต๋๋ค.
RESTORE LOG sqlworld FROM DISK = 'D:\Check.bak'
WITH RECOVERY, STOPAT = '2001-11-19 01:09'
๊ทธ๋ฆฌ๊ณ WITH RECOVERY ์ต์ ์ ์ฌ์ฉํ ์ด์ ๋ Restore๊ฐ ๋ค ๋๋ฌ์ผ๋ฏ๋ก ์ฌ์ฉ์๊ฐ ์ ๊ทผ ํ ์ ์๊ฒ ํ๊ธฐ ์ํจ ์ ๋๋ค.
์ด๋ ๊ฒ ํด์ ์ฐ๋ฆฌ๋ ์๋ฒฝํ๊ฒ ํ ์ด๋ธ์ด ์ง์์ง๊ธฐ ๋ฐ๋ก ์ ๊น์ง๋ฅผ ๋ณต๊ตฌ ํ ์ ์์์ต๋๋ค.
5) ์ ๋ฆฌ
์ ๋ด์ฉ์ ์ง์ ์ํํด์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ๊ทธ๋ ์ง ์๊ณ ์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์ ๋ณต๊ตฌ ์์ ์ ํ๋ ค๊ณ ํ๋ฉด ์์ ๋ถ์ ํ๊ฒ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง์ ๋ถ๋ค์ด ๋ฐฑ์ ์ ๋ฐ์ ์ค ์๋๋ฐ ์ ์ ์ค์ํ ๋ณต๊ตฌ๋ ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๋ฌผ๋ก ๋ณต๊ตฌํ ์ผ์ด ์๋๋ฐ ์ ์ผ ์ข์ง๋ง ๋ง์ผ์ ๊ฒฝ์ฐ์ ๋๋นํด์ ์ฐ์ตํด ๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฑ์ ๋ฐ์ ๋ฐ์ดํฐ๋ ์์ ํ๊ฒ ๋ณด๊ด์ ํ๊ณ ์์ด์ผ ํฉ๋๋ค. ์๋ฌด๋ฆฌ ๋ณต๊ตฌ ๋ฐฉ๋ฒ์ ์ ์๋ค๊ณ ํด๋ ๋ฐฑ์ ๋ฐ์ ๋ฐ์ดํฐ๊ฐ ์์์ด ๋ ์ํ๋ผ๋ฉด ์๋ฌด ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์๋ชป๋ ํธ๋์ ์ ์ผ๋ก ์ธํ์ฌ ๊ทธ ์ด์ ์ ์ํ๋ก ๋ณต๊ตฌํด์ผ ํ๋ ํ์์ฑ์ ๋๋ผ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์๋ชปํด์ ํ ์ด๋ธ์ ์ ๋ถ ์ง์๋ฒ๋ฆฐ ๊ฒฝ์ฐ ๊ทธ ์ด์ ์ํ๋ก ๋ณต๊ตฌํ๊ฑฐ๋ ์๋๋ฉด ์์์ ์ผ๋ก ์ ๋ ฅํด์ผ ํฉ๋๋ค.
๋ก๊ทธ ๋ฐฑ์ ์ ์ด์ฉํ์ฌ ํน์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๊ฐ๋ ์ด๋ฐ ์ง๋ฌธ์ ๋ฐ์ต๋๋ค.
"ํฐ์ผ ๋ฌ์ด์. ์๋ชปํด์ ํ ์ด๋ธ์ ๋ค ์ง์๋ฒ๋ ธ๊ฑฐ๋ ์. ์ด๊ฑฐ ๋ณต๊ตฌํ์ง ๋ชปํ๋ฉด ์ ์งค๋ ค์. ์ ๋ฐ ์ด๋ ค์ฃผ์ธ์.."
์ ๋ ์์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๊ฒฝํํ ์ ์ด ์์์ต๋๋ค. ๋ถ๋ช ํ SELECT๋ฅผ ํ๋ ค๋ ์๊ฐ์ผ๋ก ์ฟผ๋ฆฌ๋ฌธ์ ๋ ๋ ธ๋๋ฐ ์๋ฟ์ฌ, ์ ๊ฐ ์ํํ ์ฟผ๋ฆฌ๋ฌธ์ SELECT ๋ฌธ์ด ์๋๊ณ DELETE ๋ฌธ์ด์์ต๋๋ค. ์ฐธ์ผ๋ก ํฉ๋นํ๋๊ตฐ์.
SQL ์๋ฒ์์๋ ํธ๋์ญ์ ๋ก๊ทธ ๋ฐฑ์ ์ ์ด์ฉํ์ฌ ํน์ ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต๊ตฌํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์์ ๊ฐ์ด ํ ์ด๋ธ์ ์ ๋ถ ์ง์๋ฒ๋ ธ์ผ๋ฉด ์ง์ฐ๊ธฐ ๋ฐ๋ก ์ด์ ์ํ๋ก ๋ณต๊ตฌํ๋ฉด ๋ชจ๋ ๋ฌธ์ ๋ ํด๊ฒฐ์ด ๋ฉ๋๋ค. ๋ฌผ๋ก ์ด์ ๊ฐ์ ๋ณต๊ตฌ ์์ ์ด ํญ์ ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ด ๋ง์กฑ๋ ์ํ์ฌ์ผ ํฉ๋๋ค.
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฑ์ ๋ชจ๋ธ์ด "์ต๋" ์ฌ์ผ ํฉ๋๋ค.
โก ์ ์ฒด ๋ฐฑ์ ์ ๋ฐ์ ์ํ์ฌ์ผ ํฉ๋๋ค.
โข ์ด์ ์ ๋ก๊ทธ๋ฐฑ์ ์ด ์๋ค๋ฉด ์์ ํ๊ฒ ๋ณด๊ด๋ ์ํ์ฌ์ผ ํฉ๋๋ค.
์ง๊ธ ๋ถํฐ์ ๋ณต๊ตฌ ์์ ๋ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์ด๋ฃจ์ด ์ง๋๋ค.
o ์์ ํ ์ด๋ธ ๋ง๋ค๊ธฐ
o ํ ์ด๋ธ์ 5๊ฐ์ ๋ ์ฝ๋ ์ถ๊ฐ
o ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด ๋ฐฑ์
o ํ ์ด๋ธ์ 5๊ฐ์ ๋ ์ฝ๋ ์ถ๊ฐ
o ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๊ทธ ๋ฐฑ์
o ํ ์ด๋ธ์ 5๊ฐ์ ๋ ์ฝ๋ ์ถ๊ฐ
o ํ ์ด๋ธ ์ญ์ (๋ฌธ์ ๋ฐ์)
o ํ ์์ ์ ๋ก๊ทธ ๋ฐฑ์
o ์ ์ฒด๋ฐฑ์ Restore
o ๊ธฐ์กด ๋ก๊ทธ ๋ฐฑ์ Restore
o ๋ฌธ์ ๋ฐ์ํ ๋ฐฑ์ ๋ฐ์ ๋ก๊ทธ Restore(ํ ์ด๋ธ์ ์ง์ฐ๊ธฐ ์ ๊น์ง๋ง)
๋จ, ์์ ์ ์ฌ์ฉ๋๋ sqlworld ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณต๊ตฌ๋ชจ๋ธ์ "์ต๋" ์ ๋๋ค.
1) ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด ๋ฐฑ์
์ฐ์ Test1 ์ด๋ผ๋ ์์ ํ ์ด๋ธ์ ๋ง๋ค๊ณ ๋ ์ฝ๋ 5๊ฐ๋ฅผ ์ถ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
CREATE TABLE Test1
(
col1 int,
col2 char(05)
)
GO
INSERT INTO Test1 VALUES(1,'AAAAA')
INSERT INTO Test1 VALUES(2,'BBBBB')
INSERT INTO Test1 VALUES(3,'CCCCC')
INSERT INTO Test1 VALUES(4,'DDDDD')
INSERT INTO Test1 VALUES(5,'EEEEE')
์ด์ ์ง๊ธ ์ํ์ sqlworld ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ์ฒด ๋ฐฑ์ ๋ฐ๋๋ก ํ๊ฒ ์ต๋๋ค.
BACKUP DATABASE sqlworld TO DISK = 'D:\sqlworld.bak'
์ ์ ์ฒด ๋ฐฑ์ ์ผ๋ก ์ธํด ์ฐ๋ฆฌ๋ ์ด๋ค ์ฌํ๊ฐ ๋ฐ์ํ๋๋ผ๋ Test1 ํ ์ด๋ธ์ 5๊ฐ์ ๋ ์ฝ๋๊ฐ ์ถ๊ฐ๋ ์ํ๋ก ๋ณต๊ตฌ๋ฅผ ํ ์ ์์ต๋๋ค.(๋น์ฐํ์ฃ )
2) ๋ก๊ทธ๋ฐฑ์
์ด์ Test1 ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ 5๊ฐ ๋ ์ถ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
INSERT INTO Test1 VALUES(6,'FFFFF')
INSERT INTO Test1 VALUES(7,'GGGGG')
INSERT INTO Test1 VALUES(8,'HHHHH')
INSERT INTO Test1 VALUES(9,'IIIII')
INSERT INTO Test1 VALUES(10,'JJJJJ')
์์์ ์ ์ฒด ๋ฐฑ์ ์ ๋ฐ์ ์ํ์ด๋ฏ๋ก ์ด์ ๋ ๋ฐฉ๊ธ ์์ ํ(5๊ฐ์ ๋ ์ฝ๋ ์ถ๊ฐ) ํธ๋์ญ์ ๋ง์ ๋ณด๊ดํ๋๋ก ๋ก๊ทธ ๋ฐฑ์ ์ ๋ฐ๋๋ก ํ๊ฒ ์ต๋๋ค. (๋ฌผ๋ก ์ง๊ธ ๊ฐ์ ๊ฒฝ์ฐ๋ ์์ ์ด๋ฏ๋ก ๋ฐ์ดํฐ๋์ด ๋ง์ง ์์ ์ ์ฒด ๋ฐฑ์ ์ ๋ค์ ๋ฐ์๋ ๋์ง๋ง ์ค๋ฌด์์๋ ์ ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ด ์์ฒญ ํฐ ๊ฒฝ์ฐ๋ผ๋ฉด ๋ก๊ทธ ๋ฐฑ์ ์ ๋ฐ๋๊ฒ ๋ ํจ์จ์ ์ผ ์ ์์ต๋๋ค.)
BACKUP LOG sqlworld TO DIsk = 'D:\sqlworld_log.bak'
๋ง์ผ ์ด ์ํ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ๋ณต๊ตฌ๋ฅผ ํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์ฒ์์ ๋ฐ์ ์ ์ฒด ๋ฐฑ์ ์ Restore ํ ํ์ ๋ค์ ๋ฐ์ ๋ก๊ทธ ๋ฐฑ์ ์ Restore ํ๋ฉด ๋ฉ๋๋ค. ์ฌ๊ธฐ ๊น์ง๋ ๋๊ตฌ๋ ๋ค ์๋ ์ฌ์ค์ ๋๋ค.
3) ์ฌํ๋ฐ์
์ด์ Test1 ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ 5๊ฐ ๋ ์ถ๊ฐํ๋๋ก ํ๊ฒ ์ต๋๋ค.
INSERT INTO Test1 VALUES(11,'KKKKK')
INSERT INTO Test1 VALUES(12,'LLLLL')
INSERT INTO Test1 VALUES(13,'MMMMM')
INSERT INTO Test1 VALUES(14,'NNNNN')
INSERT INTO Test1 VALUES(15,'OOOOO')
์! ์ง๊ธ๊น์ง๋ ์ผ๋ฐ์ ์ธ ์์ ์ด ์์กฐ๋กญ๊ฒ ์งํ์ด ๋๊ณ ์๋ ์ํ์์ ๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ ๊ฐ ์๋ชปํด์ ์ด ์ํ์์ ๋ค์๊ณผ ๊ฐ์ ํด๋ฆฌ๋ฌธ์ ์ด์ฉํ์ฌ Test1 ํ ์ด๋ธ์ ์ ๋ถ ์ญ์ ํด ๋ฒ๋ ธ์ต๋๋ค. ์ด ๋์ ์๊ฐ์ด 2001-11-19 1:10AM ์ ๋๋ค.
DELETE FROM Test1
ํฐ์ผ ๋ฌ์ต๋๋ค!
์์ฒญ๋(?) ์์ Test1 ํ ์ด๋ธ์ด ์ ๋ถ ์ง์์ ธ ๋ฒ๋ ธ์ต๋๋ค!
4) ๋ณต๊ตฌํ๊ธฐ
์ด์ ํด์ผ ํ ์ผ์ Test1 ํ ์ด๋ธ์ ์ง์ฐ๊ธฐ์ ์ฆ 15๊ฐ์ ๋ ์ฝ๋๊ฐ ์กด์ฌํ๋ ์ํ๋ก ๋ณต๊ตฌํ๋ ๊ฒ์ ๋๋ค. ๋ค์์ ์์๋ฅผ ์ ํํ ๊ธฐ์ตํ์๊ธฐ ๋ฐ๋๋๋ค.
1) ํ์ฌ ์์ ์ ๋ก๊ทธ๋ฅผ NO_TRUNCATE ์ต์ ์ ์ด์ฉํ์ฌ ๋ฐฑ์ ๋ฐ๊ธฐ
๋ค์๊ณผ ๊ฐ์ด NO_TRUNCATE ์ต์ ์ ์ด์ฉํ์ฌ ํ์ฌ ์ํ์ ๋ก๊ทธ๋ฅผ ๋ฐฑ์ ๋ฐ์ต๋๋ค.(์ค๋ฌด์์๋ "๋ชจ๋ ์์ ์ ๋ฉ์ถ์์ค!" ๋ผ๊ณ ์ธ์น๊ณ ๋ฐฑ์ ๋ฐ์์ผ ํฉ๋๋ค)
BACKUP LOG sqlworld TO DISK = 'D:\Check.bak' WITH NO_TRUNCATE
2) ์ ์ฒด ๋ฐฑ์ Restore
์ฐ์ ์ ์ผ ๋จผ์ ๋ฐฑ์ ๋ฐ์ ์ ์ฒด ๋ฐฑ์ ์ Restoreํด์ผ ํฉ๋๋ค. ๋จ ๊ณ์ํด์ ์ถ๊ฐ์ ์ธ Restore ์์ ์ด ์ํ๋์ด์ผ ํ๋ฏ๋ก WITH NORECOVERY ์ต์ ์ ์ด์ฉํด์ผ ํฉ๋๋ค.
RESTORE DATABASE sqlworld FROM DISK = 'D:\sqlworld.bak' WITH NORECOVERY
์ด์ ์ฒ์ ๋ ์ฝ๋ 5๊ฐ๊ฐ ์ถ๊ฐ๋ ์ํ๋ก๋ ๋ณต๊ตฌ๊ฐ ๋์์ต๋๋ค. ํ์ง๋ง WITH NORECOVERY๋ฅผ ์ฌ์ฉํ์ผ๋ฏ๋ก ์์ง์ ์ ๊ทผํ ์ ์๋ ์ํ์ ๋๋ค.
3) ๋ก๊ทธ ๋ฐฑ์ Restore
์ ์ฒด ๋ฐฑ์ ํ์ 5๊ฐ์ ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ ๋ฐฑ์ ๋ฐ์ ๋ก๊ทธ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ WITH NORECOVERY ์ต์ ์ผ๋ก ๊ณ์ํด์ Restore ํด์ผ ํฉ๋๋ค.
RESTORE LOG sqlworld FROM DISK = 'D:\sqlworld_log.bak' WITH NORECOVERY
์ด์ ์ฒ์ ๋ ์ฝ๋ 5๊ฐ๋ฅผ ํฌํจํด์ ์๋ก ์ถ๊ฐ๋ 5๊ฐ์ ๋ ์ฝ๋ ๊น์ง๋ ๋ณต๊ตฌ๊ฐ ๋ ์ ์ ๋๋ค. ํ์ง๋ง WITH NORECOVERY๋ฅผ ์ฌ์ฉํ์ผ๋ฏ๋ก ์ฌ์ ํ ์ ๊ทผํ ์ ์๋ ์ํ์ ๋๋ค
4) STOPAT์ ์ด์ฉํ ํน์ ์์ ๊น์ง์ ๋ก๊ทธ ๋ฐฑ์ Restore
๋ฌธ์ ๋ฐ์ํ ๋ฐฑ์ ๋ฐ์ ๋ก๊ทธ ์์๋ ์๋กญ๊ฒ ์ถ๊ฐ๋ 5๊ฐ์ ๋ ์ฝ๋์ ๋ํ ์์ ๊ณผ ํจ๊ป ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ง์ด ์์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ง์ด ์์ ๋ฐ๋ก ์ด์ ๊น์ง๋ง Restore๋ฅผ ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ์ฌ์ฉ๋๋ ๊ฒ์ด STOPAT ์ด๋ผ๋ ์ต์ ์ ๋๋ค.
์ด ์ต์ ์ ์ด์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ง์ ๋ 2001-11-19 1:10AM ์ด์ ๊น์ง๋ง Restore ํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋์ 2001-11-19 01:09 ๊น์ง๋ง Restore ํ๊ฒ ์ต๋๋ค.
RESTORE LOG sqlworld FROM DISK = 'D:\Check.bak'
WITH RECOVERY, STOPAT = '2001-11-19 01:09'
๊ทธ๋ฆฌ๊ณ WITH RECOVERY ์ต์ ์ ์ฌ์ฉํ ์ด์ ๋ Restore๊ฐ ๋ค ๋๋ฌ์ผ๋ฏ๋ก ์ฌ์ฉ์๊ฐ ์ ๊ทผ ํ ์ ์๊ฒ ํ๊ธฐ ์ํจ ์ ๋๋ค.
์ด๋ ๊ฒ ํด์ ์ฐ๋ฆฌ๋ ์๋ฒฝํ๊ฒ ํ ์ด๋ธ์ด ์ง์์ง๊ธฐ ๋ฐ๋ก ์ ๊น์ง๋ฅผ ๋ณต๊ตฌ ํ ์ ์์์ต๋๋ค.
5) ์ ๋ฆฌ
์ ๋ด์ฉ์ ์ง์ ์ํํด์ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค. ๊ทธ๋ ์ง ์๊ณ ์ค์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์ ๋ณต๊ตฌ ์์ ์ ํ๋ ค๊ณ ํ๋ฉด ์์ ๋ถ์ ํ๊ฒ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง์ ๋ถ๋ค์ด ๋ฐฑ์ ์ ๋ฐ์ ์ค ์๋๋ฐ ์ ์ ์ค์ํ ๋ณต๊ตฌ๋ ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
๋ฌผ๋ก ๋ณต๊ตฌํ ์ผ์ด ์๋๋ฐ ์ ์ผ ์ข์ง๋ง ๋ง์ผ์ ๊ฒฝ์ฐ์ ๋๋นํด์ ์ฐ์ตํด ๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐฑ์ ๋ฐ์ ๋ฐ์ดํฐ๋ ์์ ํ๊ฒ ๋ณด๊ด์ ํ๊ณ ์์ด์ผ ํฉ๋๋ค. ์๋ฌด๋ฆฌ ๋ณต๊ตฌ ๋ฐฉ๋ฒ์ ์ ์๋ค๊ณ ํด๋ ๋ฐฑ์ ๋ฐ์ ๋ฐ์ดํฐ๊ฐ ์์์ด ๋ ์ํ๋ผ๋ฉด ์๋ฌด ์๋ฏธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
728x90
LIST
'MS-SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ms-sql 0์ผ๋ก ๋๋๊ธฐ ์ค๋ฅํด๊ฒฐ๋ฒ (0) | 2012.05.09 |
---|---|
2000์์ ๋ฐฑ์ ํ๊ณ 2005์์ ... (0) | 2010.05.19 |
์์ ์์ Insert๋ฌธ ๋งน๊ธ๊ธฐ (0) | 2010.05.13 |
ํ๋ฐ์ดํ replace (1) | 2008.08.21 |
Select Insert ์ธ์ํธ๋ฌธ ์์ฑ ์ฟผ๋ฆฌ (0) | 2008.08.08 |
๋๊ธ
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- ์น์์ด์ ์
- jQuery
- ๊ฒฝ์ ์ฉ์ด
- php
- Java
- ์นด๋ฐ์จ๋ผ์ธ
- Ajax
- ๊ธฐํ
- ๋ณต๊ทผ์ด๋
- ๋ด๋๋ด์ฐ
- ๋ฉ๋ฐฐํ
- JSP
- ์๋ธ๋ฆฟ
- JS
- 2ne1
- MySQL
- ์ธํจ์ด
- Servlet
- JSON
- asp
- ์๋ฆฌ
- JavaScript
- JSTL
- EL
- ์์์ฌ์ด๋
- ์๋ฐ์คํฌ๋ฆฝํธ
- 8๋ง์ผ
- I Don't Care
- ๋์ค
- ํจ์
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
๊ธ ๋ณด๊ดํจ
250x250