database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 6631 게시물 읽기
No. 6631
MS-SQL2000서버 DB를 Client에서 백업하기
작성자
김우성(babokws)
작성일
2013-02-17 12:21
조회수
12,454

MS-SQL2000 설치시 도메인 계정으로 설치하고

사용자 계정에 SQL_Service 라는 계정을 만들고,SQL_Service 로 윈도우 로그인을하고

EM에서 데이터베이스-보안-로그인에서 새로운 사용자 AAA 를 만들고

TestDB - 사용자-사용자도 추가해주고

C:\ , D:\ 공유해서 SQL_Service 추가하고 모든 권한 주고

Client 컴 EM에서 서버그룹 XXX.XXX.XXX.XXX 추가해주고

Query 분석기에서 SQL Server = XXX.XXX.XXX.XXX  (IP) , 연결정보에 SQL Server인증에 로그인이름 AAA및 암호 넣고 로그인한후

backup database TestDB to disk='\Client컴 IP\c$\abc.bak'

이렇게 해도 무엇이 잘못 된건지 Client 컴에 백업이 않되네요 방법좀 갈켜주세요

버: 메시지 3201, 수준 16, 상태 1, 줄 1
백업 장치 '\ XXX.XXX.XXX.XXX \c$\abc.bak'을(를) 열 수 없습니다. 장치에 오류가 있거나 장치가 오프라인 상태입니다. 자세한 내용은 SQL Server 오류 로그를 확인하십시오.
서버: 메시지 3013, 수준 16, 상태 1, 줄 1
BACKUP DATABASE이(가) 비정상적으로 종료되는 중입니다.
 

이 글에 대한 댓글이 총 18건 있습니다.

서버 컴퓨터에서

\XXX.XXX.XXX.XXX\c$\

와 같이 주소를 넣으시고 접근이 되시는지...

되신다면 파일을 새로 생성할 수 있는지를 확인해 보세요.

원격 백업을 항상 같은 서버에 수행하실 계획이라면 network drive를 설정하시는 것을 추천드립니다.

우욱님이 2013-02-17 19:56에 작성한 댓글입니다. Edit

서버컴 : 111.111.111.111
클라이언트컴 : 222.222.222.222 이라고 가정하에

01. 서버컴 쿼리분석기에서 backup database TestDB to disk='\222.222.222.222\c$\aaa.bak'

서버: 메시지 3201, 수준 16, 상태 1, 줄 1
백업 장치 '\1.253.188.48\c$\aaa.bak'을(를) 열 수 없습니다. 장치에 오류가 있거나 장치가 오프라인 상태입니다. 자세한 내용은 SQL Server 오류 로그를 확인하십시오.
서버: 메시지 3013, 수준 16, 상태 1, 줄 1
BACKUP DATABASE이(가) 비정상적으로 종료되는 중입니다.

02. network drive를 Client 컴에서 만들려고하면 내네트워크환경 오른쪽버튼 네트워크 드라이브연결에서 같은네트워크상에서는 Z:가만들어 지는데 다른 네트워크에서는 \111.111.111.111\c$\ (서버ip) 연결이 안되요.

03. MS-SQL2000 무인설치시 iss파일을 만든후 cmd에서 Microsoft SQL 2000 Server\X86\SETUP 폴더로 이동후
setupsql.exe -f1 c:\a\setup.iss -SMS -S
이렇게 명령을내리면 10초후 그냥 명령프롬프트로 떨어지고 Windows작업관리창에는 1~2분정도 있다가 사라지면서 무인설치가 안되요

 

 


 

김우성(babokws)님이 2013-02-18 14:21에 작성한 댓글입니다.

1. 위에 드렸던 답변부터 확인해 보세요.

2. network 드라이브를 생성하는 것은 SQL이 설치되어 있는 컴퓨터에서 생성해서 SQL 서버에서는 해당 network drive로 backup을 수행하면 network drive를 내어준 컴퓨터에 back up 파일이 생성되겠죠.

3. MDAC로그인 Dasetup.log를 확인해 보시고, -f2 "원하는위치및파일"로 로그파일을 생성해서 로그파일을 확인해 보세요.

우욱님이 2013-02-18 16:32에 작성한 댓글입니다. Edit

서버ip 1.253.XXX.XXX
클라이언트ip 222.222.222.222
1.
서버 컴퓨터에서 backup database TestDB to disk='\1.253.XXX.XXX\c$\abc.bak'
서버 컴퓨터에서 backup database TestDB to disk='\222.222.222.222\c$\abc.bak'
클라이언트 컴퓨터에서  backup database TestDB to disk='\1.253.XXX.XXX\c$\abc.bak'
클라이언트 컴퓨터에서  backup database TestDB to disk='\222.222.222.222\c$\abc.bak'

쿼리돌리면 백업 장치 '\1.253.XXX.XXX\c$\abc.bak'을(를) 열 수 없습니다. 장치에 오류가 있거나 장치가 오프라인 상태입니다. 자세한 내용은 SQL Server 오류 로그를 확인하십시오. 라고 뜹니다.

2. network 드라이브는 클라이언트 컴에서 내네트워크환경 오른쪽버튼눌러서 네트워크 드라이브연결눌러서
   폴더항목에 서버ip (예:\1.253.XXX.XXX\c$\) 이렇게 넣어주면 되는걸로 알고 있는데 틀린건가요?

3. 무인설치는 해결했습니다. 감사드립니다...

김우성(babokws)님이 2013-02-19 03:34에 작성한 댓글입니다.

1. 여기에 있는 제가 2번째 드린 공유 폴더의 생성과 접근에 대한 내용들을 확인하시는 것이 우선 순위겠습니다.

 

2. 당연히 공유 폴더 부분이 해결이 되어야만 network drive를 설정하실 수 있습니다.

우욱님이 2013-02-19 09:13에 작성한 댓글입니다. Edit

제가 궁금한거는요

MS-SQL2000 설치시 도메인 계정으로 설치하고

사용자 계정에 SQL_Service 라는 계정을 만들고,SQL_Service 로 윈도우 로그인을하고

EM에서 데이터베이스-보안-로그인에서 새로운 사용자 AAA 를 만들고

TestDB - 사용자-사용자도 추가해주고

C:\ , D:\ 공유해서 SQL_Service 추가하고 모든 권한 주고

Client 컴 EM에서 서버그룹 XXX.XXX.XXX.XXX 추가해주고

Client 컴에서 backup database TestDB to disk='\ \Client컴 IP\c$\abc.bak'

이렇게 해도 무엇이 잘못 된건지 Client 컴에 백업이 안되요

폴더공유,권한부여,방화벽,계정도 다된것 같은데도 안되요 이런메세지만 나와요

백업 장치 '\ \클라이언트컴ip넣었음\c$\aaa\abc.bak'을(를) 열 수 없습니다. 장치에 오류가 있거나 장치가 오프라인 상태입니다. 자세한 내용은 SQL Server 오류 로그를 확인하십시오.

이것이 안되다보니 클라이언트 컴에서  네트워크 드라이브에 서버ip를 넣어도 찾지를 못하네요

OpenVPN 프로그램쓰면 가능한데 저는 OpenVPN 프로그램 구성없이 서버컴에서 클라이언트 컴에

주기적으로 sql 백업파일을 저장하고 싶어요 도와주세요....

김우성(babokws)님이 2013-02-19 10:15에 작성한 댓글입니다.
이 댓글은 2013-02-19 10:18에 마지막으로 수정되었습니다.

구석에 처박혀있는 2000을 꺼내서 설치해서 test해보려고 했지만 설치할 수 있는 windows를 찾을 수가 없네요.. 휴..T,.T

우욱님이 2013-02-20 05:26에 작성한 댓글입니다. Edit

 우선 제가 가정을 했던 부분은

당연히 backup을 받을 서버는 동일한 network 상에 있는 서버로 생각하여 network folder를 이용해서 backup을 하실 수 있으리라 생각을 했었습니다.

그런데 우성님과 연락이 닿아 확인해본 바로는 동일한 network 상에 있지는 않은 상황이었습니다.

그 후에 나름 열심히 찾아봤지만 동일한 네트웍 상에 있지 않은 경우에는 폴더를 공유하는 것이 거의 불가능해보였습니다. 우선 인터넷 서비스를 제공하는 업체(SK브로드밴드 같은)에서 139포트 등을 막아두었기 때문이며 이를 port forwarding을 해도 접근하는 쪽에서 포트를 지정해서 접근할 수 없었습니다.

따라서 다른 해결책이 필요한 상황이었습니다.

그래서 보안상 조금 취약해질 수 있는 방법이지만 xp_cmdshell을 대안으로 말씀드려봅니다.

1. 서버의 로컬에 backup을 생성

2. xp_cmdshell 'ftp -s:ftpScript.txt'

와 유사한 방식으로 command로 로컬에 남겨진 파일을 전송하실 수 있겠습니다.

위의 경우 제가 test해본 ftpScript.txt파일의 내용은 다음과 같습니다.

 

open someFtp.com somePort
MyFtpId
MyFtpPassWord
bin
put backUpFileName.ext
bye
 
굳이 ftp가 아니더라도 다른 방법을 사용할 수도 있겠지만 아무래도 xp_cmdshell을 사용해야 한다는 부분이 좀 꺼림직합니다.

 

 

우욱님이 2013-02-20 22:59에 작성한 댓글입니다. Edit

MS-SQL2000 에서는 xpshell이 기본으로 활성화되어있네요

01.someFtp.com에 가입을 해야 되는건가요?

 

02.쿼리분석기 - 서버컴에서 xp_cmdshell 'copy c:\backup.bak \클라이언트ip\c$'

(서버컴 c:\backup.bak를 클라이언트 컴 c:\에 복사하기)

네트워크 경로를 찾지 못했다고 나오네요

03.혹시 OpenVPN으로 서버컴에 접속시 클라이언트에서 네트워크탐색기에 서버목록이 나타나는데

서버컴의 프로그램을 실행하면 서버컴에서 프로그램이 작동되게할수있나요?

--클라이언트에서  서버컴의 프로그램을 실행하면 클라이어트에서 작동이 됩니다.--

김우성(babokws)님이 2013-02-21 11:39에 작성한 댓글입니다.
이 댓글은 2013-02-21 11:40에 마지막으로 수정되었습니다.

 1. client쪽에서 ddns 등을 이용하고, FileZilla Server 같은 FTP 서버를 띄운 후에(아마 기본인 21번 포트를 변경하시는 편이 더 좋겠습니다.) client로 전송 받으시면 되겠습니다.

2. 지금 환경이 139, 445를 통해서 연결이 안되는 관계로 command shell을 이용하더라도 netbios를 이용한 copy는 되지 않을 것으로 생각됩니다.

3. 헐... VPN이 가능하다는 말쓰을 왜 여태 안하셨어요? VPN이 가능하면 \vpnip\폴더\파일 식으로 backup도 될텐데요.... T,.T;; 그리고 vpn이 된다면 PsExec 같은 툴로 원격지의 프로그램을 실행하시는 게 가능하실 겁니다.

우욱님이 2013-02-22 09:27에 작성한 댓글입니다. Edit

Filezilla Server 구축으로 클라이언트에서 백업이 가능해졌습니다. 그런데 질문이하나더있습니다.

서버에 Filezilla Server 구축후 Port를 21번 말고    예)8876 이런Port로 변경시

클라이언트에서  접속후 ftp> dir 해보면

200 Port command successful

150 Opening data channel for directory list

이렇게만 나오고 더이상 진행이 되지않습니다...

다시 21번으로 변경하면 정상적으로 dir 이 잘수행됩니다. 포트바꾸고 passive 모드, 일반포트범위에서도 8876~8876으로변경했는데두 안되네요 님말처럼 21번포트가 취약하니 변경하려구했는데...

02. 클라이언트에서 PsExec \서버ip -u 서버이름\서버사용자이름 -p 서버사용자비번 cmd.exe

이렇게로는 접근이 안되나요?

김우성(babokws)님이 2013-02-24 14:39에 작성한 댓글입니다.
이 댓글은 2013-02-24 14:58에 마지막으로 수정되었습니다.

dir이 수행되지 않는 것은 data port가 제대로 동작하지 못하는 경우입니다.

active와 passive의 차이점을 확인해 보시면서 어떤 mode로 동작하는지,

어느 쪽의 어떤 포트가 열려야 하는지를 고민해 보시면 해결되지시 않을까 싶습니다.

 

PsExec이 가능하려면 139, 445등이 가능해야 되는데, 예전에 말씀하셨던 VPN으로 연결을 하시면 가능하실 것으로 보입니다.

우욱님이 2013-02-25 09:41에 작성한 댓글입니다. Edit

FileZilla Port변경은 포기했어요. 그냥21번 포트쓰려구요...

질문) PsExec 실행시 A.txt 파일의 정보도 같이 읽어 올수있나요?

예) PsExec \ \ ip A.txt cmd.exe 이런식으로 Start.cmd파일실행시 VPN으로 연결된 컴의 특정프로그램 실행을 자동으로 하고 싶어서요

기존에는 로그인까지는 Start.cmd 만들어서 되는데

프로그램 실행할려구하니 일일이 cd 루트 넣어주고 프로그램이 위치한 위치까지 가서 명령을 줘야되는데

상당한 노가다네요...^^

김우성(babokws)님이 2013-02-25 18:51에 작성한 댓글입니다.

PsExec 실행시 .txt 파일을 읽을수 없나요?

김우성(babokws)님이 2013-02-27 00:38에 작성한 댓글입니다.

제가 기억하기로는

MS-SQL2000은 물리적 하드디스크만 지원합니다.

즉, 네트워크 드라이브는 인식 못합니다.

그래서, 저는 로컬하드에 받고,

프로그램 만들어서 백업파일이 있을경우, 네트워크 드라이브로 옮기도록 했습니다.

 

이승철(yamyo)님이 2013-02-27 16:39에 작성한 댓글입니다.

같은 네트워크 상에 있어야 네트워크 드라이브가 가능한걸로아는데요

저는 다른 네트워크 상에 있어서요 ip, DDNS 로 연결을 해야 되서요...

결국은 VPN 과 FTP 를 같이 구축해 놨습니다. 좀 복잡하긴한데 쉬운방법이 없어서요

CMD 에서 자동 백업파일을 만들려구하는데 유용한툴인 PsExec 를 실행시 txt 파일의 정보를 읽어서

실행이 가능한지가 궁금하네요. 아무리 찾아 봐도 가능할것 같기는 한데 98% 모자라네요

김우성(babokws)님이 2013-02-27 18:52에 작성한 댓글입니다.

 서버에 있는 txt파일이라면 절대경로를 이용하시면 됩니다만....

local에 있는 txt파일이라면 psexec만으로는 안됩니다. ㅋ

 

우욱님이 2013-02-28 09:48에 작성한 댓글입니다. Edit

서버에 c:\ps.txt 파일이 있고요

내용은 cd c:\Progra~1\AAA\
psexec Auto.exe /accepteula

입니다

서버컴에 vpn으로 접속후 c:\으로가서

psexec c:\ps.txt

다른 옵션이나 추가해야할게 있나요?

psexec 파일은 서버 system32에 복사했습니다

김우성(babokws)님이 2013-03-03 10:31에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6634아래 질문 다시 올립니다. [2]
dididic
2013-02-20
8238
6633이럴 경우 어떻게 해야하나요? [1]
dididic
2013-02-20
8248
6632쿼리 질문입니다. [2]
dididic
2013-02-18
8236
6631MS-SQL2000서버 DB를 Client에서 백업하기 [18]
김우성
2013-02-17
12454
6630[Q] 무조건 디폴트값만 [2]
김면수
2013-02-13
8003
6629연속된 테이블에서 Join의 기준 테이블 [1]
sdlkjf
2013-02-09
9618
6628[질문] 시간별 데이터의 차이 값 구하기 쿼리 [1]
임시
2013-02-04
9319
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다