블로그 이미지
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
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
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. 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
2011. 3. 24. 14:38 Mssql
쿼리 분석기에서 아래 쿼리를 때리쟈

select @@version


Microsoft SQL Server  2000 - 8.00.2039 (Intel X86)   May  3 2005 23:18:38   Copyright (c) 1988-2003 Microsoft Corporation  Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

 sqlserver.exe  릴리즈
 2000.8.00.194  RTM
 2000.8.00.384  SP1
 200.8.00.534  SP2
 2000.8.00.760  SP3
 2000.8.00.760  SP3a
 2000.8.00.2039  SP4


 
반응형
posted by Rootrator
2011. 3. 16. 14:33 Mssql

mssql을 이용해서 BAK파일로 백업을 받은 후에

사용자와 DB를 지우고 나서

다시 복원을 해야하는데 DB명과 사용자 명은 똑같이 다시 생성하고 DB복원을 진행했지만

실제 웹상에서는 500에러가 떠버렸다.

분명 복원 후 설정상에 문제는 없었고, 소스상에서도 ID,PW,DB명 모두 일치했다.


허나 간과한게 있었으니...Mssql상에서 유저GUID다..

이것이 syslogins.sid와 다르기 때문이다...염병 ㅠㅠ

sp_change_users_login 'Report'
go

위 쿼리로 붕떠버린 유저가 나오는데 이 유저 ID를 기억하고

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


이제 로그인이 정상적으로 되면서 페이지가 제대로 열린다..



반응형

'Mssql' 카테고리의 다른 글

DTS 가져오기/내보내기 오류  (0) 2011.11.29
MSSQL-2000 서비스팩 확인  (0) 2011.03.24
Mssql 테이블 소유자 변환  (0) 2011.03.02
Msslq 테이블 복제  (0) 2011.03.02
MSSQL 용량 확인 및 설정  (0) 2011.02.28
posted by Rootrator
2011. 3. 2. 13:20 Mssql

MSSQL db복원을 할때 소유자까지 딸려서 복원이 되는 경우가 있다.

이 소유자는 로그인 정보가 없어도 db소유자로써 db사용자에 등록이 되어 있다.

삭제를 위해선 이 소유자를 해당계정으로 바꿔어 줘야 삭제가 가능하다.

즉 소유하고 있는 테이블 및 프로시저가 없어야 삭제가 가능하다.


Exec sp_changeobjectowner '전소유자.프로시저명(테이블명)', '바뀔 소유자'

 

반응형

'Mssql' 카테고리의 다른 글

DTS 가져오기/내보내기 오류  (0) 2011.11.29
MSSQL-2000 서비스팩 확인  (0) 2011.03.24
mssql DB복원 후 로그인이 되지 않을 때  (0) 2011.03.16
Msslq 테이블 복제  (0) 2011.03.02
MSSQL 용량 확인 및 설정  (0) 2011.02.28
posted by Rootrator
2011. 3. 2. 12:39 Mssql

간혹가다가 테이블만 복원해 달라는 고객이 있었다..

DB전체 복원은 참 쉽지만...

테이블 복원 뭐랄까...참 쌩뚱맞다.

DB하나를 생성해서 이전 백업본으로 복원 후 테이블만 복사하는 식으로 복원할때 썻던 방법이다.

<테이블 구조만 복사>
select * into [백업데이타테이블] from [복원할테이블] where '1' = '2';

<테이블 구조와 값까지 복사>
select * into [db명.소유자.테이블명] from [db명.소유자.테이블명] where '1' = '1';

위의 쿼리는 다른 DB간의 테이블 복사이다. 참고
반응형

'Mssql' 카테고리의 다른 글

DTS 가져오기/내보내기 오류  (0) 2011.11.29
MSSQL-2000 서비스팩 확인  (0) 2011.03.24
mssql DB복원 후 로그인이 되지 않을 때  (0) 2011.03.16
Mssql 테이블 소유자 변환  (0) 2011.03.02
MSSQL 용량 확인 및 설정  (0) 2011.02.28
posted by Rootrator
2011. 2. 28. 14:55 Mssql

엔터프라이즈 매니저에서는 DB전체의 용량사용 확인은 가능하다.

하지만 테이블 마다 용량확인 불가능한데

테이블 용량확인은 SQL쿼리로 조회가 가능하다 

select table_name = convert(varchar(30), min(o.name)),   table_size = str(sum(reserved) * 8192 / 1024.,15,0)
from sysindexes i inner join sysobjects o on (o.id = i.id)
where i.indid in (0, 1, 255) and o.xtype = 'U' group by i.id;


그리고 용량 확보를 위해 데이터를 지웠지만

오히려 데이터가 늘어난 어이없는 상황이 있었다.
 
트렌젝션 로그만 200메가정도...?

이럴 경우는 최종 용량크기를 정할 수 있는 SQL문이 있다.


DBCC SHRINKFILE(데이터베이스명_DATA, 최종 크기)

트렌젝션 로그 파일 용량 설정

BACKUP LOG [데이터베이스명] WITH TRUNCATE_ONLY

로그파일 용량 1MB로 설정

DBCC SHRINKFILE(데이터베이스명_LOG, 1)

반응형

'Mssql' 카테고리의 다른 글

DTS 가져오기/내보내기 오류  (0) 2011.11.29
MSSQL-2000 서비스팩 확인  (0) 2011.03.24
mssql DB복원 후 로그인이 되지 않을 때  (0) 2011.03.16
Mssql 테이블 소유자 변환  (0) 2011.03.02
Msslq 테이블 복제  (0) 2011.03.02
posted by Rootrator
prev 1 next