블로그 이미지
보미아빠

카테고리

보미아빠, 석이 (529)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total
Today
Yesterday

달력

« » 2025.9
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

공지사항

최근에 올라온 글

기본 요구 사항 


* sql virtual account

* 설치 미디어 (edition 상관없음)  

* 혼합모드면 sa 암호


sqlserver virtual account 가 필요함 (삭제 했으면 다시 복구할 것)

이 계정이 없으면 sp 설치시 실패 한다. 

첨부된 powershell 로 복구 시도하고 추가로 더 설치한 서비스가 있으면 알아서 계정 추가하고 스크립트로 하던지 regedit 로 하던지 편한 방법으로 복구 



AccountRecovery.zip




설치 미디어 다운받기 위한 ie 설정 혹은 wget 윈도 버전으로 설치해서 하면 됨 


http://faq.hostway.co.kr/Windows_ETC/2504

http://care.dlservice.microsoft.com/download/7/5/1/751DF8B3-1430-4B6F-A2E1-3679D77AA39C/1042/SQLFULL_KOR.iso?lcid=1042






기존 edition 과 상관없이 evaluation 같은 버전을 하나 준비(압축 풀어야지요...)

우리는 sql server 2008 r2 이므로 이런곳에서 다운 받는다 


  • http://care.dlservice.microsoft.com/download/7/5/1/751DF8B3-1430-4B6F-A2E1-3679D77AA39C/1042/SQLFULL_KOR.iso?lcid=1042

서버레벨 변경만 상세설명


설치 미디어가 있는 폴더로 이동합니다. 

cmd 모드에서 디렉토리 레터를 확인해 이동합니다. 

d: 


collation 을 변경하기위해서 아래 명령과 비슷하게 입력합니다. 

Setup /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS="WIN-FGPDFE2BQJD\Administrator" /SAPWD=P@ssw0rd /SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS



Setup /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS="cnc6-collation2\Administrator" /SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS 



각각의 옵션은 https://msdn.microsoft.com/ko-kr/library/dd207003(v=sql.105).aspx 에 잘 설명되어 있습니다. 

간단하게 설명드리면 

INSTANCENAME : 인스턴스 이름을 확인합니다. 

확인하는 쿼리는 아래와 같습니다. 


select @@SERVICENAME;


SQLSYSADMINACCOUNTS : sysadmin role 을 가지고 있는 windows 계정을 입력합니다. 


SAPWD : sa 암호 입니다. 

Authentication Mode 가 윈도우와 SQL 을 동시에 사용하는 경우 반드시 입력해야 합니다. 

입력하지 않으면 알수없는 오류가 발생하고 전체 프로세스가 실패 합니다. 

이러한 모드를 확인하는 쿼리는 다음과 같습니다. 


윈도우 sysadmin role 만 있으면 sql sa 암호는 알아서 작업하면 되지 시스템 데이터베이스 리빌딩 스크립트 작업하는 사람이 귀찮아서 입력한 암호로 로그인 해보고 이상 없으면 sa 를 입력받은 암호로 다시 만들게 작업한 보양 입니다. -_- 이자슥들 암호 몰라도 값은 만들어 넣을수 있는거 다 알낀데...짜슥......


SELECT CASE SERVERPROPERTY('IsIntegratedSecurityOnly')   

WHEN 1 THEN 'Windows Authentication'   

WHEN 0 THEN 'Windows and SQL Server Authentication'   

END as [Authentication Mode];


SQLCOLLATION : 원하는 collation 을 입력합니다. 

지원 가능한 전체 collation 을 확인하는 쿼리는 다음과 같습니다. 


SELECT name, description

FROM fn_helpcollations();


성공적으로 작업이 완료되면 아무 메시지가 없이 명령 프롬프트로 돌아갑니다. 

확인은 C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Logs 아래 폴더에서 로그를 읽어 확인하거나 

ssms 에서 다음 명령어를 입력합니다. 


SELECT CONVERT (varchar, SERVERPROPERTY('collation'));



이 때 edition 이나 서비스팩은 기존 에디션과 서비스팩(sp3)은 잘 적용되어 있는것을 확인함


나머지 매뉴얼은 아래를 참고 할 것


서버레벨 변경은 https://msdn.microsoft.com/en-us/library/ms179254(v=sql.105).aspx

데이터베이스 레벨 https://msdn.microsoft.com/en-us/library/ms175835(v=sql.105).aspx

컬럼 레벨 https://msdn.microsoft.com/en-us/library/ms190920(v=sql.105).aspx

Posted by 보미아빠
, |

excel loading

카테고리 없음 / 2016. 2. 16. 18:16

USE [master]

GO



EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1

GO


EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1

GO


use [a2d_test_login_server_01]

go


exec sp_configure 'show advanced options', 1

reconfigure with override 

go


exec sp_configure 'Ad Hoc Distributed Queries', 1 

reconfigure with override 

go



exec sp_configure 'Ad Hoc Distributed Queries'

go


--파일닫고 

select identity(int, 1,1) idx, * into result 

from OPENROWSET(

 'Microsoft.ACE.OLEDB.12.0'

 , 'Excel 12.0; HDR=YES; IMEX=1; Database=C:\a2d\result\output_login_server2.xlsx'

 , 'SELECT * FROM [aaa$a1:w]')



-- 파일이 열려 있을 때

메시지 7399, 수준 16, 상태 1, 줄 27

연결된 서버 "(null)"의 OLE DB 공급자 "Microsoft.ACE.OLEDB.12.0"에 오류가 발생했습니다. 공급자에서 오류에 관한 정보를 주지 않았습니다.

메시지 7303, 수준 16, 상태 1, 줄 27

연결된 서버 "(null)"에 대한 OLE DB 공급자 "Microsoft.ACE.OLEDB.12.0"의 데이터 원본 개체를 초기화할 수 없습니다.


Posted by 보미아빠
, |

도색

카테고리 없음 / 2016. 2. 11. 17:35

음 10년된 차 쪼메 수리해야 하는데

목감IC 랑 원효대사가 유명하군....


원효대사

http://blog.naver.com/bubblychoi/220131495434

http://map.daum.net/?panoid=1033191968&pan=347.9&tilt=-2.6&zoom=0&map_type=TYPE_MAP&map_attribute=ROADVIEW&q=%EC%9B%90%ED%9A%A8%EB%8C%80%EA%B5%90&urlX=486511&urlY=1117809&urlLevel=3


목감 IC

http://nadesicoc.egloos.com/v/5014173

Posted by 보미아빠
, |

미션 

여러 프로시저가 있는데 하나만 동작하게 만들어라 

CREATE DATABASE APPLOCKTEST

GO


USE APPLOCKTEST

GO



IF OBJECT_ID ('TBLX') IS NOT NULL

DROP TABLE TBLX

GO

IF OBJECT_ID ('USP_A') IS NOT NULL

DROP PROC USP_A

GO


-- 테스트 테이블

CREATE TABLE TBLX 

(IDX INT IDENTITY(1,1)

,C1 INT)

GO


-- 심심풀이 데이터

INSERT INTO TBLX (C1) VALUES (1)

GO


-- 실제로 일하는 프로시져

CREATE PROC USP_A 

(@V INT)

AS


WAITFOR DELAY '00:00:7'

INSERT INTO TBLX (C1) VALUES (@V)

GO









-- 동시에 실행하면 안되는 여러 프로시저들.....

IF OBJECT_ID('USP_JOB_EXEC_USP_A') IS NULL

EXEC ('CREATE PROC USP_JOB_EXEC_USP_A AS SELECT 1 ')

GO 


ALTER PROC USP_JOB_EXEC_USP_A

(

  @V INT = 1 

, @RESULT_CODE NVARCHAR(2000) OUTPUT 

)

AS


DECLARE 

  @LOCK_STATUS INT = 0 

, @RETRYS INT = 3 -- 1초에 한번씩 실행된다. 이걸로 조절하세요~

, @KEYWORD NVARCHAR(100) = '결산'

, @CURRENT_RETRY INT = 0


SET @RESULT_CODE = N'SUCCESS'


WHILE (@CURRENT_RETRY <= @RETRYS) 

BEGIN 


SELECT @LOCK_STATUS = APPLOCK_TEST('PUBLIC', @KEYWORD,'Exclusive', 'SESSION')


IF (@LOCK_STATUS <> 0 )

BEGIN 

EXEC SP_GETAPPLOCK @KEYWORD, 'EXCLUSIVE', 'SESSION'


-- SP_START

EXEC USP_A @V

SELECT 'AAAAAAAAAAAAAAAAAAA'

-- SP_END 


EXEC SP_RELEASEAPPLOCK @KEYWORD, 'SESSION'

BREAK;

END 

ELSE 

BEGIN 

IF @CURRENT_RETRY = @RETRYS

SET @RESULT_CODE = 'JOB CANCELED BY LOCK ' + @KEYWORD

ELSE 

WAITFOR DELAY '00:00:01'

SET @CURRENT_RETRY = @CURRENT_RETRY + 1 

END 

END 

GO










-- 동시에 실행하면 안되는 여러 프로시저들.....

IF OBJECT_ID('USP_JOB_EXEC_USP_B') IS NULL

EXEC ('CREATE PROC USP_JOB_EXEC_USP_B AS SELECT 1 ')

GO 


ALTER PROC USP_JOB_EXEC_USP_B

(

  @V INT = 1 

, @RESULT_CODE NVARCHAR(2000) OUTPUT 

)

AS


DECLARE 

  @LOCK_STATUS INT = 0 

, @RETRYS INT = 3 -- 1초에 한번씩 실행된다. 이걸로 조절하세요~

, @KEYWORD NVARCHAR(100) = '결산'

, @CURRENT_RETRY INT = 0


SET @RESULT_CODE = N'SUCCESS'


WHILE (@CURRENT_RETRY <= @RETRYS) 

BEGIN 


SELECT @LOCK_STATUS = APPLOCK_TEST('PUBLIC', @KEYWORD,'Exclusive', 'SESSION')


IF (@LOCK_STATUS <> 0 )

BEGIN 

EXEC SP_GETAPPLOCK @KEYWORD, 'EXCLUSIVE', 'SESSION'


-- SP_START

EXEC USP_A @V

SELECT 'AAAAAAAAAAAAAAAAAAA'

-- SP_END 


EXEC SP_RELEASEAPPLOCK @KEYWORD, 'SESSION'

BREAK;

END 

ELSE 

BEGIN 

IF @CURRENT_RETRY = @RETRYS

SET @RESULT_CODE = 'JOB CANCELED BY LOCK ' + @KEYWORD

ELSE 

WAITFOR DELAY '00:00:01'

SET @CURRENT_RETRY = @CURRENT_RETRY + 1 

END 

END 

GO







-- APPLICATION LOCK TEST CODE 


-- SESSION 1 

DECLARE @RESULT_CODE NVARCHAR(2000)

EXEC USP_JOB_EXEC_USP_A 5, @RESULT_CODE = @RESULT_CODE OUTPUT 

SELECT @RESULT_CODE



-- SESSION 2 

DECLARE @RESULT_CODE NVARCHAR(2000)

EXEC USP_JOB_EXEC_USP_B 5, @RESULT_CODE = @RESULT_CODE OUTPUT 

SELECT @RESULT_CODE



Posted by 보미아빠
, |

sql 2014 patch

카테고리 없음 / 2016. 2. 2. 19:44

http://blogs.sqlsentry.com/team-posts/latest-builds-sql-server-2014/

Posted by 보미아빠
, |

takeown /f c:\folder /r /d y

icacls c:\folder /grant Administrators:F /t


Posted by 보미아빠
, |

iPhone 6 LTE 폰에서 3G 데이터무제한 쓰기


왜?

1) 무제한 데이터를 싸게 쓰자는거지 머...

2) 3G 요즘 쓰는사람 거의없어서 대역폭이 남아돔

3) 집 화장실 불 켤 때 0.1초만에 켜지나 0.01초 만에 켜지나 나는 별 상관하지 않는다

   (충분히 만족할만한 속도라는 말이다. 그런데, 10배 빠르잖아 광고 팍팍!!)



1) 준비물

  스카치테이프
  (iPhone 4는 큰 USIM 인데, 손재주 좋으면 스카치 테이프이면 충분하고 아니면 usim 어뎁터가 있어야 함)

, USIM 뽑기용 핀

, 3G 전용 핸드폰 (KT/iPhone4 나 뭐 아무거나, 기존통신사와 같아야하고 36000 i밸류는 KT에만 있는듯)

2) iPhone6 USIM -> iPhone4에 잠깐 옮겨 단다 (쓰고있는 친구폰이면 충분함)

3) iPhone4 리부팅

4) 114 에 전화걸어 요금제 변경 상담원 연결 (9시 ~ 6시)

5) i밸류 데이터무제한 36000원 선택

6) 요금제 바뀌면 원래쓰던 LTE USIM을 iPhone6 자기폰에 꼽고 쓰면 끝


여담 1)

114 상담원들 이런거 잘 모르는척 함

LTE USIM 과 3G USIM 이 따로 있고, 3G USIM 을 따로 구매해야 한다고 안내함 (아님!)

USIM 은 사이즈 구분만 있고 3G LTE 이런거 구분 없음

(상담원한테 LTE 3G 전파부터 달라요 그래서 다시 구매 해야 합니다. <-- 졸라 짜증난 목소리로 이리 안내 받음, 걸림 뒤진다....너...)

공기계가 있어야 한다고 함 (아님, 쓰고있는 친구폰이면 충분함)


여담 2)

KT 는 가족 3명이 뭉치면 집 인터넷 무료임


여담 3)

ㅈㄹ 좋음~ 버스타고 유투브 빵빵하게 볼 수 있음 (안 끊어짐)

웹서핑 잘됨


여담 4)

1일 75메가 넘으면 QoS 걸린다는 루머가 있으나, 하루에 130메가 이상써도 안걸리고 잘 됨

한곳에서 주구장창 받으면 QoS 건다는 소문이 있음

이때는 기지국 옮기면 잘 된다는 소문이 있으나 위 3개다 아직 ..경험 해보지 못하고 잘 쓰고 있음



숙이 때문에...못살겠다...정말....


Posted by 보미아빠
, |

shutdown

카테고리 없음 / 2016. 1. 15. 13:07

Shutdown %windir%\System32\shutdown.exe -s

Reboot %windir%\System32\shutdown.exe -r

Logoff %windir%\System32\shutdown.exe -l

Standby %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Standby

Hibernate %windir%\System32\rundll32.exe powrprof.dll,SetSuspendState Hibernate

Posted by 보미아빠
, |

https://channel9.msdn.com/Blogs/codefest/SQLServer-2016-in-15-Minutes-R-Integration?ocid=player

 

생산성 향상과 자동화를 할 수 있다.

테이블에 있는 데이터를 그대로 R 에 입력시킬 수 있고, 그 데이터를 다시 SQL Table 로 담을수 있다.

시각화는 Qlik 같은걸로 하면 금방 할 수 있겠다. 조금은 수고 스럽거나, 과거 대표적인 알고리즘만 지원하거나, 샘플링 기반의 SSAS 를 떠나 오픈소스 분석 짱님인 R을 직접적으로 바로 쓸 수 있다는 것은 상당히 매력적인 부분이다.

 

 

 

 

 

Posted by 보미아빠
, |

http://d2.naver.com/helloworld/907716

 

 

* 계층적 질의 Hierarchical query

이걸 꼭 connect by prior id = mgrid 이렇게 쿼리문을 쓸 수 있어야 지원한다고 하는지는 모르겠다.

사실 나는 connect by 처럼 문법적으로 지원 하는것 보다 hierarchyid 처럼 자료구조를 새롭게 만들어 넣는것이 훨씬 빠르다고 생각한다. connect by 보다 훨신 빠를껄?

 

1) hierarchyid

https://msdn.microsoft.com/ko-kr/library/bb677173(v=sql.120).aspx

2) 혹은 CTE 제귀 쿼리를 사용해 구현. 이건 느리지요...

http://blog.sqlauthority.com/2012/04/24/sql-server-introduction-to-hierarchical-query-using-a-recursive-cte-a-primer/

3) 프로시저로 무한 뺑뺑이 구현

-_- 쉽지만.......이건 좀 아니잖아...

 

* temporal database

SQL Server 2016에서 지원한다. CTP 3 에서 지원됨

좀 늦게 나왔지만 잘 활용하면 좋은 기능일 듯

 

https://msdn.microsoft.com/ko-kr/library/dn935015.aspx

https://channel9.msdn.com/Shows/Data-Exposed/Temporal-in-SQL-Server-2016

 

활용으로는 replication 은 개시자는 기능을 끄고 구독자는 기능을 활성화 할 수 있다. 그러나 멀티 구독자는 local system clock 기준으로 구현되어 있어 데이터 정합성에 문제가 있을수 있어 지원하지 않는다고 한다. -_- 근디.......기거 복제 깨지면 관리가 될까 싶다.....

 

https://en.wikipedia.org/wiki/Temporal_database#Features 에 보면 재미있는 시나리오가 있다. 어떤 액션을 했는지 안했는지를 검사할 수 있다. 일반적으로 데이터베이스에  실제 기간과 사건이 기록된 시간이 적혀 있어야 한다. 그런데 다음과 같이 기록되어 있다면 이 사람이 Beachy 에 들어가고 나가고 했을 때 신고를 했는지 안 했는지 알 수가 없다.

 

Person(John Doe, Smallville, 3-Apr-1975, 26-Aug-1994).
Person(John Doe, Bigtown, 26-Aug-1994, 1-Jun-1995).
Person(John Doe, Beachy, 1-Jun-1995, 3-Sep-2000).
Person(John Doe, Bigtown, 3-Sep-2000, 1-Apr-2001).

 

그런데, 이렇게 기록하고 있다면 명확하게 그 행위가 언제 일어났는지 조회가 가능하다.

결국 이 사람은 2001년 2월 2일 BigTown 에 들어오면서 다시 신고를 했다는 것을 알 수 있다. 결국 Beachy 의 기록은 그 당시 신고를 하지 않았다는 것을 알 수 있다.

 

Person(John Doe, Smallville, 3-Apr-1975,  ∞,           4-Apr-1975,  27-Dec-1994).  
Person(John Doe, Smallville, 3-Apr-1975,  26-Aug-1994, 27-Dec-1994, ∞          ). 
Person(John Doe, Bigtown,    26-Aug-1994, ∞,           27-Dec-1994, 2-Feb-2001 ).
Person(John Doe, Bigtown,    26-Aug-1994, 1-Jun-1995,  2-Feb-2001,  ∞          ).
Person(John Doe, Beachy,     1-Jun-1995,  3-Sep-2000,  2-Feb-2001,  ∞          ).
Person(John Doe, Bigtown,    3-Sep-2000,  ∞,           2-Feb-20011-Apr-2001 ).
Person(John Doe, Bigtown,    3-Sep-2000,  1-Apr-2001,  1-Apr-2001,  ∞          ).

 

이것을 SQL Server 에서 자동으로 구현해 준것이 Temporal Table 기능이다. 이러면 언제 어떤 이벤트가 일어났는지 명확하게 다 추적이 가능하다. 뭐 시스템으로 직접 구현하는것도 가능하다만 자동으로 해주면 좋지 않은가? 사실 audit 이나 주요한 테이블 변동내역 추적에서는 대단히 좋은 기능일 수 있다.

 

 

* 문자열 집계

이건 사용자 펑션 하나만 만들어 넣으면 되는데 된다 만다라고 할만한 가치가 있는 것인지 잘 모르겠다. 다른방법으로  SQL Server 는 CLR 이라는 것이 지원되어 c# 으로 프로그램을 짜 넣으면 문자열을 정말 빠른 속도로 처리 가능하다. 심지어 multi thread application 도 작성 가능하다.

 

 



use tempdb 

go


if object_id('tblx') is not null

drop table tblx 

go


create table tblx 

(c1 int 

,c2 varchar(100)

)

go


insert into tblx values 

  (1, 'A')

, (2, 'B')

, (3, 'C')

, (4, 'D')

, (4, 'E')

go


select a.c1, stuff(b.c2, 1,3,'') c2

from 

(

select distinct c1 

from tblx 

) a

cross apply  

(

select ' / ' + c2 as [text()] 

from tblx 

where c1 = a.c1 for xml path('')

) b (c2)






 

* 정규표현식

이건 Version 얼마랑 비교한건지 모르겠다. 2005 부터 정규표현식이 지원되는데 지금 2016년이다.

그냥 비교하기 싫었나 보다.....ㅠ.ㅠ SQL Server 도 잘 됩니다. 동글뱅이 좀 쳐주세요~

https://msdn.microsoft.com/ko-kr/library/ms174214(v=sql.120).aspx

 

* deferred constraints

네 안되는것 같아요

 

* interval

네 없는것 같아요

 

* cascading Drop

네 안되는것 같아요

 

* Truncate 트리거

네 없는것 같아요

 

 

* row level trigger

네 안되는것 같아요

 

* join using

네 안되는것 같아요

 

* order by nulls last

네 안되는것 같아요

 

네, 오라클은 거의다 됩니다. 역쉬! 오라클 짱! 

 

* SQL Server 는 in-memory database, report service, column store, buffer pool 확장, analysis service, service broker, MARS, 압축, 암호화, R 등 쓸만한게 지원 됩니다.

 

* 상용 데이터베이스와 무료 데이터베이스의 비교는 .......

 

 

 

 

 

 

Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함