블로그 이미지
Rootrator
1개를 알면 모르는 10개가 튀어나온다..!

calendar

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 31

Notice

2017. 3. 3. 11:41 Mssql

서버환경

Windows 2008 SP1 Std


원본 서버 : MS-SQL 2000

대상 서버 : MS-SQL 2008


대상 서버에서 일부테이블의 데이터를 가져오기 시에 유효성 검사에서 아래와 같은 오류가 발생


유효성 검사 (오류)

메시지

오류 0xc0202049: 데이터 흐름 태스크 1: 읽기 전용 열 "ㅁㅁㅁ"에 삽입하지 못했습니다.

 (SQL Server 가져오기 및 내보내기 마법사)

.

.

.


오류가 발생하는 테이블의 디자인 수정 

(테이블 우클릭 -> 디자인)


오류가 나는 열의 ID사양을 '아니오'로 변경 후 다시 시도.

반응형
posted by Rootrator
2016. 4. 19. 10:45 Mssql

[환경]

Windows 2008 64bit

MS-SQL 2008 Standard





기존 SQL2000에서 로그파일 줄이는 옵션이 더이상 지원 되지 않는다.


'TRUNCATE_ONLY'은(는) 인식할 수 없는 BACKUP 옵션입니다.



SQL2008 기준으로 아래와 같은 쿼리문으로 작업해야 한다.


ALTER DATABASE DB명 SET RECOVERY SIMPLE

GO

--복구모델 '단순'으로 변경 


DBCC shrinkfile (DB명_log)

go

--로그파일 잘라내기


ALTER DATABASE DB명 SET RECOVERY FULL

GO

--복구모델 '전체'로 변경


반응형
posted by Rootrator
2015. 5. 20. 15:25 Mssql


[환경]

Windows 2003 32bit / MSSQL 2000 / MSSQL 2005


2000에서 백업받은 bak파일을 가지고 2005에서 복원을 진행하였다.




백업파일의 내용 확인

restore filelistonly from disk ='백업파일의 전체경로';


백업파일을 이용해 복원

restore database cmjob from disk ='백업파일의 전체경로';


여기서 2000 서버에서 사용했던 MDF,LDF파일의 경로가 달라져서 오류가 발생할 수 있다.


restore database 디비명 from disk ='백업파일의 전체경로'

with move '디비명_DATA' to 'MSSQL의 데이터 디렉토리\디비명.MDF',

move '디비명_Log' to 'MSSQL의 데이터 디렉토리\디비명.LDF';


위의 디비명_DATA와 디비명_Log는 restore filelistonly로 조회했을시 확인된 이름을 사용한다.


이렇게 복구가 완료되었다면 기존의 로그인 정보를 업데이트


use 디비명;

sp_change_users_login 'Update_one', '유저ID', '유저ID'

go



반응형
posted by Rootrator
2014. 9. 16. 11:13 Mssql

각 서버의 MSSQL은 SP1이상의 서비스팩을 설치해 준다.

(서비스팩 버전이 서로 달라도 상관없다.)


MSSQL2005 SP1

http://www.microsoft.com/ko-kr/download/details.aspx?id=22954


MSSQL2005 SP2

http://www.microsoft.com/ko-kr/download/details.aspx?id=9969


MSSQL2005 SP3

http://www.microsoft.com/ko-kr/download/details.aspx?id=14752


MSSQL2005 SP4 

http://www.microsoft.com/ko-kr/download/details.aspx?id=7218



적용후엔 MSSQL서비스 계정을 서로 맞춰주자.


여기서는 편의상 administrator를 사용했지만 실서버에서는 따로 계정을 생성해 사용하는게 좋다.




서비스 재시작 후에는 주서버의 DB를 미러서버로 백업해 준다.


이때 데이타베이스 복구모델은 "전체(FULL)"로 되어 있어야 하며, 


DB와 Transaction Log 둘 모두 백업이 되어야 한다.



DB복원시에는 옵션에서 RESTORE WITH NORECOVERY를 선택한 후에 Transaction Log도 동일하게 


복원해 준다.



복원중에 잘못하여 미러서버의 DB를 Online시키기 위해선 아래의 쿼리문을 입력한다.


RESTORE DATABASE DB이름 WITH RECOVERY;



 

미러링 메뉴는 주서버에서 우클릭 > 작업 > 미러 메뉴로 들어가도 되고 우클릭 > 속성 에서 미러링 메뉴를 사용해도 된다.


보안구성을 선택하여 구성 마법사을 실행. 여기서는 미러링 모니터 서버를 제외하고 진행한다.










이전에 서비스계정을 주서버 미러서버 동일하게 맞추었다면 아래는 서비스 계정을 공란으로 두고


진행한다.


이후 끝점이 생성되고 다시 미러속성 페이지로 돌아가면 바로 동기화를 시작할것인지


나중에 시작할 것인지 선택하게 되는데 


시작하게 될경우 서버 네트워크 주소가 FQDN이 아니라는 에러가 뜨면서 다시 미러 마법사를 실행해야 된다.


여기서는 "미러링 시작 안함" 을 선택하고 주 서버와 미러 서버의 네트워크 주소를 IP:포트번호를 입력.



미러링 시작을 선택하면 아래와 같이 상태에 동기화되었습니다 라는 메세지가 뜬다.


반응형
posted by Rootrator
2013. 3. 28. 17:05 Mssql


SQL2000과는 좀 다르다.

ALTER DATABASE [DBNAME] SET RECOVERY SIMPLE

GO


DBCC SHRINKFILE(2, 줄이려는 최종크기)

GO


ALTER DATABASE [DBNAME] SET RECOVERY FULL

GO


마지막 SQL문의 경우 복구모델을 [전체]로 변경하는데 이것은 트렌젝션로그가 쌓이도록 설정을 한다.



첫번제 SQL문은 복구모델을 [단순]으로 변경해두는데 이 설정은 트렌젝션 로그가 쌓이지 않도록 설정하니



쓸데없이 트렌젝션로그로 인한 속도저하나 디스크 용량차지가 걱정되는 경우는 [단순]으로 변경해 두자.

반응형
posted by Rootrator
2013. 2. 4. 14:56 Mssql

저장 프로시저 'sp_addextendedproc'을(를) 찾을 수 없습니다.


없단다...만들자

쿼리 분석기를 통해서 아래와 같이 입력

use master

go


create procedure sp_addextendedproc

@functname nvarchar(517),

@dllname varchar(255)

as


set implicit_transactions off

if @@trancount > 0

begin

 raiserror(15002,-1,-1,'sp_addextendedproc')

 return (1)

end


if @dllname is null or datalength(@dllname) = 0

begin

 raiserror(15311,-1,-1,@dllname)

 return (-1)

end


dbcc addextendedproc( @functname, @dllname)

 return (0) -- sp_addextendedproc

go


반응형
posted by Rootrator
2012. 12. 27. 15:29 Mssql


DB중에 가끔 보이는 (제한된 사용자) 표시..


DB로그인 이름이나 보안쪽으론 이상이 없으나 외부에선 접속후 DB트리를 넣어보면 오류가 뜨면서 열리지


않거나 정상적인 작동이 안될 때가 있다.


현재 보안 컨텍스트로는 서버 보안 주체 "DB로그인이름"이(가) 데이타베이스 "XXX"에 액세스

할수 없습니다. (Microsoft SQL Server,오류:916)



ALTER DATABASE DB이름 SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO

ALTER DATABASE DB이름 SET MULTI_USER
GO

반응형
posted by Rootrator
2012. 12. 21. 11:23 Mssql


SQL Server2008에서 외부연결을 하기 위한 작업이다.


관리 > 구성 > 서비스 > SQL Server Browser 서비스 시작



SQL Server 구성 관리자에서 TCP/IP , 명명된 파이트 사용



SQL Server Management Sudio로 접속후 서버속성 > 보안 > 서버 인증을 "SQL Server 및 Windows 인증모드" 




마지막으로 방화벽에서 %MSSQL설치 디레토리%MSSQL\Binn\sqlservr.exe과 TCP/UDP 1433포트 인바운드 규칙 사용



반응형
posted by Rootrator
2012. 11. 29. 16:25 Mssql


SQL2008:
SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

SQL2005:
SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

SQL2000:
SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')


반응형
posted by Rootrator
2012. 10. 15. 11:13 Mssql


MsSql에선 Mdf파일(데이터)과 Ldf파일(로그)로 db를 저장한다.


이 DB에 대한 정보는 시스템DB인 master에 저장되는데 


DB백업을 mdf,ldf로 받았다면 시스템DB에 등록을 해줘야 인식을 한다.


관리가 쉽도록 백업받은 파일들을 sql설치 디렉토리 밑의 data에  위치 시킨다.


use master

exec sp_attach_db @dbname = 'DB명', 

@filename1 = 'MDF파일의 경로',

@filename2 = 'LDF파일의 경로'

go

반응형
posted by Rootrator
prev 1 2 next