728x90

Express 버전의 경우 서버 에이젼트가 설치되지 않아 작업스케쥴링을 설정하는것이 불가능합니다..


그래서 배치파일("sqlcmd")과 프로시져를 이용한 백업 스크립트를 작성하고  윈도우 스케쥴링을 통해 자동 백업을 실행 할 수 있습니다.


상세한 내용은 MS Support Url을 참조해주세요. ( http://support.microsoft.com/kb/2019698/en-usViewer )


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


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// 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 파일을 생성합니다.

( 아래 스크립트는 MS 사이트에서 가져온 내용이고.. 위의 프로시져를 보시는편이 더 쉽게 이해하실수 있을 것 같습니다....)

1
2
3
4
5
6
7
8
9
10
11
-- 전체 백업 , 윈도우 인증을 통한 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'"


 실제사용한 백업 배치파일 스크립트

1
sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='E:\uhoon_DB_BACKUP\', @databaseName='db_name', @backupType='F'"




3. 위의 스크립트를 통해 생성한 배치파일을 실행하는것으로 백업이 가능하며

윈도우 스케쥴링에 등록하여 자동 백업이 가능하게 됩니다.


출처 - http://www.uhoon.co.kr/mssql/1301


728x90

'프로그래밍 > MS_SQL' 카테고리의 다른 글

MSSQL IDENTITY 값 재 설정  (0) 2015.04.27
MSSQL 자동 증가 시드값 가져오기  (0) 2015.04.27
mssql 파일 크기 줄이기  (0) 2015.04.14
MSSQL COMMENTS 생성  (0) 2015.04.13
mssql 테이블 용량 및 row 갯수  (0) 2015.03.24
728x90

배치파일 만드는법좀 알려주세요.

질문 출처: http://kin.naver.com/detail/detail.php?d1id=1&dir_id=1&eid=Q4L7z0O77fEnyxWrLugRFFQcSvvelO1e

 

매일 오늘 날짜로 생성되는 로그파일을 보는 배치파일을 만들려고 하는데요

----- 로그보기.bat ---------------------------
d:
cd _a_tools
cd tomcat
cd logs
cls
tail -f stdout_20091112.log
-------------------------------------------

위처럼 배치파일을 만들어서 사용하고 있는데요
문제는 파일이름이 매일 바뀐다는겁니다. 당일날짜로...
오늘은 2009년11월12일.
내일 생성되는 파일이름은 stdout_20091113.log
모래 생성될 파일이름은 stdout_20091114.log
이런식으로 로그파일 이름이 매일 바뀌기때문에
매일 배치파일을 수정해서 사용하고 있습니다.

자동으로 오늘날짜에 생성되는 파일을 실행시키는
방법이 없을까요?

 

 

tail -f d:\_a_tools\tomcat\logs\stdout_20091112.log

결론은 이거네여?

-_-)a

아유..

20091112

만 뽑음 되는거네여?

간단 하죠..ㅡ.ㅡ)a

 

sample2---------------------------- 정규식

@echo off

d:\_a_tools\tomcat\logs\tail -f stdout_%date:~-10,4%%date:~-5,2%%date:~-2,2%.log

pause

----------------------------------------------

 

아 진짜 초간다..ㅡㅡ)a

xp든 nt 든 다먹슴.. 날짜를 거꾸로 뽑기 때문에.. 힘들게 할이유가 없심...

 

님 소스대로 하면..

@echo off

d:
cd _a_tools
cd tomcat
cd logs
tail -f stdout_%date:~-10,4%%date:~-5,2%%date:~-2,2%.log

 

이렇게 되나여?

날로 먹는 내공 빽 ~!!!!!!!!!!!!!!!!

출처 : 나

배치화일관련지식 : http://blog.naver.com/mokomoji

 

다른 방법

출처 : http://cocutio.blogspot.com/2009/07/bat-date-format-tail.html

 

> set date=%DATE%
> for /f "tokens=1-3 delims=/- " %%a in ("%date%") do ( set vDate=%%a%%b%%c)
> tail -f \\192.168.0.xx\tmax\JeusServer_%vDate%.log

date에 오늘 날짜를 setting.
토큰 "-" 으로 잘라서 vDate에 새로운 값을 넣는다.

tail -f는 실시간 제우스 로그 파일을 확인하기 위해 실행한 명령어이다. -f 뒤에는 경로명.
윈도우에는 기본적으로 tail명령어가 없다. 윈도우용 tail은 인터넷에서 쉽게 구할 수 있다.

 


728x90

'프로그래밍 > asp' 카테고리의 다른 글

인증없이 sns 연동하기  (0) 2015.11.04
res://ieframe.dll/preview.js 오류 제거  (0) 2015.06.22
ASP Session 관리  (0) 2012.10.27
asp 날짜 함수 정리  (0) 2012.10.23
ASP 정규 표현식 사용법  (0) 2012.10.04
728x90

@ A컴퓨터에서 B 컴퓨터로 oracle db 백업



1. A 컴퓨터 db export(백업)


1.1. 오라클 db가 있는 컴퓨터 cmd 창



1.2. export 파일을 다운받을 위치까지 들어간다음 명령어 입력

 

  명령어 : exp dbid/dbpassword@tnsname file=filename.dmp log=filename.log full=y statistics=none

 

** tnsname 확인위치 : http://blog.naver.com/ksy90604/220311841230

 
oracle export(backup) /A컴퓨터에서 db export 할 때 tnsnames.ora 확인 위치
1. 오라클 full backup > 오라클이 설치되어있는 컴퓨터 cmd 창으로 들어간다 > 파일을 다운받을 위치까지 들어간다음 명령어 입력 > exp .....
blog.naver.com
본문으로 이동

2. B 컴퓨터 테이블스페이스 생성(기존에 오라클이 깔려있다면)


2.1. B컴퓨터 cmd 창


2.2. c:... > SQLPLUS SYSTEM/MANAGER


 ** db가 두개일 경우 이러한 방법으로는 들어가지지 않음 

  해결방안 : 1) sqlplus /nolog

 2) conn /@sid as sysdba

2.3. 테이블 스페이스 생성 

    SQL> create tablespace 생성할이름

  2  datafile 'C:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\생성할이름.DBF'

  3  SIZE 1000M

  4  AUTOEXTEND ON

  5  EXTENT MANAGEMENT LOCAL AUTOALLOCATE;


3. 사용자 생성

sql > CREATE USER 유저이름  IDENTIFIED BY 유저이름;


4.  사용자 권한 부여

SQL> GRANT DBA TO 유저이름;


5. 사용자 테이블 스페이스 권한 수정

SQL> ALTER USER 유저이름 DEFAULT TABLESPACE 생성된테이블스페이스이름;


6. B 컴퓨터 db import  방법


6.1. B 컴퓨터 cmd창

6.2. import할 파일이 있는 위치까지 들어감

6.3. 명령어 

 imp dbid/dbpassword@tnsname file=operation.dmp log=operation.log fromuser=익스포트받은 유저이름 touser=임포트받을 유저이름 ignore=y

//fromuser는 export한 user touser는 impoert할 유저

728x90

'프로그래밍 > Oracle' 카테고리의 다른 글

oracle hr 사용자 unlock  (0) 2016.01.25
ORACLE PLS-553 오류 처리  (0) 2015.04.29
오라클 테이블 정보 보기  (0) 2015.04.23
SQLPLUS 출력 컬럼 수 조정하기  (0) 2014.07.31
프로시저 혹은 함수 목록 출력시  (0) 2014.06.25
728x90


개인정보보호_가이드라인_201503.pdf

 ○ 개인정보처리시스템 개발·구축과 관련하여 개인정보보호 관련 법령, 지침 및 규정 등에 위배되지 않도록 개발자 또는 운영자가 개인정보처리시스템의 기획, 개발·구축, 운영의 각 단계별로 준수하여야 하는 조치사항 제시

  ○ 본 가이드라인에서는 현재 시행되고 있는 개인정보보호 관련 법령, 지침, 고시 등을 종합적으로 분석하여 개인정보처리시스템을 기획, 개발·구축, 운영 단계에서 준수 또는 고려하여야 할 사항에 대하여 제시

  ○ 개인정보처리시스템을 기획, 개발·구축, 운영하려는 모든 개발자 및 운영자를 대상으로 적용

  ○ 본 가이드라인은『개인정보 보호법』을 기준으로 작성하였으며, 정보통신사업자에 해당하는 경우 업무에 참조할 수 있도록 『정보통신망법』 등을 별도로 추가하여 언급

 

 

[목차]

 

Ⅰ. 가이드라인 개요  |  1

    제 1 절 목적 및 개요  |  2

    제 2 절 적용범위  |  2

    제 3 절 가이드라인 구성  |  3

    제 4 절 관련 법령 및 지침  |  4

Ⅱ. 개인정보처리시스템 기획 단계  |  5

    제 1 절 목적 및 개요  |  6

    제 2 절 적용범위  |  6

    제 3 절 기본원칙  |  6

    제 4 절 준수사항  |  7

        1. 개인정보보호 관련 법령 및 지침 검토  |  7

        2. 개인정보 수집 최소화를 위한 방안 마련  |  10

        3. 개인정보 파기 방안 마련  |  13

        4. 주민등록번호 이외 회원가입 방안 마련  |  14

        5. 개인정보처리시스템에 대한 보안 대책 수립  |  17

        6. 개인정보 저장 및 전송 시 암호화 방식 결정  |  20

        7. 개인정보 처리(취급)방침 수립  |  24

        8. 개인정보 영향평가 고려사항 ·차 |  26

        9. 시큐어 코딩을 적용한 개발 방안 마련  |  28

    제 5 절 참조문서  |  29

 

Ⅲ. 개인정보처리시스템 개발·구축 단계  | 30

    제 1 절 목적 및 개요  |  31

    제 2 절 적용범위  |  31

    제 3 절 기본원칙  |  31

    제 4 절 준수사항  |  32

        1. 개인정보 수집 시 동의 획득 방안 반영  |  32

        2. 개인정보 파기 방안 반영  |  36

        3. 안전한 비밀번호 사용을 위한 정책 반영  |  39

        4. 개인(회원)정보 파일 다운로드 제한  |  41

        5. 개인정보처리시스템에 대한 접근통제  |  44

        6. 개인정보 전송 및 저장 시 암호화 적용  |  46

        7. 접속기록, 권한변경에 대한 로깅 및 저장 관리  |  49

        8. 개인정보 처리(취급)방침 공개  |  51

        9. 개인정보가 포함된 출력물에 대한 보안 조치  |  52

    제 5 절 참조문서  |  54

 

Ⅳ. 개인정보처리시스템 운영 단계  | 55

    제 1 절 목적 및 개요  |  56

    제 2 절 적용범위  |  56

    제 3 절 기본원칙  |  56

    제 4 절 준수사항  |  57

        1. 개인정보처리 위탁 시 준수사항  |  57

        2. 개인정보처리시스템 원격접속 시 보안 조치  |  58

        3. 개인정보처리시스템 취약점 진단  |  59

        4. 개인정보처리시스템 접속기록 및 접근권한 검토  |  60

        5. 개인정보 유출 시 신고  |  63

        6. 개인정보 이용내역 통지  |  66

    제 5 절 참조문서  |  67

 

[별첨]

    <별첨 1> 개인정보보호 관련 규정 위반 시 처벌  |  69

    <별첨 2> 개인정보보호 관련 규정 위반 시 처벌  |  71

    <별첨 3> 개인정보 처리방침(샘플)  |  75

    <별첨 4> 취약점 분석·평가 기본항목(웹)  |  81

    <별첨 5> 개인정보처리시스템 개인정보보호 자가진단 표  |  83

    <별첨 6> 개인정보의 안전성 확보조치 기준(개정 2014.12.30.)  |  84

    <별첨 7> 개인정보처리시스템 구축·운영시 이용 가능한 공개 소프트웨어  |  90

 

 

출처 : 행정자치부 | 원문자료

728x90

'프로그래밍 > 정보보안' 카테고리의 다른 글

스크립트 보안 오류 PSSecurityException 처리  (0) 2025.03.29
Apache Log4j 보안 업데이트 권고  (0) 2022.09.01
HTTP trace 제거  (0) 2019.04.10
728x90

<오라클 테이블 정보 보기>


-- 전체 테이블 정보 보기

select * from all_tables ;

-- 특정 유정의 테이블 정보

select * from all_tables where owner = '유저아이디'

-- 테이블 comments 정보

select * from user_tab_comments

-- 테이블 컬럼 comments 정보

select * from user_col_comments 

-- 컬럼 정보(컬럼 타입, 길이, null 허용 여부 등)

select * from user_tab_columns

-- 해당 유저의 모든 컬럼 제약 사항 보기

select * from user_constraints

-- 해당 유저가 조회 가능한 데이터베이스의 모든 제약 조건 조회

select * from dba_constraint

-- 해당 유저가 조회 가능한 모든 제약 조건 조회

select * from all_constraint

select * from all_tables a1 left join user_tab_columns a2 on a1.table_name=a2.table_name where owner='유저아이디';

728x90

'프로그래밍 > Oracle' 카테고리의 다른 글

ORACLE PLS-553 오류 처리  (0) 2015.04.29
오라클 백업  (0) 2015.04.24
SQLPLUS 출력 컬럼 수 조정하기  (0) 2014.07.31
프로시저 혹은 함수 목록 출력시  (0) 2014.06.25
오라클 날짜 함수  (0) 2014.01.13
728x90

MS-SQL MDF/LDF 파일 크기 줄이기

초기 설정값의 실수, 혹은 어쩌다가 데이터가 대박 큰게 들어왔다가 사라졌을 때, DB의 디스크 용량을 줄이고 싶을 때가 있다. 이럴때 사용하는 것.


    -- DB 정보보기

    SP_HELPDB db_name 


    -- DB 로그 비우기

    BACKUP LOG db_name WITH TRUNCATE_ONLY

 

   -- DB 의 LDF 파일의 크기를 5MB로 줄인다.

   DBCC SHRINKFILE (logfile_name, 5)


   -- MDF 파일 크기 줄이기

   DBCC SHRINKDATABASE(db_name)



출처 : http://coolsoo7221.blogspot.kr/

728x90
728x90

MSSQL SCRIPT로 COMMENT 달기

 

/* 테이블 주석 */
exec sp_addextendedproperty 'MS_DESCRIPTION','[테이블주석]','user', 'dbo', 'table', '[테이블명]'
go

/* 컬럼 주석 */
exec sp_addextendedproperty 'MS_DESCRIPTION','[컬럼주석]','user', 'dbo','table', '[테이블명]', 'column', '[컬럼명]'

go

 

728x90
728x90

-- 테이블별 사용 용량

SELECT table_name = convert(varchar(30), min(o.name))

 , table_size = ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024.,15,0) + 'KB')

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


-- 용량별 소팅

SELECT table_name = convert(varchar(30), min(o.name))

 , table_size = convert(int, ltrim(str(sum(cast(reserved as bigint)) * 8192 / 1024., 15, 0))), UNIT = 'KB' 

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

ORDER BY table_size DESC


-- 테이블별 Row 수

SELECT o.name

 , i.rows 

FROM sysindexes i

  INNER JOIN 

  sysobjects o 

  ON i.id = o.id

WHERE i.indid < 2 

AND  o.xtype = 'U'

ORDER BY i.id


출처 : http://unions5.tistory.com/92

728x90

+ Recent posts