PostgreSQL 데이터베이스를 dump 명령등을 사용해서 파일로 저장하면 이전에 insert 해놓은 자료들을 찾아보기가 어렵습니다. 이런 경우는 DB의 이름을 변경해서 그대로 복사해 놓으면 자료를 찾아보기도 쉽고 작업하기도 편리 합니다.  

postgresqldatabase를 복사하기 위한 작업을 해보겠습니다.

 

먼저 알고 있는 명령어를 사용해서 작업을 시작해 봅니다.

 

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 TestDB    | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 |
 postgres  | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 |
 template0 | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(4 rows)

 

리스트에 나오는 TestDB를 다른 이름으로 복사하는 명령어는 아래와 같습니다.

 

CREATE DATABASE [new database] WITH TEMPLATE [old database] OWNER [owner];

 

TestDBTestDB2022라는 DB로 복사하려면

 

CREATE DATABASE TestDB2022 WITH TEMPLATE TestDB OWNER postgres;

 

이렇게 명령어를 입력하면 되겠네요.

 

 

postgres=# CREATE DATABASE TestDB2022 WITH TEMPLATE TestDB OWNER postgres;
오류:  "TestDB" 템플릿 데이터베이스 없음
postgres=#

 

그렇지만 대부분 오류가 발생하게 됩니다.

이유는 오류 내용과 같이 템플릿 데이터베이스가 아니기 때문 입니다.

 

postgres=# select datname, datistemplate from pg_database;
  datname  | datistemplate
-----------+---------------
 postgres  | f
 TestDB    | f
 template1 | t
 template0 | t
(4 rows)

 

TestDBdatistemplate 값이 f(false)입니다.

true로 변경을 합니다.

 

postgres=# ALTER DATABASE "TestDB" WITH IS_TEMPLATE = true;
ALTER DATABASE
postgres=#

 

이제 다시 TestDB를 복사해 봅니다.

 

postgres=# CREATE DATABASE "TestDB2022" WITH TEMPLATE "TestDB";
CREATE DATABASE
postgres=# \l
                                  List of databases
    Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
------------+----------+----------+-------------+-------------+-----------------------
 TestDB     | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 |
 TestDB2022 | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 |
 postgres   | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 |
 template0  | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres          +
            |          |          |             |             | postgres=CTc/postgres
 template1  | postgres | UTF8     | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres          +
            |          |          |             |             | postgres=CTc/postgres
(5 rows)

 

 

복사가 잘 진행 되었습니다.

명령문에 CREATE DATABASE "TestDB2022" WITH TEMPLATE "TestDB";

쌍따옴표를 붙인 이유는 대소문자에 따라 Database 이름을 찾지 못하는 경우가 있습니다.

 

ALTER DATABASE "TestDB" WITH IS_TEMPLATE = false;

 

복사가 완료되면 기존 데이터베이스는 다시 templatefalse로 변경해 놓으면 작업은 완료 됩니다.

 

- copy coding -

집에서 Server를 구축하고 외부에서 Server에 접속하는 방법은 여러가지가 있는데 개인적인 생각으로는 제일 간단한 방법이 포트 포워딩(port forwarding) 다른말로 포트 매핑(port mapping)이라고 생각 합니다.  오늘은 가상이 아닌 실제 스마트폰으로 Server 접속 테스트를 해야 하는 상황이 발생 했는데 당연히 localhost(127.0.0.1)로는 핸드폰에서 인터넷에 접속을 할 수 없는 상황이 되어 테스트 환경을 만들게 되었습니다.

일단 컴퓨터에서 웹서버를 만들어야 해서 Spring Boot로 API 서버를 만들었습니다. Web Server에서 사용하는 Port는 프로퍼티에

 

server.port=9999

이렇게 설정 하고 먼저 local에서 접속이 되는지 확인을 해 봅니다.

 

잘 되는군요.  그렇지만 스마트폰에서 안드로이드로 Retsrofit을 이용하여 접속을 시도하면 localhost(127.0.0.1)은 공인 IP가 아니기 때문에 접속을 할 수가 없습니다.  이때 필요한 것이 포트 포워딩을 사용하면 localhost도 공인IP처럼 외부에서 사용할 수 있습니다.

포트 포워딩은 공인IP에 Port를 결합 하여(공인IP + Port) 설정한 포트로 요청이 들어오면 매핑테이블에 있는 내부의 컴퓨터에 포워딩 해주는 방식으로 서비스를 진행 합니다.
그럼 공용IP가 있어야 하는데 집에 인터넷을 사용한다면 공용IP는 최소 하나가 존재하는 것으로 생각하면 됩니다.  공유기의 설정 화면에 들어가면 공유기가 인터넷에 연결하기 위한 외부IP를 가지고 있는데 이것이 바로 공인IP 입니다.

 

 

공유기는 이 외부IP를 이용하여 내부에서 사용할 수 있는 사설IP를 외부와 중개하는 기능을 하고 있습니다. 집에 있는 컴퓨터나 핸드폰의 IP를 확인하면 192.168.0.2 부터 192.168.0.254 까지 중복이 안되는 번호를 하나씩 가지고 있는데 이것이 사설IP 입니다.  공유기는 외부 IP와 내부 IP를 매핑하여 인터넷에 연결해 주는데 이러한 기능을 이용하여 외부IP에 Port를 결합하여 내부IP와 1:1 매핑을 하게 되면 설정한 내부IP는 계속해서 외부와 연결 할 수 있는 통로를 얻게 되는 방법 입니다.


일단 설정을 해보도록 합니다.  집에 ipTime을 사용해서 이걸 기준으로 설명 합니다.  관리자 페이지에 로그인을 하고(초기 아이디와 비번은 admin/admin) 

 

고급설정 > NAT/라우터 관리 > 포트포워드 설정
메뉴를 선택 합니다.

 

 

위에 사진은 생성을 한 모습이고 하단에 입력 해야 하는 항목들 입니다.

 

 

 

 

규칙이름 : 그냥 구분을 위한 텍스트입니다. 아무거나 적어도 됩니다.
외부 포트 : 공인IP 뒤에 붙일 Port 번호 입니다. 임의의 번호를 적습니다.
내부 포트 : 내부에서 구축한 서버에서 서비스할 Port 입니다. 이건 정확히 기입합니다.
내부 IP주소 : 서버를 구축한 컴퓨터의 IP 주소.(이건 뒤쪽에서 설명)

 

입력 값들 중 내부 IP와 포트가 중요합니다.  내부 포트는 Web Server의 서비스 port 를 9999로 했으니 9999를 입력 하면 되고 외부 포트는 임의의 번호를 입력하면 됩니다.  여기서는 나중에 혼란을 주기 싫어 동일하게 9999를 입력하였습니다.
내용들을 채우고 [적용] 버튼을 클릭하면 됩니다.  설정은 이게 끝입니다.


한번 외부에서 브라우저를 통해 접속해 볼까요?  외부 IP에 위에서 설정한 Port 9999를 사용합니다.  localhost:9999/getTest에서 localhost를 외부 IP로 변경해주면 됩니다.

 

 

 

접속이 잘 되는 군요.
이번엔 원래 목적인 스마트폰에서도 똑같이 외부 IP를 사용해 http://210.106.XXX.XXX:9999/getTest 주소로 접속해 봅니다.

 

 

 

이것도 잘 되는 군요. 
설정 방법 중 한가지 아직 설명을 안한게 있습니다.  ipTime 입력 창에서 Web Server로 사용하는 컴퓨터의 [내부 IP 주소] 인 로컬IP를 알아야 합니다.

명령 프롬프트에서


C:\>ipconfig/all


하면 아래와 비슷한(유선을 사용한다면 Ethernet adapter...로 시작) 내용을 찾을 수 있습니다.  저는 Wi-Fi를 사용하고 있어서 무선 LAN 어댑터 Wi-Fi 항목을 보면 됩니다.

 

 

 

여기서 IPv4 주소가 컴퓨터 IP입니다.  이걸 itTime에 입력 하면 됩니다.  컴퓨터를 재부팅 해도 왠만하면 잘 변경이 되지 않지만 확실히 하려면 인터넷 디바이스에 설정을 해놓는게 안전 합니다. 재부팅 되었는데 내부 IP가 변경되면 공유기를 또다시 설정 해야 하는데 모르는 사람만 집에 있으면 참 답답 합니다. 

[네트워크 연결]을 열고

 

 

사용하고 있는 무선 또는 유선의 속성을 선택 하여(저는 Wi-Fi, 유선은 이더넷을 사용) 마우스 우클릭 해서 설정을 선택 합니다.

 

 

 

TCP/IPv4를 선택하고 [속성] 버튼을 클릭 하여

 

 

 

IP 설정 창에서 [다음 IP 주소 사용]을 선택하여 아까 보았던 명령 프롬프트에 있는 서브넷, 게이트웨이, DNS등을 보고 내용들을 채워 넣으면 다음에 컴퓨터가 재부팅 되어도 동일한 IP를 사용하게 됩니다. 
실제 설정은 5분도 안걸리는데 글을 써서 올리는 건 퇴근 후 하다보니 몇일이 넘게 걸리는군요. 집에서 서버를 운용하려는 사람들에게 도움이 되었길 바랍니다.

 

- copy coding -

윈도우 7을사용하고 있는데 몇 년 동안 그대로 사용하고 있다 보니 시스템이 꼬였는지 부팅이 되지 않고 완전 먹통이 되었습니다. 예전에는 2, 3년에 한 번 정도 다 밀고 새로 설치를 하였는데 너무 게을렀던 것 같습니다. 윈도우를 설치하고 제일 먼저 하는 일이 백신을 설치하는 것 인데 설치를 하려고 보니 패치가 필요하다고 하네요.

 

시스템이 낡아서 윈도우 10을 설치할 수 없는데 귀찮은 작업을 해야 되겠네요.  그것보다 마이크로소프트에서 윈도우 7 지원을 중단했는데 다운로드가 될지가 더 걱정입니다.

 

패치 프로그램은 아래 주소에서 다운 받으면 됩니다.

https://www.catalog.update.microsoft.com/ViewBasket.aspx

 

바로 검색을 해서 다운을 받아 보도록 합니다.

 

다운 받으려는 패치 정보를 입력하고 [검색] 버튼을 클릭하여 하단 리스트에서 제품 항목 중 윈도우 7을 확인한 후 우측에 [추가] 버튼을 클릭하면 [재거] 버튼으로 변경되면서 검색 버튼 밑에 바스켓 보기로 담기는걸 숫자로 확인할 수 있습니다.

 

나머지 파일도 검색을 해서 바스켓에 담습니다. 이제 검색 버튼 밑에 있는 [바스켓 보기]를 클릭합니다.

 

 

익스플로러만 바스켓 보기가 있습니다.   다운로드 버튼을 클릭하면 다운로드 폴더 지정 팝업 창이 나타납니다.

 

 

그런데 문제는 다운로드 받을 폴더를 선택해야 하는데 찾아보기 버튼을 클릭해도 작동을 하지 않습니다. 마이크로소프트 사이트에서 다운로드 받으려고 했지만 다운로드 받을 곳은 여기밖에 없는 거 같습니다. 어쩌지?

 

하는 수 없이 크롬을 설치하고 다시 다운로드를 시도합니다.

 

 

크롬은 바스켓이 없습니다. 바로 [다운로드] 버튼을 클릭하면 다운로드 창 나타납니다.

 

 

다운로드 위치를 설정하는 것도 없이 바로 클릭해서 다운로드 하면 됩니다. 그런데 다운로드가 되지 않습니다. 컴퓨터가 맛이 갔나? 걱정이 되는군요.

 

일단 설치를 포기하고 며칠 후 다른 브라우저를 사용하기로 결정하고 오페라를 설치해서 똑같은 방법으로 다운로드를 시도해 보았습니다.

 

 

화면이 크롬과 동일하여 좀 걱정이 되는군요. 어쨌든 [다운로드] 버튼을 클릭하여 다운로드 팝업 창을 열어 줍니다.

 

 

파란색 다운로드 링크를 클릭합니다.

 

 

~~~~~! 오페라는 다운로드가 가능 합니다. 

다운로드를 받고 설치를 시작합니다.

 

 

[]를 클릭 해주고

 

 

 

설치가 완료되었습니다.   [지금 다시 시작] 버튼을 클릭하여 윈도우를  다시 시작합니다

 

 

안랩 V3 클릭하면 업데이트가 되고 이제부터 사용이 가능합니다

검색이 하기 귀찮으면 아래 주소를 클릭 해도 검색하는 것과 동일하게   패치 프로그램 리스트가 나오는군요.

http://www.catalog.update.microsoft.com/search.aspx?q=KB4490628

 

http://www.catalog.update.microsoft.com/search.aspx?q=kb4474419

 

 

쓸데없는 정보일까? 내 컴만 이런건가?

 

- copy coding -


구글에서 제공하는 원격 데스크톱은 무료로 제공되며 크롬 브라우저를 사용한다면 간단한 설치만으로 다른 사람 컴퓨터에 접속하여 편리하게 사용 가능합니다.


설치 순서와 사용방법을 3가지로 나누어 설명 드립니다.

1. 설치 작업

2. 도움이 필요한 컴퓨터에서 할일

3. 도움을 주려는 컴퓨터에서 할일

 

1. 설치 작업

 

원격데스크톱은 google 계정에 로그인을 해야 사용 가능하므로 처음부터 로그인을 하고 시작하는게 좋습니다.

Google 원격 데스크톱은 크롬에서만 사용 가능하므로 사용을 하려면 크롬에서 원격데스크톱으로 검색을 하거나 직접 https://remotedesktop.google.com/?hl=ko 주소를 입력해서 사이트에 접속합니다.


google chrome remote access


첫 화면 입니다. 여기서는 할게 아무것도 없으니 하단에 있는 [시작하기] 버튼을 클릭 합니다.


google chrome remote access


원격 접속을 시작하겠다는 안내문 입니다. 원 안에 아래쪽 화살표가 있는 아이콘을 클릭하면 웹 스토어 페이지로 이동합니다.


google chrome remote access


이 페이지가 실제 사용하려는 프로그램 다운로드 페이지 입니다우측 상단 [Chrome에 추가] 버튼을 클릭하면 


google chrome remote access


원격 데스크톱 프로그램을 추가 할것인가 물어보는 팝업 창이 나오는데 [확장 프로그램을 추가] 버튼을 클릭하여 다운로드를 진행 합니다.


google chrome remote access


다운로드가 진행 됩니다.


google chrome remote access


다운로드가 완료되면 설치 준비 완료로 변경 되는데 지금까지는 필요한 파일을 다운로드만 한 것으로 실제 설치를 하려면 [동의 및 설치] 버튼을 클릭해야 합니다.


google chrome remote access


mis 파일을 실행해서 설치를 한다는 내용으로 [] 버튼을 클릭 한다.


google chrome remote access


[실행] 버튼을 클릭 하면 이제서야 진짜 설치가 진행됩니다.


google chrome remote access



google chrome remote access


설치가 완료되면 처음에는 컴퓨터 이름이 자동으로 만들어져 쓰여 있는데 그냥 사용해도 되고 변경이 필요하면 다른 이름으로 수정하여 입력하고 [다음] 버튼을 클릭 합니다.


google chrome remote access


PIN 번호를 숫자 6자리로 입력 하고 잘 기억해 둡니다. 컴퓨터 이름이 ID이고 PIN 번호가 비밀번호에 해당 합니다.  PIN을 입력하였으면 [시작] 버튼을 클릭 합니다.


google chrome remote access


위에서 입력한 컴퓨터 이름과 PIN 번호를 다음에 입력하기 싫으면 [저장]을 선택하고 아니면 사용하지 않음을 선택 합니다.


google chrome remote access


 

여기까지 왔으면 설치 작업이 완료된 것입니다도움을 받으려는 컴퓨터와 도움을 주려는 컴퓨터 모두 여기까지의 설치 작업은 동일하게 해주어야 합니다원격 데스크톱에서 설치작업이 제일 긴 작업입니다

 

 

2. 도움이 필요한 컴퓨터에서 할일

 

위에 있는 [1. 설치 작업]을 완료 했다면 외부에서 내 컴퓨터에 접속할 수 있도록 나 여기있다라는 위치를 알려주는 작업이 필요 합니다.

 

 

먼저 상단에 있는 [원격지원]을 클릭 합니다.


google chrome remote access


두 개의 네모가 나오는데 [지원받기][지원하기]입니다도움이 필요한 컴퓨터 작업이니 [지원받기]에 해당 하겠죠그럼 [코드 생성] 버튼을 클릭 합니다.


google chrome remote access


12자리의 숫자가 생성이 되었습니다이 번호가 나 여기있다라는 의미의 주소라고 보면 됩니다이 주소 값(생성된 코드)을 원격에서 접속하려는 사용자에게 문자나 전화로 알려줍니다.


그리고 그냥 멍~~~ 하니 기다립니다. 상대편이 잘하고 있는지 진짜 궁금하겠죠?


! 5분만 멍 때리고 상대방이 5분안에 접속을 안하면 다시 코드를 생성해서 전달해줘야 합니다.  “뭐하니? 빨리 접속해라!”고 생각하며 멍하니 기다리다가 갑자기 팝업 창 하나가 나타나면 원격에서 접속을 시도한 것 입니다.


google chrome remote access


[공유] 버튼을 누르면 상대방과 컴퓨터가 공유 됩니다.


google chrome remote access


그리고 화면 하단에 다음과 같은 자그마한 창이 나타나는데 위로 끌고와서 캡처를 했습니다.


여기까지가 지원을 받을 컴퓨터에서의 작업 입니다이제 또 그냥 기다리면서 내 컴퓨터에 무슨짓을 하는지 구경만 하면 됩니다공유를 중지 하려면 두 개중 아무거나 [공유 중지] 버튼을 클릭 합니다.



3. 도움을 주려는 컴퓨터에서 할일

 

원격에서 접속하려는 컴퓨터도 위에 있는 [1. 설치 작업]을 똑같이 진행합니다.

그리고 상단에 있는 [원격 지원]을 클릭 합니다.


google chrome remote access


2개의 네모 중 아래에 있는 [지원하기]를 클릭하고 기다리고 있으면 도움이 필요한 컴퓨터에서 12자리 숫자 코드를 생성해서 알려주면 띄어쓰기 없이 입력을 하고 [잇다] 버튼을 클릭 합니다.


google chrome remote access


상대방이 공유 버튼을 클릭 할때까지 계속 멍하니 대기 상태로 기다려야 합니다.   “뭐하니? 빨리 공유해라!”고 생각 하려는 순간


google chrome remote access


! 하고 드디어 상대방 컴퓨터 화면이 나타나고 이제 원격으로 작업을 할 수 있습니다.

나중에 나도 도움을 받게 될 수도 있으니 잘 도와주세요.


- copy coding -



1234···62

+ Recent posts