블로그 이미지
bedbmsguru

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

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
  • total
  • today
  • yesterday
2018. 10. 26. 21:39 maridb&mysql

mysql 전체 DB 백업
mysqldump -uroot -p -A > backup.sql

1) procedure, function, trigger 까지 모두 백업하기(옵션 --routines  --trigger)
$ mysqldump --routines  --triggers -u유저이름 -p패스워드 DB명 > 백업파일

mysql 지정된 DB 백업
mysqldump -uroot --routines  --triggers  -ppass DBname > backup.sql

mysql 특정 db의 특정 테이블만 백업
* dump 데이터베이스의 test 테이블만 백업합니다
mysqldump -uroot -p dump test > dumptest.sql

mysql schema 정보만 백업
mysqldump -uroot -p --no-data schemainfo > schemainfo.sql


모든 db 복원
mysql -uroot -p < backup.sql

'maridb&mysql' 카테고리의 다른 글

procedure 생성 템플릿  (0) 2018.10.26
Function 템플릿  (0) 2018.10.26
Foreign key 정보조회 및 삭제  (0) 2018.10.26
mariadb 설치  (0) 2017.12.26
innobackupex dependency 오류 해결  (0) 2017.12.21
posted by bedbmsguru
2018. 10. 26. 21:37 Zabbix

1.read me참고하여 zabbix web관리자 페이지에 Value mapping 등록

2.zabbix --> externalscripts 디렉토리에 에 script 파일 추가
     (1) echo.something
#!/bin/sh
#
#begin
#Script: echo.something
#Version: 2.0
#Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com)
#Description: This script echo a string
#License: GPL2
#
#This script is intended for use with Zabbix > 2.0
#
#USAGE:
#  as a script:      echo.somthing "some string"
#  as an item:       echo.something["some string"]

[ -z "$@" ] && exit 1
echo "$@"
    (2)advsnmp.discovery

#!/usr/bin/perl
use strict;
# script: advsnmp.discovery
# version: 2.0
# author: Simon Kowallik <sk simonkowallik.com>
# description: Zabbix low level discovery script for advanced index discovery
# license: GPL2

#USAGE:
#advsnmp.discovery[{HOST.IP},"-v2c -cpublic",.1.2.3.4.5.6,offset.length,offset.length,offset.lentgh
#                      ^            ^             ^              ^             ^            ^
#                      |            |             |              |             |            |
#ARGV                  0            1             2              3             4            5
#                      |            |             |              |             |            |
#                 IP/DNS Name       |             |              |             |            |
#                             SNMP Settings    SNMP OID       INDEX_offset.INDEX_length
#
#OID: .0.0.0.0.0.0.1.0.2.1.1.4.4.0
#will be cut to:  .1.0.2.1.1.4.4.0
#
#     .     1 .     0 .     2 .     1 .     1 .     4 .     4 .     0
#0=>'', 1=>'1', 2=>'0', 3=>'2', 4=>'1', 5=>'1', 6=>'4', 7=>'4', 8=>'0'
#
#         $_offset     $_len
#                 \   /
#config: INDEX1 -> 1.1
#        INDEX2 -> 3.2
#        INDEX3 -> 5.3
#
#   INDEX1   INDEX2   INDEX3
#      \       |       /
#     .[1].0.[2.1].[1.4.4].0
#
#
#EXAMPLE:
# OIDs to query:
# .0.0.0.0.0.0.1.0.2.1.1.4.4.0
# .0.0.0.0.0.0.2.0.3.6.1.4.4.0
# .0.0.0.0.0.0.3.0.4.5.1.4.4.0
# .0.0.0.0.0.0.1.0.2.4.5.3.4.0
# .0.0.0.0.0.0.2.0.2.2.5.3.4.0
# .0.0.0.0.0.0.3.0.2.9.5.3.4.0
#
# Discovery Rule with "external check"
# Key: advsnmp.discovery[{HOST.IP},"-v2c -cpublic",.0.0.0.0.0.0,1.1,3.2,5.3]
#
# Idexes will be:
# ADVSNMPINDEX1 ADVSNMPINDEX2 ADVSNMPINDEX3
#       1            2.1          1.4.4
#       2            3.6          1.4.4
#       3            4.5          1.4.4
#       1            2.4          5.3.4
#       2            2.2          5.3.4
#       3            2.9          5.3.4


# global options
my $GLOB_SNMPW = "-OQn";
my $SNMPWALK_BIN = "/usr/bin/snmpwalk";

# never modify these values, as we have to pass them back to Zabbix within the JSON element!
my $OPT_HOST = $ARGV[0];
my $OPT_SNMPW = $ARGV[1];
my $OPT_OID = $ARGV[2];

# build config
my %OPT_CONFIG;
my $OPT_CONFIG_STRING;
for (my $cnt = 3; $cnt < scalar(@ARGV); $cnt++) {
  my ($_offset, $_len) = split(/\./, $ARGV[$cnt]);
  $OPT_CONFIG{$_offset} = $_len;
  $OPT_CONFIG_STRING = $OPT_CONFIG_STRING . ',' . $ARGV[$cnt];
}

#variables
my %INDEXES;

# assign OPT_OID to opt_oid_escape
my $opt_oid_escape = $OPT_OID;
# prepend a dot (.) to opt_oid_escape in case OPT_OID was specified without one
if($opt_oid_escape !~ m/^\./) {
  $opt_oid_escape = '.' . $opt_oid_escape;
}
# v1.1: cut off trailing dot, if it exists
if($opt_oid_escape =~ m/\.$/) {
  chop($opt_oid_escape);
}
# create snmpw_oid from sanitized OPT_OID
my $snmpw_oid = $opt_oid_escape;

# escape all dots in opt_oid_escape for future regexes
$opt_oid_escape =~ s/\./\\./g;


foreach my $snmpw_line (`$SNMPWALK_BIN $GLOB_SNMPW $OPT_SNMPW $OPT_HOST $snmpw_oid`)
{
    # remove newline
    chomp($snmpw_line);

    # split OID = VALUE
    my ($oid, $value) = split(/ = /, $snmpw_line);

    # sanitize $value, remove start/end quotes
    $value =~ s/^"//;
    $value =~ s/"$//;
    $value =~ s/"/\\"/g;
    $value =~ s/\\/\\\\/g;


    # remove OPT_OID part from $oid
    # and we will get the trailing OID part, where we will extract the INDEX
    #
    # before: .0.0.0.0.0.0.1.0.2.1.0
    $oid =~ s/$opt_oid_escape//;
    # after: .1.0.2.1.0


    # split rest of oid into array
    # index N ($OPT_INDEX) is ARRAY[N] -> ARRAY[$OPT_INDEX]
    my @oid_arr = split(/\./, $oid);
    #contains: 0=>'', 1=>'1', 2=>'0', 3=>'2', 4=>'1', 5=>'0'

    # put indexes into @%indexes
    my $line_index;
    # fetch offset from OPT_CONFIG
    foreach my $_offset (sort keys %OPT_CONFIG) {
      # set $index to index (OID part)
      my $index = $oid_arr[$_offset];
      # when complete $index by looking at len (stored in $OPT_CONFIG{$_offset})
      for (my $i = 1; $i < $OPT_CONFIG{$_offset}; $i++) {
        #v1.1: next if oid_arr element is empty. this can happen for dymanic length indexes
        next if($oid_arr[$_offset+$i] =~ m/^$/);
        # attach next OID part for len of index
        $index = $index .'.'. $oid_arr[$_offset+$i];
      }
      $line_index = $line_index . ";$index";
    }
    # assign value to INDEXES Hash. INDEX => VALUE
    $INDEXES{$line_index} = $value;
}

#
# print JSON object
#

print "{\n";
# from Zabbix 2.0.0rc1 the array name has changed to 'data'
print "\t\"data\":[\n";

my $first_line = 1;
#for (my $i = 0; $i < $#INDEXES; $i++) {
foreach my $line_index (sort keys %INDEXES) {

    # print if it is not the first line
    if($first_line) {
      # we are at first line
      $first_line = 0;
    } else {
      # we are not at first line
      print "\t,\n";
    }

    print "\t\t{\n";

    # print all INDEXES
    my $ctr = 1;
    foreach my $index ( split(/;/, $line_index) ) {
      next if (!defined($index));
      print "\t\t\"{#ADVSNMPINDEX$ctr}\": \"$index\",\n";
      $ctr++
    }
    # print value if there are indexes (ctr would be 2 for one index)
    if ($ctr > 1) {
      print "\t\t\"{#ADVSNMPVALUE}\":\"$INDEXES{$line_index}\"\n";
      print "\t\t}";
    } else {
      # if there is no index, close JSON
      print "\t\t}";
 }

} #for

print "\n\t]\n";
print "}\n";

  1. 첨부된 xml파일 import 할것




'Zabbix' 카테고리의 다른 글

Linux DISK IO 모니터링  (0) 2018.11.30
zabbix Agent 설치  (0) 2018.10.26
brocade SAN fc port zabbix 모니터링  (0) 2018.10.26
오라빅스 TableSpace 모니터링 쿼리 수정  (0) 2018.09.13
Zabbix Linux Disk IO 모니터링  (0) 2018.09.07
posted by bedbmsguru
2018. 10. 26. 21:36 Windows SERVER

ROBOCOPY /E /COPYALL /NP /R:0 /log:c:\mine\robocopylog.txt \\10.100.18.63\SERVERTEAM \\10.100.18.63\bsnc\SERVERTEAM

ROBOCOPY /E /COPYALL /NP /R:0 /log:c:\mine\robocopylog.txt \\10.100.18.63\wineosmig \\10.100.18.63\bsnc\SERVERTEAM\WINEOSMIG

/XC /XN /XO  이미있는 파일들은 빼고 싶을때 추가할 옵션

☆ robocopy 사용법
사용법 :: ROBOCOPY 원본 대상 [파일 [파일]...] [옵션]
원본 :: 원본 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
대상 :: 대상 디렉터리(드라이브:\경로 또는 \\서버\공유\경로)
파일 :: 복사할 파일입니다. 이름/와일드카드: 기본값은 "*.*"입니다.
* xp 사용자는 Windows Server 2003 Resource Kit Tools 설치 필요
☆ robocopy 사용 예시
기본적으로 robocopy는 중복카피를 허용을안함 없는파일이나 업데이트된 파일만 카피하므로
불필요한 작업을 안해 시간절약이 가능

- 기본 미러링 카피(/MIR)
robocopy  /mir  c:\coolenjoy\  d:\cooln
(/E옵션과 /PURGE옵션이 포함기능이어서 하위 디렉토리까지 카피하며 원본에는 없는 파일이나 디렉토리를
자동 삭제해줍니다. )
- 네트워크가 연결된 컴퓨터에서 파일카피하기
robocopy  \\192.168.0.5\D:\coolenjoy\  d:\cooln
특정 폴더 제외하고 카피하기(/XD DIRS)
robocopy  c:\ d:\  /XD dirs  c:\skyblue
- 특정 파일 제외하고 카피하기(/XF FILE)
robocopy c:\ d:\  /XF file c:\skyblue\roboda.htm
- 오래된 파일은 제외하고 카피하기(/MAXAGE:N 또는 YYYYMMDD방식입력)
robocopy c:\ d:\ /maxage:20120824 (8월24일이전파일은 제외)

- 최신 파일은 제외하고 카피하기(/MINAGE:N 또는 YYYYMMDD방식입력)
robocopy c:\ d:\ /minage:20120824 (8월24일이후파일은 제외)

- 특정 파일을 포함시켜서 카피하기(IF)
robocopy c:\robo\ d:\roboda  /if c:\skyblue\naya.dll

- 진행결과 미리 도출해보기(/L 실제로 카피결과는 일어나지 않음)
robocopy c:\ d:\ /L
로그파일 생성 및 복사하기 (LOG:file  한파일중복기록)
robocopy c:\ d:\ /log:file d:\log\coollog.txt (경로미지정시 본인계정폴더로 저장)
- 로그파일 생성 및 복사하기 (LOG+:file 한파일중복기록)
robocopy c:\ d:\ /log+:file d:\log\coollog.txt (경로미지정시 본인계정폴더로 저장)
※ 옵션을 조합한 응용예시
robocopy /mir /xa:h /ndl /ETA /R:0  d:\ f:\ /XF FILE d:\cool\cool.dll d:\cool\cool2.dll  /XD DIRS D:\$RECYCLE.BIN
- 사용 옵션
/mir : 미러링 카피
/xa:h  : 윈도우의 숨김파일은 제외하고 카피
/ndl :  카피 진행시나  로그파일에  디렉토리는 기록안하기
/eta : 파일카피 예상완료시간을 표기
/R:0 : 카피시도실패시 반복횟수 (기본옵션 100만번)으로 R:0 하여 반복하지 않거나 R:1으로 반복처리
반복처리시 쓰기대기시간은 기본 30초후에 진행하므로 빠르게 진행할경우 /W:10 하면 10초후에 진행
/XF FILE  특정 파일을 제외하고 카피
/XD DIRS 특정 디렉토리를 제외하고 카피(여기선 휴지통을 제외함)

☆ robocopy 복사 옵션:

/S :: 비어 있는 디렉터리는 제외하고 하위 디렉터리를 복사합니다.
/E :: 비어 있는 디렉터리를 포함하여 하위 디렉터리를 복사합니다.
/LEV:n :: 원본 디렉터리 트리의 최상위 n개 수준만 복사합니다.
/Z :: 다시 시작 모드에서 파일을 복사합니다.
/B :: 백업 모드에서 파일을 복사합니다.
/ZB :: 다시 시작 모드를 사용합니다. 액세스가 거부된 경우 백업 모드를 사용합니다.
/EFSRAW :: EFS RAW 모드에서 암호화된 모든 파일을 복사합니다.
/COPY:copyflag[s] :: 파일에 대해 복사할 내용입니다. 기본값은 /COPY:DAT입니다.
(copyflags : D=데이터, A=특성, T=타임스탬프).
(S=보안=NTFS ACL, O=소유자 정보, U=감사 정보).
/DCOPY:T :: 디렉터리 타임 스탬프를 복사합니다.
/SEC :: 보안된 파일을 복사합니다. /COPY:DATS와 동일합니다.
/COPYALL :: 모든 파일 정보를 복사합니다. /COPY:DATSOU와 동일합니다.
/NOCOPY :: 파일 정보를 복사하지 않습니다. /PURGE와 사용하면 좋습니다.
/SECFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 보안을 수정합니다.
/TIMFIX :: 건너뛴 파일도 포함하여 모든 파일의 파일 시간을 수정합니다.
/PURGE :: 원본에 없는 대상 파일/디렉터리를 삭제합니다.
/MIR :: 디렉터리 트리를 미러링합니다./ E plus /PURGE와 동일합니다
/MOV :: 파일을 이동합니다. 복사한 다음 원본에서 삭제합니다.
/MOVE :: 파일 및 디렉터리를 이동합니다. 복사한 다음 원본에서 삭제 합니다.
/A+:[RASHCNET] :: 제공된 특성을 복사된 파일에 추가합니다.
/A-:[RASHCNET] :: 제공된 특성을 복사된 파일에서 제거합니다.
/CREATE :: 디렉터리 트리와 길이가 0인 파일만 만듭니다.
/FAT :: 8.3 FAT 파일 이름만 사용하여 대상 파일을 만듭니다.
/256 :: 256자를 초과하는 매우 긴 경로에 대한 지원을 사용하지 않습니다.
/MON:n :: 원본을 모니터링합니다. n개 이상의 변경 내용이 표시된 경우 다시 실행합니다.
/MOT:m :: 원본을 모니터링합니다. 변경 내용이 있으면 m분 후에 다시실행합니다.
/RH:hhmm-hhmm :: 실행 시간 - 새 복사본을 시작할 수 있는 시간입니다.
/PF :: 통과 기준이 아닌 파일당 기준으로 실행 시간을 확인합니다.
/IPG:n :: 패킷 간 간격(ms), 저속 회선에서 사용 가능한 대역폭을 확보 합니다.
/SL:: 대상에 대한 심볼 링크를 복사합니다.
/MT[:n] :: n개의 스레드가 있는 다중 스레드를 복사합니다(기본값 8). n은 1 이상 128 이하여야 합니다.
이 옵션은 /IPG 및 /EFSRAW 옵션과 호환되지 않습니다.
성능을 향상시키려면 /LOG 옵션을 사용하여 출력을 리디렉션하십시오.

☆ robocopy 옵션:

/A :: 보관 특성 집합이 있는 파일만 복사합니다.
/M :: 보관 특성이 있는 파일만 복사하고 보관 특성을 해제합니다.
/IA:[RASHCNETO] :: 지정된 특성을 가진 파일만 포함합니다.
/XA:[RASHCNETO] :: 지정된 특성을 가진 파일을 제외합니다.
/XF file [file]... :: 지정된 이름/경로/와일드카드와 일치하는 파일을 제외합니다.
/XD dirs [dirs]... :: 지정된 이름/경로와 일치하는 디렉터리를 제외합니다.
/XC :: 변경된 파일을 제외합니다.
/XN :: 새 파일을 제외합니다.
/XO :: 오래된 파일을 제외합니다.
/XX :: 추가 파일 및 디렉터리를 제외합니다.
/XL :: 고립된 파일 및 디렉터리를 제외합니다.
/IS :: 같은 파일을 포함합니다.
/IT :: 조정된 파일을 포함합니다.
/MAX:n :: 최대 파일 크기 - n바이트를 초과하는 파일을 제외합니다.
/MIN:n :: 최소 파일 크기 - n바이트 미만의 파일을 제외합니다.
/MAXAGE:n :: 최대 파일 사용 기간 - n일/날짜보다 오래된 파일을 제외합니
다.
/MINAGE:n :: 최소 파일 사용 기간 - n일/날짜보다 최신 파일을 제외합니다.
/MAXLAD:n :: 최대 마지막 액세스 날짜 - n 이후에 사용되지 않은 파일을
제외합니다.
/MINLAD:n :: 최소 마지막 액세스 날짜 - n 이후에 사용된 파일을 제외합니
다.
n이 1900보다 크면 n은 n일과 같고 그렇지 않으면 n은 YYYYMM
DD 날짜입니다.
/XJ :: 연결 지점을 제외합니다. 일반적으로 기본값으로 포함됩니다.

/FFT :: FAT 파일 시간(2초 단위)을 가정합니다.
/DST :: 1시간의 DST 시간 차이를 보완합니다.
/XJD :: 디렉터리의 연결 지점을 제외합니다.
/XJF :: 파일의 연결 지점을 제외합니다.
☆ robocopy  다시 시도 옵션:

/R:n :: 실패한 복사본에 대한 다시 시도 횟수입니다. 기본값은 1백만
입니다.
/W:n :: 다시 시도 간 대기 시간입니다. 기본값은 30초입니다.
/REG :: /R:n 및 /W:n을 레지스트리에 기본 설정으로 저장합니다.
/TBD :: 정의할 공유 이름을 기다립니다(다시 시도 오류 67).
☆ robocopy  로깅 옵션:

/L :: 목록 전용 - 파일을 복사 또는 삭제하거나 타임스탬프를 만들
지 않습니다.
/X :: 선택된 파일을 제외하고 모든 추가 파일을 보고합니다.
/V :: 자세한 정보 표시를 출력하고 건너뛴 파일을 표시합니다.
/TS :: 출력에 원본 파일 타임스탬프를 포함합니다.
/FP :: 출력에 파일의 전체 경로 이름을 포함합니다.
/BYTES :: 바이트 크기로 인쇄합니다.
/NS :: 크기 없음 - 파일 크기를 기록하지 않습니다.
/NC :: 클래스 없음 - 파일 클래스를 기록하지 않습니다.
/NFL :: 파일 목록 없음 - 파일 이름을 기록하지 않습니다.
/NDL :: 디렉터리 목록 없음 - 디렉터리 이름을 기록하지 않습니다.
/NP :: 진행률 없음 - 복사율(%)을 표시하지 않습니다.
/ETA :: 복사하는 파일의 예상 도착 시간을 표시합니다.
/LOG:file :: 상태를 로그 파일에 출력합니다. 기존 로그를 덮어씁니다.
/LOG+:file :: 상태를 로그 파일에 출력합니다. 기존 로그에 추가합니다.
/UNILOG:file :: 상태를 유니코드로 로그 파일에 출력합니다. 기존 로그를 덮
어씁니다.
/UNILOG+:file :: 상태를 유니코드로 로그 파일에 출력합니다. 기존 로그에 추
가합니다.
/TEE :: 로그 파일과 콘솔 창에 출력합니다.
/NJH :: 작업 헤더가 없습니다.
/NJS :: 작업 요약이 없습니다.
/UNICODE :: 상태를 유니코드로 출력합니다.

☆ robocopy  작업 옵션:

/JOB:jobname :: 명명된 작업 파일에서 매개 변수를 가져옵니다.
/SAVE:jobname :: 명명된 작업 파일에 매개 변수를 저장합니다.
/QUIT :: 매개 변수를 볼 수 있도록 명령줄을 처리한 후에 끝냅니다.
/NOSD :: 원본 디렉터리가 지정되어 있지 않습니다.
/NODD :: 대상 디렉터리가 지정되어 있지 않습니다.
/IF :: 다음 파일을 포함합니다.

'Windows SERVER' 카테고리의 다른 글

DISM을 이용한 OS 버전 업그레이드  (0) 2014.01.22
posted by bedbmsguru
2018. 10. 26. 21:35 Zabbix

/externalscripts.폴더에 advsnmp.monitor 스크립트를 넣어야함
readme파일 참조


<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
    <version>2.0</version>
    <date>2013-09-18T13:37:28Z</date>
    <groups>
        <group>
            <name>Templates</name>
        </group>
    </groups>
    <templates>
        <template>
            <template>KHP-BROCADE-FC-PORT</template>
            <name>KHP-BROCADE-FC-PORT</name>
            <groups>
                <group>
                    <name>Templates</name>
                </group>
            </groups>
            <applications>
                <application>
                    <name>Port(s)</name>
                </application>
            </applications>
            <items/>
            <discovery_rules>
                <discovery_rule>
                    <name>FiberChannel Ports</name>
                    <type>10</type>
                    <snmp_community/>
                    <snmp_oid/>
                    <key>advsnmp.discovery[{HOST.IP},&quot;-v1 -c{$SNMP_COMMUNITY}&quot;,.1.3.6.1.4.1.1588.2.1.1.1.6.2.1.37,1.1]</key>
                    <delay>300</delay>
                    <status>0</status>
                    <allowed_hosts/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <filter>:</filter>
                    <lifetime>7</lifetime>
                    <description/>
                    <item_prototypes>
                        <item_prototype>
                            <name>Admin status of port $1</name>
                            <type>1</type>
                            <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
                            <multiplier>0</multiplier>
                            <snmp_oid>.1.3.6.1.4.1.1588.2.1.1.1.6.2.1.5.{#ADVSNMPINDEX2}</snmp_oid>
                            <key>swFcPortAdmStatus[{#ADVSNMPVALUE}]</key>
                            <delay>300</delay>
                            <history>7</history>
                            <trends>365</trends>
                            <status>0</status>
                            <value_type>3</value_type>
                            <allowed_hosts/>
                            <units/>
                            <delta>0</delta>
                            <snmpv3_securityname/>
                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
                            <snmpv3_authpassphrase/>
                            <snmpv3_privpassphrase/>
                            <formula>1</formula>
                            <delay_flex/>
                            <params/>
                            <ipmi_sensor/>
                            <data_type>0</data_type>
                            <authtype>0</authtype>
                            <username/>
                            <password/>
                            <publickey/>
                            <privatekey/>
                            <port/>
                            <description/>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>Port(s)</name>
                                </application>
                            </applications>
                            <valuemap>
                                <name>swFcPortStatus</name>
                            </valuemap>
                        </item_prototype>
                        <item_prototype>
                            <name>CRC errors received on port $1</name>
                            <type>1</type>
                            <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
                            <multiplier>0</multiplier>
                            <snmp_oid>.1.3.6.1.4.1.1588.2.1.1.1.6.2.1.22.{#ADVSNMPINDEX2}</snmp_oid>
                            <key>swFCPortRxCrcs[{#ADVSNMPVALUE}]</key>
                            <delay>300</delay>
                            <history>7</history>
                            <trends>365</trends>
                            <status>0</status>
                            <value_type>3</value_type>
                            <allowed_hosts/>
                            <units>errors</units>
                            <delta>2</delta>
                            <snmpv3_securityname/>
                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
                            <snmpv3_authpassphrase/>
                            <snmpv3_privpassphrase/>
                            <formula>1</formula>
                            <delay_flex/>
                            <params/>
                            <ipmi_sensor/>
                            <data_type>0</data_type>
                            <authtype>0</authtype>
                            <username/>
                            <password/>
                            <publickey/>
                            <privatekey/>
                            <port/>
                            <description/>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>Port(s)</name>
                                </application>
                            </applications>
                            <valuemap/>
                        </item_prototype>
                        <item_prototype>
                            <name>Words received on port $1</name>
                            <type>1</type>
                            <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
                            <multiplier>0</multiplier>
                            <snmp_oid>.1.3.6.1.4.1.1588.2.1.1.1.6.2.1.12.{#ADVSNMPINDEX2}</snmp_oid>
                            <key>swFCPortRxWords[{#ADVSNMPVALUE}]</key>
                            <delay>300</delay>
                            <history>7</history>
                            <trends>365</trends>
                            <status>0</status>
                            <value_type>3</value_type>
                            <allowed_hosts/>
                            <units>words</units>
                            <delta>2</delta>
                            <snmpv3_securityname/>
                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
                            <snmpv3_authpassphrase/>
                            <snmpv3_privpassphrase/>
                            <formula>1</formula>
                            <delay_flex/>
                            <params/>
                            <ipmi_sensor/>
                            <data_type>0</data_type>
                            <authtype>0</authtype>
                            <username/>
                            <password/>
                            <publickey/>
                            <privatekey/>
                            <port/>
                            <description/>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>Port(s)</name>
                                </application>
                            </applications>
                            <valuemap/>
                        </item_prototype>
                        <item_prototype>
                            <name>Words transmitted on port $1</name>
                            <type>1</type>
                            <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
                            <multiplier>0</multiplier>
                            <snmp_oid>.1.3.6.1.4.1.1588.2.1.1.1.6.2.1.11.{#ADVSNMPINDEX2}</snmp_oid>
                            <key>swFCPortTxWords[{#ADVSNMPVALUE}]</key>
                            <delay>300</delay>
                            <history>7</history>
                            <trends>365</trends>
                            <status>0</status>
                            <value_type>3</value_type>
                            <allowed_hosts/>
                            <units>words</units>
                            <delta>2</delta>
                            <snmpv3_securityname/>
                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
                            <snmpv3_authpassphrase/>
                            <snmpv3_privpassphrase/>
                            <formula>1</formula>
                            <delay_flex/>
                            <params/>
                            <ipmi_sensor/>
                            <data_type>0</data_type>
                            <authtype>0</authtype>
                            <username/>
                            <password/>
                            <publickey/>
                            <privatekey/>
                            <port/>
                            <description/>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>Port(s)</name>
                                </application>
                            </applications>
                            <valuemap/>
                        </item_prototype>
                        <item_prototype>
                            <name>WWN of port $1</name>
                            <type>1</type>
                            <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
                            <multiplier>0</multiplier>
                            <snmp_oid>.1.3.6.1.4.1.1588.2.1.1.1.6.2.1.34.{#ADVSNMPINDEX2}</snmp_oid>
                            <key>swFcPortWwn[{#ADVSNMPVALUE}]</key>
                            <delay>300</delay>
                            <history>7</history>
                            <trends>365</trends>
                            <status>0</status>
                            <value_type>1</value_type>
                            <allowed_hosts/>
                            <units/>
                            <delta>0</delta>
                            <snmpv3_securityname/>
                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
                            <snmpv3_authpassphrase/>
                            <snmpv3_privpassphrase/>
                            <formula>1</formula>
                            <delay_flex/>
                            <params/>
                            <ipmi_sensor/>
                            <data_type>0</data_type>
                            <authtype>0</authtype>
                            <username/>
                            <password/>
                            <publickey/>
                            <privatekey/>
                            <port>161</port>
                            <description/>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>Port(s)</name>
                                </application>
                            </applications>
                            <valuemap/>
                        </item_prototype>
                    </item_prototypes>
                    <trigger_prototypes>
                    </trigger_prototypes>
                    <graph_prototypes>
                        <graph_prototype>
                            <name>Monitor port {#ADVSNMPVALUE}</name>
                            <width>900</width>
                            <height>200</height>
                            <yaxismin>0.0000</yaxismin>
                            <yaxismax>100.0000</yaxismax>
                            <show_work_period>1</show_work_period>
                            <show_triggers>1</show_triggers>
                            <type>0</type>
                            <show_legend>1</show_legend>
                            <show_3d>0</show_3d>
                            <percent_left>0.0000</percent_left>
                            <percent_right>0.0000</percent_right>
                            <ymin_type_1>0</ymin_type_1>
                            <ymax_type_1>0</ymax_type_1>
                            <ymin_item_1>0</ymin_item_1>
                            <ymax_item_1>0</ymax_item_1>
                            <graph_items>
                                <graph_item>
                                    <sortorder>0</sortorder>
                                    <drawtype>2</drawtype>
                                    <color>7EE600</color>
                                    <yaxisside>0</yaxisside>
                                    <calc_fnc>2</calc_fnc>
                                    <type>0</type>
                                    <item>
                                        <host>KHP-BROCADE-FC-PORT</host>
                                        <key>swFCPortTxWords[{#ADVSNMPVALUE}]</key>
                                    </item>
                                </graph_item>
                                <graph_item>
                                    <sortorder>1</sortorder>
                                    <drawtype>2</drawtype>
                                    <color>6DC8FE</color>
                                    <yaxisside>0</yaxisside>
                                    <calc_fnc>2</calc_fnc>
                                    <type>0</type>
                                    <item>
                                        <host>KHP-BROCADE-FC-PORT</host>
                                        <key>swFCPortRxWords[{#ADVSNMPVALUE}]</key>
                                    </item>
                                </graph_item>
                                <graph_item>
                                    <sortorder>9</sortorder>
                                    <drawtype>2</drawtype>
                                    <color>FF0000</color>
                                    <yaxisside>1</yaxisside>
                                    <calc_fnc>2</calc_fnc>
                                    <type>0</type>
                                    <item>
                                        <host>KHP-BROCADE-FC-PORT</host>
                                        <key>swFCPortRxCrcs[{#ADVSNMPVALUE}]</key>
                                    </item>
                                </graph_item>
                            </graph_items>
                        </graph_prototype>
                    </graph_prototypes>
                </discovery_rule>
                <discovery_rule>
                    <name>Interface</name>
                    <type>1</type>
                    <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
                    <snmp_oid>IF-MIB::ifDescr</snmp_oid>
                    <key>ifDescr</key>
                    <delay>300</delay>
                    <status>0</status>
                    <allowed_hosts/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privpassphrase/>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <filter>{#SNMPVALUE}:/</filter>
                    <lifetime>7</lifetime>
                    <description/>
                    <item_prototypes>
                        <item_prototype>
                            <name>Incoming traffic on $1</name>
                            <type>1</type>
                            <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
                            <multiplier>1</multiplier>
                            <snmp_oid>IF-MIB::ifInOctets.{#SNMPINDEX}</snmp_oid>
                            <key>ifInOctets[{#SNMPVALUE}]</key>
                            <delay>60</delay>
                            <history>7</history>
                            <trends>365</trends>
                            <status>0</status>
                            <value_type>3</value_type>
                            <allowed_hosts/>
                            <units>bps</units>
                            <delta>1</delta>
                            <snmpv3_securityname/>
                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
                            <snmpv3_authpassphrase/>
                            <snmpv3_privpassphrase/>
                            <formula>8</formula>
                            <delay_flex/>
                            <params/>
                            <ipmi_sensor/>
                            <data_type>0</data_type>
                            <authtype>0</authtype>
                            <username/>
                            <password/>
                            <publickey/>
                            <privatekey/>
                            <port/>
                            <description/>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>Port(s)</name>
                                </application>
                            </applications>
                            <valuemap/>
                        </item_prototype>
                        <item_prototype>
                            <name>Outgoing traffic on $1</name>
                            <type>1</type>
                            <snmp_community>{$SNMP_COMMUNITY}</snmp_community>
                            <multiplier>1</multiplier>
                            <snmp_oid>IF-MIB::ifOutOctets.{#SNMPINDEX}</snmp_oid>
                            <key>ifOutOctets[{#SNMPVALUE}]</key>
                            <delay>60</delay>
                            <history>7</history>
                            <trends>365</trends>
                            <status>0</status>
                            <value_type>3</value_type>
                            <allowed_hosts/>
                            <units>bps</units>
                            <delta>1</delta>
                            <snmpv3_securityname/>
                            <snmpv3_securitylevel>0</snmpv3_securitylevel>
                            <snmpv3_authpassphrase/>
                            <snmpv3_privpassphrase/>
                            <formula>8</formula>
                            <delay_flex/>
                            <params/>
                            <ipmi_sensor/>
                            <data_type>0</data_type>
                            <authtype>0</authtype>
                            <username/>
                            <password/>
                            <publickey/>
                            <privatekey/>
                            <port/>
                            <description/>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>Port(s)</name>
                                </application>
                            </applications>
                            <valuemap/>
                        </item_prototype>
                    </item_prototypes>
                    <trigger_prototypes/>
                    <graph_prototypes>
                        <graph_prototype>
                            <name>Port {#SNMPVALUE} - Traffic (bits/sec, 95th Percentile)</name>
                            <width>900</width>
                            <height>200</height>
                            <yaxismin>0.0000</yaxismin>
                            <yaxismax>100.0000</yaxismax>
                            <show_work_period>1</show_work_period>
                            <show_triggers>1</show_triggers>
                            <type>0</type>
                            <show_legend>1</show_legend>
                            <show_3d>0</show_3d>
                            <percent_left>0.9500</percent_left>
                            <percent_right>0.0000</percent_right>
                            <ymin_type_1>0</ymin_type_1>
                            <ymax_type_1>0</ymax_type_1>
                            <ymin_item_1>0</ymin_item_1>
                            <ymax_item_1>0</ymax_item_1>
                            <graph_items>
                                <graph_item>
                                    <sortorder>0</sortorder>
                                    <drawtype>1</drawtype>
                                    <color>00CF00</color>
                                    <yaxisside>0</yaxisside>
                                    <calc_fnc>2</calc_fnc>
                                    <type>0</type>
                                    <item>
                                        <host>KHP-BROCADE-FC-PORT</host>
                                        <key>ifInOctets[{#SNMPVALUE}]</key>
                                    </item>
                                </graph_item>
                                <graph_item>
                                    <sortorder>1</sortorder>
                                    <drawtype>2</drawtype>
                                    <color>002A97</color>
                                    <yaxisside>0</yaxisside>
                                    <calc_fnc>2</calc_fnc>
                                    <type>0</type>
                                    <item>
                                        <host>KHP-BROCADE-FC-PORT</host>
                                        <key>ifOutOctets[{#SNMPVALUE}]</key>
                                    </item>
                                </graph_item>
                            </graph_items>
                        </graph_prototype>
                    </graph_prototypes>
                </discovery_rule>
            </discovery_rules>
            <macros/>
            <templates/>
            <screens/>
        </template>
    </templates>
</zabbix_export>


'Zabbix' 카테고리의 다른 글

zabbix Agent 설치  (0) 2018.10.26
SAN Switch 모니터링 적용  (0) 2018.10.26
오라빅스 TableSpace 모니터링 쿼리 수정  (0) 2018.09.13
Zabbix Linux Disk IO 모니터링  (0) 2018.09.07
zabbix로 mariadb, mysql 모니터링 적용  (0) 2018.08.28
posted by bedbmsguru
2018. 10. 26. 21:34 SQL SERVER

-- 작업할 DB를 저장할 임시테이블
SELECT name as [DatabaseName]
INTO #tmpPubDatabases
FROM sys.databases
WHERE database_id > 4
-- object를 저장할 임시테이블
CREATE TABLE #tmpObjects(
DBName VARCHAR(256),
objectName VARCHAR(256),
obj_desc varchar(100),
create_date datetime,
modify_date datetime
);
DECLARE @command VARCHAR(MAX);
DECLARE @condition tinyint;
SET @condition = 7 --일주일 이내에 변경된 데이터 가져올것
-- 변경된 데이터를 불러서 저장
SET @command = '
USE [?]
IF DB_NAME() IN (SELECT DatabaseName FROM #tmpPubDatabases)
BEGIN
INSERT #tmpObjects
       SELECT db_name() dbname, name objectName, type_desc as obj_desc, create_date,modify_date
FROM sys.objects
WHERE type IN (''TF'' , ''FN'', ''P'', ''V'', ''PK'', ''F'', ''TR'', ''UQ'', ''C'', ''D'', ''U'')
AND modify_date > getdate() - '+ CAST(@condition AS varchar(2)) +'
END';
-- run for all affected databases
EXEC sp_MSforeachdb @command
-- this will match the publications to the tables and give the you row count and sizes
-- run this in the distribution database
SELECT * FROM
#tmpObjects
--#tempObjects 삭제쿼리 넣기
-- drop table #tmpPubDatabases
-- drop table #tmpObjects

posted by bedbmsguru
2018. 10. 26. 21:31 SQL SERVER

--user별 권한 확인(특정DB에서만 전체DB검색하는건 아래쪽에 있음)
SELECT
    [DatabaseName] = DB_NAME(),     
       [LoginName] = ulogin.[name],
    [DBUserName] = princ.[name],
    [UserType] = CASE princ.[type]
                    WHEN 'S' THEN 'SQL User'
                    WHEN 'U' THEN 'Windows User'
                 END,
    [Role] = null,    
    [PermissionType] = perm. [permission_name],     
    [PermissionState] = perm. [state_desc],     
    [ObjectType] = obj. type_desc,--perm.[class_desc],     
    [ObjectName] = OBJECT_NAME( perm.major_id ),
    [ColumnName] = col. [name]
FROM  
    --database user
    sys.database_principals princ
LEFT JOIN
    --Login accounts
--     select top 100 * from sys.login_token
    sys.syslogins ulogin on princ .[sid] = ulogin .[sid]
LEFT JOIN       
    --Permissions
    sys.database_permissions perm ON perm .[grantee_principal_id] = princ .[principal_id]
LEFT JOIN
    --Table columns
    sys.columns col ON col .[object_id] = perm .major_id
                    AND col .[column_id] = perm .[minor_id]
LEFT JOIN
    sys.objects obj ON perm .[major_id] = obj .[object_id]
WHERE
    princ.[type] in ('S', 'U')
UNION
--List all access provisioned to a sql user or windows user/group through a database or application role
SELECT
       [DatabaseName] = DB_NAME(), 
    [LoginName] = ulogin.[name],
    [DBUserName] = roleprinc.[name],
    [UserType] = CASE memberprinc.[type]
                    WHEN 'S' THEN 'SQL User'
                    WHEN 'U' THEN 'Windows User'
                 END,
    [Role] = roleprinc. [name],    
    [PermissionType] = perm. [permission_name],     
    [PermissionState] = perm. [state_desc],     
    [ObjectType] = obj. type_desc,--perm.[class_desc], 
    [ObjectName] = OBJECT_NAME( perm.major_id ),
    [ColumnName] = col. [name]
FROM  
    --Role/member associations
    sys.database_role_members members
JOIN
    --Roles
    sys.database_principals roleprinc ON roleprinc .[principal_id] = members .[role_principal_id]
JOIN
    --Role members (database users)
    sys.database_principals memberprinc ON memberprinc .[principal_id] = members .[member_principal_id]
LEFT JOIN
    --Login accounts
    sys.syslogins ulogin on memberprinc .[sid] = ulogin .[sid]
LEFT JOIN       
    --Permissions
    sys.database_permissions perm ON perm .[grantee_principal_id] = roleprinc .[principal_id]
LEFT JOIN
    --Table columns
    sys.columns col on col .[object_id] = perm .major_id
                    AND col .[column_id] = perm .[minor_id]
LEFT JOIN
    sys.objects obj ON perm .[major_id] = obj .[object_id]
UNION
--List all access provisioned to the public role, which everyone gets by default
SELECT
       [DatabaseName] = DB_NAME(),
    [LoginName] = '{All Users}',
       [DBUserName] = '{All Users}',
    [UserType] = '{All Users}',
    [Role] = roleprinc. [name],    
    [PermissionType] = perm. [permission_name],     
    [PermissionState] = perm. [state_desc],     
    [ObjectType] = obj. type_desc,--perm.[class_desc],
    [ObjectName] = OBJECT_NAME( perm.major_id ),
    [ColumnName] = col. [name]
FROM  
    --Roles
    sys.database_principals roleprinc
LEFT JOIN       
    --Role permissions
    sys.database_permissions perm ON perm .[grantee_principal_id] = roleprinc .[principal_id]
LEFT JOIN
    --Table columns
    sys.columns col on col .[object_id] = perm .major_id
                    AND col .[column_id] = perm .[minor_id]                 
JOIN
    --All objects 
    sys.objects obj ON obj .[object_id] = perm .[major_id]
WHERE
    --Only roles
    roleprinc.[type] = 'R' AND
    --Only public role
    roleprinc.[name] = 'public' AND
    --Only objects of ours, not the MS objects
    obj.is_ms_shipped = 0
ORDER BY
    princ.[Name] ,
    OBJECT_NAME(perm .major_id),
    col.[name] ,
    perm.[permission_name] ,
    perm.[state_desc] ,
    obj.type_desc --perm.[class_desc]


--user별 권한 확인(전체DB를 돌면서 진행)
set nocount on
declare @permission table (
Database_Name sysname,
LoginName sysname null,
DBUserName sysname null,
UserType sysname null,
[role] sysname null,
PermissionType sysname null,
PermissionState sysname null,
ObjectType sysname null,
ObjectName sysname null,
ColumnName sysname null
)
declare @dbs table (dbname sysname)
declare @Next sysname
insert into @dbs
select name from sys.databases order by name
select top 1 @Next = dbname from @dbs
while (@@rowcount<>0)
begin
insert into @permission
exec('use [' + @Next + ']
SELECT
    [DatabaseName] = DB_NAME(),     
       [LoginName] = ulogin.[name],
    [DBUserName] = princ.[name],
    [UserType] = CASE princ.[type]
                    WHEN ''S'' THEN ''SQL User''
                    WHEN ''U'' THEN ''Windows User''
                 END,
    [Role] = null,    
    [PermissionType] = perm. [permission_name],     
    [PermissionState] = perm. [state_desc],     
    [ObjectType] = obj. type_desc,--perm.[class_desc],     
    [ObjectName] = OBJECT_NAME( perm.major_id ),
    [ColumnName] = col. [name]
FROM  
    sys.database_principals princ
LEFT JOIN
    sys.syslogins ulogin on princ .[sid] = ulogin .[sid]
LEFT JOIN       
    --Permissions
    sys.database_permissions perm ON perm .[grantee_principal_id] = princ .[principal_id]
LEFT JOIN
    --Table columns
    sys.columns col ON col .[object_id] = perm .major_id
                    AND col .[column_id] = perm .[minor_id]
LEFT JOIN
    sys.objects obj ON perm .[major_id] = obj .[object_id]
WHERE
    princ.[type] in (''S'', ''U'')
UNION
--List all access provisioned to a sql user or windows user/group through a database or application role
SELECT
       [DatabaseName] = DB_NAME(), 
    [LoginName] = ulogin.[name],
    [DBUserName] = roleprinc.[name],
    [UserType] = CASE memberprinc.[type]
                    WHEN ''S'' THEN ''SQL User''
                    WHEN ''U'' THEN ''Windows User''
                 END,
    [Role] = roleprinc. [name],    
    [PermissionType] = perm. [permission_name],     
    [PermissionState] = perm. [state_desc],     
    [ObjectType] = obj. type_desc,--perm.[class_desc], 
    [ObjectName] = OBJECT_NAME( perm.major_id ),
    [ColumnName] = col. [name]
FROM  
    --Role/member associations
    sys.database_role_members members
JOIN
    --Roles
    sys.database_principals roleprinc ON roleprinc .[principal_id] = members .[role_principal_id]
JOIN
    --Role members (database users)
    sys.database_principals memberprinc ON memberprinc .[principal_id] = members .[member_principal_id]
LEFT JOIN
    --Login accounts
    sys.syslogins ulogin on memberprinc .[sid] = ulogin .[sid]
LEFT JOIN       
    --Permissions
    sys.database_permissions perm ON perm .[grantee_principal_id] = roleprinc .[principal_id]
LEFT JOIN
    --Table columns
    sys.columns col on col .[object_id] = perm .major_id
                    AND col .[column_id] = perm .[minor_id]
LEFT JOIN
    sys.objects obj ON perm .[major_id] = obj .[object_id]
UNION
--List all access provisioned to the public role, which everyone gets by default
SELECT
       [DatabaseName] = DB_NAME(),
    [LoginName] = ''{All Users}'',
       [DBUserName] = ''{All Users}'',
    [UserType] = ''{All Users}'',
    [Role] = roleprinc. [name],    
    [PermissionType] = perm. [permission_name],     
    [PermissionState] = perm. [state_desc],     
    [ObjectType] = obj. type_desc,--perm.[class_desc],
    [ObjectName] = OBJECT_NAME( perm.major_id ),
    [ColumnName] = col. [name]
FROM  
    --Roles
    sys.database_principals roleprinc
LEFT JOIN       
    --Role permissions
    sys.database_permissions perm ON perm .[grantee_principal_id] = roleprinc .[principal_id]
LEFT JOIN
    --Table columns
    sys.columns col on col .[object_id] = perm .major_id
                    AND col .[column_id] = perm .[minor_id]                 
JOIN
    --All objects 
    sys.objects obj ON obj .[object_id] = perm .[major_id]
WHERE
    --Only roles
    roleprinc.[type] = ''R'' AND
    --Only public role
    roleprinc.[name] = ''public'' AND
    --Only objects of ours, not the MS objects
    obj.is_ms_shipped = 0
ORDER BY
    princ.[Name] ,
    OBJECT_NAME(perm .major_id),
    col.[name] ,
    perm.[permission_name] ,
    perm.[state_desc] ,
    obj.type_desc --perm.[class_desc]'
)
delete @dbs where dbname = @Next
select top 1 @Next = dbname from @dbs
end
set nocount off
select * from @permission



'SQL SERVER' 카테고리의 다른 글

SSMS를 이용하여 Excel 데이터 CTRL + V로 DB에 insert 하기  (0) 2018.10.26
최근에 수정된 Object찾기  (0) 2018.10.26
Linked server List  (0) 2018.10.26
파티션(partition) 테이블 현황조회  (0) 2018.10.26
SSMS의 Tip  (0) 2018.10.26
posted by bedbmsguru
2018. 10. 26. 21:30 SQL SERVER

Linked Server 조회

SELECT ss.server_id 
          ,ss.name 
          ,'Server ' = Case ss.Server_id 
                            when 0 then 'Current Server' 
                            else 'Remote Server' 
                            end 
          ,ss.product 
          ,ss.provider 
          ,ss.catalog 
          ,'Local Login ' = case sl.uses_self_credential 
                            when 1 then 'Uses Self Credentials' 
                            else ssp.name 
                            end 
           ,'Remote Login Name' = sl.remote_name 
           ,'RPC Out Enabled'    = case ss.is_rpc_out_enabled 
                                   when 1 then 'True' 
                                   else 'False' 
                                   end 
           ,'Data Access Enabled' = case ss.is_data_access_enabled 
                                    when 1 then 'True' 
                                    else 'False' 
                                    end 
           ,ss.modify_date 
      FROM sys.Servers ss 
 LEFT JOIN sys.linked_logins sl 
        ON ss.server_id = sl.server_id 
 LEFT JOIN sys.server_principals ssp 
        ON ssp.principal_id = sl.local_principal_id

'SQL SERVER' 카테고리의 다른 글

최근에 수정된 Object찾기  (0) 2018.10.26
user가 가지고 있는 권한 확인  (0) 2018.10.26
파티션(partition) 테이블 현황조회  (0) 2018.10.26
SSMS의 Tip  (0) 2018.10.26
Index REBUILD OR REORG 쿼리  (0) 2018.10.26
posted by bedbmsguru
2018. 10. 26. 21:30 SQL SERVER

SELECT t.name AS TableName, i.name AS IndexName , p.partition_number, e.name, f.name, f.type_desc, p.rows, rv.value, 
CASE WHEN f.boundary_value_on_right = 0 THEN 'LEFT' ELSE 'Right' END AS LeftRightBoundary,
CASE WHEN ISNULL(rv.value, rv2.value) IS NULL THEN 'N/A' 
ELSE
    CASE WHEN boundary_value_on_right = 0 AND rv2.value IS NULL THEN '>=' 
        WHEN boundary_value_on_right = 0 THEN '>' 
        ELSE '>=' 
    END + ' ' + ISNULL(CONVERT(varchar(50), rv2.value, 121), 'Min Value') + ' ' + 
        CASE boundary_value_on_right WHEN 1 THEN 'and <' 
                ELSE 'and <=' END 
        + ' ' + ISNULL(CONVERT(varchar(50), rv.value, 121), 'Max Value') 
END AS TextComparison
FROM sys.tables AS t  
JOIN sys.indexes AS i  
    ON t.object_id = i.object_id  
JOIN sys.partitions AS p  
    ON i.object_id = p.object_id AND i.index_id = p.index_id   
JOIN (select bb.name, aa.destination_id from sys.destination_data_spaces aa inner join sys.data_spaces bb ON aa.data_space_id=bb.data_space_id) E
ON p.partition_number = e.destination_id
JOIN  sys.partition_schemes AS s   
    ON i.data_space_id = s.data_space_id  
JOIN sys.partition_functions AS f   
    ON s.function_id = f.function_id
LEFT JOIN sys.partition_range_values AS r   
    ON f.function_id = r.function_id and r.boundary_id = p.partition_number  
LEFT JOIN sys.partition_range_values AS rv
    ON f.function_id = rv.function_id
    AND p.partition_number = rv.boundary_id     
LEFT JOIN sys.partition_range_values AS rv2
    ON f.function_id = rv2.function_id
    AND p.partition_number - 1= rv2.boundary_id
WHERE i.type <= 1 AND t.name = 'LOGIN_INFO_REPOSITORY'
ORDER BY t.name, p.partition_number;

'SQL SERVER' 카테고리의 다른 글

user가 가지고 있는 권한 확인  (0) 2018.10.26
Linked server List  (0) 2018.10.26
SSMS의 Tip  (0) 2018.10.26
Index REBUILD OR REORG 쿼리  (0) 2018.10.26
알아봐요 할 DMV  (0) 2018.09.19
posted by bedbmsguru
2018. 10. 26. 21:27 SQL SERVER

     1.Go
       Batch의 끝을 나타냄 Go 뒤에 숫자를 붙일 경우 숫자 만큼 실행됨


  1. 유용한 단축키
 
단축키용도
Ctrl + UDB변경
Ctrl + R결과창을 Toggle
Ctrl + ]매칭되는 괄호찾기
Ctrl + K, Ctrl + C현재행 주석처리
Ctrl + K, Ctrl + U현재행 주석풀기
Shift + Alt + EnterCode Editor 를 Full Screen
Shift + Alt + 화살표키
여러줄에 동시코딩할때 여러줄에 한번에 ' 넣기 등 
Ctrl + ICode Editor 내의 Quick Search


  1. 열(Column)전체를 Code Editor로 내보내기
     - 테이블 리스트의 Object Explorer 의 [열](column) 항목을 Code Editor로 Drag&Drop


  1. Query window 에 Line Number 추가하기
      

  1. Alt 키를 누른상태에서 텍스트 선택하기 삭제해야 될 블럭을 커서가 있는 기준으로 선택 가능





'SQL SERVER' 카테고리의 다른 글

Linked server List  (0) 2018.10.26
파티션(partition) 테이블 현황조회  (0) 2018.10.26
Index REBUILD OR REORG 쿼리  (0) 2018.10.26
알아봐요 할 DMV  (0) 2018.09.19
Troubleshooting transactional replication latency issues  (0) 2018.08.10
posted by bedbmsguru
2018. 10. 26. 21:26 SQL SERVER

SELECT  OBJECT_NAME(s.[object_id]) AS [ObjectName] ,
        i.name AS [IndexName] ,
        i.index_id ,
        user_seeks + user_scans + user_lookups AS [Reads] ,
        user_updates AS [Writes] ,
              [Indexsize(MB)],
              TB_SIZE.[Tablesize(MB)],
        i.type_desc AS [IndexType] ,
        i.fill_factor AS [FillFactor],
              st.avg_fragmentation_in_percent,
              case when st.avg_fragmentation_in_percent > 30 then
                     'alter index ' + i.name + ' on ' + OBJECT_NAME(s.[object_id]) + ' rebuild with (online = on)'
              else
                     'alter index ' + i.name + ' on ' + OBJECT_NAME(s.[object_id]) + ' REORGANIZE'
              end AS QUERY
FROM    sys.dm_db_index_usage_stats AS s
        INNER JOIN sys.indexes AS i ON s.[object_id] = i.[object_id]
              cross apply sys.dm_db_index_physical_stats(db_id(),s.[object_id], i.index_id, null, null) ST
              INNER JOIN
              (
               SELECT
                     i.OBJECT_ID,
                     OBJECT_NAME(i.OBJECT_ID) AS TableName,
                     i.name AS IndexName,
                     i.index_id AS IndexID,
                     8 * SUM(a .used_pages) / 1024 AS 'Indexsize(MB)'
              FROM sys .indexes AS i
                     JOIN sys .partitions AS p ON p.OBJECT_ID = i.OBJECT_ID AND p.index_id = i.index_id
                     JOIN sys .allocation_units AS a ON a.container_id = p.partition_id
                     --where OBJECT_NAME (i. OBJECT_ID) ='TLogState'
                     GROUP BY i. OBJECT_ID,i .index_id, i.name
              )AS IND_SIZE
              ON i.object_id = IND_SIZE.object_id
              AND i.index_id = IND_SIZE.IndexID
              INNER JOIN
              (
                     
                     SELECT
                           i.object_id,
                           SUM(a .total_pages) * 8 /1024 AS 'Tablesize(MB)'
                     FROM  sys. indexes i
                     INNER JOIN sys. partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
                     INNER JOIN sys. allocation_units a ON p.partition_id = a.container_id
                     WHERE i.OBJECT_ID > 255
                     GROUP BY i.object_id
              )AS TB_SIZE
              ON TB_SIZE.object_id = I.object_id
WHERE   OBJECTPROPERTY(s.[object_id], 'IsUserTable') = 1
        AND i.index_id = s.index_id
        AND s.database_id = DB_ID()
ORDER BY OBJECT_NAME(s.[object_id]) ,
        writes DESC ,
        reads DESC ;

'SQL SERVER' 카테고리의 다른 글

파티션(partition) 테이블 현황조회  (0) 2018.10.26
SSMS의 Tip  (0) 2018.10.26
알아봐요 할 DMV  (0) 2018.09.19
Troubleshooting transactional replication latency issues  (0) 2018.08.10
Replication Subscription Type 확인  (0) 2018.05.09
posted by bedbmsguru