OS설치 후 바로 DB설치 -> Hostname 변경 후 이런저런 작업을 하고 있었습니다


이런 히스토리를 모르고 담당자가 계정 속성을 변경하려고 하였더니

'서버 수준의 URN 필터가 잘못되었습니다 ~~~~' 라는 에러 메시지가 발생했습니다. 


[원인]

메타데이터가 이전 Old_Hoatname으로 저장되어져 있었기 때문입니다.

sp_dropserver, sp_addserver 프로시저를 통해 메타데이터 변경해 주시기 바랍니다.


주의

기본 인스턴스일때와 명명된 인스턴스일때 약간의 구문 차이가 있으니 참고해 주시기 바랍니다.

[참고사이트]

SQL Server의 독립 실행형 인스턴스를 호스팅하는 컴퓨터 이름 바꾸기

https://docs.microsoft.com/ko-kr/sql/database-engine/install-windows/rename-a-computer-that-hosts-a-stand-alone-instance-of-sql-server#after-the-renaming-operation


'Database > Microsoft SQL Server' 카테고리의 다른 글

계정 속성 변경 실패 / URN  (0) 2018.02.08
SA 패스워드 초기화  (0) 2015.06.15
로그인 감사 설정 변경  (0) 2015.05.18
Pssdiag 수집 방법  (0) 2015.03.13
시점복원 / 로그체인  (0) 2015.03.13
SQL Server Native Client  (0) 2014.09.30

SA 패스워드 초기화

Database/Microsoft SQL Server 2015.06.15 10:52 Posted by smileyoon

1. SQL Server 구성 관리자를 실행합니다.

2. SQL Server - 시작 매개 변수 이동하여 -m 시작 매개 변수를 추가해 주시기 바랍니다. (단일 사용자 모드로 시작)

3. SQL Server 서비스를 재 시작해 주시기 바랍니다.

4. 관리자 권한으로 커맨드 창을 실행해 주시기 바랍니다.

5. Sqlcmd 명령어를 실행 한 후 아래와 같은 쿼리문을 타이핑 후 실행합니다.

   

/* sa password change query */

sp_password @old=null, @new='설정할 패스워드', @loginame='sa'

6. 1-2번 스텝을 진행한 후 -m 시작 매개 변수를 제거해 주시기 바랍니다.

7. SQL Server 서비스를 재 시작해 주시기 바랍니다.

8. SSMS 통해 정상 로그인 여부를 확인합니다.

   

[참고 사이트]

sp_password(Transact-SQL)

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

   

   

'Database > Microsoft SQL Server' 카테고리의 다른 글

계정 속성 변경 실패 / URN  (0) 2018.02.08
SA 패스워드 초기화  (0) 2015.06.15
로그인 감사 설정 변경  (0) 2015.05.18
Pssdiag 수집 방법  (0) 2015.03.13
시점복원 / 로그체인  (0) 2015.03.13
SQL Server Native Client  (0) 2014.09.30

로그인 감사 설정 변경

Database/Microsoft SQL Server 2015.05.18 13:50 Posted by smileyoon

보안상의 이유로 기본값인 [실패한 로그인만]이 아닌 [실패한 로그인과 성공한 로그인 모두] 남기는 설정이 필요한 경우가 있습니다.

설정 값 변경 후 SQL Server 서비스 재 시작해야만 적용되므로 업무 시 참고해 주시기 바랍니다.



'Database > Microsoft SQL Server' 카테고리의 다른 글

계정 속성 변경 실패 / URN  (0) 2018.02.08
SA 패스워드 초기화  (0) 2015.06.15
로그인 감사 설정 변경  (0) 2015.05.18
Pssdiag 수집 방법  (0) 2015.03.13
시점복원 / 로그체인  (0) 2015.03.13
SQL Server Native Client  (0) 2014.09.30

Pssdiag 수집 방법

Database/Microsoft SQL Server 2015.03.13 16:09 Posted by smileyoon

[PSSDIAG 수집 방법]

1. 가용 공간이 충분한 드라이브를 선택한 후, PSSDIAG 폴더를 만듭니다.

2. PSSDIAG 폴더에 첨부된 파일을 저장한 후 확장자를 EXE로 변경합니다.

3. SQL Server가 클러스터 기반위에 설치되어져 있는 경우 PSSDiag.XML 을 열어 Machine name="SQLCluster_Network_Name"으로 수정,

명명된 인스턴스로 설치되어져 있을 경우 Machine name="hostname\instance_name"으로 변경 후 저장해 주시기 바랍니다.

   

=>SQL Server Virtual Network Name 확인 방법

   

/* 기본, 명명된 인스턴스인지 확인하는 방법 */

시작-실행-services.msc 실행 후 아래와 같이 MSSQLSERVER로 되어 있으면 기본 인스턴스 아니면 명명된 인스턴스로 설치되어져 있는 것입니다.

   

4. 관리자 권한으로 커맨드 창을 실행 시킨 후 아래와 같이 수집 시작 및 중지 시간을 지정하여 명령어를 실행합니다.

PSSDIAG /B 20150314_04:30:00 /E 20150314_05:30:00

   

5. 수집이 중지되면 Output 폴더가 생성되며, Nexus Tool 이용하여 분석할 있습니다.

'Database > Microsoft SQL Server' 카테고리의 다른 글

SA 패스워드 초기화  (0) 2015.06.15
로그인 감사 설정 변경  (0) 2015.05.18
Pssdiag 수집 방법  (0) 2015.03.13
시점복원 / 로그체인  (0) 2015.03.13
SQL Server Native Client  (0) 2014.09.30
파일을 이용한 백업 및 복원  (0) 2014.09.14

시점복원 / 로그체인

Database/Microsoft SQL Server 2015.03.13 10:56 Posted by smileyoon

   

풀 백업을 받고 그 다음에 트랜잭션 로그 백업을 받게 되면 이전 트랜잭션 로그 백업과의 로그체인이 끊어질까?라는 의문에서 아래와 같이 테스트를 해 보았습니다.

   

/* 테스트 시나리오 */

각각의 스텝을 시간 차를 두어 실행합니다. 문제가 있다는 가정하에 7번 스텝 바로 이전의 시점으로 돌아가려고 합니다.

   

  1. 데이터 입력
  2. 풀 백업
  3. 데이터 입력
  4. 데이터 입력
  5. 트랜잭션 로그 백업
  6. 데이터 입력
  7. 풀 백업
  8. 데이터 입력
  9. 트랜잭션 로그 백업

   

/* 테스트 전 사전 준비 SCRIPT */

CREATE DATABASE BED

GO

   

USE BED

GO

   

CREATE TABLE TBL1 (A INT)

GO

   

INSERT INTO TBL1 VALUES(1)

GO

   

--1차 FULLBACKUP

BACKUP DATABASE BED TO DISK = 'C:\TEST\FULL1.BAK'

GO

   

INSERT INTO TBL1 VALUES(2)

GO

   

INSERT INTO TBL1 VALUES(3)

GO

   

--1차 트랜잭션 로그 백업

BACKUP LOG BED TO DISK = 'C:\TEST\TRN1.BAK'

GO

   

   

INSERT INTO TBL1 VALUES (4)

GO

   

SELECT * FROM TBL1

GO

   

--2차 트랜잭션 로그 백업

BACKUP LOG BED TO DISK = 'C:\TEST\TRN2.BAK'

GO

   

INSERT INTO TBL1 VALUES (5)

GO

   

--2차 FULLBACKUP

BACKUP DATABASE BED TO DISK = 'C:\TEST\FULL2.BAK'

GO

   

INSERT INTO TBL1 VALUES (6)

GO

   

--3차 트랜잭션 로그 백업

BACKUP LOG BED TO DISK = 'C:\TEST\TRN3.BAK'

GO

   

/* 복원 시나리오 SCRIPT */

RESTORE DATABASE BED FROM DISK = 'C:\TEST\FULL1.BAK' WITH NORECOVERY

GO

   

RESTORE LOG BED FROM DISK = 'C:\TEST\TRN1.BAK' WITH NORECOVERY

GO

   

RESTORE LOG BED FROM DISK = 'C:\TEST\TRN2.BAK' WITH NORECOVERY

GO

   

RESTORE LOG BED FROM DISK = 'C:\TEST\TRN3.BAK' WITH STOPAT = '2015-03-13 10:19:14.000', RECOVERY

GO

   

/* BACKUP 실행 HISTORY 확인 QUERY */

SELECT DATABASE_NAME, TYPE, BACKUP_SIZE, RECOVERY_MODEL, first_lsn,last_lsn, backup_start_date,

backup_finish_date FROM MSDB.DBO.backupset

   

실행 결과 값

=>풀 백업 이후 트랜잭션 로그 백업의 LSN의 값과 풀 백업 이전의 트랜잭션 로그 백업의 LSN값이 동일합니다.

이러한 결과 값으로 보아 풀 백업을 하더라도 로그 체인이 끊기지 않기 때문에 로그 백업만 잘 되어 있다라는 가정하에 특정 시점의 복원이 가능합니다.

   

결론 트랜잭션 로그 체인이 정상, 연결되어 있다는 가정하에 트랜잭션 로그 파일을 보관하고 있다면 원하는 시점으로 복원이 가능합니다.

   

   

'Database > Microsoft SQL Server' 카테고리의 다른 글

로그인 감사 설정 변경  (0) 2015.05.18
Pssdiag 수집 방법  (0) 2015.03.13
시점복원 / 로그체인  (0) 2015.03.13
SQL Server Native Client  (0) 2014.09.30
파일을 이용한 백업 및 복원  (0) 2014.09.14
패스워드 분실 / 로그인 불가  (0) 2014.08.25

SQL Server Native Client

Database/Microsoft SQL Server 2014.09.30 22:04 Posted by smileyoon

SQL Server Native Client는 SQL Server 2005에서 도입된 기술로, OLE DB 및 ODBC 모두에서 사용되는 독립 실행형 데이터 액세스 API(응용 프로그래밍 인터페이스)입니다


SQL Server Native Client는 OLE DB 또는 ODBC를 사용하여 SQL Server의 네이티브 데이터에 액세스하는 간단한 방법을 제공하도록 디자인되었습니다.


출처 - http://msdn.microsoft.com/ko-kr/library/ms130892.aspx

파일을 이용한 백업 및 복원이 가능할까요? 

정답? 가능하다.


[테스트 시나리오]


현재 테이블에는 1이라는 데이터만 있다.

  1. 신규 데이터 2를 입력한다.
  2. SQL Server 서비스를 중지한다.
  3. 파일(mdf, ldf)을 다른 곳으로 복사해 둔다.
  4. SQL Server 서비스를 시작한다.
  5. 새로 추가한 데이터 2를 지운다.
백업해 놓은 파일을 이용하여 복원을 해 보자
  1. SQL Server 서비스를 중지한다.
  2. 백업한 파일(mdf, ldf)을 기존 파일 위치에 overwriting 한다.
  3. SQL Server 서비스를 시작한다.
  4. 테이블을 조회하여 1,2 데이터가 있는지 확인한다.



[참고사항]

  • 보통 백업 및 복원을 하기 위해서는 운영중인 서버와 모든 조건이 동일해야한다.

(파일 저장 위치, SQL Server Version)

  • Backup Database 구문으로 백업할 경우 드라이브 구조가 다른 물리적인 서버에 move 옵션을 

사용하여 복원할 수 있다.


예)

RESTORE DATABASE TestDB 
   FROM AdventureWorksBackups 
   WITH MOVE 'AdventureWorks2012_Data' TO 'C:\MySQLServer\testdb.mdf',
   MOVE 'AdventureWorks2012_Log' TO 'C:\MySQLServer\testdb.ldf';
GO

[참고사이트]

RESTORE(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms186858.aspx

BACKUP(Transact-SQL)

http://msdn.microsoft.com/ko-kr/library/ms186865.aspx


로그인 가능한 모든 계정에 대한 패스워드를 분실한 경우 아래와 같은 방법으로 장애 처리가 가능합니다.


1. SQL Server 구성 관리자 - SQL Server 속성 선택 후 시작 매개 변수에 -m 옵션을 추가합니다.

2. SQL Server를 재 시작합니다.

3. 커맨드 라인 창을 열고 sqlcmd를 타이핑 한 후 실행합니다.

4. 아래와 같이 sysadmin 서버 역할을 가지는 로그인 계정을 생성합니다.


참고! 

커맨드 라인에서 쿼리문을 실행하시기 위해서는 GO를 입력해야 합니다.


5. SQL Server 구성 관리자로 이동하여 1번 스텝에서 추가한 시작 매개 변수 -m을 제거 합니다.

6. SQL Server를 재 시작합니다.

7. SSMS를 통해 정상 로그인 되는지 확인합니다.


[참고 사이트]

  • sqlcmd 유틸리티 사용

http://msdn.microsoft.com/ko-kr/library/ms180944.aspx

  • SQL SERVER – Forgot the Password of Username SA

http://blog.sqlauthority.com/2009/08/04/sql-server-forgot-the-password-of-username-sa/

  • SQL SERVER – Start SQL Server Instance in Single User Mode

http://blog.sqlauthority.com/2009/02/10/sql-server-start-sql-server-instance-in-single-user-mode/



SQL Server Cluster 환경에서는 SQL Server Agent의 시작, 정지, 재시작을 버튼이 비활성화 되어 있습니다. (Cluster 환경이라 모든 리소스들을 장애 조치 클러스터 관리자에서 컨트롤하라고 이렇게 설계된 것 같습니다.)

 

 

SQL SERVER – FIX – ERROR : Msg 3201, Level 16 Cannot open backup device . Operating system error 5(Access is denied.)


백업 할려고 하는데 아래와 같은 메시지가 나타나면서 실패했다. 


원인은 별거 없었다..... SQL Server Service 시작 계정이 해당 드라이브에 [쓰기] 권한이 없어서 이런 메시지가 발생했던 것이다..... 


해당 드라이브 선택 후 [속성] - [보안] 이동한 후 SQL Server Service 시작 계정에 풀권한을 부여한 후 추가하면 해결


[참고사이트]

SQL SERVER – FIX – ERROR : Msg 3201, Level 16 Cannot open backup device . Operating system error 5(Access is denied.)

http://blog.sqlauthority.com/2011/04/13/sql-server-fix-error-msg-3201-level-16-cannot-open-backup-device-operating-system-error-5access-is-denied/