DB/postgreSQL
-
UPDATE문로 테이블 수정 및 활성화2024.06.21
-
DELETE와 UPDATE 쿼리문의 차이점2024.06.21
-
테이블 DELETE 후 VACUUM 테스트2024.06.21
UPDATE문로 테이블 수정 및 활성화
2024.06.21 - [DB/postgreSQL] - DELETE와 UPDATE 쿼리문의 차이점
# SELECT * FROM agentinfo ;
_agentid | _agentname | _enabled | _connected | _updated | _shorttermbasic | _shorttermproc | _shorttermio | _shorttermcpu | _longtermbasic | _longtermproc | _longtermio | _longtermcpu | _model | _serial | _group | _ipaddress | _pscommand | _logevent | _processevent | _timecheck | _disconnectedtime | _skipdatatypes | _virbasicperf | _hypervisor | _serviceevent | _installdate | _ibmpcrate | _updatedtime
----------+------------------------------+----------+------------+----------+-----------------+----------------+--------------+---------------+----------------+---------------+-------------+--------------+------------+----------+--------+---------------+------------+-------------------------------------------------------+---------------+------------+-------------------+----------------+---------------+-------------+-----------------+--------------+------------+--------------
4 | jwchoi_ol7_2 | 1 | 1 | 0 | 2 | 5 | 5 | 5 | 600 | 600 | 600 | 600 | VirtualBox | 0 | | 192.168.0.34 | | "1,*,/var/log/messages" | | 1 | 1718974447 | 0 | 1 | 0 | | 1718273170 | 0 | 1718974485
0 | NULL | 0 | 0 | | | | | | | | | | | | | | | | | | | | | | | | |
3 | jwchoi_ol7 | 1 | 1 | 0 | 2 | 5 | 5 | 5 | 600 | 600 | 600 | 600 | VirtualBox | 0 | | 192.168.0.34 | | | | 1 | 1718974447 | 0 | 1 | 0 | | 1718271967 | 0 | 1718974486
1 | OL7.9.myguest.virtualbox.org | 1 | 0 | 0 | 2 | 5 | 5 | 5 | 600 | 600 | 600 | 600 | VirtualBox | 0 | | 192.168.138.1 | | | | 1 | 1718271964 | 0 | 1 | 0 | | 1718015944 | 0 | 1718271964
2 | jaewoochoi | 1 | 1 | 0 | 2 | 5 | 5 | 5 | 600 | 600 | 600 | 600 | 21F6S00M00 | PF40J09A | | 192.168.0.34 | | "2,postgresqlDB,windowsevent messageon : application" | postgres.exe | 1 | 1718982916 | 0 | 1 | 0 | onTuneService,0 | 1718270569 | 0 | 1718982930
(5개 행)
// Agentinfo 테이블 조회
# SELECT _agentid, _agentname, _enabled FROM agentinfo WHERE _agentname='jaewoochoi';
_agentid | _agentname | _enabled
----------+------------+----------
2 | jaewoochoi | 1
(1개 행)
// onTune Agent 삭제 및 onTuneAdmin.exe 에서 대상 호스트를 삭제했다면 _enabled가 2로 조회된다.
# UPDATE agentinfo set _enabled='2' WHERE _agentname='jaewoochoi';
UPDATE 1
// 상태 변경 -> 2
# SELECT _agentid, _agentname, _enabled FROM agentinfo WHERE _agentname='jaewoochoi';
_agentid | _agentname | _enabled
----------+------------+----------
2 | jaewoochoi | 2
(1개 행)
// 다시 조회
Admin으로 확인 시,
Agent 서버가 삭제된 것을 확인할 수 있다.
# SELECT _agentid ,_agentname ,_enabled FROM agentinfo WHERE _agentname='jaewoochoi';
_agentid | _agentname | _enabled
----------+------------+----------
2 | jaewoochoi | 2
(1개 행)
# UPDATE agentinfo SET _enabled='1' WHERE _agentname='jaewoochoi';
UPDATE 1
// 서버 상태 변경 -> 1
# SELECT _agentid ,_agentname ,_enabled FROM agentinfo WHERE _agentname='jaewoochoi';
_agentid | _agentname | _enabled
----------+------------+----------
2 | jaewoochoi | 1
(1개 행)
// _enabled가 1로 변경되었으면, onTuneAdmin 에서 대상 호스트의 에이전트와 통신이 되는지 확인한다.
Admin으로 확인 시,
Agent 서버가 활성화 된 것을 확인할 수 있다.
'DB > postgreSQL' 카테고리의 다른 글
DELETE와 UPDATE 쿼리문의 차이점 (0) | 2024.06.21 |
---|---|
테이블 DELETE 후 VACUUM 테스트 (0) | 2024.06.21 |
[postgreSQL] Oracle Linux 7.9 + postgreSQL 12 설치 (0) | 2024.06.04 |
DELETE와 UPDATE 쿼리문의 차이점
DELETE와 UPDATE를 통한 "삭제"의 차이점
- DELETE로 삭제: 해당 행이 테이블에서 완전히 제거된다. 이 작업은 데이터 복구가 어렵거나 불가능할 수 있습니다. 삭제된 데이터를 복구하려면 백업이 필요하다.
- UPDATE로 "삭제": 실제로 데이터를 삭제하지 않고, 특정 열의 값을 변경하여 삭제된 것처럼 보이게 할 수 있다. 예를 들어, _enabled 열을 0으로 설정하여 해당 행이 비활성화된 것으로 처리할 수 있다. 이 방법은 데이터를 물리적으로 삭제하지 않고, 나중에 필요할 때 복구할 수 있는 장점이 있다.
이 쿼리는 _agentname이 jaewoochoi인 모든 행을 테이블에서 완전히 제거한다.
DELETE FROM agentinfo WHERE _agentname='jaewoochoi';
이 쿼리는 _agentname이 jaewoochoi인 모든 행의 _enabled 열을 0으로 설정하여 비활성화 상태로 만든다. 행 자체는 여전히 테이블에 존재한다.
UPDATE agentinfo SET _enabled='0' WHERE _agentname='jaewoochoi';
테스트
2024.06.21 - [DB/postgreSQL] - 테이블 DELETE 후 VACUUM 테스트
'DB > postgreSQL' 카테고리의 다른 글
UPDATE문로 테이블 수정 및 활성화 (0) | 2024.06.21 |
---|---|
테이블 DELETE 후 VACUUM 테스트 (0) | 2024.06.21 |
[postgreSQL] Oracle Linux 7.9 + postgreSQL 12 설치 (0) | 2024.06.04 |
테이블 DELETE 후 VACUUM 테스트
VACUUM
1) 공간 재사용
1. 데이터베이스에서 레코드를 삭제하면 물리적인 공간은 여전히 사용 중이지만, 해당 데이터는 더 이상 필요하지 않는다.
2. 삭제된 데이터가 차지하고 있던 공간을 다시 사용 가능하게 만들어 공간 효율성을 높인다.
2) 성능개선
3) MVCC 관리
데이터베이스 시스템에서 Multi-Version Concurrency Control (MVCC) 메커니즘을 관리하는 데 필수적이다.
MVCC는 트랜잭션 격리 수준을 지원하고, 동시성을 관리하는 데 사용되어 정기적인 VACUUM 작업이 필요하다.
테스트
=====
# SELECT * FROM hostinfo WHERE _agentid='1';
_agentid | _hostname | _hostnameext | _os | _fw | _agentversion | _model | _serial | _processorcount | _processorclock | _memorysize | _swapsize | _poolid | _replication | _smt | _micropar | _capped | _ec | _virtualcpu | _weight | _cpupool | _ams | _allip | _numanodecount | _btime
----------+------------------------------+--------------+------------------------------------------------------------+-----+---------------+------------+---------+-----------------+-----------------+-------------+-----------+---------+--------------+------+-----------+---------+-----+-------------+---------+----------+------+-----------+----------------+------------
1 | OL7.9.myguest.virtualbox.org | | Linux(Oracle Linux) 5.4.17-2136.331.7.el7uek.x86_64 x86_64 | | V4.31.49 | VirtualBox | 0 | 2 | 2188 | 3629 | 0 | -1 | 0 | 0 | 0 | 0 | -1 | 2 | -1 | -1 | 0 | 10.0.2.15 | | 1718238672
(1개 행)
# DELETE FROM hostinfo WHERE _agentid='1';
DELETE 1
# SELECT FROM hostinfo WHERE _agentid='1';
--
(0개 행)
# SELECT * FROM hostinfo;
_agentid | _hostname | _hostnameext | _os | _fw | _agentversion | _model | _serial | _processorcount | _processorclock | _memorysize | _swapsize | _poolid | _replication | _smt | _micropar | _capped | _ec | _virtualcpu | _weight | _cpupool | _ams | _allip | _numanodecount | _btime
----------+--------------+--------------+------------------------------------------------------------+---------+---------------+------------+----------+-----------------+-----------------+-------------+-----------+---------+--------------+------+-----------+---------+-----+-------------+---------+----------+------+-------------------------------------------------------+----------------+------------
4 | jwchoi_ol7_2 | | Linux(Oracle Linux) 5.4.17-2136.331.7.el7uek.x86_64 x86_64 | | V4.31.49 | VirtualBox | 0 | 2 | 2188 | 3629 | 0 | -1 | 0 | 0 | 0 | 0 | -1 | 2 | -1 | -1 | 0 | 10.0.2.15,192.168.138.4 | | 1718925744
3 | jwchoi_ol7 | | Linux(Oracle Linux) 5.4.17-2136.331.7.el7uek.x86_64 x86_64 | | V4.31.49 | VirtualBox | 0 | 2 | 2188 | 3629 | 0 | -1 | 0 | 0 | 0 | 0 | -1 | 2 | -1 | -1 | 0 | 10.0.2.15 | | 1718925744
2 | jaewoochoi | | Windows 11 Pro | Unknown | V4.1.13.1 | 21F6S00M00 | PF40J09A | 12 | 1900 | 16056 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 12 | 0 | 0 | 0 | 192.168.56.1,192.168.138.1,192.168.1.150,192.168.0.34 | | 1718544487
(3개 행)
// 삭제한 hostname이 삭제가 잘 되었는지 조회
# SELECT _hostname FROM hostinfo WHERE _hostname LIKE '%box' ORDER BY 1;
_hostname
-----------
(0개 행)
//삭제한 Hostname 조회
# VACUUM FULL FREEZE ANALYZE hostinfo;
//삭제한 hostinfo 테이블 VACUUM
# SELECT * FROM hostinfo;
_agentid | _hostname | _hostnameext | _os | _fw | _agentversion | _model | _serial | _processorcount | _processorclock | _memorysize | _swapsize | _poolid | _replication | _smt | _micropar | _capped | _ec | _virtualcpu | _weight | _cpupool | _ams | _allip | _numanodecount | _btime
----------+--------------+--------------+------------------------------------------------------------+---------+---------------+------------+----------+-----------------+-----------------+-------------+-----------+---------+--------------+------+-----------+---------+-----+-------------+---------+----------+------+-------------------------------------------------------+----------------+------------
4 | jwchoi_ol7_2 | | Linux(Oracle Linux) 5.4.17-2136.331.7.el7uek.x86_64 x86_64 | | V4.31.49 | VirtualBox | 0 | 2 | 2188 | 3629 | 0 | -1 | 0 | 0 | 0 | 0 | -1 | 2 | -1 | -1 | 0 | 10.0.2.15,192.168.138.4 | | 1718925744
3 | jwchoi_ol7 | | Linux(Oracle Linux) 5.4.17-2136.331.7.el7uek.x86_64 x86_64 | | V4.31.49 | VirtualBox | 0 | 2 | 2188 | 3629 | 0 | -1 | 0 | 0 | 0 | 0 | -1 | 2 | -1 | -1 | 0 | 10.0.2.15 | | 1718925744
2 | jaewoochoi | | Windows 11 Pro | Unknown | V4.1.13.1 | 21F6S00M00 | PF40J09A | 12 | 1900 | 16056 | 0 | -1 | 0 | 0 | 0 | 0 | 0 | 12 | 0 | 0 | 0 | 192.168.56.1,192.168.138.1,192.168.1.150,192.168.0.34 | | 1718544487
(3개 행)
// hostinfo 테이블 조회
===
VACUUM FULL FREEZE ANALYZE
- FULL: 테이블을 완전히 잠그고, 테이블의 모든 데이터를 재작성하여 디스크 공간을 최대한 회수
- FREEZE: 테이블의 트랜잭션 ID를 갱신하여 매우 오래된 트랜잭션으로 인한 문제를 방지
- ANALYZE: 테이블의 통계를 수집하여 쿼리 플래너가 보다 최적화된 쿼리 실행 계획을 수립할 수 있도록 함
'DB > postgreSQL' 카테고리의 다른 글
UPDATE문로 테이블 수정 및 활성화 (0) | 2024.06.21 |
---|---|
DELETE와 UPDATE 쿼리문의 차이점 (0) | 2024.06.21 |
[postgreSQL] Oracle Linux 7.9 + postgreSQL 12 설치 (0) | 2024.06.04 |
[postgreSQL] Oracle Linux 7.9 + postgreSQL 12 설치
OS 환경
- Oracle Linux 7.9
- 다운로드 : https://yum.oracle.com/oracle-linux-isos.html
DB 환경
- PostgreSQL 12
- 다운로드 : https://www.postgresql.org/download/linux/redhat/
OS는 virtualbox 를 사용하여서 설치하였다. (https://www.virtualbox.org/wiki/Downloads)
내부 외부 통신을 위해서는 NAT+호스트 전용 어댑터 방식으로 네트워크를 구성하는 게 좋습니다.
public IP에서 외부망을 통해 설치를 하는 과정이기 때문에 간단합니다.
==
postgreSQL 공식 설치 가이드
==
1. yum 으로 postgreSQL을 설치하기 위해 하위의 의존성이 존재하는 RPM 패키지를 모두 설치.
2. 설치한 RPM 패키지를 확인
3. yum으로 postgreSQL 서버 설치
4. 서비스 확인
5. DB 초기화 + 자동 기동 설정 (enable)
/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12
6. 접속 테스트 및 버전 확인
'DB > postgreSQL' 카테고리의 다른 글
UPDATE문로 테이블 수정 및 활성화 (0) | 2024.06.21 |
---|---|
DELETE와 UPDATE 쿼리문의 차이점 (0) | 2024.06.21 |
테이블 DELETE 후 VACUUM 테스트 (0) | 2024.06.21 |