taiga=# \du

                             List of roles

 Role name |                   Attributes                   | Member of

-----------+------------------------------------------------+-----------

 postgres  | Superuser, Create role, Create DB, Replication | {}

 taiga     | Superuser, Create role, Create DB              | {}

'Database > PostgreSQL' 카테고리의 다른 글

psql: FATAL: Peer authentication failed for user  (0) 2016.06.27
create database in postgresql  (0) 2016.06.27
postgresql user list  (0) 2016.06.27
PostgreSQL - Ubuntu Basic 설치 가정  (0) 2014.09.02
PostgreSQL Table 전체 조회  (0) 2013.03.25
PostgreSQL  (0) 2013.01.29

Ubuntu에서 PostgreSQL 기본 설치 및 동작


Ubuntu Server를 설치할 때 여러 패키지를 설치할지 유무를 물어본다

보기에 PostgreSQL도 있으니 Check를 하면 관련 라이브러리와 함께 PostgreSQL이 설치된다.

qa@qa-ubuntu:~$ sudo -i -u postgres

위의 명령어를 실행하면 postgres 계정으로 접속이 된다.

$ postgres@qa-ubuntu:~$ psql

psql (9.3.4)

Type "help" for help.

postgres=#

위의 명령어를 실행하면 postgresql DB로 접속이 된다. DB 밖으로 빠져나가고 싶을 때에는 다음의 명령어를 실행하면 된다.

 postgres=# \q


PostgreSQL User 생성

 - yogiyo라는 User를 생성한다.

postgres@qa-ubuntu:~$ createuser yogiyo --interactive

Shall the new role be a superuser? (y/n) y


PostgreSQL Database 생성


- yogiyodb라는 DB를 생성한다.

 postgres@qa-ubuntu:~$ createdb yogiyodb



Trouble Shooting

postgres=# \q

could not save history to file "/var/lib/postgresql/.psql_history": No such file or directory

- 아직까진 특별한 Issue가 없다고 그냥 넘어가라고 함


참고

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-14-04


'Database > PostgreSQL' 카테고리의 다른 글

psql: FATAL: Peer authentication failed for user  (0) 2016.06.27
create database in postgresql  (0) 2016.06.27
postgresql user list  (0) 2016.06.27
PostgreSQL - Ubuntu Basic 설치 가정  (0) 2014.09.02
PostgreSQL Table 전체 조회  (0) 2013.03.25
PostgreSQL  (0) 2013.01.29

select * from pg_tables;

'Database > PostgreSQL' 카테고리의 다른 글

psql: FATAL: Peer authentication failed for user  (0) 2016.06.27
create database in postgresql  (0) 2016.06.27
postgresql user list  (0) 2016.06.27
PostgreSQL - Ubuntu Basic 설치 가정  (0) 2014.09.02
PostgreSQL Table 전체 조회  (0) 2013.03.25
PostgreSQL  (0) 2013.01.29

ERROR:
ORA-00604: error occurred at recursive SQL level 2
ORA-04031: unable to allocate 4048 bytes of shared memory ("shared
pool","TRIGGER$SYS","sga heap","state objects")
ORA-00604: error occurred at recursive SQL level 1
ORA-04031: unable to allocate 4048 bytes of shared memory ("shared
pool","unknown object","sga heap","state objects")

DB를 관리하면서 다음과 같은 에러를 직면할때가 있느데 이럴 경우에는 신속하게
대처할 수 있는 방법
  1. 오래된 세션을 끊어서 shared pool 에 잡고 있는 메모리를 해제 시켜준다.
  2. alter system flush shared_pool; 명령어를 통해 메모리 조각모임을 해준다.
장기적인 대책은
  단편화 시키는 SQL를 찾아내고 바인딩 변수화 시킨다.

ORA-04031 의 경우 shared pool 내에 메모리 조각화에 따라서 연속된 parsing 공간을 제공하지 못하기 때문에 발생하는 에러입니다.
다시 말해서 parsing 에러가 발생하는 것입니다.

이를 해소 해주기 위한 방법으로
개체가 큰 자주 사용되는 프로시져등을 메모리에 pined 해주면 되며,
shared pool 사이즈를 늘려 주는것이 가장 좋으며,
상황이 여의치 않는 경우 단편화된 shared pool 의 조각화을 다시 flush 해주는 방법
등이 있습니다.


SQL> alter system flush shared_pool;

shared pool 의 hit 율을 잘 분석해 보시고 오라클의 권장사항에 따라서 튜닝 가이드 라인을 정하는게 중요합니다.

너무 크게 줘서 free size 가 너무 많이 남는 경우 즉 hit 율은 좋은데, free size 가 너무 큰 경우는 메모리 낭비를 하게 되며, 각각의 o/s 에 따라서  paging 이나 swap 이 발생할 가능성이 있으니, 튜닝후 적적할 모니터를 통해서 사이즈를 잡아 가는 것이 좋습니다.

SQL> select name, bytes/1024/1024 "Size in MB" from v$sgastat where name='free memory';

NAME                       Size in MB
-------------------------- ----------
free memory                451.496498
free memory                  .5859375
free memory                    .03125

즉 오라클의 동적 뷰들의 대부분은 current 한 내용이 아닌 축적용으로 평균치를 나타 내기 때문에 의미가 없습니다.

 

'Database > Oracle' 카테고리의 다른 글

[Error] Kernel driver not installed (rc=-1908)  (1) 2018.11.23
ORA-00604  (0) 2013.03.20
Oracle Server Start & Stop  (0) 2013.02.19
Oracle Table 복구 및 영구 삭제  (0) 2013.02.19

Reserved Words in MySQL 5.5.27

ACCESSIBLE ADD ALL
ALTER ANALYZE AND
AS ASC ASENSITIVE
BEFORE BETWEEN BIGINT
BINARY BLOB BOTH
BY CALL CASCADE
CASE CHANGE CHAR
CHARACTER CHECK COLLATE
COLUMN CONDITION CONSTRAINT
CONTITUTE CONVERT CREATE
CROSS CURRENT_DATE CURRENT_TIME
CURRENT_TIMESTAMP CURRENT_USER CURSOR
DATABASE DATABASES DAY_HOUR
DAY_MICROSECOND DAY_MINUTE DAY_SECOND
DEC DECIMAL DECLARE
DISTINCT DISTINCROW DIV
DOUBLE DROP DUAL
EACH ELSE ELSEIF
ENCLOSED ESCAPED EXISTS
EXIT EXPLAIN FALSE
FETCH FLOAT FLOAT4
FLOAT8 FOR FORCE
FOREIGN FROM FULLTEXT
GRANT GROUP HAVING
HIGH_PRIORITY HOUR_MICROSECOND HOUR_MINUTE
HOUR_SECOND IF IGNORE
IN INDEX INFILE
INNER INOUT INSENTIVE
INSERT INT INT1
INT2 INT3 INT4
INT8 INTERGER INTERVAL
INTO IS ITERATE
JOIN KEY KEYS
KILL LEADING LEAVE
LEFT LIKE LIMIT
LINEAR LINES LOAD
LOCALTIME LOCALTIMESTAMP LOCK
LONG LONGBLOB LONGTEXT
LOOP LOW_PRIORITY MASTER_SSL_VARIFY_SERVER_CERT
MATCH MAXVALUE MEDIUMBLOB
MEDIUMINT MEDIUMTEXT MIDDLEINT
MINUTE_MISROSECOND MINUTE_SECOND MOD
MIDIFIES NATUAL NOT
NO_WRI?tE_TO_BINLOG NULL NUMERIC
ON OPTIMIZE OPTION
OPTIONALLY OR ORDER
OUT OUTER OUTFILE
PRECISION PRIMARY PROCEDURE
PURGE RANGE READ
READS READ_WRITE REAL
REDERENCES REGEXP RELEASE
RENAME REFEAT REPLACE
REQUIRE RESIGNAL RESTRICT
RETURN REVOKE RIGHT
RLIKE SCHEMA SCHEMAS
SECIND_MISROSECOND SELECT SENSITIVE
SEPARATIR SET SHOW
SIGNAL SMALLINT SPATIAL
SPECIFIC SQL SQLEXCEPTION
SQLSTATE SQLWARNING SQL_BIG_RESULT
SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT SSL
STARTING STRAIGHT_JOIN TABLE
TERMINATED THEN TINYBLOB
TINYINT TINYTEXT TO
TRAILING TRIGGER TRUE
UNDO UNION UNIQUE
UNLOCK UNSIGNED UPDATE
USAGE USE USING
UTC_DATE UTC_TIME UTC_TIMESTAMP
VALUES VARBINARY VARCHAR
VARCHARACTER VARYING WHEN
WHERE WHILE WITH
WRITE XOR YEAR_MONTH
ZEROFILL

New Reserved Words in MySQL 5.5

GENERAL IGNORE_SERVER_IDS MASTER_HEARTBEAT_PERIOD
MAXVALUE RESIGNAL SIGNAL
SLOW

 

DBA로 접속

/as sysdba

 

Oracle Server Stop

> shutdown immediate

 

Oracle Server Start

> startup

'Database > Oracle' 카테고리의 다른 글

[Error] Kernel driver not installed (rc=-1908)  (1) 2018.11.23
ORA-00604  (0) 2013.03.20
Oracle Server Start & Stop  (0) 2013.02.19
Oracle Table 복구 및 영구 삭제  (0) 2013.02.19

실수로 하루 걸쳐서 생성한 Table Data에 Drop 명령어를 날려버림

망연자실하면서 하루종일 또 Data를 넣어야 하나 하다시 혹시나 해서 검색해보니 복구하는 방법이 있었음

삭제한 Table 조회

show recuclebin;

삭제한 Table 복구

flashback table TABLENAME to before drop;

휴지통 영구 삭제

purge recyclebin;

 

다행이다 ㅠㅠ 

'Database > Oracle' 카테고리의 다른 글

[Error] Kernel driver not installed (rc=-1908)  (1) 2018.11.23
ORA-00604  (0) 2013.03.20
Oracle Server Start & Stop  (0) 2013.02.19
Oracle Table 복구 및 영구 삭제  (0) 2013.02.19

Installation

Linux Library 확인

아래 lib가 없으면 yum install로 모두 설치한다. readline
readline-devel
ncurses
ncurses-devel
zlib
zlib-devel
make
gcc

최신 버전 Download

http://www.postgres.org

압축 풀기

$ tar zxvf postgresql-9.2.2.tar.gz

설치

$ cd postgresql-9.2.2
$ ls
OPYRIGHT GNUmakefile.in HISTORY INSTALL Makefile README aclocal.m4 config configure configure.in contrib doc src
$ ./configure --prefix=/mnt/postsql
$ make && make install
...
...
PostgreSQL installation complete.

사용자 추가

$ useradd -d /home/ndap ndap
$ mkdir /mnt/postsql/data
$ chown -R ndap:ndap /mnt/postsql

환경설정

$ su - ndap
$ vi ~/.bash_profile
PGDATA=/mnt/postsql/data
PGLIB=/mnt/postsql/lib
MANPATH=$MANPATH:/mnt/postsql/man
PATH=$PATH:/mnt/postsql/bin
export PGDATA PGLIB MANPATH PATH

실행

$ initdb -D /mnt/postsql/data
Success. You can now start the database server using:
postgres -D /mnt/postsql/data
or
$ pg_ctl -D /mnt/postsql/data/ -l logfile start
server starting

만약 실행 중 "pg_ctl: error while loading shared libraries: libpq.so.5: cannot open shared object file: No such file or directory" Error가 발생한다면 다음과 같이 한다

$ su - root
$ ldconfig /mnt/postsql/lib/

동작 확인

# create database & table
$ createdb ndap
$ psql ndap
psql (9.2.2)
Type "help" for help.
ndap=# create table ndap(id varchar(20));
CREATE TABLE
ndap=# insert into ndap values ('hellodb');
INSERT 0 1
ndap=# select * from ndap;
id
---------
hellodb
(1 row)
ndap=# \q
# drop database
$ dropdb ndap

외부 접근 설정

아래의 Code를 추가및 수정을 한다.

  • $ vi /mnt/postsql/data/pg_hba.conf
    -----------------------------------------------
    host all all 0.0.0.0/0 trust # 추가

$ vi /mnt/postsql/data/postgresql.conf
-----------------------------------------------
listen_addresses = '*' # 수정
port = 5432 # 수정
max_connections = 100 # 수정

Code를 수정한 뒤, PostgreSQL을 Restart한다.

$ pg_ctl -D /mnt/postsql/data/ -l logfile restart

 

 

 

'Database > PostgreSQL' 카테고리의 다른 글

psql: FATAL: Peer authentication failed for user  (0) 2016.06.27
create database in postgresql  (0) 2016.06.27
postgresql user list  (0) 2016.06.27
PostgreSQL - Ubuntu Basic 설치 가정  (0) 2014.09.02
PostgreSQL Table 전체 조회  (0) 2013.03.25
PostgreSQL  (0) 2013.01.29

HBase는 빅 테이블과 동일한 기능과 확장성을 갖는 분산 데이터 관리를 목적으로 개발된 Apache 파운데이션의 Open Source Project이다. Hadoop Project의 Sub Project였지만 최근 최상위 Project로 승인됐다.

HBase는 마스터 서버(HMaster), 리젼 서버(HRegionServer), 클라이언트 라이브러리로 구성돼 있다. 마스터 서버는 테이블 생성, 삭제 등의 작업을 위해 사용되며, 이중화 구성이 가능하다. 리젼 서버는 실제 데이터 서비스를 제공하는 서버다. HBase에서는 빅테이블과 클라우테이터에서 테블릿에 해당하는 테이블이 분리된 단위를 리젼(Region)이라고 한다. 하나의 리젼 서버는 n개의 리젼을 관리한다.

리젼은 빅테이블과 동일하게 메모리 기반과 디스크 기반의 저장소를 가진다. 메모리에 있는 데이터는 서버 중지 시 유실을 방지하기 위해 HLog 객체가 관리하는데, 실제 파일은 Hadoop File System에 저장된다. Hadoop File system에 저장된 파이은 불변(immutable) 파일로, 한번 생성된 후, 저장된 파일은 추가하거나 변경할 수 없다. File System의 이런 제약으로 인해 HBase의 커밋 로그는 변경 연산을 수행한 즉시 File System에 저장되는 것이 아니라 주기적으로 File System에 저장한다. 따라서 커밋 로그가 저장되기 이전에 Node에 장애가 발생할 경우 데이터 유실이 발생할 수 있다.

HBase 환경설정

 

$ cd HBASE_HOME

vi conf/hbase-site.xml

export JAVA_HOME=/usr/java/default

export HBASE_MANAGES_ZK=false 

설정한 항목 중 HBASE_MANAGES_ZK 항목은 Zookeeper 서버를 별도로 실행시킨 서버를 사용할 것인지, HBase 자체적으로 Zookeeper를 실행시킬 것인지 여부를 설정하는 항목이다. true로 설정하면 HBase에서 Zookeeper를 실행한다. 이 경우 Zookeeper 환경설정으로 zoo.cfg의 환경설정 정보를 $HBASE_HOME/conf/hbase-site.xml에 입력한다. true로 설정할 경우에는 Zookeeper 서버를 한 대만 실행하기 때문에 Zookeeper에 장애가 발생할 때 대응을 할 수 없다.

HBase는 다음과 같은 세가지 실행 모드를 제공한다

  • 단독 모드(Standalone mode) : 데이터 파일 저장소로 Hadoop의 Local File System을 이용한다. 즉 Hadoop File System을 실행할 필요가 없으며 지금까지 설정된 내용에서 HBASE_MANAGER_ZK=true로 설정해 실행하는 모드다. Zookeeper, 마스터서버, 리젼 서버가 하나의 서버에서 실행된다.
  • 가상 분산 모드(Pseudo Distributed mode) : 단독 모드와 유사하지만 데이터 파일을 Hadoop File System에 저장한다.
  • 완번 분산 모드(Fully Distributed mode) : 모든 서버가 분산돼 실행되고, Zookeeper도 별도의 Cluster 구성을 사용한다.

'Database > HBase' 카테고리의 다른 글

HBase  (0) 2013.01.29

캐릭터 셋 utf-8 에서 euckr 로 바꾸는 예제

1) 확인
mysql> show variables like 'c%';

+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | utf8                                   |  <- 변경
| character_set_connection | utf8                                   |  <- 변경
| character_set_database   | utf8                                   |  <- 변경
| character_set_filesystem | binary                                 |
| character_set_results    | utf8                                   |  <- 변경
| character_set_server     | utf8                                   |  <- 변경
| character_set_system     | utf8                                   |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
| collation_connection     | utf8_general_ci                        |  <- 변경
| collation_database       | utf8_general_ci                        |  <- 변경
| collation_server         | utf8_general_ci                        |  <- 변경
| completion_type          | 0                                      |
| concurrent_insert        | 1                                      |
| connect_timeout          | 5                                      |
+--------------------------+----------------------------------------+


2) 변경 (일시적인 방법. MySQL을 재시작 하면 원래 값으로 돌아간다.)
msyql> set character_set_client = euckr;
msyql> set character_set_connection = euckr;
msyql> set character_set_database = euckr;
msyql> set character_set_results = euckr;
msyql> set character_set_server = euckr;
mysql> set collation_connection = euckr_korean_ci;
mysql> set collation_database = euckr_korean_ci;
mysql> set collation_server = euckr_korean_ci;

3) 확인
mysql> show variables like 'c%';
+--------------------------+----------------------------------------+
| Variable_name            | Value                                  |
+--------------------------+----------------------------------------+
| character_set_client     | euckr                                  |
| character_set_connection | euckr                                  |
| character_set_database   | euckr                                  |
| character_set_filesystem | binary                                 |
| character_set_results    | euckr                                  |
| character_set_server     | euckr                                  |
| character_set_system     | utf8                                   |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
| collation_connection     | euckr_korean_ci                        |
| collation_database       | euckr_korean_ci                        |
| collation_server         | euckr_korean_ci                        |
| completion_type          | 0                                      |
| concurrent_insert        | 1                                      |
| connect_timeout          | 5                                      |
+--------------------------+----------------------------------------+


4) 변경2 (온전한 변경 방법)

/etc/my.cnf 파일을 변경 해줍니다.

[client]
default-character-set=euckr

[mysqld]
default-character-set=euckr
init_connect=SET collation_connection=euckr_korean_ci
init_connect=SET NAMES euckr
character-set-server=euckr
collation-server=euckr_korean_ci

[mysqldump]
default-character-set=euckr

[mysql]
default-character-set=euckr

추가 및 변경 후, MySQL 을 재시작 해주어야 적용된다.


5) 아파치 캐릭터셋 확인

/usr/local/apache/conf/httpd.conf 파일을 변경(내용 추가)해줍니다.

AddCharset EUC-KR       .euc-kr

※ 참고1 : UTF-8사용 : AddCharset UTF-8        .utf8
    참고2 : Apache 버젼 2.2.6 이상의 경우, /usr/local/apache/conf/extra/httpd-languages.conf 를 수정.


+ Recent posts