블로그 이미지
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
  • total
  • today
  • yesterday
2019. 3. 6. 15:08 오라클

Object 종류 등등 여러가지로 변경 응용 가능


SELECT DBMS_METADATA.GET_DDL('PROCEDURE', 'procedure이름', '스키마이름') FROM DUAL


'오라클' 카테고리의 다른 글

Table Size 확인(Index, Lob데이터포함)  (0) 2019.05.10
Oracle 11g 설치 오류 PRVF-0002  (0) 2019.05.02
오라클 세션별 CPU, PGA 사용량 확인 쿼리  (0) 2018.12.31
DML쿼리 튜닝방법  (0) 2018.09.19
스케줄러 사용법  (0) 2018.08.27
posted by bedbmsguru
2019. 2. 19. 15:27 SQL SERVER

아주 괜챃은 방법이다.


Extended Event Data 조회

http://www.sqldoubleg.com/2016/05/31/extended-events-file-target-reader/


CREATE EVENT SESSION [ALL_SQL_SAVE] ON SERVER
ADD EVENT sqlserver.rpc_completed(SET collect_statement=(1)
ACTION(package0.collect_system_time,sqlos.task_time,sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.client_pid,sqlserver.database_id,sqlserver.session_id,sqlserver.sql_text,sqlserver.username)
WHERE ([object_name]<>N'sp_reset_connection')),
ADD EVENT sqlserver.sql_batch_completed(
ACTION(package0.collect_system_time,sqlos.task_time,sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.client_pid,sqlserver.database_id,sqlserver.session_id,sqlserver.sql_text,sqlserver.username))
ADD TARGET package0.event_file(SET filename=N'F:\temp\ALL_QUERY.xel',max_file_size=(500),max_rollover_files=(30))
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO



IF OBJECT_ID('tempdb..#ExEvent') IS NOT NULL DROP TABLE #ExEvent
SELECT IDENTITY(INT,1,1) AS RowId, object_name AS event_name, CONVERT(XML,event_data) AS event_data
INTO #ExEvent
from sys.fn_xe_file_target_read_file ( 'f:\Temp\AAA.xel',null, null, null ) ;




(39266개 행이 영향을 받음)
SELECT ISNULL(t_action.RowId, t_data.RowId) AS RowId
, ISNULL(t_action.event_name, t_data.event_name) AS event_name
, t_action.[client_hostname], t_action.[collect_system_time], t_action.[client_app_name], t_action.[session_id]
, t_data.[cpu_time], t_data.[duration], t_data.[logical_reads], t_data.[object_name], t_data.[physical_reads], t_data.[result], t_data.[row_count], t_data.[statement], t_data.[writes]
FROM (
SELECT RowId, event_name, [client_hostname], [collect_system_time], [client_app_name], [session_id]
FROM (
SELECT RowId
, event_name
, T2.Loc.query('.').value('(/action/@name)[1]', 'varchar(max)')AS att_name
, T2.Loc.query('.').value('(/action/value)[1]', 'varchar(max)')AS att_value
FROM #ExEvent
CROSS APPLY event_data.nodes('/event/action') as T2(Loc)
WHERE T2.Loc.query('.').value('(/action/@name)[1]', 'varchar(max)')
IN ('client_hostname', 'collect_system_time', 'client_app_name', 'session_id')
) AS SourceTable
PIVOT(
MAX(att_value)
FOR att_name IN ([client_hostname], [collect_system_time], [client_app_name], [session_id])
) AS PivotTable
) AS t_action

-- Full outer because it might be no events selected only the payload
FULL OUTER JOIN (
SELECT RowId, event_name, [cpu_time], [duration], [logical_reads], [object_name], [physical_reads], [result], [row_count], [statement], [writes]
FROM (
SELECT RowId
, event_name
, T3.Loc.query('.').value('(/data/@name)[1]', 'varchar(max)') AS att_name
, T3.Loc.query('.').value('(/data/value)[1]', 'varchar(max)') AS att_value

FROM #ExEvent
CROSS APPLY event_data.nodes('/event/data') as T3(Loc)
WHERE T3.Loc.query('.').value('(/data/@name)[1]', 'varchar(max)')
IN ( 'cpu_time', 'duration', 'logical_reads', 'object_name', 'physical_reads', 'result', 'row_count', 'statement', 'writes')
) AS SourceTable
PIVOT (
MAX(att_value)
FOR att_name IN ([cpu_time], [duration], [logical_reads], [object_name], [physical_reads], [result], [row_count], [statement], [writes])
) AS PivotTable

) AS t_data
ON t_data.RowId = t_action.RowId




posted by bedbmsguru
2019. 2. 19. 13:13 Zabbix

Linux Version 가능


http://cavaliercoder.com/libzbxpgsql/

'Zabbix' 카테고리의 다른 글

Zabbix5.0 With PostgreSQL  (0) 2021.06.01
Windows Zabbix Agent 설치  (0) 2019.05.30
Linux DISK IO 모니터링  (0) 2018.11.30
zabbix Agent 설치  (0) 2018.10.26
SAN Switch 모니터링 적용  (0) 2018.10.26
posted by bedbmsguru
2018. 12. 31. 16:12 오라클

출처:http://oracle.tistory.com/430


1. 세션별 CPU Time, Memory 사용량
 
select s.sid, s.serial#, p.spid as "os pid", s.username, s.module, s.sql_id, event, seconds_in_wait,
st.value/100 as "cpu sec",
round(pga_used_mem/1024/1024) "pga_tot(mb)",
round(pga_used_mem/1024/1024) "pga_per_sess(mb)"
from v$sesstat st, v$statname sn, v$session s, v$process p
where sn.name = 'CPU used by this session' -- cpu
and st.statistic# = sn.statistic#
and st.sid = s.sid
and s.paddr = p.addr
and s.last_call_et < 1800 -- active within last 1/2 hour
and s.logon_time > (SYSDATE - 240/1440) -- sessions logged on within 4 hours
order by st.value

 
 
 
 
2. Client별 Memory 사용량
 
select machine,status,count(*) cnt, 
       round(sum(pga_used_mem)/1024/1024) "pga_tot(mb)",
       round(sum(pga_used_mem)/count(*)/1024/1024) "pga_per_sess(mb)"
from v$session s, v$process p
where 1=1
--and s.status='active'
and s.paddr=p.addr
and type <> 'BACKGROUND'
group by machine,status
order by 1



출처: http://oracle.tistory.com/430 [안나푸르나]

'오라클' 카테고리의 다른 글

Oracle 11g 설치 오류 PRVF-0002  (0) 2019.05.02
오라클 Object DDL 스크립트 추출  (0) 2019.03.06
DML쿼리 튜닝방법  (0) 2018.09.19
스케줄러 사용법  (0) 2018.08.27
특정테이블 index Size 조회  (0) 2018.08.13
posted by bedbmsguru
2018. 12. 26. 16:24 Powershell

column customizing 포함


$a = @{Expression={$_.SamAccountName}; Label="Column 1"; Width=50},
@{Expression={$_.surName}; Label="Column 2"; Width=50},
@{Expression={$_.Description}; Label="Column 3"; Width=50},
@{Expression={$_.Created}; Label="Column 4"; Width=50},
@{Expression={$_.LastLogonDate}; Label="Column 4"; Width=50}

Get-ADUser -Properties SamAccountName, surName, Description, Created, LastLogonDate -Filter {ObjectClass -eq "user"} -SearchBase "OU=MYOU,DC=mydc,DC=co,DC=kr" | Sort-Object -property SamAccountName | Select-object SamAccountName, surName, Description, Created, LastLogonDate | Format-Table -property $a > d:\aa.txt 

posted by bedbmsguru
2018. 12. 12. 14:16 maridb&mysql

Mariadb 를 10.2.18  --> 10.2.19로 업그레이드를 하고 나니 xtrabackup을 이용한  백업이 


unsupported redo log format. the redo log was created 


라는 에러가 나면서 백업이 되지 않는다 해서 찾아낸게 mariabackup  명령어만 다르고 옵션이나 


사용법은 동일하다.


1. xtrabackup을 사용해서백업 복구

(1) 백업

mariabackup --backup --user=root --password='암호' --target-dir=/usr/dat/zabbix_backup

mariabackup --prepare  --target-dir=/usr/dat/zabbix_backup


(2)복구

rsync -avrP /root/aaa/ /var/lib/mysql/




--SELinux 등록

chcon -Rt mysqld_db_t /var/lib/mysql

chcon -Ru system_u /var/lib/mysql

chown -R mysql:mysql /var/lib/mysql


--권한 등록

sudo chown -cR mysql:mysql /var/lib/mysql/*

sudo chown mysql:mysql /var/lib/mysql


--mariadb 10.2 version에서 old redo log를 이용한 crash recovery 시도를 막기 위해아래 파일들을 지워준다.

rm /var/lib/mysql/ib_logfile*


--시작

sudo systemctl start mariadb



출처: https://mariadb.com/kb/en/library/full-backup-and-restore-with-mariabackup/

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

mysql root 패스워드 분실 대처방법  (0) 2020.07.30
mysql status 확인하기  (0) 2020.07.30
mariadb 계정, 권한 관련  (0) 2018.10.27
mysql DB관리용 쿼리  (0) 2018.10.26
procedure 생성 템플릿  (0) 2018.10.26
posted by bedbmsguru
2018. 11. 30. 11:44 Zabbix

참조: https://github.com/grundic/zabbix-disk-performance



1. wget https://raw.githubusercontent.com/grundic/zabbix-disk-performance/master/userparameter_diskstats.conf -O /etc/zabbix/zabbix_agentd.d/userparameter_diskstats.conf


2. wget https://raw.githubusercontent.com/grundic/zabbix-disk-performance/master/lld-disks.py -O /usr/local/bin/lld-disks.py



3. chmod 755 /usr/local/bin/lld-disks.py


4. vi /usr/local/bin/lld-disks.py


  -->skippable = {"sr", "loop", "ram"} 에 "dm-" 추가


dm- 와 sdx는 중복이므로 둘중에 하나만 하면 된다. 


5. zabbix-agent 재시작



6. Zabbix Web 으로 로그인해서 Template_Linux_DISK_Performance(이름은 다를 수 있음) 를 적용한다.

'Zabbix' 카테고리의 다른 글

Windows Zabbix Agent 설치  (0) 2019.05.30
Postgresql 모니터링  (0) 2019.02.19
zabbix Agent 설치  (0) 2018.10.26
SAN Switch 모니터링 적용  (0) 2018.10.26
brocade SAN fc port zabbix 모니터링  (0) 2018.10.26
posted by bedbmsguru
2018. 10. 27. 22:50 maridb&mysql


--계정생성
INSERT INTO mysql.user (host,user,password) VALUES('아이피','root',password('신규암호'));
create user '사용자이름'@'localhost' identified by 'xxxxx';

--권한부여
GRANT ALL PRIVILEGES ON *.* TO 'root'@'아이피' WITH GRANT OPTION; #GRANT 권한까지 줄 경우

#PROCEDURE 관련권한
GRANT ALTER ROUTINE, CREATE ROUTINE, EXECUTE ON HWANG_DATA.* TO 'hwang_gw'@'1.1.1.1';

GRANT SELECT ON mysql.proc TO 'monitor_user'@'%';
grant all privileges on MONITOR_RESULT.* to 'monitor_user'@'%';


--권한 시스템 적용
flush privileges;

--패스워드변경
update mysql.user set password=password('암호') where user='';

--백업계정의 권한(pw가 노출되므로 최소한의 권한만 준다.)
GRANT LOCK TABLES, TABLES, RELOAD, REPLICATION, CLIENT, SELECT, SHOW DATABASES, SHOW VIEW ON *.* TO 'backup'


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

mysql status 확인하기  (0) 2020.07.30
mariabackup 을 이용한 mariadb 백업  (0) 2018.12.12
mysql DB관리용 쿼리  (0) 2018.10.26
procedure 생성 템플릿  (0) 2018.10.26
Function 템플릿  (0) 2018.10.26
posted by bedbmsguru
2018. 10. 27. 22:47 SQL SERVER

select                       distinct
                                                 ObjectType                            = o .type_desc
                                 ,                ObjectName                           = o .name
                                 ,                CodeSequence     = c_display. colid
                                 ,                Code                                        = c_display .[text]
from                         sys.objects o
inner join                 sys.syscomments c_search
                                                 on c_search .id = o .[object_id]
inner join                 sys.syscomments c_display
                                                 on c_display .id = o .[object_id]
where                      o.type_desc not in ( 'INTERNAL_TABLE','SERVICE_QUEUE' ,'SYSTEM_TABLE')
and                                          c_search.[text] like '%temp%'
order by  1, 2 , 3


posted by bedbmsguru
2018. 10. 27. 22:45 SQL SERVER

SELECT TOP 10
wait_type ,
max_wait_time_ms wait_time_ms ,
signal_wait_time_ms ,
wait_time_ms - signal_wait_time_ms AS resource_wait_time_ms ,
100.0 * wait_time_ms / SUM( wait_time_ms) OVER ( )
AS percent_total_waits ,
100.0 * signal_wait_time_ms / SUM( signal_wait_time_ms) OVER ( )
AS percent_total_signal_waits ,
100.0 * ( wait_time_ms - signal_wait_time_ms )
/ SUM (wait_time_ms) OVER ( ) AS percent_total_resource_waits
FROM sys .dm_os_wait_stats
WHERE wait_time_ms > 0 -- remove zero wait_time
AND wait_type NOT IN -- filter out additional irrelevant waits
( 'SLEEP_TASK' , 'BROKER_TASK_STOP' , 'BROKER_TO_FLUSH' ,
'SQLTRACE_BUFFER_FLUSH' ,'CLR_AUTO_EVENT', 'CLR_MANUAL_EVENT',
'LAZYWRITER_SLEEP' , 'SLEEP_SYSTEMTASK' , 'SLEEP_BPOOL_FLUSH' ,
'BROKER_EVENTHANDLER' , 'XE_DISPATCHER_WAIT' , 'FT_IFTSHC_MUTEX' ,
'CHECKPOINT_QUEUE' , 'FT_IFTS_SCHEDULER_IDLE_WAIT' ,
'BROKER_TRANSMITTER' , 'FT_IFTSHC_MUTEX' , 'KSOURCE_WAKEUP' ,
'LAZYWRITER_SLEEP' , 'LOGMGR_QUEUE' , 'ONDEMAND_TASK_QUEUE' ,
'REQUEST_FOR_DEADLOCK_SEARCH' , 'XE_TIMER_EVENT' , 'BAD_PAGE_PROCESS' ,
'DBMIRROR_EVENTS_QUEUE' , 'BROKER_RECEIVE_WAITFOR' ,
'PREEMPTIVE_OS_GETPROCADDRESS' , 'PREEMPTIVE_OS_AUTHENTICATIONOPS' ,
'WAITFOR', 'DISPATCHER_QUEUE_SEMAPHORE', 'XE_DISPATCHER_JOIN',
'RESOURCE_QUEUE' )
ORDER BY wait_time_ms DESC

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

Extended Event Data Query로 Select  (0) 2019.02.19
Procedure나 Function 내용 검색  (0) 2018.10.27
DAC 연결방법  (0) 2018.10.27
패스워드까지 그대로 로그인(계정) 옮기는법  (0) 2018.10.27
CPU 사용율 높은 쿼리 확인  (0) 2018.10.27
posted by bedbmsguru