다운로드 =>  https://www.microsoft.com/ko-kr/evalcenter/evaluate-sql-server-2016 

 

 

Microsoft 공식 홈페이지

Microsoft는 목표와 가치는 전세계의 사람과 기업이 잠재력을 최대한 발휘할 수 있도록 돕는 것입니다.

www.microsoft.com

1. 기본정보 입력 및 동의 후 평가판 설치 프로그램 다운로드.

    SQLServer2016-SSEI-Eval.exe

 

 

2. 프로그램 실행하여 설치용 프로그램을 내려  받는다.

     SQLSserver2016SP2-FullSlipstream-x64-KOR.iso

 

 

3. 계획 단계 Skip 하고  '설치' 단계를 진행한다.

 

4. '설치' 단계의 첫 항목 "새 SQL Server 독립 실행형 설치 ....." 를  선택한다.

 

5. 무료 버전으로 진행한다. ( 180일 사용가능 )

 

6. 라이선스 동의 의 진행.

 

7. 자동 업데이트 옵션 선택 후 진행한다.

 

8. 설치 결과를 확인한다. ( 방화벽 경고는 무시한다. )

 

9. 기능선택 옵션에서 필요한 기능을 선택한다.

    테스트 서버임으로 기본 3개 기능만 선택하고 진행한다.
       (데이터베이스 엔진 서비스,  검색을 위한 전체 텍스트 및 의미체게 추출, 클라이언트 도구 연결)

 

10. 인스턴스 구성 ( 기본설정으로 진행)

   * ( 인스턴스에 대한 이해)
    SQL Server는 하나의 컴퓨터에 대해 여러 인스턴스가 설치될 수 있다. 즉, 하나의 컴퓨터에 서로 다른 데이터베이스를 보유하는 SQL Server를 여러 번 설치할 수 있다는 얘기이며, 각각의 인스턴스는 자신만의 데이터베이스를 보유하게 된다. 이들 SQL Server 인스턴스는 디폴트 인스턴스와 명명된 인스턴스(named instance)로 나누어 볼 수 있는데, 디폴트 인스턴스는 대개 최초로 설치되는 SQL Server 인스턴스를 말하며 특별한 이름이 붙지 않는다. 디폴트 인스턴스가 설치된 이후에 추가로 설치되는 SQL Server는 디폴트 인스턴스와 구분하기 위해 각 인스턴스 마다 이름이 붙게 된다. 이렇게 이름이 붙은 SQL Server 인스턴스를 명명된 인스턴스라고 한다. 예를 들어 보자. 필자의 데스크톱에는 SQL Server 2000, SQL Express, SQL Server 2005가 모두 설치되어 있다. 이 중 최초로 설치한 SQL Server 2000이 디폴트 인스턴스이며, SQL Express와 SQL Server 2005는 각각 이름이 SQLEXPRESS, SQL2005 인 명명된 인스턴스이다. 그리고 이들 인스턴스들이 모두 동시에 수행될 수 있다. 다시 말하자면 sqlservr.exe 프로세스가 여러개 수행 중일 수 있다는 말이다.

디폴트 인스턴스와 명명된 인스턴스는 설치 시에 결정된다. SQL Server를 설치할 때, 해당 인스턴스를 디폴트 인스턴스로 설치할 것인지, 명명된 인스턴스로 설치할 것인지 결정할 수 있다. 대개, 첫 번째 SQL Server를 설치할 때, 설치 프로그램은 디폴트 인스턴스로 설치하곤 하지만 반드시 그렇게 해야만 하는 것은 아니다. 컴퓨터에 달랑 1개의 SQL Server 인스턴스를 설치하더라도 명명된 인스턴스로 설치가 가능함에 유의하자.

SQL Express의 경우, 항상 명명된 인스턴스로 설치된다. 설치 프로그램은 SQL Express를 설치할 때 SQLEXPRESS 라는 이름을 사용하여 데이터베이스를 설치하며, 이미 이 이름이 존재하는 경우 뒤에 숫자가 붙게 된다.

Referencing SQL Server Instances

그렇다면 하나의 컴퓨터에 여러 SQL Server가 존재할 때, 각각의 인스턴스를 참조하는 방법은 무엇일까? 디폴트 인스턴스는 이름을 갖지 않기 때문에 해당 컴퓨터의 컴퓨터 이름 혹은 IP 로서 참조된다. 반면 명명된 인스턴스는 컴퓨터 이름(혹은 IP)과 인스턴스 이름을 백슬래쉬(\) 문자로 구분하여 모두 명시해 주어야 한다. 예를 들어, DBServer 란 컴퓨터(IP가 10.1.1.10 이라 가정)에 SQL Server 2000 이 디폴트 인스턴스이며, SQL Express 그리고 SQL Server 2005가 SQLEXPRESS, SQL2005란 이름으로 설치되었다고 가정해 보자. 먼저 디폴트 인스턴스인 SQL Server 2000을 참조하기 위해서는 단순히 DBServer(혹은 IP 10.1.1.10)로만 참조하면 디폴트 인스턴스에 접근할 수 있다. SQL Express에 접근하기 위해서는 DBServer\SQLEXPRESS 로, SQL Server 2005에 접근하기 위해서는 DBServer\SQL2005 라는 SQL Server 이름을 사용해야 한다.

 

 

11. 서버 구성 ( 기본값을 구성한다.)

  

12. 데이터베이스 엔진 구성 ( 사용자 계정을 관리자 계정으로 등록한다.)

    - 하단의 "현재 사용자 추가" 버튼을 클릭하여  DB 관리자로 등록한다. (자동 등록됨)

 

13. 설치 준비

    - 세팅(선택)된 내용을 보여준다.  실행을 누르면 설치를 시작한다.

 

 

14. 설치 완료.

 

 

15. 관리용 프로그램을 설치한다. 

    - SQL Server Managerment Studio (SSMS)

       ( https://msdn.microsoft.com/ko-kr/library/mt238290.aspx )

 

[select 문]

 


SQL> DESC 테이블;

     --> 테이블의 구조를 검색한다. 컬럼의 이름 데이타 타입을 확인할 수 있다.


SQL>SELECT * FROM tab;

     --> 내가 가진 모든 테이블을 보여줌

     --> 현재 스키마의 모든 테이블 목록을 검색한다.

     --> tab는 실제 테이블이 아니라 테이블의 목록을 보여주기 위한 가상 테이블이다.

     --> 오라클에서 스키마는 유저와 같은 의미를 갖는다.

 

[oracle] sqlplus 한글 깨짐 현상 문제


- 한글깨짐

sqlplus 접속 후 select 문에서 한글이 ??? 같이 물음표로 나온다면 다음과 같이 설정하자



[윈도우 계열]

  시스템 등록정보 -> 고급 -> 환경변수(N)에 다음 추가

NLS_LANG

AMERICAN_AMERICA.KO16KSC5601

or

NLS_LANG

KOREAN_KOREA.KO16KSC5601



[유닉스 계열]

export NLS_LANG=AMERICAN_AMERICA.KO16KSC5601

(계속 등록해보려면 .profile 수정)






(참고) -------------------------------------------------------------


SQL> select * from nls_database_parameters;

PARAMETER                            VALUE

------------------------------ ----------------------------

NLS_LANGUAGE                       AMERICAN

NLS_TERRITORY                       AMERICANLS_CURRENCY                       $

NLS_ISO_CURRENCY                AMERICA

NLS_NUMERIC_CHARACTERS    .,

NLS_CHARACTERSET               KO16KSC5601

NLS_CALENDAR                       GREGORIAN

NLS_DATE_FORMAT                 DD-MON-RR

NLS_DATE_LANGUAGE             AMERICAN

NLS_SORT                               BINARY

NLS_TIME_FORMAT                  HH.MI.SSXFF AM

NLS_TIMESTAMP_FORMAT        DD-MON-RR HH.MI.SSXFF AM

NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR

NLS_TIMESTAMP_TZ_FORMAT   DD-MON-RR HH.MI.SSXFF AM TZR

NLS_DUAL_CURRENCY              $

NLS_COMP                              BINARY

NLS_LENGTH_SEMANTICS        BYTE

NLS_NCHAR_CONV_EXCP         FALSE

NLS_NCHAR_CHARACTERSET   AL16UTF16

NLS_RDBMS_VERSION              11.1.0.6.0

------------------------------------------------------------------------------------------------------


NLS_LANGUAGE :  데이터 베이스에서 메세지를 보여줄때의 메세지 언어 설정이다 AMERICAN 되여있다 

NLS_TERRITORY :   금액을 표시 할때 날짜를 표현할때 표현 방법이다 

AMERIC 방식은 금액은 "$" 날짜는 DD-MON-YY 형식이고 

한글 방식은 :금액은"//" (원) 표시 날짜는 YYYY-MM-DD 형식으로 보여준다 



'배워서 남주자 > Data Base' 카테고리의 다른 글

SQL Server 2016 설치  (3) 2019.07.31
[Oracle] 이것저것  (0) 2019.03.21
[Mariadb] table 상세 정보 보기  (0) 2019.01.18
[MySQL & MariaDB] 기본 명령어  (0) 2018.05.23
[php-fpm] Oracle 연결 환경 변수 설정.  (0) 2018.03.30

MariaDB [web3]> show full columns from 테이블명;

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

| Field        | Type     | Collation       | Null | Key | Default | Extra          | Privileges                      | Comment |

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

| no           | int(11)  | NULL            | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |

| date         | char(20) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |

| temp         | char(20) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |

| average_temp | char(20) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |

| tmn          | char(20) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |

| tmx          | char(20) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |

| weather      | char(20) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |

| rainfall     | char(20) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |

| month_day    | char(20) | utf8_general_ci | YES  |     | NULL    |                | select,insert,update,references |         |

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

9 rows in set (0.00 sec)





MariaDB [web3]> describe weather_susin_myeon;

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

| Field        | Type     | Null | Key | Default | Extra          |

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

| no           | int(11)  | NO   | PRI | NULL    | auto_increment |

| date         | char(20) | YES  |     | NULL    |                |

| temp         | char(20) | YES  |     | NULL    |                |

| average_temp | char(20) | YES  |     | NULL    |                |

| tmn          | char(20) | YES  |     | NULL    |                |

| tmx          | char(20) | YES  |     | NULL    |                |

| weather      | char(20) | YES  |     | NULL    |                |

| rainfall     | char(20) | YES  |     | NULL    |                |

| month_day    | char(20) | YES  |     | NULL    |                |

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

9 rows in set (0.00 sec)





MariaDB [web6]> show   create   table   weather_xml_test; 

| Table            | Create Table                                                                                

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

| weather_xml_test | CREATE TABLE `weather_xml_test` ( 

  `no` int(11) NOT NULL AUTO_INCREMENT, 

  `date` char(20) DEFAULT NULL, 

  `temp` char(20) DEFAULT NULL, 

  `average_temp` char(20) DEFAULT NULL, 

  `tmn` char(20) DEFAULT NULL, 

  `tmx` char(20) DEFAULT NULL, 

  `weather` char(20) DEFAULT NULL, 

  `rainfall` char(20) DEFAULT NULL, 

  `month_day` char(20) DEFAULT NULL, 

  PRIMARY KEY (`no`) 

) ENGINE=InnoDB AUTO_INCREMENT=474 DEFAULT CHARSET=utf8 | 


1 row in set (0.00 sec)

1.  데이터베이스 접속

msyql    -u   사용자명   -p   dbname

 설치 직후에는  root 사용자에 비밀번호가 없으므로  다음과 같이 접속하여 Mysql을 관리할 수 있다.

msyql    -u   사용자명   dbname


2. 비밀번호  변경
MySQL을 설치한 직후에는 root 계정의 암호가 지정되어 있지 않다. 다음 세가지 방법으로 비밀번호를 변경 할 수 있다.

* mysqladmin  이용
mysqladmin   -u  root  password   새비밀번호
* update  이용
mysql   -u   root   mysql
-----
mysql>  UPDATE   user  SET  password=password('새비밀번호')  WHERE  user='root';
mysql>  FLUSH PRIVILEGES;
* set  password  이용
mysql> SET PASSWORD FOR  root=password('새비밀번호');

일단 root 비밀번호가 설정된 상태에서는 mysql이나 msyqladmin 명령을 실행할때 -p 욥션을 붙여주고  비밀번호를 입력해야 접속이 가능하다.

3. 데이터베이스  생성/보기

* 데이터베이스를 생성하고,
mysql> CREATE   DATABASE   dbname;

* 현재 존재하는 데이터베이스 목록을 보여준다.
mysql> SHOW DATABASES;

* 특정 데이타베이스를  선택(사용)한다.
mysql>  USE   dbname;

* 필요 없는 데이타베이스를  삭제한다.
mysql>  DROP  DATABASE  [IF EXISTS]  dbname; 

[IF EXISTS] 옵션은  데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.

테이블 생성/보기

mysql> CREATE TABLE  tablename (
             column_name1  INT  PRIMARY  KEY  AUTO_INCREMENT,
             column_name2  VARCHAR(15)  NOT  NULL,
             column3  INT
          )  ENGINE=INNODB;

테이블 구조를 살펴본다.

mysql> EXPLAIN    tablesname;
또는
mysql> DESCRIBE  tablesname;

테이블이름  변경.

mysqll> RENAME  TABLE  tablename1 TO tablename2[, tablename3  TO tablename4];

테이블  삭제.

mysql> DROP TABLE [IF EXISTS] tablename;


4. 사용자 추가/삭제

GRANT   ALL   PRIVILEGES   ON   dbname.*   TO   'username'@'localhost'    IDENTIFIED   BY   'password';

username 이라는  사용자를 password라는 비밀번호를 갖도록 추가한다.
username은 dbname이라는 데이타베이스에 대해 모든 권한을 가지고 있다.
username 사용자는 로칼호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면, 

GRANT   ALL   PRIVILEGES   ON   dbname.*   TO   'username'@'%'    IDENTIFIED   BY   'password';

위와 같이  한번 더 실행한다.  '%'에서 따옴표를 주의한다.
 (* MYSQL 에서 '%'는 localhost를 제외한 모든 호스트를 뜻한다. 즉 localhost에 대해서는 명시적으로 따로 권한을 지정해야 한다.)
 
특정 권한만 주려면, ALL 대신  아래와 같은 형태로 권한을 줄수 있다.

GRANT   INSERT,UPDATE,SELECT   ON   dbname.*   TO   'username'@'%'    IDENTIFIED   BY   'password';

불필요한 사용자  삭제는

mysql> DELETE   FROM   USER   WHERE   USER='username';
mysql> FLUSH  PRIVILEGES;


5. 활용 ( INSERT,  SELECT,  UPDATE,  DELETE,  errors/warnings/processlist, 기타  )

현재 상태 보기

MariaDB [mysql]> STATUS 
-------------- 
mysql  Ver 15.1 Distrib 10.1.22-MariaDB, for Linux (x86_64) using readline 5.1 

Connection id: 96 
Current database: mysql 
Current user: root@localhost 
SSL: Not in use 
Current pager: stdout 
Using outfile: '' 
Using delimiter: ; 
Server: MariaDB 
Server version: 10.1.22-MariaDB MariaDB Server 
Protocol version: 10 
Connection: Localhost via UNIX socket 
Server characterset: latin1 
Db     characterset: latin1 
Client characterset: utf8 
Conn.  characterset: utf8 
UNIX socket: /var/lib/mysql/mysql.sock 
Uptime: 4 hours 28 min 44 sec 

Threads: 2  Questions: 1392  Slow queries: 0  Opens: 40  Flush tables: 1  Open tables: 34  Queries per second avg: 0.086 
--------------

INSERT

mysql>  INSERT  INTO  tablename  VALUES(값1, 값2, ...);
또는
mysql>  INSERT  INTO  tablename (col1, col2, ...)   VALUES(값1, 값2, ...);

SELECT 

mysql>  SELECT col1, col2,  ...   FROM   tablename;

컬럼명을  *로 하면 모든 컬럼 의미.

mysql>  SELECT col1 as '번호', col2 as '성명',  ...   FROM   tablename;

컬럼의 이름을 바꿔서 출력한다.

mysql>  SELECT   *   FROM   tablename  ORDER BY col1 DESC;
mysql>  SELECT  col1, korea +  math  english AS '총점'   FROM   tablename  ORDER BY '총점'  ASC;

DESC는 내림차순  ASC는 오름차순.

mysql>  SELECT   *   FROM   tablename  LIMIT  100, 10;

결과중  100번째부터   10개만  가져오기,

UPDATE

mysql> UPDATE    tablename  SET   col1=새값    WHERE 조건;

DELETE

mysql>  DELETE   FROM  tablename    where  조건;

오류나 경고  다시 보기

mysql>  SHOW  errors;
mysql>  SHOW  warnings;

MySQL  버전 알아보기

MariaDB [mysql]> show variables  like  '%version%'; 
+-------------------------+---------------------------------+ 
| Variable_name           | Value                           | 
+-------------------------+---------------------------------+ 
| innodb_version          | 5.6.35-80.0                     | 
| protocol_version        | 10                              | 
| slave_type_conversions  |                                 | 
| version                 | 10.1.22-MariaDB                 | 
| version_comment         | MariaDB Server                  | 
| version_compile_machine | x86_64                          | 
| version_compile_os      | Linux                           | 
| version_malloc_library  | system                          | 
| version_ssl_library     | OpenSSL 1.0.1e-fips 11 Feb 2013 | 
| wsrep_patch_version     | wsrep_25.16                     | 
+-------------------------+---------------------------------+ 
10 rows in set (0.00 sec)

테이블/컬럼   정보보기

-- 전체 테이블 정보를 주석까지 포함해 보여준다. 
SHOW TABLE STATUS;

SHOW TABLE STATUS like 'member%'; -- 테이블 이름 매칭 조건 

-- 테이블의 컬럼 정보를 주석까지 포함해 보여준다. 
SHOW FULL COLUMNS FROM [테이블이름];







MySQL 사용자 계정 암호변경 방법을 정리.
 (여기서는 root 암호를 변경하고 있는데 다른 계정도 동일하다.)


위 사진은 root 사용자 계정을 변경하는 모습이다.
 
1. mysql 실행파일이 있는 위치에서 mysql을 실행시킨다.
mysql -u root -p
 
2. 비밀번호(암호) 변경을 위해 데이터베이스로 mysql을 지정한다.
mysql> use mysql;
 
3. 현재 비밀번호 확인 (선택사항)
mysql> select host, user, password from user;
 
4. 계정의 암호를 변경한다.
- 여기서는 root 계정의 암호를 asdf1234로 변경했음
mysql> update user set password=password('asdf1234') where user='root';
mysql> update mail_users set password=encrypt('비번입력') where username='계정';

5. 변경된 비밀번호 확인 (선택사항)
mysql> select host, user, password from user;

6. mysql 종료
mysql> exit

7. MySQL 서버를 재가동(Restart) 시킨다.



오라클의 경우 서버단의 설정도 중요하지만  클라이언스 환경 변수의 영향을 받는 항목도 많다.....

날짜, 시간 타입이라든가..뭐..기타 등등......


아래는 php-fpm 환경에서 오라클 환경변수를 지정하는 예제다...


/etc/php-fpm.d/www.conf  


파일 하단에  아래와 같이 등록하여 설정할 수 있다....



[root@cca php-fpm.d]# more www.conf


; 오라클 설정 파일

env[ORACLE_HOME] =/usr/lib/oracle/11.2/client64

env[NLS_LANG] = KOREAN_KOREA.KO16MSWIN949

env[LD_LIBRARY_PATH] = /usr/include/oracle/11.2/client64/lib:$LD_LIBRARY_PATH

env[NLS_DATE_FORMAT] = "YYYY-MM-DD HH:MI:SS"

 


'배워서 남주자 > Data Base' 카테고리의 다른 글

[Mariadb] table 상세 정보 보기  (0) 2019.01.18
[MySQL & MariaDB] 기본 명령어  (0) 2018.05.23
[oracle] 오라클 실행 / 중지  (1) 2018.03.28
[oracle] Listener 관련  (0) 2018.03.28
[Postgresql] 접속 제어  (0) 2018.03.23

- sqlplus /nolog (sqlplus를 데이터베이스에 접속하지 않고 실행.)


- conn / as sysdba (관리자 계정으로 접속)


- shutdown (오라클 종료. 기존에 제대로 실행이 안되어 있을 경우 위 그림에서와 같이 에러 메세지가 뜬다.)


- startup (오라클 시작)



'배워서 남주자 > Data Base' 카테고리의 다른 글

[MySQL & MariaDB] 기본 명령어  (0) 2018.05.23
[php-fpm] Oracle 연결 환경 변수 설정.  (0) 2018.03.30
[oracle] Listener 관련  (0) 2018.03.28
[Postgresql] 접속 제어  (0) 2018.03.23
[Postgresql] 백업 / 복구  (0) 2018.03.23

오라클 리스너  상태 확인 및 구동/정지 하기



[root@orcl bin]# su - oracle                 ---->  오라클 계정으로 변경

[oracle@orcl ~]$ lsnrctl status              ---->   리스너 상태 확인 


LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 28-MAR-2018 05:41:49


Copyright (c) 1991, 2010, Oracle.  All rights reserved.


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl.mycompany.com)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production

Start Date                27-MAR-2018 16:48:48

Uptime                    0 days 12 hr. 53 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/oracle/product/10.2.0/db/network/admin/listener.ora

Listener Log File         /u01/app/oracle/product/10.2.0/db/network/log/listener.log

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl.mycompany.com)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl.mycompany.com)(PORT=8080))(Presentation=HTTP)(Session=RAW))

Services Summary...

Service "PLSExtProc" has 1 instance(s).

  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...

Service "orcl" has 1 instance(s).

  Instance "orcl", status READY, has 1 handler(s) for this service...

Service "orclXDB" has 1 instance(s).

  Instance "orcl", status READY, has 1 handler(s) for this service...

Service "orcl_XPT" has 1 instance(s).

  Instance "orcl", status READY, has 1 handler(s) for this service...

The command completed successfully




[oracle@orcl ~]$ lsnrctl stop    ---->   리스너 정지

[oracle@orcl ~]$ lsnrctl start    ---->   리스너 실행 

1. Pg_hba.conf  파일에서 접속 허용  "host, DB, 사용자, 아이피(호스트), 접속형식"  등을 설정한다.


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               trust
# export connection
host    Test      Test       192.168.6.195/32        password
host    Test      Test       192.168.6.195/32        password


=> 대략적인 뜻은 Test디비에 접근할 수 있는 것은 Test아이디로 192.168.6.195에서 접속한 것만 password를 입력 받고 허가해준다. 라는 뜻이다.




2. postgresql.con  파일 수정. --> 포트 및 host 설정.


#---------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#---------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'  # what IP interface(s) to listen on;
                                # defaults to localhost, '*' = any
port = 5432
max_connections = 100

 

=> 대략적인 설명은 5432포트로 들어오는 모든 요청에 응답하도록 설정하는 것이다.



% 유저를 추가하는 방법은 다음과 같다.

psql Test;

Test # > CREATE USER "Test" PASSWORD='qlqjs123';

=> 기본적으로 name에 해당하는 문자열은 대소문자를 구분해서 입력을 해도 모두 소문자로 인식한다.  대소문자를 가려서 입력하고 싶을때는 " (큰따옴표)로 묶어줘야만 한다.

ex) test , Test TEST ==> test

    "Test"  => Test

   "TEST" => TEST


1. 백업

 

pg_dump 와 pg_dumpall 프로그램을 이용해서 실행을 한다.

 

사용법)

  pg_dump [옵션] [해당디비이름] > 저장할 파일명 | 하나의 데이타베이스만 백업하고자 할때

  pg_dumpall [옵션] > 저장할 파일명                      | 전체 디비를 백업하고자 할때

 

주요옵션의 종류

-C(대문자): 데이타베이스의 생성부분까지 백업을 하라는 옵션

-a : 데이타만 백업 (copy to)

-d : 데이타만 백업 / 복구 (insert 쿼리로 덤프)

-s : 스키마만 백업 / 복구

 

==>

 

데이타만을 백업하고자 할때는

pg_dump -d test > test.dmp (작은단위 디비의 경우에만 사용)

pg_dump -a test > test.dmp

정도의 실행이면되고.

 

 

스키마만 백업해서 다른 컴퓨터에 같은 디비를 만들고자 할때는

pg_dump -Cs test > test_schema.sql

를 사용하면 된다.

 

 

보통 백업이라하면 만약에 경우 새로 생성하는 것을 대비하는 것이기 때문에 -C옵션은 필수이다

동일한 디비를 다른 머신에서 구축하고자 할때는 -s 옵션으로 그 뼈대만을 백업해서 작업하면

불필요한 데이타의 이동은 피할 수 있다.

 

cf .  pg_dump -s 로 만든 백업 파일엔 create 관련 sql이 빠져있고

       pg_dump -Cs 는 create가 들어 있다.  -Cs는 아무것도 없는 곳(database)에 복구할 목적으로

                     -s는 database가 존재하는 곳에 복구하기 위한 백업이다.

 

 

2. 복구

 

1) 스키마 복구 / 복원

 

복구는 여러가지 방식이 있지만 가장 쉬운 방식을 설명하겟다.

 

psql [아무디비이름/존재하는것] < test_schema.sql

 

(아마도 vim test_schema.sql 해본사람이면 알겠지만 dump의 내용은 sql 문으로 구성되어 있다.

 위와 같이 실행하면 그 sql을 순서대로 실행하는 것과 같은 역할을 한다.

 아무 디비에 대해서 실행을 해도 새로운 디비를 생성하고 만드는 sql 이기 때문에 상관이 없다.

 디비가 없다면  createdb aaa 로 더미 디비를 생성한다. )

 

을 실행하면 sql이 실행되면서 관련 응답이 나오게 되고 특별한 이상이 없이 끝나면

 

복구는 완료 된다.

+ Recent posts