2. DBMS이야기 139

[PostgreSQL ADMIN] DBMS 접근제한 설정

dbms 접근제한 설정하기 /var/lib/pgsql/data/pg_hba.conf 파일에 있는 다른 줄은 주석처리하고 아래 내용만 넣음. local 은 로컬에서의 접속을 지정하며 host 를 이용하여 ip를 이용해서 제한을 할 수 있음. 처음 설치 후 postgresql 을 띄우면 다음과 같이 설정이 되어 있다. # grep -v "^#" /var/lib/pgsql/data/pg_hba.conf local all all ident sameuser host all all 127.0.0.1/32 ident sameuser host all all ::1/128 ident sameuser 아래는 특정 ip 대역에서 사용자 인증을 통하여 접속하도록 설정하는 예제이다. local all all password h..

[MySQL TIP] 빈 테이블 검색하기

간혹 테스트 테이블이나, 테이블을 잘못생성하고 안사용하는 경우 등의 다양한 이유로 행수가 0인 테이블들이 존재한다. 아래의 스크립트는 MySQL에서 행이 없는 테이블에 대해 INFORMATION_SCHEMA에서 찾는 방법이다. 이런 테이블을 DBA 가 잘 리스트업할 필요가 있다. select CONCAT('SELECT \"',table_schema,'.',table_name,'\" AS tbl, COUNT(*) AS cnt FROM ',table_schema,'.',table_name,';') as cmd from information_schema.tables where table_schema not in ('mysql','performance_schema','information_schema') and..

MySQL에서의 AUTO_INCREMENT 사용법

MySQL을 AUTO_INCREMENT 기능은 기본 키 값을 증가의 자동 시퀀스를 생성 할 수있는 가장 쉬운 방법입니다. 너무 사용하기가 매우 쉽습니다 : create table t ( i integer auto_increment, other_field varchar(100), primary key(id) ); AUTO_INCREMENT를 사용할 때 염두에 두어야 할 몇 가지 기능. AUTO_INCREMENT는 결코 테이블에 이미 존재한 미만의 값을 제공하지는 않습니다. 명시 적으로 더 높은 값으로 ID를 추가 할 경우, AUTO_INCREMENT에 의해 생성되는 다음 값은 하나 더 높은 값일 것입니다. 이 말은 간격이 있다는 것을 의미합니다. 이것은 어떤 이유로 필드의 가능한 최대 값이 삽입되어있는 경..

VACUUM vs VACUUM FULL

1. VACUUM 1 ▷ 1 ▷ 1 2 2 2 3 (3) 4 4 4 5 (5) 6 6 6 3, 5를 삭제하고 난 후 VACUUM 이 후 위에 보이는 것은 블록의 data 이다. delete가 발생하는 경우, 괄호 안의 값처럼 data가 지워지지 않은 체 flag 값만 변경되어 해당 블록은 사용할 수 없는 공간으로 남게 된다. 이 경우, VACUUM 명령을 통해 delete flag가 있는 data를 영구히 지워버림으로써 해당 블록을 사용할 수 있는 공간으로 비워주게 된다. VACUUM은 table의 Lock을 걸지 않으므로 운영 중에도 사용이 가능하다. 2. VACUUM FULL 1 ▷ 1 ▷ 1 ▷ 1 2 2 2 2 3 (3) 4 4 4 4 6 6 5 (5) #1 6 6 3, 5를 삭제 VACUUM F..

06. CUBRID 사용자, Database 파일, 백업

안녕하세요~ 오늘은 농민의 날이네요~ 가래떡은 많이 받으셨나요?이번 화에는 CUBRID 사용자, Databases 파일, 백업에 대해 알아볼게요~ CUBRID 데이터베이스 사용자로는 그룹과 사용자로 나뉩니다.사용자에게 권한 A가 부여되면, 해당 사용자에게 속하는 모든 멤버에게도 권한 A도 동일하게 부여됩니다.한 마디로, 사용자와 그에 속한 멤버를 그룹이라고 하고,멤버가 없는 사용자를 사용자라고 합니다. CUBRID에는 DBA와 PUBLIC이라는 사용자를 기본으로 제공해요.- DBA는 모든 사용자의 멤버가 되며, 따라서 데이터베이스의 모든 객체에 접근할 수 있는 최고 권한 사용자예요 DBA만 데이터베이스 사용자를 추가, 편집, 삭제할 수 있는 권한이 있어요- DBA를 포함한 모든 사용자는 PUBLIC의 멤..

Mysql에서 innodb_file_per_table을 사용하는 이유

InnoDB의 작업을 할 때, 테이블 스페이스 스토리지를 관리하기위한 두 가지 방법이있다 :모든 것들을 하나의 파일로 관리(선택적으로 분할).테이블 당 하나의 파일 생성.I will discuss the advantages and disadvantages of the two options, 두 옵션간의 장점과 단점을 논의하고, innodb_file_per_table가 가장 바람직한 방법이라는 점을 이야기 할 것이다. A single tablespace하나의 큰 파일에 모든 것을 저장한다는 것의 의미는 모든 테이블과 스키마를 비롯한 모든 인덱스들이 하나의 파일이 섞이게 된다는 것이다. 이러한 방식은 다른 테이블들과 다른 스키마들이 유휴 공간을 자유롭게 공유할 수 있다는 좋은 장점이 있다. 따라서, 만약 내..

[PostgreSQL ADMIN] Backup & Recovery

Backup and Recovery Postgresql 의 백업과 복원은 크게 두가지 방법을 지원합니다. Postgresql 에서 제공하는 명령어를 이용하는 방법과 파일시스템을 통째로 백업하는 방법입니다. pg_dump Postgresql 에서는 'pg_dump'라는 유틸리티를 제공합니다. 말그대로 데이터베이스, 스키마, 테이블들을 백업할 수 있도록 해주는 프로그램입니다. 기본적인 사용방법은 다음과 같습니다. pg_dump -U username -Fc dbname > dump.sql pg_dump -U username -Fc -f dump.sql dbname -F 옵션은 덤프받을 파일의 타입을 설정하는 것으로 사용할 수 있는 타입은 다음과 같습니다. p : plain 으로 텍스트 파일로 출력을 합니다. ..

[PostgreSQL] PostgreSQL에서 Object 사이즈 관련

PostgreSQL에서 Object 사이즈 관련 PostgreSQL 는 Database, Table, Index 등 물리적인 크기를 확인할 수 있는 편리한 Function들을 제공한다. Funtion Name Description 1 pg_database_size() 데이터베이스 전체 사이즈 계산 2 pg_relation_size() 인덱스, 테이블의 사이즈 계산 3 pg_total_relation_size() 테이블 사이즈 체크시 연관된 인덱스 사이즈까지 합산 [TIP] 위 Function 의 결과값은 Byte 단위로 한눈에 파악이 어렵다. 이 때 pg_size_pretty()라는 유용한 함수를 사용하면 좀 더 파악이 유용하다. [DB의 전체 사이즈] GSM=# SELECT pg_size_pretty(..