2017. 4. 10. 10:52

[알림] SQL 업그레이드 패치 후 CDC 버그 - SQL 2012, SQL 2014, SQL2016 버전


일부 버전에서 CU 버전 으로 업그레이드 후 CDC의 변경 테이블에 업데이트 행의 순서대로 정렬되어야 하는데 잘 못 정렬이 되어 데이터 변경 반영이 잘 못 될 수 있는 버그가 발견 되었습니다.

해당 버그는 2017.03.22일에 최종 패치가 되었으며 관련 하여모든 누적 패치 파일이 수정되었습니다

 

현재는 CDC를 사용하고 있지 않지만.  사용하는 서버가 있다면 예전에 받아 업그레이 된 버전이 잘 못 된 것이기 때문에  추가로 누적 업데이트 버전을 설치해야 문제가 해결 됩니다

관련 설명 :

https://blogs.msdn.microsoft.com/sql_server_team/cdc-functionality-may-break-after-upgrading-to-the-latest-cu-for-sql-server-2012-2014-and-2016/?utm_source=Brent+Ozar+Unlimited%C2%AE+List&utm_campaign=228cf805e8-Weekly_Links_2017_04_09&utm_medium=email&utm_term=0_8e3e861dd9-228cf805e8-296468997&goal=0_8e3e861dd9-228cf805e8-296468997&mc_cid=228cf805e8&mc_eid=00ebe8618a

 


조짐

Microsoft SQL Server 2012, 2014 또는 2016 데이터베이스에 대해 변경 데이터 캡처  사용하도록 설정 하면 변경 테이블  __ $ 작업 열이 업데이트 된 행에 대해 잘못 정렬 될 수 있습니다행을 업데이트하면 변경 테이블에 __ $ 작업 에 대한 삭제 및 삽입과 함께 두 개의 행이 있습니다 . 그러나 삽입 작업이 예기치 않게 삭제 작업 전에 나타날 수 있습니다응용 프로그램이 기본 키 제약 조건을 사용하여 행을 다른 테이블에 다시 적용하면 다음 기본 키 위반이 발생할 수 있습니다.
 

메시지 2627, 수준 14, 상태 1,  6 PRIMARY KEY 제약 조건 ' Primary_Key_name '. ' table_name ' 개체에 중복 키를 삽입 할 수 없습니다 . 중복 키 값은 (  )입니다.

 

 

https://support.microsoft.com/en-us/help/3030352/fix-the-change-table-is-ordered-incorrectly-for-updated-rows-after-you

 

 

 


2016. 11. 29. 14:47

Check Point 와 활성 로그

MSDN에 참고 


  • https://msdn.microsoft.com/en-us/library/ms189573(v=sql.105).aspx


Database Checkpoints (SQL Server)

  • https://msdn.microsoft.com/en-us/library/ms189573.aspx

CHECKPOINT vs LAZY WRITER

  • http://blog.sqlxdetails.com/checkpoint-vs-lazy-writer/


2016. 9. 2. 18:05

Admin::Mini dump 추출 방법

미니 덤프의 추출을 요청 드리며, 해당 방법에 대하여 다음과 같이 안내 드립니다.

A.      CTRL + ALT + DELETE를 눌러서 작업 관리자를 open

B.      프로세스 Tab을 선택

C.      모든 사용자의 프로세스 표시를 선택 하고, 보기 메뉴에서 열 선택에서 PID(프로세스 식별자)를 선택

D.     sqlservr.exe application process ID를 확인

1)     * SQL Errorlog에서 확인 하는 방법은 다음과 같습니다.

2016-08-13 08:03:24.49 spid257     (c) Microsoft Corporation.

2016-08-13 08:03:24.49 spid257     All rights reserved.

2016-08-13 08:03:24.49 spid257     Server process ID is 9136.

 

E.      cmd 창에서 다음 폴더로 이동.

F.      SQLServerInstallDrive:\Program Files\Microsoft SQL Server\100\Shared

G.      해당 폴더에 sqldumper.exe, dbghelp.dll 파일이 있는지 확인.

H.     다음의 명령어를 실행.

Mini dump 수집일 경우 : Sqldumper.exe ProcessID 0 0x0120:40

 

Ex) process ID 9136일 경우 다음과 같이 실행합니다.

Sqldumper.exe 9136  0 0x0120:40

I.       같은 폴더에 현재 날짜로 만들 어진 .mdmp 파일을 보내 주시면 됩니다


2015. 12. 28. 15:26

성능 Counter - Disk Transfers/sec (Disk Reads/sec, Disk Writes/sec)


 SQL Performance Baseline Template v0.docx



1.     성능 Counter

http://blogs.technet.com/b/askcore/archive/2012/03/16/windows-performance-monitor-disk-counters-explained.aspx

 

Disk Transfers/sec (Disk Reads/sec, Disk Writes/sec) 


Perfmon captures the total number of individual disk IO requests completed over a period of one second.

If the Perfmon capture interval is set for anything greater than one second, the average of the values captured is presented. 
Disk Reads/sec and Disk Writes/sec are calculated in the same way, but break down the results in read requests only or write requests only, respectively.

 

1 기간에 걸쳐 요청에 대한 완료된 개별 Disk I/O 수집 간격이 설정되어 있지 않으면 평균을 이미 한다.

디스크 초당 읽기, 쓰기도 같은 방법이다.

 

Avg. Disk Bytes/Transfer (Avg. Disk Bytes/Read, Avg. Disk Bytes/Write) 
Displays the average size of the individual disk requests (IO size) in bytes, for the capture interval.

Example: If the system had ninety nine IO requests of 8K and one IO request of 2048K, the average will be 28.4K. Calculation = (8k*99) + (1*2048k) / 100 
The Avg. Disk Bytes/Read and Avg. Disk Bytes/Write counters break down the results showing the average size for only read requests or only write requests, respectively. 

 

수집된 간격의 바이트의 개발 디스크 요청의 평균 크기이다.

) 8K 99번의 요청과  2048K 하나의 IO 요청이 있었다면

(8k*99) + (1*1024) /100 =    부근에 있다.




Avg. Disk sec/Transfer (Avg. Disk sec/Read, Avg. Disk sec/Write) 
Displays the average time the disk transfers took to complete, in seconds.

Although the scale is seconds, the counter has millisecond precision, meaning a value of 0.004 indicates the average time for disk transfers to complete was 4 milliseconds. 
This is the counter in Perfmon used to measure IO latency. 
I wrote a blog specifically about measuring latency with Perfmon. For details got to “Measuring Disk Latency with Windows Performance Monitor”. 

 

           디스크에 전송하는데 완료한 초에 대한 평균 시간이다.

          스케일은 초 이지만 카운터의 값이 0.004의 값을 완료 하는데 4밀리초로 하였고, 완료하기 까지 평균 시간을 갖는다.

           이 카운터는 IO 대기 시간을 측정하는데 사용된다.

 

디스크 지연에 대한 블로깅 : http://blogs.technet.com/b/askcore/archive/2012/02/07/measuring-disk-latency-with-windows-performance-monitor-perfmon.aspx

 

SQLServer:Buffer Manager\Readahead pages/sec

 미리 읽기 수 , 디스크에서 읽어서 Buffer pool로 미리 읽어 오는 작업

(SQL 서버의 저장소 엔진은 성능 최적화 메커니즘라는 이름의 미리 읽기 (짧은 RA)를 지원합니다. 그 목적은 쿼리 실행 계획을 이행하는 데 필요한 데이터 및 인덱스 페이지를 예상하고 실제로 쿼리에 의해 사용되기 전에 버퍼 풀 (캐시)에 해당 페이지를 가져오고있다. 이 계산을 할 수 있습니다 및 I / O CPU와 디스크를 모두 최대한 활용 하기 위해 )

 

 이 수치가 높으면 디스크 액세스 속도를 개선 하여 성능을 향상 시킬 수 있습니다필요 한 것 보다 더 많이 읽지 않도록 성능을 개선 할 수 있다.

테이블 스캔을 줄이기 위해 인덱스를 다시 생성 한다.

 

SQL Server:Buffer Manager

Readahead/sec

Number of pages read in anticipation of use. If this value is makes up

even a sizeable minority of total Page Reads/sec

(say, greater than 20% of total page reads), you may have too many physical reads occurring.

< 20% of

Page Reads/

sec

 

         참고 ) http://www.sqlshack.com/

http://blogs.technet.com/b/askcore/archive/2012/03/16/windows-performance-monitor-disk-counters-explained.aspx

 

Disk Transfers/sec (Disk Reads/sec, Disk Writes/sec) 
Perfmon captures the total number of individual disk IO requests completed over a period of one second.

If the Perfmon capture interval is set for anything greater than one second, the average of the values captured is presented. 
Disk Reads/sec and Disk Writes/sec are calculated in the same way, but break down the results in read requests only or write requests only, respectively.

 

1 기간에 걸쳐 요청에 대한 완료된 개별 Disk I/O 수집 간격이 설정되어 있지 않으면 평균을 이미 한다.

디스크 초당 읽기, 쓰기도 같은 방법이다.

 

Avg. Disk Bytes/Transfer (Avg. Disk Bytes/Read, Avg. Disk Bytes/Write) 
Displays the average size of the individual disk requests (IO size) in bytes, for the capture interval.

Example: If the system had ninety nine IO requests of 8K and one IO request of 2048K, the average will be 28.4K. Calculation = (8k*99) + (1*2048k) / 100 
The Avg. Disk Bytes/Read and Avg. Disk Bytes/Write counters break down the results showing the average size for only read requests or only write requests, respectively. 

 

수집된 간격의 바이트의 개발 디스크 요청의 평균 크기이다.

) 8K 99번의 요청과  2048K 하나의 IO 요청이 있었다면

(8k*99) + (1*1024) /100 =    부근에 있다.




Avg. Disk sec/Transfer (Avg. Disk sec/Read, Avg. Disk sec/Write) 
Displays the average time the disk transfers took to complete, in seconds.

Although the scale is seconds, the counter has millisecond precision, meaning a value of 0.004 indicates the average time for disk transfers to complete was 4 milliseconds. 
This is the counter in Perfmon used to measure IO latency. 
I wrote a blog specifically about measuring latency with Perfmon. For details got to “Measuring Disk Latency with Windows Performance Monitor”. 

 

           디스크에 전송하는데 완료한 초에 대한 평균 시간이다.

          스케일은 초 이지만 카운터의 값이 0.004의 값을 완료 하는데 4밀리초로 하였고, 완료하기 까지 평균 시간을 갖는다.

           이 카운터는 IO 대기 시간을 측정하는데 사용된다.

 

디스크 지연에 대한 블로깅 : http://blogs.technet.com/b/askcore/archive/2012/02/07/measuring-disk-latency-with-windows-performance-monitor-perfmon.aspx

 

SQLServer:Buffer Manager\Readahead pages/sec

 미리 읽기 수 , 디스크에서 읽어서 Buffer pool로 미리 읽어 오는 작업

(SQL 서버의 저장소 엔진은 성능 최적화 메커니즘라는 이름의 미리 읽기 (짧은 RA)를 지원합니다. 그 목적은 쿼리 실행 계획을 이행하는 데 필요한 데이터 및 인덱스 페이지를 예상하고 실제로 쿼리에 의해 사용되기 전에 버퍼 풀 (캐시)에 해당 페이지를 가져오고있다. 이 계산을 할 수 있습니다 및 I / O CPU와 디스크를 모두 최대한 활용 하기 위해 )

 

 이 수치가 높으면 디스크 액세스 속도를 개선 하여 성능을 향상 시킬 수 있습니다필요 한 것 보다 더 많이 읽지 않도록 성능을 개선 할 수 있다.

테이블 스캔을 줄이기 위해 인덱스를 다시 생성 한다.

 

SQL Server:Buffer Manager

Readahead/sec

Number of pages read in anticipation of use. If this value is makes up

even a sizeable minority of total Page Reads/sec

(say, greater than 20% of total page reads), you may have too many physical reads occurring.

< 20% of

Page Reads/

sec

 

         참고 ) http://www.sqlshack.com/

'Common Admin' 카테고리의 다른 글

Check Point 와 활성 로그  (0) 2016.11.29
Admin::Mini dump 추출 방법  (0) 2016.09.02
TokenAndPermUserStore  (0) 2015.05.18
Database Landscape map – February 2013  (0) 2013.03.13
2015. 5. 18. 13:55

TokenAndPermUserStore


SpinLock , 많은 로그인 생성 등으로 쿼리가 늦어 지는 경우 발생
사이즈 조사하여  작업을 해 줄 필요가 있다.
DBCC FREESYSTEMCACHE ('TokenAndPermUserStore')
GO


SELECT

[type],

[name],

cache_address,

buckets_count,

buckets_in_use_count

FROM sys.dm_os_memory_cache_hash_tables

WHERE [type] = 'TokenAndPermUserStore';

 

-- SQL 2012

SELECT

[name],

sum(pages_kb)/1024 MB

FROM sys.dm_os_memory_clerks

WHERE type = 'USERSTORE_TOKENPERM' and pages_kb > 8

GROUP BY name;

 

-- SQL 2008

SELECT SUM(single_pages_kb + multi_pages_kb) AS "CurrentSizeOfTokenCache(kb)"

FROM sys.dm_os_memory_clerks

WHERE name = 'TokenAndPermUserStore'

 

-- 어떤 내용들이 있는지 

SELECT COUNT(*) as TokenCount, *

FROM

(SELECT

x.value('(//@name)[1]', 'varchar (100)') AS [Token Name],

x.value('(//@class)[1]', 'bigint') AS [Class],

x.value('(//@subclass)[1]', 'int') AS [SubClass]

FROM

(SELECT CAST (entry_data as xml)

FROM sys.dm_os_memory_cache_entries

WHERE type = 'USERSTORE_TOKENPERM')

AS R(x)

) a

GROUP BY [Token Name],[Class],[SubClass]

2013. 3. 13. 22:13

Database Landscape map – February 2013



펌 : http://blogs.the451group.com/information_management/2013/02/04/updated-database-lanscape-map-february-2013/

   Update 된 Database Map 입니다. 






  

'Common Admin' 카테고리의 다른 글

성능 Counter - Disk Transfers/sec (Disk Reads/sec, Disk Writes/sec)  (1) 2015.12.28
TokenAndPermUserStore  (0) 2015.05.18
SQL Server tempdb 복구  (0) 2013.01.08
tablediff 유틸리티  (0) 2012.11.01
2013. 1. 8. 18:26

SQL Server tempdb 복구

tempdb 복구

tempdb SQL Server에서 정렬, GROUP BY를 사용한 집계, 커서 사용, 임시테이블 및 테

이블변수 사용, 일부 JOIN, SORT_IN_TEMPDB 옵션을 사용한 인덱스 생성, 데이터베이스

의 복구 작업 등에서 사용됩니다. 따라서, 손상 시에는 이와 같은 작업들을 진행할 수 없게

됩니다. tempdb의 손상 시 tempdb를 사용하는 작업은 다음과 같이 913 오류를 발생하며

정상적으로 실행되지 않습니다.

 

또한, tempdb size나 경로를 잘못 설정하여 SQL Server가 시작 시 정상 상태가 아닐 경우도 문제가 발생합니다.

 

tempdb가 주의 대상일 경우 재 시작 만으로 복구되기도 하지만 아닐 경우도 있습니다.

이럴 경우 최소 로그 이면서 tempdb skip 하면서 SQL 서버를 수동으로 시작 해야 합니다.

 

1.     명령 프론트를 실행하고 SQL Sever 실행된 경로로 이동 한다.


2.     tempdb 없이 실행하는 추적플래그 –T3609,  자동으로 실행하는 저장 프로시저를 실행하지 않게 하는 플래그 –T4022로 실행합니다.


3.     경우에 따라 최소 옵션인 –f도 포함합니다. , -m : 단일 사용자 모드  

실행하는 명령창은 닫지 말고 그대로 둡니다.


Sqlservr.exe c –f –m –T3609 –T4022

net start MSSQLSERVER  /f /c /m /T 3609 /T4022

 

4.     경로가 잘 못 되었거나, size가 잘 못 되었을 경우 정보를 Alter database  구문을 통해 수정 합니다.


5.     SQL Server 2000 이하의 경우 주의 대상을 정상 상태로 변경 하기 위해서

exec sp_resetstatus ‘tempdb’

명령으로 강제로 복원 할 수도 있습니다.


6.     3번의 실행 명령창에 Ctrl + c를 입력한 다음 “Y” 키를 눌러 SQL Server를 종료후 정상적으로 서비스를 기동 합니다.


7.     tempdb에 문제가 없는지 확인 합니다

'Common Admin' 카테고리의 다른 글

TokenAndPermUserStore  (0) 2015.05.18
Database Landscape map – February 2013  (0) 2013.03.13
tablediff 유틸리티  (0) 2012.11.01
Admin::2000용 TEST DB 생성.  (0) 2011.10.05
2012. 11. 1. 23:18

tablediff 유틸리티

SQL SERVER 2005 이상

 

 

와 어찌 하다가 이제서야 알게됨.

TABLEDIFF 유틸..   이름에서도 알 수 있 듯이 테이블 차이점 찾기 유틸입니다.

 

복제되어 있는 곳에서 데이터 불일치 문제를 해결하는데 유용하며,

batch file일 이용해서 사용 할 수 있습니다.

 

  • 복제 게시자 역할을 하는 MicrosoftSQL Server 인스턴스에 있는 원본 테이블과 복제 구독자 역할을 하는 하나 이상의 SQL Server 인스턴스에 있는 대상 테이블을 행 단위로 비교할 수 있습니다.

  • 행 개수와 스키마만 비교하여 비교 작업을 빨리 수행할 수 있습니다.

  • 열 수준에서 비교할 수 있습니다.

  • 대상 서버의 불일치를 해결하는 Transact-SQL 스크립트를 생성하여 원본 테이블과 대상 테이블을 일치시킬 수 있습니다.

  • 결과를 출력 파일이나 대상 데이터베이스의 테이블에 기록할 수 있습니다.

 

 

 

 

데이터 형식이 sql_variant 인 열은 지원하지 않는다.

 

도움말 :http://msdn.microsoft.com/ko-kr/library/ms162843(v=SQL.100).aspx

 

  • 사용권한
 비교할 테이블 개체에 대한 select all 권한이 있어야 함.

-o 또는 -f 옵션을 사용하려면 지정된 파일 디렉터리 위치에 대한 쓰기 권한이 있어야 함.

-et 옵션을 사용하려면 db_owner 고정 데이터베이스 역할의 멤버이거나 적어도 구독 데이터베이스에 대한 CREATE TABLE 권한과 대상 서버의 대상 소유자 스키마에 대한 ALTER 권한이 있어야 함

-dt 옵션을 사용하려면 db_owner 고정 데이터베이스 역할의 멤버이거나 적어도 대상 서버의 대상 소유자 스키마에 대한 ALTER 권한이 있어야 함.

  • 사용 법

 

"C:\Program Files\Microsoft SQL Server\90\COM\tablediff.exe" -sourceserver server1 -sourcedatabase test -sourcetable table1 -destinationserver server1 -destinationdatabase test -destinationtable table2

 

 

  • 결과

Microsoft (R) SQL Server Replication Diff Tool
Copyright (C) 1988-2005 Microsoft Corporation. All rights reserved.

User-specified agent parameter values:
-sourceserver server1
-sourcedatabase test
-sourcetable table1
-destinationserver server2
-destinationdatabase test
-destinationtable table2

Table [test].[dbo].[table1] on server1 and Table [test].[dbo].[table2] on server1 have 3 differences.
Err PersonID
Mismatch 1
Dest. Only 2
Src. Only 3
The requested operation took 0.4375 seconds.

2011. 10. 5. 17:45

Admin::2000용 TEST DB 생성.


http://www.microsoft.com/download/en/confirmation.aspx?id=23654

해당 파일을 받아서 스크립트 실행해 주면 됩니다.

2011. 8. 14. 00:37

Admin:: SQL Server 에러로 다른 서버에서 Rebuilding 처리

http://www.mssqltips.com/tip.asp?tip=2425

'Common Admin' 카테고리의 다른 글

tablediff 유틸리티  (0) 2012.11.01
Admin::2000용 TEST DB 생성.  (0) 2011.10.05
Admin::Cache Flush 가 발생하는 경우  (0) 2011.03.30
Admin::Configuring Windows 2003 ( x64 ) for SQL Server  (0) 2010.12.28
2011. 3. 30. 10:07

Admin::Cache Flush 가 발생하는 경우


You may experience a decrease in query performance after you perform certain database maintenance operations or regular transaction operations in SQL Server 2005

( http://support.microsoft.com/kb/917828 )

 

2006-10-15 06:03:29.330 spid59 SQL Server has encountered 4 occurrence(s) of cachestore flush for the 'Object Plans' cachestore (part of plan cache) due to some database maintenance or reconfigure operations.
2006-10-15 06:03:29.420 spid59 SQL Server has encountered 4 occurrence(s) of cachestore flush for the 'SQL Plans' cachestore (part of plan cache) due to some database maintenance or reconfigure operations.
2006-10-15 06:03:29.420 spid59 SQL Server has encountered 4 occurrence(s) of cachestore flush for the 'Bound Trees' cachestore (part of plan cache) due to some database maintenance or reconfigure operations.

 

 

The whole procedure cache is cleared when certain database level operations are performed in the following scenarios:

·         A database has the AUTO_CLOSE database option set to ON. When no user connection references or uses the database, the background task tries to close and shut down the database automatically.

·         You run several queries against a database that has default options. Then, the database is dropped.

·         A database snapshot for a source database is dropped.

Note Database snapshots are only available in Microsoft SQL Server 2005 Enterprise Edition.

·         You change the database state to OFFLINE or ONLINE.

·         You successfully rebuild the transaction log for a database.

·         You restore a database backup.

·         You run the DBCC CHECKDB statement.

Note This is true only in versions of SQL Server 2005 that are earlier than SQL Server 2005 SP2. After you install SQL Server 2005 SP2 or later versions, the whole procedure cache is not flushed when you run the DBCC CHECKDB statement.

·         You detach a database.

·         You specify one of the following options when you run the ALTER DATABASE statement:

o    OFFLINE

o    ONLINE

o    MODIFY FILEGROUP DEFAULT

o    MODIFY_NAME

o    MODIFY FILEGROUP READ_WRITE

o    COLLATE

o    MODIFY FILEGROUP READ_ONLY

o    READ_ONLY

o    READ_WRITE

·         The whole procedure cache is cleared if one of the following server options is changed by the RECONFIGURE statement:

o    cross db ownership chaining

o    index create memory (KB)

o    remote query timeout (s)

o    user options

o    max text repl size (B)

o    cost threshold for parallelism

o    max degree of parallelism

o    min memory per query (KB)

o    query wait (s)

o    min server memory (MB)

o    max server memory (MB)

o    query governor cost limit

Note Procedure cache will not be cleared if the actual value does not change or if the new value for the max server memory server option is set to 0.

2010. 12. 28. 11:41

Admin::Configuring Windows 2003 ( x64 ) for SQL Server


http://sqlblogcasts.com/blogs/grumpyolddba/archive/2008/01/06/configuring-windows-2003-x64-for-sql-server.aspx


So let’s consider memory first; x64 with 32gb ram, we can allocate 2 to 4 gb to the o/s and give the rest to SQL Server, or this is what we believe? Well not really.

 Let’s say this is a 4 way dual core box, windows will allocate 576 work threads, each of which requires 2mb of memory. In the illustration I viewed the calculations go thus:-
  • Let's leave 2GB for the OS and other applications: 2GB
  • And let's allocate 2GB for the MPA / Thread Stacks / Linked Servers etc: 2GB
  • And finally, let's reserve 3GB for all the other applications on the server (AV, backup etc): 3GB
  • So now our max server memory setting is: 32-2-2-3 = 25GB
  • Remember - this is a baseline calculation

The average Enterprise SQL Server will likely have fibre channel HBAs, be SAN attached, probably have teamed / load balanced HBAs and NICs, will have a suite of hardware monitoring programs, will have an Antivirus, will be running a monitoring program such as Tivoli or MOM and will probably have other agents and services running as part of your standard build. You may well have IIS, reporting services, SSIS, old dts, full text. Do you really believe these can all run within 2gb – including the operating system?

2010. 11. 23. 13:27

Admin:: LOG Rebuild

상황 1)
- Data File은 이상이 없고, SQL 서버 서비스가 정상 종료 되었을 경우 처리 할 수 있다.
- LOG 파일만 트랜잭션이 맞지 않거나 그럴 경우 문제 발생시
- TEST DB의 DB 스토리지 copy 했는데 copy 시점에 트랜잭션이 완료 되지 않은 상태에서 시작되어 copy 되었을 경우
- DB가 정상적으로 Detatch 될 때 사용 가능 하다.

CREATE DATABASE TEST ON (NAME = 'TEST_DATA', FILENAME = 'F:\MSSQL\DATA\TEST _DATA.MDF')
--,(NAME = 'SEARCHV_LOG', FILENAME = 'F:\MSSQL\LOG\SEARCHV_LOG.LDF')
FOR ATTACH_FORCE_REBUILD_LOG
-- 이건 기존 동일한 경로에 로그 파일을 생성합니다. 
그러니까 기존 로그 파일을 이름 변경 해야 합니다. 
상황 2)
- 트랜잭션 로그 파일이 손상되었을 때
- update, delete 작업 도중 rollback이  시도 했으나 오랜 시간이 걸려서 기다릴 수가 없을때, (서비스 open이 코 앞일때)
- 단, 이 작업은 정합성이 유지 되지 않을 수도 있다.
 
--1. DB를 offline 시킵니다. , 
롤백 중이라면 offline 할때도 오래 걸립니다. 롤백이 완료 될때 까지 기다기리 때문입니다.  
클러스터 장비로 되어 있다면 강제로 그룹 이동 시킵니다. 

-- 2. log 파일 이름을 변경합니다.

-- 3. DB online 합니다. 

-- 4.  주의 대상으로 DB가 올라오게 됩니다. 
ALTER DATABASE TEST SET EMERGENCY
go

-- 5. 디비가 물리적으로 문제가 있는지 확인 합니다. 해당 작업은 대용량 DB는 오래 걸립니다. 무시하시고 가셔도 됩니다. 
-- 문제가 없으면 결과에 문제 없음으로 나옵니다. 어느 정도 문제가 있는것도 6번 단계에서 복원 될 수도 있습니다
 DBCC CHECKDB (문제DB)

-- 6.  
ALTER DATABASE TEST SET SINGLE_USER  with ROLLBACK IMMEDIATE
go
DBCC CHECKDB (문제DB명, REPAIR_ALLOW_DATA_LOSS)

-- 7.
ALTER DATABASE TEST SET MULTI_USER with  ROLLBACK IMMEDIATE

-- 8 . LOG Rebuild 작업
ALTER DATABASE TEST REBUILD LOG ON 
(NAME=TEST_LOG,FILENAME='F:\MSSQL\LOG\TEST_LOG.LDF'
, SIZE = 30720MB, file_growth = 500MB)

-- 10.ONLINE 상태가 되는지 확인

참고) DBCC REBUILD_LOG 상용해서도 가능합니다. 허나, 이건 단일 로그일때만 가능합니다.
DBCC REBUILD_LOG ('db_name', 'log_file_name')


'Common Admin' 카테고리의 다른 글

Admin::Cache Flush 가 발생하는 경우  (0) 2011.03.30
Admin::Configuring Windows 2003 ( x64 ) for SQL Server  (0) 2010.12.28
waitresource 값 확인  (0) 2010.11.01
MCITP 취득 방법  (0) 2010.10.06
2010. 11. 1. 16:00

waitresource 값 확인


sysprocess, lock 정보를 봤을때 waitresoruce 값을 확인 하고 싶을 때 사용 한다.  Key: ..  형식으로 나오면 object를 찾기 쉽지만 그렇지 않은 경우 page 값으로 확인 해야 한다.

waitresource = 11:24:3169121  -> 첫 번째 값은 DB 아이디.

DBCC traceon (3604) WITH no_infomsgs         
DBCC PAGE (11,24,3169121) with  no_infomsgs, tableresults
ParentObject Object Field VALUE
PAGE HEADER: Page @0x000000095145E000 m_objId (AllocUnitId.idObj) 16431
PAGE HEADER: Page @0x000000095145E000 m_indexId (AllocUnitId.idInd) 256
PAGE HEADER: Page @0x000000095145E000 Metadata: AllocUnitId 7.20576E+16
PAGE HEADER: Page @0x000000095145E000 Metadata: PartitionId 7.20576E+16
PAGE HEADER: Page @0x000000095145E000 Metadata: IndexId 2
PAGE HEADER: Page @0x000000095145E000 Metadata: ObjectId 132468542



object_id 값과 index 값을 알았으니 어느 테이블에 어느 객체인지 확인 하면 된다.

[waiteresource 정보]
RID. 잠금이 보유 또는 요청된 테이블 내의 단일 행을 식별합니다. RID는 RID: db_id:file_id:page_no:row_no로 표시됩니다. 예를 들면 RID: 6:1:20789:0과 같습니다.

OBJECT. 잠금이 보유 또는 요청된 테이블을 식별합니다. OBJECT는 OBJECT: db_id:object_id로 표시됩니다. 예를 들면 TAB: 6:2009058193과 같습니다.

KEY. 잠금이 보유 또는 요청된 인덱스 내의 키 범위를 식별합니다. KEY는 KEY: db_id:hobt_id (index key hash value)로 표시됩니다. 예를 들면 KEY: 6:72057594057457664 (350007a4d329)와 같습니다.

PAG. 잠금이 보유 또는 요청된 페이지 리소스를 식별합니다. PAG는 PAG: db_id:file_id:page_no로 표시됩니다. 예를 들면 PAG: 6:1:20789와 같습니다.

EXT. 익스텐트 구조를 식별합니다. EXT는 EXT: db_id:file_id:extent_no로 표시됩니다. 예를 들면 EXT: 6:1:9와 같습니다.

DB. 데이터베이스 잠금을 식별합니다. DB는 다음 방법 중 하나로 표시됩니다.

DB: db_id


DB: db_id[BULK-OP-DB]. 이 방법은 백업 데이터베이스에서 수행된 데이터베이스 잠금을 식별합니다.


DB: db_id[BULK-OP-LOG]. 이 방법은 특정 데이터베이스에 대해 백업 로그에서 수행된 잠금을 식별합니다.


APP. 응용 프로그램 리소스에서 수행된 잠금을 식별합니다. APP는 APP: lock_resource로 표시됩니다. 예를 들면 APP: Formf370f478과 같습니다.


 

'Common Admin' 카테고리의 다른 글

Admin::Configuring Windows 2003 ( x64 ) for SQL Server  (0) 2010.12.28
Admin:: LOG Rebuild  (0) 2010.11.23
MCITP 취득 방법  (0) 2010.10.06
RML Utilities for SQL Server  (0) 2010.08.23
2010. 10. 6. 00:11

MCITP 취득 방법

 

MCITP 자격증 취득 방법

[순서]

431 (MCTS, 기본 조건 ) -> 443 : Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005

                                      444  : Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005  (MCITP: Database Administrator)

                                 -> 441 : Designing Database Solutions by Using Microsoft SQL Server 2005

                                     442 :Designing and Optimizing Data Access by Using Microsoft SQL Server 2005 (MCITP: Database Developer)

http://blog.naver.com/da10316?Redirect=Log&logNo=70044945798 : 등록 방법

http://www.microsoft.com/learning/mcp/mcts/default.mspx : E러닝 교육 과정 

1. MCTS: SQL Server 2005

업데이트 날짜: 2006년 5월 18일

Technology Specialist 인증을 통해 전문가는 특정 기술을 대상으로 하고 특수 기술에 대한 깊이 있는 지식 및 전문성을 보여 줌으로써 자신의 능력을 입증할 수 있습니다.

MCTS: SQL Server 2005(Microsoft Certified Technology Specialists in Microsoft SQL Server 2005)는 특정 명령 및 사양을 사용하여 데이터베이스를 구현 및 유지 관리합니다. 이들은 제품에 대한 해박한 지식이 있으며, 도구 및 Transact-SQL 언어 사용 방법과 사용자 인터페이스 탐색 방법을 알고 있습니다. Technology Specialist는 일반적으로 데이터베이스 관리자, 데이터베이스 개발자 또는 비즈니스 인텔리전스 개발자와 같은 직종을 선호합니다. 또한 SQL Server 작업을 매일 하지는 않지만 기술 경험의 폭을 넓히려는 사람은 개발자 및 시스템 관리자도 될 수 있습니다.

데이터베이스 관리자, 데이터베이스 개발자 및 비즈니스 인텔리전스 개발자는 Microsoft SQL Server 2005 기술 능력 평가를 통해 시험 준비를 위한 교육 과정과 학습 리소스를 찾을 수 있습니다.

 

MCTS: SQL Server 2005 취득 방법

MCTS 지원자는 SQL Server 2005의 구현 및 유지 관리 능력을 검증하는 한 가지 시험을 통과해야 합니다. 관련 교육 리소스는 다음 표를 참조하십시오. 시험 날짜 및 주요 분야는 시험 준비 가이드를 참조하십시오.

MCTS: SQL Server 2005 필수 시험(택 1) 공인 강사에 의한 강의(ILT) Microsoft E-Learning 참고 도서

Exam 70–431 (영문): TS: Microsoft SQL Server 2005 - Implementation and Maintenance

2779 (영문): Implementing a Microsoft SQL Server 2005 Database (3일 강의식 교육, 2006년 초부터 수강 가능)

2780 (영문): Maintaining a Microsoft SQL Server 2005 Database (3일 강의식 교육, 2006년 초부터 수강 가능)

2778 (영문): Writing Queries Using Microsoft SQL Server 2005 Transact–SQL(18시간, 2006년 중반부터 수강 가능)

2936–2944: 무료* Microsoft E-Learning Series for Database Administrators, Database Developers, and Business Intelligence Developers (영문)

MCTS Self–Paced Training Kit (Exam 70–431): Implementing and Maintaining Microsoft SQL Server 2005 (2006년 중반부터 구입 가능)

Microsoft SQL Server 2005: Database Essentials Step by Step (영문)

Microsoft SQL Server 2005: Applied Techniques Step by Step (영문)

Programming Microsoft SQL Server 2005(2006년 중반부터 구입 가능)

Microsoft SQL Server 2005 Administrator's Pocket Consultant (영문)

Microsoft SQL Server 2005 Administrator's Companion (available mid–2006)

 

2. MCITP: Database Developer

 

MCITP(Microsoft Certified IT Professional): Database Developer는 데이터베이스 설계자 및 개발자를 위한 프리미어 인증입니다. 이 자격 증명은 Microsoft SQL Server 2005를 사용하여 안정적인 보안 엔터프라이즈 데이터베이스 솔루션을 설계할 수 있는 능력을 입증합니다.

데이터베이스 개발자는 데이터베이스 저장소 개체 및 관계형 데이터베이스 모델(논리적 및 물리적)을 설계하고 구현합니다. 또한 사용자 정의 함수, 트리거, 저장 프로시저, Transact-SQL 또는 CLR을 사용하여 서버를 프로그래밍하며, SQL 쿼리를 사용하여 데이터를 검색 또는 수정하거나 쿼리를 조정 및 최적화합니다. 데이터베이스 개발자는 일반적으로 중규모 또는 대규모 조직에서 채용합니다.

 

MCITP: Database Developer 취득 방법

MCITP 지원자는 먼저 MCTS: SQL Server 2005 자격 증명(한 가지 시험) 요건을 갖추어야 합니다. 이 자격 증명을 취득한 후 두 가지 필수 시험을 통과하면 MCITP: Database Developer를 취득할 수 있습니다. 다음 표에서는 전체 시험 목록 및 관련 교육 리소스를 제공합니다. 시험 날짜 및 주요 분야는 시험 시행이 공지될 때 개별 시험 준비 가이드를 참조하십시오.

MCITP: Database Developer 필수 시험(택 2) 공인 강사에 의한 강의(ILT) Microsoft E-Learning 참고 도서

Exam 70–441 (영문): PRO: Designing Database Solutions by Using Microsoft SQL Server 2005

2781 (영문): Designing Microsoft SQL Server 2005 Server-Side Solutions(3일 강의식 교육, 2006년 초부터 수강 가능)

2782 (영문): Designing Microsoft SQL Server 2005 Databases (2일 강의식 교육, 2006년 초부터 수강 가능)

 

Microsoft SQL Server 2005: Database Essentials Step by Step (영문)

Microsoft SQL Server 2005: Applied Techniques Step by Step (영문)

Inside Microsoft SQL Server 2005: The Storage Engine (영문)

Inside Microsoft SQL Server 2005: T-SQL Programming (영문)

Inside Microsoft SQL Server 2005: Query Tuning and Optimization(2007년 구입 가능)

Programming Microsoft SQL Server 2005(2006년 중반부터 구입 가능)

Exam 70–442 (영문): PRO: Designing and Optimizing Data Access by Using Microsoft SQL Server 2005

2781 (영문): Designing Microsoft SQL Server 2005 Server-Side Solutions(3일 강의식 교육, 2006년 초부터 수강 가능)

2783 (영문): Designing the Data Tier for Microsoft SQL Server 2005(1일 강의식 교육, 2006년 초부터 수강 가능)

2784 (영문): Tuning and Optimizing Queries Using Microsoft SQL Server 2005 (3일 강의식 교육, 2006년 중반부터 수강 가능)

 

 

 

Inside Microsoft SQL Server 2005: The Storage Engine (영문)

Inside Microsoft SQL Server 2005: T-SQL Programming (영문)

Inside Microsoft SQL Server 2005: Query Tuning and Optimization(2007년 구입 가능)

Programming Microsoft SQL Server 2005(2006년 중반부터 구입 가능)

 

3. MCITP: Database Administrator

MCITP(Microsoft Certified IT Professional): Database Administrator는 데이터베이스 서버 관리자를 위한 프리미어 인증입니다. 이 인증은 1년 365일, 하루 24시간 동안 엔터프라이즈 비즈니스 솔루션을 유지할 수 있는 능력을 입증합니다.

데이터베이스 관리자는 Microsoft SQL Server를 설치하거나 구성하고, 데이터베이스 또는 다차원 데이터, 사용자 계정, 데이터베이스 가용성, 복구 및 보고를 관리하거나 유지합니다. 또한 보안 또는 서버 자동화를 설계하거나 구현하고 SQL Server 동작을 모니터링하고 문제를 해결합니다. 데이터베이스 관리자는 일반적으로 중규모 또는 대규모 조직에서 채용합니다

MCITP: Database Administrator 취득 방법

MCITP 지원자는 먼저 MCTS: SQL Server 2005 인증(한 가지 시험) 요건을 갖추어야 합니다. 이 인증을 취득한 후 두 가지 필수 시험을 통과하면 MCITP: Database Administrator를 취득할 수 있습니다.

MCDBA(Microsoft Certified Database Administrator)인 경우에는 두 가지 필수 시험 대신 한 가지 업그레이드 시험을 치르고 MCITP: Database Administrator 인증으로 업그레이드할 수 있습니다. 그러나 먼저 MCTS: SQL Server 2005 인증을 보유하고 있어야 합니다.

다음 표는 전체 시험 및 관련 교육 리소스 목록입니다. 시험 날짜 및 주요 분야는 시험 시행이 공지될 때 개별 시험 준비 가이드를 참조하십시오.

MCITP: Database Administrator 필수 시험(택 2) 공인 강사에 의한 강의(ILT) Microsoft E-Learning 참고 도서

Exam 70–443 (영문): PRO: Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005

2786 (영문): Designing a Microsoft SQL Server 2005 Infrastructure(2일)

2787 (영문): Designing Security for Microsoft SQL Server 2005(2일)

2788 (영문): Designing High Availability Database Solutions Using Microsoft SQL Server 2005(3일)

2786E (영문): Designing a Microsoft SQL Server 2005 Infrastructure(12시간; 2006 초부터 수강 가능)

2787E (영문): Designing Security for Microsoft SQL Server 2005(12시간; 2006년 초부터 수강 가능)

2788E: Designing High Availability Database Solutions Using Microsoft SQL Server 2005(18시간; 2006년 초부터 수강 가능)

MCITP Self-Paced Training Kit (Exam 70-443): Designing a Microsoft SQL Server 2005 Database Server Infrastructure(2006년 중반부터 구입 가능)

Inside Microsoft SQL Server 2005: The Storage Engine (영문)

Inside Microsoft SQL Server 2005: T-SQL Querying (영문)

Inside Microsoft SQL Server 2005: T-SQL Programming (영문)

Inside Microsoft SQL Server 2005: Query Tuning and Optimization(2007년 구입 가능)

Programming Microsoft SQL Server 2005(2006년 중반부터 구입 가능)

Microsoft SQL Server 2005 Administrator's Pocket Consultant (영문)

Microsoft SQL Server 2005 Administrator's Companion(2006년 중반부터 구입 가능)

Exam 70–444 (영문): PRO: Optimizing and Maintaining a Database Administration Solution by Using Microsoft SQL Server 2005

2787 (영문): Designing Security for Microsoft SQL Server 2005 (2일)

2789 (영문): Administering and Automating Microsoft SQL Server 2005 Databases and Services 2005 (1일)

2790 (영문): Troubleshooting and Optimizing Database Servers Using Microsoft SQL Server 2005 (2일)

2787E (영문): Designing Security for Microsoft SQL Server2005(12시간; 2006년 초부터 수강 가능)

2789E (영문): Administering and Automating Microsoft SQL Server 2005 Databases and Services(6시간, 2006년 초부터 수강 가능)

2790E (영문): Troubleshooting and Optimizing Database Servers Using Microsoft SQL Server 2005(12시간, 2006년 중반부터 수강 가능)

MCITP Self-Paced Training Kit (Exam 70-444): Optimizing and Maintaining a Database Administration Solution Using Microsoft SQL Server 2005(2006년 중반부터 구입 가능)

Inside Microsoft SQL Server 2005: The Storage Engine (영문)

Inside Microsoft SQL Server 2005: T-SQL Querying (영문)

Inside Microsoft SQL Server 2005: T-SQL Programming (영문)

Inside Microsoft SQL Server 2005: Query Tuning and Optimization(2007년부터 구입 가능)

Programming Microsoft SQL Server 2005(2006년 중반부터 구입 가능)

Microsoft SQL Server 2005 Administrator's Pocket Consultant (영문)

Microsoft SQL Server 2005 Administrator's Companion(2006년 중반부터 구입 가능)

 

 

이 글은 스프링노트에서 작성되었습니다.

'Common Admin' 카테고리의 다른 글

Admin:: LOG Rebuild  (0) 2010.11.23
waitresource 값 확인  (0) 2010.11.01
RML Utilities for SQL Server  (0) 2010.08.23
SQL 2008 -New DataType-Date  (0) 2010.06.04