독까의 이야기

[ MS-SQL 다중 포트 접속 방법 1]

MS-SQL 의 미러링 구성 테스트를 위하여 다중 포트 접속 시스템 설정

1.  SQL 설치 서버 접속

2.  시작 - 모든 프로그램 - SQL 폴더 - 구성 도구 - SQL Server 구성 관리자

3.  SQL Server 네트워크 구성 - MSSQLSERVER에 대한 프로토콜 - TCP/IP - IP 주소 탭

4.  스크롤 최하단으로 이동 후 IPALL 카테고리의 TCP 포트에 추가 접속할 포트를 입력

5.  1433, 14335, 14336 입력 후 확인

6.  SQL Server 서비스 - SQL Server 재시작

7.  서버 방화벽에서 추가 입력한 포트 인바운드 추가

8.  SSMS 에서 접속 방법
     ->  192.168.10.101,14335
     ->  계정 / 패스워드
     ->  정상 접속 확인 

 

[ MS-SQL 다중 포트 접속 방법 2]

다중 아이피 사용 중인 서버에서, 아이피마다 다른 접속 포트를 사용하게 구성

1.  SQL 설치 서버 접속

2.  시작 - 모든 프로그램 - SQL 폴더 - 구성 도구 - SQL Server 구성 관리자

3.  SQL Server 네트워크 구성 - MSSQLSERVER에 대한 프로토콜 - TCP/IP - 프로토콜 탭 - 모두 수신 : 아니요

4.  SQL Server 네트워크 구성 - MSSQLSERVER에 대한 프로토콜 - TCP/IP - IP 주소 탭
4-1.  IP 1 : 192.168.1.101 / TCP 포트 1433 / 사용 : 예
4-2.  IP 3 : 192.168.1.103 / TCP 포트 14335 / 사용 : 예

5.  스크롤 최하단으로 이동 후 IPALL TCP 포트 삭제 후 확인

6.  SQL Server 서비스 - SQL Server 재시작

7.  서버 방화벽에서 추가 입력한 포트 인바운드 추가

8. SSMS 접속 테스트
8-1. 192.168.1.101:1433 접속 성공 / 192.168.1.101:14335 접속 불가
8-2. 192.168.1.103:14335 접속 성공 / 192.168.1.103:1433 접속 불가

'Database > MS-SQL' 카테고리의 다른 글

sa 계정 패스워드 초기화  (0) 2016.07.21
MS-SQL 에서 메일 발송  (0) 2016.07.21
MS-SQL Express 자동 백업 스크립트  (0) 2016.07.20
SQL Management Studio 2014 다운로드  (0) 2016.07.20
MS-SQL Attatch, Detach  (0) 2016.07.20

Express 버전의 경우 서버 에이젼트가 설치되지 않아 작업스케쥴링을 설정 불가

배치파일("sqlcmd")과 프로시져를 이용한 백업 스크립트 작성 및 윈도우 작업 스케쥴을 통해 DB 자동 백업을 실행 가능

참조

http://support.microsoft.com/kb/2019698/en-us


1. 백업을 위한 프로시져 생성

// Copyright ⓒ Microsoft Corporation.  All Rights Reserved.
// This code released under the terms of the
// Microsoft Public License (MS-PL, http://opensource.org/licenses/ms-pl.html.)
USE [master]
GO
/****** Object:  StoredProcedure [dbo].[sp_BackupDatabases] ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
-- =============================================
-- Author: Microsoft
-- Create date: 2010-02-06
-- Description: Backup Databases for SQLExpress
-- Parameter1: databaseName
-- Parameter2: backupType F=full, D=differential, L=log
-- Parameter3: backup file location
-- =============================================
 
CREATE PROCEDURE [dbo].[sp_BackupDatabases]
            @databaseName sysname = null,
            @backupType CHAR(1),
            @backupLocation nvarchar(200)
AS
 
       SET NOCOUNT ON;
           
            DECLARE @DBs TABLE
            (
                  ID int IDENTITY PRIMARY KEY,
                  DBNAME nvarchar(500)
            )
           
             -- Pick out only databases which are online in case ALL databases are chosen to be backed up
             -- If specific database is chosen to be backed up only pick that out from @DBs
            INSERT INTO @DBs (DBNAME)
            SELECT Name FROM master.sys.databases
            where state=0
            AND name=@DatabaseName
            OR @DatabaseName IS NULL
            ORDER BY Name
           
            -- Filter out databases which do not need to backed up
            IF @backupType='F'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','AdventureWorks')
                  END
            ELSE IF @backupType='D'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                  END
            ELSE IF @backupType='L'
                  BEGIN
                  DELETE @DBs where DBNAME IN ('tempdb','Northwind','pubs','master','AdventureWorks')
                  END
            ELSE
                  BEGIN
                  RETURN
                  END
           
            -- Declare variables
            DECLARE @BackupName varchar(100)
            DECLARE @BackupFile varchar(100)
            DECLARE @DBNAME varchar(300)
            DECLARE @sqlCommand NVARCHAR(1000)
        DECLARE @dateTime NVARCHAR(20)
            DECLARE @Loop int                
                       
            -- Loop through the databases one by one
            SELECT @Loop = min(ID) FROM @DBs
 
      WHILE @Loop IS NOT NULL
      BEGIN
 
-- Database Names have to be in [dbname] format since some have - or _ in their name
      SET @DBNAME = '['+(SELECT DBNAME FROM @DBs WHERE ID = @Loop)+']'
 
-- Set the current date and time n yyyyhhmmss format
      SET @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),101),'/','') + '_' +  REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')
 
-- Create backup filename in path\filename.extension format for full,diff and log backups
      IF @backupType = 'F'
            SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_FULL_'+ @dateTime+ '.BAK'
      ELSE IF @backupType = 'D'
            SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_DIFF_'+ @dateTime+ '.BAK'
      ELSE IF @backupType = 'L'
            SET @BackupFile = @backupLocation+REPLACE(REPLACE(@DBNAME, '[',''),']','')+ '_LOG_'+ @dateTime+ '.TRN'
 
-- Provide the backup a name for storing in the media
      IF @backupType = 'F'
            SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' full backup for '+ @dateTime
      IF @backupType = 'D'
            SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' differential backup for '+ @dateTime
      IF @backupType = 'L'
            SET @BackupName = REPLACE(REPLACE(@DBNAME,'[',''),']','') +' log backup for '+ @dateTime
 
-- Generate the dynamic SQL command to be executed
 
       IF @backupType = 'F'
                  BEGIN
               SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'
                  END
       IF @backupType = 'D'
                  BEGIN
               SET @sqlCommand = 'BACKUP DATABASE ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH DIFFERENTIAL, INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'      
                  END
       IF @backupType = 'L'
                  BEGIN
               SET @sqlCommand = 'BACKUP LOG ' +@DBNAME+  ' TO DISK = '''+@BackupFile+ ''' WITH INIT, NAME= ''' +@BackupName+''', NOSKIP, NOFORMAT'      
                  END
 
-- Execute the generated SQL command
       EXEC(@sqlCommand)
 
-- Goto the next database
SELECT @Loop = min(ID) FROM @DBs where ID>@Loop
 
END


2. 백업 프로시져 호출을 위한 bat 파일 생성

-- 전체 백업 , 윈도우 인증을 통한 SQL EXPRESS의 모든 대상 백업.
sqlcmd -S .\EXPRESS ?E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"

-- 차등 백업 ,  Login 인증을 통한 SQL EXPRESS의 모든 대상 백업.
sqlcmd -U SQLLogin -P password -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases @backupLocation ='D:\SQLBackups', @BackupType=’D’"

-- 로그 전체 백업 , 윈도우 인증을  SQL EXPRESS의 모든 대상 백업.
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"

-- 전체 백업 , 지정된 DB 를 윈도우 인증을 통해 백업
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName=’USERDB’, @backupType='F'"

MS-SQL DB 의 접근 및 제어를 위해서는 관리툴의 사용이 필요하다. 


SQL Management Studio 최신 버전은 아래의 링크를 통해서 다운로드 가능하다. 


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