Tag Archives: CentOS

CentOS6 Postgresql 9.3 replication[현재안됨]

서버두개 Master Slave인 경우

대략적인 설정을 하고 확인한 것은.  pg의 레플리케이션은 파일을 Master서버에서 파일을 퍼와서 Slave서버에 바로 배치입력시키는 과정을 자동화해놓은 정도의 수준인 것처럼 보인다.

Master

ip : 192.168.0.101
username : testuser
password : testpass1234
권한 : replication

아이디 비밀번호가 같을 필요는 없지만 편의상 같ㄱ ㅔ한다

Slave
ip : 192.168.0.102
username : testuser
password : testpass1234

 

Master서버 설정

데이터 경로

자동설치의 경우 /etc/init.d/postgresql-0.3 스크립트에서 수정해야된다

# Set defaults for configuration variables
PGENGINE=/usr/pgsql-9.3/bin
PGPORT=5432
#PGDATA=/var/lib/pgsql/9.3/data
PGDATA=/home/postgres/data
#PGLOG=/var/lib/pgsql/9.3/pgstartup.log
PGLOG=/home/postgres/data/pg_log/pgstartup.log
# Log file for pg_upgrade
#PGUPLOG=/var/lib/pgsql/data/$PGMAJORVERSION/pgupgrade.log
PGUPLOG=/home/postgres/data/$PGMAJORVERSION/pgupgrade.log

 

pg_hba.conf

local trust, 외부접속설정. replication설정을 주의

# "local" is for Unix domain socket connections only
###trust로하자 편하게
local   all             all                                     trust

# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
## 아무데서나 접속하게해준다는 뜻. 하나하나 설정해주는게 보안에 좋다. 내 경우는 방화벽도 있고 암호도 있으니까 그냥 ip는 풀어놨다
host    all             all             0.0.0.0/0               md5

# IPv6 local connections:
host    all             all             ::1/128                 ident

# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident
## 리플레케이션 유저를 설정. trust 또는 md5로 보통 쓴다
host    replication     testuser            192.168.0.102/0         trust

postgresql.conf

listen_addresses = '*'
port = 5432
wal_level = hot_standby
archive_mode = on
archive_command = 'cp %p /home/postgres/data/pg_archive/%f'
max_wal_senders = 3
wal_keep_segments = 8

pg인증방식

pg_hba.conf
host all all 127.0.0.1/32 trust
host all all 127.0.0.1/32 md5

local all postgres peer
local all postgres md5

Slave서버

# pg_basebackup -h 192.168.0.101 -p 5432 -U testuser -D /home/postgres/data --xlog --checkpoint=fast --progress
# chown postgres:postgres /home/postgres -R
# mkdir /home/postgres/data/pg_archive

pg_hba.conf

노예는 이것만 설정한다. 사용만 하면되니까… 마스터에서 접근은 안한다.

host    all             all             0.0.0.0/0               md5

postgresql.conf

listen_addresses = '*'
port = 5432
wal_level = hot_standby 
archive_mode = on
archive_command = 'cp %p /home/postgres/data/pg_archive/%f'
max_wal_senders = 2
wal_keep_segments = 8

recoverty.conf

다른쪽들은 복제할 때 다 됐을테니 따로 안해도 된다… 이것만 새로 생성

restore_command = 'cp /home/postgres/data/pg_archive/%f %p'
archive_cleanup_command = 'pg_archivecleanup /home/postgres/data/pg_archive %r'
recovery_target_timeline = 'latest'
standby_mode = on
primary_conninfo = 'host=192.168.0.101 port=5432 user=testuser password=testpass1234'
#trigger_file = '/tmp/pgsql.trigger'

주의할점

로그확인을 잘 하자.

 

 

참고한 페이지

http://mixellaneous.tistory.com/1007
https://www.digitalocean.com/community/articles/how-to-set-up-master-slave-replication-on-postgresql-on-an-ubuntu-12-04-vps
http://wiki.postgresql.org/wiki/Binary_Replication_Tutorial
http://histlinux.egloos.com/1227710
http://mixellaneous.tistory.com/1007
http://dba.stackexchange.com/questions/16781/postgresql-9-1-hot-backup-error-the-database-system-is-starting-up

 

CentOS – manually installed python with Postgresql lib(psycopg2)

$ easy_install psycopg2
(or python setup.py install or pip install psycopg2.... etc)

running build_ext
Error: pg_config executable not found.

Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:

    python setup.py build_ext --pg-config /path/to/pg_config build ...

or with the pg_config option in 'setup.cfg'.

 

$ find / -name pg_config

you can find your postgresql bin path....
and register it on PATH

$ export PATH=/{usr/local/pgsql}/bin:$PATH
enter your own postgresql path in the braceses{}

and install
$ pip install -U psycopg2
(or easy_install psycopg2 or python setup.py install)

파이썬 기본버전이 아닌경우 경로를 명시해서 실행해주면 된다.

ex) /opt/bin/python, /opt/bin/easy_install

 

[root@localhost libs_dependencies]# easy_install psycopg2
Searching for psycopg2
Reading http://pypi.python.org/simple/psycopg2/
Reading http://initd.org/psycopg/
Reading http://initd.org/projects/psycopg2
Best match: psycopg2 2.5.1
Downloading http://initd.org/psycopg/tarballs/PSYCOPG-2-5/psycopg2-2.5.1.tar.gz
Processing psycopg2-2.5.1.tar.gz
Running psycopg2-2.5.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-F6sQUn/psycopg2-2.5.1/egg-dist-tmp-k_7mrO
In file included from psycopg/psycopgmodule.c:27:
./psycopg/psycopg.h:30:20: error: Python.h: 그런 파일이나 디렉터리가 없습니다
./psycopg/psycopg.h:31:22: error: libpq-fe.h: 그런 파일이나 디렉터리가 없습니다
In file included from ./psycopg/psycopg.h:34,
                 from psycopg/psycopgmodule.c:27:
./psycopg/python.h:29:26: error: structmember.h: 그런 파일이나 디렉터리가 없습니다
./psycopg/python.h:31:26: error: stringobject.h: 그런 파일이나 디렉터리가 없습니다
./psycopg/python.h:35:4: error: #error "psycopg requires Python >= 2.5"
In file included from ./psycopg/psycopg.h:34,
                 from psycopg/psycopgmodule.c:27:
./psycopg/python.h:131: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
In file included from psycopg/psycopgmodule.c:27:
./psycopg/psycopg.h:59: error: expected ‘)’ before ‘*’ token
./psycopg/psycopg.h:60: error: expected ‘)’ before ‘*’ token
./psycopg/psycopg.h:63: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
./psycopg/psycopg.h:67: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token

yum install python-devel postgresql-devel

sudo apt-get install libpq-dev

c헤더가 필요하데

Linux 네트워크 – 고정아이피 설정, 무선랜 접속하기

고정아이패 설정하기

/etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

위의 텍스트는 기본상태

이것을 아래의 상태로 변경해주면 된다.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
#여기부터 바뀐부분
iface eth0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
dns-nameservers xxx.xxx.xxx.xxx

네임서버 설정이 위에 달려있다.

이걸 별도로 설정하고 싶으면….

$ sudo vi resolv.conf

nameserver {네임서버IP}

$ sudo /etc/init.d/networking restart

 

이후 ifconfig를 입력하면 주소가 바뀌어있다.

 

무선랜 잡기

http://blog.naver.com/PostView.nhn?blogId=tingko10&logNo=50084629467

1. ifconfig명령으로 디바이스를 검색한다.
2. 무선랜 디바이스는 아마 wlan0로 검색될것이다.
ifconfig wlan0 up 명령으로 디바이스를 켠다.
3. iwlist wlan0 scanning 으로 주변 ap를 검색한다.
4. iwconfig wlan0 essid “ap의 essid” mode managed 를 입력한다.
encryption이 on되어있는 경우는 버그가 있는지 안됨. 잘 모르겠음.
5. dhclient 명령으로 ip를 얻어온다.

여기까지 해도 안된다면 네트워크 관리자의 문제일 확률이 높다.
apt-get install wicd를 설치하는 방법이 있고
네트워크 관리자를 아예 날려버리는 방법이 있다.
[출처] 우분투에서 터미널로 Wifi 설정하기|작성자 짱일이

 

CentOS

http://www.jopenbusiness.com/tc/oss/entry/CentOS-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%84%A4%EC%A0%95

네트워크 설정

# ifconfig -a
입력하여 네트워크 카드가 등록되어 있는지 확인
/etc/sysconfig/network-scripts/ifcfg-eth0

보통 첫번째 네트워크 카드는 eth0이다. 네트워크 카드를 설정

고정아이피 설정시

#--- eth0 네트워크 카드에 고정 IP 설정시
DEVICE=eth0
BOOTPROTO=none
HWADDR=00:24:1D:71:21:5C
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=203.261.27.22
GATEWAY=203.261.27.1
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes

dhcp 설정시

#--- eth0 네트워크 카드에 DHCP 설정시
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:24:1D:71:21:5C
ONBOOT=yes
  • /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain   #--- 호스트명과 도메인명 지정
# HOSTNAME=localhost
# DOMAINNAME=localdomain
  • /etc/hosts #— 호스트명 지정
127.0.0.1               localhost.localdomain localhost
  • /etc/resolv.conf #— DNS를 위한 네임서버를 지정 한다.
search
nameserver 164.124.101.2  #--- 데이콤에서 사용하는 nameserver IP
nameserver 168.126.63.1   #--- 코넷에서 사용하는 nameserver IP
  • /etc/host.conf
#--- 호스트명 찾는 우선 순위 지정, hosts. /etc/hosts, bind. DNS 서버
order hosts,bind   #--- /etc/hosts 파일에서 찾고 없을 경우 DNS 서버에서 찾는다.
  • Network 설정 GUI 명령어
system-config-network
  • Network 설정이 마무리 되면 network 서비스를 재기동 한다.
service  network  restart

 

Virtualhost 브릿지 연결

http://www.lug.or.kr/m/bbs/view.php?bo_table=centos_book&wr_id=8&page=10

설정 -> 네트워크 -> 어댑터 -> 다음에 연결됨(선택메메뉴 – 연결되지않음, NAT, 브리지어댑터, 내부네트워크, 호스트전용 어댑터, 일반 드라이버)

윈도우7의 경우 윈도우 제어판 -> 네트워크 및 인터넷 -> 네트워크 연결
VirtualBox Host-Only Network 와 브릿지를 걸 네트워크를 함께 선택한 후 오른쪽 클릭!! 그러면 브릿지 연결이라는 메뉴가 보인다. 클릭하면 끝.

 

 

 

 

MacOS에서 VirtualBox에 설치된 UbuntuOS에 SSH접속하기

설명에 이미지는 필요없다.

http://muffinresearch.co.uk/archives/2010/02/08/howto-ssh-into-virtualbox-3-linux-guests/

이 블로그를 참고했고 블로그의 내용보다는 댓글이 큰 도움이 됐다.

 

일단 버추어박스에 우분투를 설치한다. 이 부분은 설명을 하지 않습니다. 당연한 방법으로 진행되고 오류는 64비트가 잘 설치되지 않는다던가 데스크탑 설치할 때 에러가 잘 난다는 부분이 있지만 어떻게 해결이 되긴합니다.

 

먼저, VirtualBox셋팅

상단 VirtualBox메뉴를 선택 > 환경설정 > 네트워크 > 호스트전용네트워크 추가하기

vboxnet0 이라는 이름이 추가가 됩니다. 한번 더 누르면 vboxnet1이 추가되고…

이걸 먼저 안해주면 안됩니다. 이걸 안해주면 호스트 전용 네트워크 추가하기 눌렀을 때 !장치가 없습니다. 하면서 경고 메세지가 뜨게됩니다. 저 블로그에는 이  내용이 빠져서 사람들이 삽질을 하도록 유도하고있네요. 친절한 댓글 덕분에 살았습니다.

우분투 선택후 오른쪽클릭 > 설정 > 네트워크 > 어댑터2 > 네트워크어댑터 사용하기 체크 > 이름은 위에서 만든 이름으로 자동 입력됩니다. > 대충설정하고 확인

대충해서 잘 안되면 — pcnetfastIII , 모두허용으로 설정합니다.

 

이제 버추어박스에서 우분투를 실행시킵니다.

sudo nano /etc/network/interfaces

이걸 추가해주고

auto eth1
iface eth1 inet static
address 192.168.56.10
netmask 255.255.255.0 

이걸 실행시켜준다.

sudo ifup eth1

 

이제 접속해봅니다. 보통 이 단계에서 됩니다.

 

CentOS의 경우

호스트전용 네트워크 추가 까지는 동일
추가하고 리부팅한 다음에
# ifconfig -a 명령으로 보면 eth1이 잡혀있다.

[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts

ifcfg-eth0 ifcfg-eth1 ifcfg-lo

ifcfg-eth0은 인터넷이고 ifcfg-eth1은 파일이 존재하지 않을것이다.
0을 카피해서 1을 생성한다.

DEVICE=”eth1″
HWADDR=”08:00:27:30:3C:35″
NM_CONTROLLED=”yes”
ONBOOT=”yes”
BOOTPROTO=”static”
NETMASK=”255.255.255.0″
IPADDR=”192.168.56.10″

ifcfg로 확인된 HWADDR만 기록해주면 된다. 나머지는 이거 그대로 붙여넣고 사용하면 된다.

참고사이트
http://www.linuxquestions.org/questions/linux-wireless-networking-41/networking-in-centos-through-virtualbox-670124/