cluster 복사가 맞는 말일려나? ^^;;; 암튼 제목이 조금 어정쩡 하지만 딱히 떠오르는 말이 없어서 그냥 저렇게 한다. ^^:; /usr/local/pgsql 폴더에 PostgreSQL을 설치 하였다. 그리고 /usr/local/pgsql/data에 데이터 베이스를 생성 하였다. 그후 잘 가지고 놀고 있었으니 문제가 발생하였다 ㅠㅠ 디스크 공간 부족 ;;; (아무생각 없이 파티션을 잡고 아무 생각없이 거기에 데이터베이스를 ;;;) 그리하여 data 폴더를 이동하기로 결정 했다. 파티션 사이즈를 무식하게 많이 잡아놓은 /home 아래로 옮기기로 했다. 1. /home/pgsql/data 폴더를 생성한다. 2. /usr/local/pgsql/data의 모든 파일 폴더를 위 폴더로 복사 한다. 3. c..
시스템을 운영하다보면 시스템의 상태를 확인하고 싶을때가 많다. 시스템의 구석구석을 아는것도 중요하지만 시스템을 모니터링을 통해 시스템의 상태를 정확하게 파악하고 있느것도 매운 중요한 일이다. PostgreSQL도 마찬가지다. 현재 난 PostgreSQL에 대해서 잘 모른다. 하지만 PostgreSQL의 상태를 알고 싶은 마음은 굴뚝같다. 그래서 여기저기 알아보고 내용을 정리해봤다. ■ PostgreSQL 의 통계정보. PosgtgreSQL의 통계 정보는 시스템 카탈로그의 pg_stat 로 시작하는 테이블에 저장된다. 현재 데이터베이스 리스트와 OID, 데이터베이스별 사용용량등을 쿼리문을 통해서 확인할수 있다. 이뿐아니라 통계관련 함수도 많이 지원한다. postgres=# SELECT * FROM pg_s..
PostgreSQL은 게시판과 같이 Paging Query 최적화(?) 되어있는 Limit 키워드를 지원 한다. 아래 예제를 보면서 사용법을 알아 보겠다. -- -- 아래 SQL은 처음 10개의 Row를 반환 한다. SELECT * FROM TABLE_NAME LIMIT 10; -- 위 SQL과 아래의 SQL은 같은 결과를 반환 한다. SELECT * FROM TABLE_NAME LIMIT 10 OFFSET 0; -- 아래 SQL은 11번째 부터 10개의 Row를 반환 한다. SELECT * FROM TABLE_NAME LIMIT 10 OFFSET 10; --
tb1, tb2 라는 2개의 테이블이 있다고 가정 하자. 데이터는 아래와 같이 들어 있다. tb1 테이블의 데이터 +-----------+-----------+ | col1 | col2 | +-----------+-----------+ | 1 | str1 | | 2 | str2 | | 3 | str3 | | 4 | str4 | | 5 | str5 | +-----------+-----------+ tb2 테이블의 데이터 +-----------+-----------+ | col21 | col22 | +-----------+-----------+ | 1 | str1-1 | | 3 | str3-1 | | 5 | str5-1 | +-----------+-----------+ tb1의 col1과 tb2의 col21..
Windows 에서 PostgreSQL을 수동 설치를 해보자.!!! (postgresql의 환경 설정 파일은 전혀 수정 하지 않아도 로컬에서 잘 돌아 감으로 일단 패쑤!!! ^^:;;) 1. Binaries 파일을 다운 받고 압축을 푼다. (본인은 "C:\Program Files\pgsql" 에 압축을 풀었다.) ( * C:\Program Files\pgsql\bin 을 path에 등록 한다. 필수는 아니다.) 2. Postgres 계정을 만든다. (1234 비밀번호는 적당히 알아서 넣으시면 됩니다.) (복사용 : net user postgres 1234 /add) 3. postgres 사용자로 cmd 창을 실행 한다. (위 그림에서 입력한 1234를 암호에 입력한다.) (복사용 : runas /user..
int 필드 값을 sum했을때 아래와 같은 오류가 발생 했을경우 다음과 같이 처리하면 된다. expression을(를) 데이터 형식 int(으)로 변환하는 중 산술 오버플로 오류가 발생했습니다. 위 오류는 int형이 최대로 수용할 수 있는 값의 허용 범위를 넘어서 발생한 오류이다. (int는 약 21억) 위 오류를 해결 하기 위해서는 int값을 먼저 bigint값으로 변환후 sum을 하면 된다. -- SUM 하고자 하는 값을 먼저 변환 한다. SELECT SUM(CONVERT(BIGINT, 필드명)) AS 별칭 FROM 테이블명 참~ 쉽조잉~
dbcc inputbuffer는 클라이언트가 MSSQL에 마지막으로 전송한 query를 표시 한다. 열 이름 데이터 형식 설명 EventType nvarchar(30) 이벤트 유형입니다. RPC Event 또는 Language Event를 사용할 수 있습니다. 마지막 이벤트가 감지되지 않으면 No Event가 출력됩니다. Parameters int 0 = 텍스트 1- n = 매개 변수 EventInfo nvarchar(4000) RPC의 EventType의 경우 EventInfo에 프로시저 이름만 포함됩니다. EventType이 Language인 경우 이벤트의 첫 4000자만 표시됩니다. 다음 예제는 긴 시간 트랜잭션이 실행 되는 동안 두 번째 연결에서 dbcc inputbuffer를 실행한다.CREAT..
sp_lock는 lock에 대한 정보를 반환 한다. 아래의 표를 보면 exec sp_lock를 실행 했을 경우 결과 필드에 대한 설명이다. 열 이름 데이터 형식 설명 spid smallint 잠금을 요청하는 프로세스의 데이터베이스 엔진 세션 ID입니다. dbid smallint 잠금이 설정된 데이터베이스의 ID입니다. DB_NAME() 함수를 사용하여 데이터베이스를 식별할 수 있습니다. ObjId int 잠금이 설정된 개체의 ID입니다. 관련 데이터베이스에서 OBJECT_NAME() 함수를 사용하여 개체를 식별할 수 있습니다. 값 99는 특별한 경우로서 데이터베이스에서 페이지 할당을 기록하는 데 사용되는 시스템 페이지 중 하나에 대한 잠금을 나타냅니다. IndId smallint 잠금이 설정된 인덱스의 ..
테이블 정보 SELECT table_catalog, table_name, table_schema, table_type, ISNULL(value, '') FROM INFORMATION_SCHEMA.TABLES t1 LEFT JOIN (SELECT * FROM ::fn_listextendedproperty (NULL, 'user', 스키마명, 'table', 테이블명, DEFAULT, DEFAULT)) t2 ON t1.table_name = t2.objname Collate KOREAN_WANSUNG_CI_AS WHERE table_catalog = 데이터베이스명 AND table_schema = 스키마명 AND table_name = 테이블명 테이블내 컬럼 정보 쿼리1) SELECT t2.name AS '..
날짜 함수 항목 설명 DATE 년, 월, 일을 지정하면 날짜/시간 값을 반환합니다. DATEADD 원래 날짜/시간에 지정한 시간 간격 단위 수를 더한 날짜/시간을 반환합니다. DATEDIFF 시작 날짜/시간과 끝 날짜/시간 간 차이를 반환합니다. DATETIME 지정된 년, 월, 일, 시, 분, 초의 날짜/시간을 반환합니다. DATEONLY 날짜/시간 값에서 년, 월, 일을 반환합니다. DAY 날짜/시간에서 일을 추출합니다. DAYOFWEEK 요일을 반환합니다. DAYOFYEAR 날짜/시간의 연간 일을 반환합니다. HOUR 날짜/시간에서 시간을 추출합니다. MINUTE 날짜/시간에서 분을 추출합니다. MONTH 날짜/시간에서 월을 반환합니다. NOW 현재 날짜 및 시간을 반환합니다. QUARTER 날짜/..
지역변수 (Local variables) 전역변수(Global variables) 지역 변수 선언된 batch내에서 사용될 수 있는 변수 - DECLARE 문으로 선언되고 SELECT 문으로 초기값이 배정된다. - EXECUTE, RAISERROR, PRINT 등의 매개변수로 사용될 수 있다. 변수의 선언 DECLARE @variable_name[,@variable_name datatype..] 값의 배정 SELECT @variable_name = initial_value SELECT @variable_name = expression --- 변수에 하나 이상의 결과 값을 할당하는 경우에는 실제로 가장 마지막 값이 할당된다. DECLARE @next Char(30) SELECT @next = ' ' WHI..
EXEC sp_addlinkedserver @server='링크명', @srvproduct='', @provider='SQLOLEDB', @datasrc='IP정보' EXEC sp_addlinkedsrvlogin @rmtsrvname = '링크명', @useself = 'False', @locallogin = Null, @rmtuser = '아이디', @rmtpassword = '비밀번호' -- Linked Server 생성 exec sp_addlinkedserver @server='링크명', -- 연결할 서버 이름 생성(아무거나) @srvproduct = '',-- 연결된서버의 제품이름(공백처리) @provider = 'SQLOLEDB',-- SQL 서버면 그대로 @datasrc = 'IP정보', --..
- Total
- Today
- Yesterday