SELECT
 운용사펀드코드,
 (SELECT 설정일 FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\20170703\설정일생성.xlsx;','SELECT * FROM [Sheet1$]') WHERE 펀드코드 = A.운용사펀드코드) AS 설정일
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=D:\20170703\펀드설정전체.xlsx;','SELECT * FROM [Sheet1$]') A

----------------------------------------------- 기본셋팅

1. Ad Hoc Distributed Queries 옵션 활성화

EXEC sp_configure 'show advanced options', 1

GO

 

RECONFIGURE

GO

 

EXEC sp_configure 'Ad Hoc Distributed Queries', 1

GO

 

RECONFIGURE

GO

2. Mirosoft Access Database Engine 2010 Redistributable  설치

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255

자 이제 준비는 다 되었다. 이제 쿼리로 엑셀을 테이블처럼 사용하면 된다.


출처 - http://yoonsy.tistory.com/12

[MYSQL]multiple instances(mysqld_multi)

Database 2016.11.08 11:50 Posted by 애플자라

mysqld_multi: How to run multiple instances of MySQL

 

---------------------------------------------------------------- 각각 다른 폴더 반복

 

cp -R mysql-5.7.15-linux-glibc2.5-x86_64 /data1/mysql1
mkdir -p /data1/mysql1/mysqldatafile
chown -R mysql:mysql /data1
chmod -R 755 /data1
cd /data1/mysql1/bin
./mysqld_safe --defaults-file=/data1/mysql1/my.cnf --user=mysql  &

 

vi /data1/mysql1/mysqldatafile/mysql1d.log root / 임시비밀번호 확인

 

2016-11-12T04:50:43.419736Z 1 [Note] A temporary password is generated for root@localhost: EGv1IiXh%D:I
2016-11-12T04:51:13.932957Z mysqld_safe The file /usr/local/mysql/bin/mysqld

 

/data1/mysql1/bin/mysql -uroot -p --socket=/tmp/mysql1-3306.sock / DB로그인확인

 

 

1. mysql 인스턴스 확인(/data1/mysql1, /data2/mysql2, /data3/mysql3)
[root@ ~]# ps aux | grep mysqld
root       701  0.0  0.0 107464   956 pts/4    S+   08:46   0:00 grep mysqld
root      4666  0.0  0.0 108332     8 ?        S    Nov12   0:00 /bin/sh /data2/mysql2/bin/mysqld_safe --datadir=/data2/mysql2/mysqldatafile --pid-file=/tmp/mysql2d.pid
mysql     4961  0.7  0.0 1514676 35352 ?       Sl   Nov12  16:45 /data2/mysql2/bin/mysqld --basedir=/data2/mysql2 --datadir=/data2/mysql2/mysqldatafile --plugin-dir=/data2/mysql2/lib/plugin --user=mysql --log-error=/data2/mysql2/mysqldatafile/mysql2d.log --pid-file=/tmp/mysql2d.pid --socket=/tmp/mysql2-3307.sock --port=3307
root      5011  0.0  0.0 108332     8 ?        S    Nov12   0:00 /bin/sh /data3/mysql3/bin/mysqld_safe --datadir=/data3/mysql3/mysqldatafile --pid-file=/tmp/mysql3d.pid
mysql     5306  0.5  0.0 1514676 31400 ?       Sl   Nov12  13:17 /data3/mysql3/bin/mysqld --basedir=/data3/mysql3 --datadir=/data3/mysql3/mysqldatafile --plugin-dir=/data3/mysql3/lib/plugin --user=mysql --log-error=/data3/mysql3/mysqldatafile/mysql3d.log --pid-file=/tmp/mysql3d.pid --socket=/tmp/mysql3-3308.sock --port=3308
mysql     7000  0.2  0.0 1990460 252416 pts/1  Sl   Nov13   3:58 /data1/mysql1/bin/mysqld --basedir=/data1/mysql1 --datadir=/data1/mysql1/mysqldatafile --plugin-dir=/data1/mysql1/lib/plugin --user=mysql --log-error=/data1/mysql1/mysqldatafile/mysql1d.log --pid-file=/tmp/mysql1d.pid --socket=/tmp/mysql1-3306.sock --port=3306
root     14993  0.0  0.0 106372  1144 pts/1    S    Nov12   0:00 /bin/sh /data1/mysql1/bin/mysqld_safe --datadir=/data1/mysql1/mysqldatafile --pid-file=/tmp/mysql1d.pid

 

2. SSH 통한 접속방법
/data1/mysql1/bin/mysql -uroot -p --socket=/tmp/mysql1-3306.sock
/data2/mysql2/bin/mysql -uroot -p --socket=/tmp/mysql2-3307.sock
/data3/mysql3/bin/mysql -uroot -p --socket=/tmp/mysql3-3308.sock

 

3. 서비스 확인
[root@ ~]# netstat -nlp |grep mysql
tcp        0      0 :::3306                     :::*                        LISTEN      7000/mysqld        
tcp        0      0 :::3307                     :::*                        LISTEN      4961/mysqld        
tcp        0      0 :::3308                     :::*                        LISTEN      5306/mysqld        
unix  2      [ ACC ]     STREAM     LISTENING     88841  7000/mysqld         /tmp/mysql1-3306.sock
unix  2      [ ACC ]     STREAM     LISTENING     22892  4961/mysqld         /tmp/mysql2-3307.sock
unix  2      [ ACC ]     STREAM     LISTENING     23167  5306/mysqld         /tmp/mysql3-3308.sock

 

4. 엔진구동방법
1) 서비스 등록

[MYSQL_HOME]/support-files/mysql.server

cp mysql.server /etc/init.d/mysqld1

 

2) 서비스 시작/정지
/etc/init.d/service mysqld1 start/stop
/etc/init.d/service mysqld2 start/stop
/etc/init.d/service mysqld3 start/stop

 

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

 

http://xinet.kr/?p=978 - 5.7설치

 

http://dev.mysql.com/doc/refman/5.7/en/mysqld-multi.html

 

https://www.percona.com/blog/2014/08/26/mysqld_multi-how-to-run-multiple-instances-of-mysql/


https://docs.xtremecenter.co.kr/pages/viewpage.action?pageId=9340206




 

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

 

[Linux_MySQL] mysql 다중 서버 관리

 

운영체제 : Linux, Unix, Windows 등
홈페이지 : www.mysql.com
라이센스 : 상업용, GPL
소속 : 리눅스포털(주)수퍼유저코리아
제작자 : 이재석


1. mysql 다중 서버란 ?

mysqld를 소켓과 포트 데이터베이스를 달리하여
여러개의 MySQL 서버를 구동하는 것을 말한다.

myqld_safe를 이용하는 방법과 mysql_multi를 이용하는
두가지 방법이 있다.

하지만 mysqld_safe를 이용하는 것은 번거로은 면이 많아
실행시 주의를 요한다.


2. mysql 다중서버운영시 장단점

- 장애시 전체 디비서버에 영향을 미치지 않는다.
- 각 디비서버별 root사용자를 지정할 수 있다.
- 서로 상이한 설정의 디비서버를 같은 장비에서 운영가능하다.
- 하나의 mysqld로 서비스가 포화 상태인 경우


3. myqld_safe를 이용하는방법

추가로 컴파일할 필요없이 기존에 사용하는 mysqlDB를 그대로
이용가능하다.


[첫번째 mysqld의 설정파일]
[client]
port = 3306
socket = "/tmp/mysql.sock"

[mysqld]
port = 3306
socket = "/tmp/mysql.sock"

[두번째 mysqld의 설정파일]
[client]
port = 3307
socket = "/tmp/mysql2.sock"

[mysqld]
port = 3307
socket = "/tmp/mysql2.sock"


[첫번째 mysqld 실행]
# mysqld_safe --defaults-file=/etc/my.cnf &

[두번째 mysqld 실행]
# mysqld_safe
--defaults-file=/etc/my1.cnf
--pid-file=/usr/local/mysql/data/hostname.pid1
--socket=/tmp/mysql.sock1
--skip-network &

[첫번째 mysqld 접속 방법]
mysql -u [username] -p [databasename]

[두번째 mysqld 접속 방법]
mysql -u [username] -p -S [/path/to] [databasename]

4. mysql_multi를 이용하는방법 - 두개 설치(?) 해야 할듯함
[설정 방법]
[client]
(생략)...

[mysql]
(생략)...

[mysqld]
default-character-set = euc_kr
skip-name-resolve
skip-network ## only localhost access
datadir = /usr/local/mysql/data
language = /usr/local/mysql/share/mysql/english
user = mysql
(생략)...

[mysqld_multi]
mysqld = /usr/local/mysql/bin/safe_mysqld
mysqladmin = /usr/local/mysql/bin/mysqladmin
#user = root

[mysqld1]
socket = /tmp/mysql.sock1
port = 3307
datadir = /usr/local/mysql/data1
pid-file = /usr/local/mysql/data1/mysqld1.pid
log = /usr/local/mysql/data1/mysqld1.log

[mysqld2]
socket = /tmp/mysql.sock2
port = 3308
datadir = /usr/local/mysql/data2
pid-file = /usr/local/mysql/data2/mysqld2.pid
log = /usr/local/mysql/data2/mysqld2.log

[myisamchk]
(생략)...

[mysqladmin]
(생략)...

[mysqldump]
(생략)...

[실행방법]
mysql_multi 사용법
mysql_multi [OPTIONS] {start|stop|report} [GRN,GRN...]

전체 MySQL 서버실행시
mysqld_multi start

특정 MySQL 서버 실행시
mysqld_multi start 1

[다중서버 관리자 추가 하기]
#mysql -u root -S /tmp/mysql.sock -proot_password -e
"GRANT SHUTDOWN ON *.* TO multi_admin@localhost
IDENTIFIED BY 'multipass'"

위와 같이 멀티서버 어드민을 지정하여 사용가능하나 root를 사용하면 됨으로
필수 사항은 아니다.


[첫번째 mysqld 접속 방법]
mysql -u [username] -p -S [/path/to] [databasename]

[두번째 mysqld 접속 방법]
mysql -u [username] -p -S [/path/to] [databasename]


 

'Database' 카테고리의 다른 글

[MYSQL]사용자 계정생성  (0) 2016.11.11
[MYSQL]패스워드 변경  (0) 2016.11.11
[MYSQL]multiple instances(mysqld_multi)  (0) 2016.11.08
[MYSQL]ROWNUM  (0) 2016.10.21
[MYSQL]Fabric 설치 및 HA 구성  (0) 2016.10.17
[ORACLE]ORU-10027: buffer overflow  (0) 2016.10.10

[MYSQL]mysqldump 백업

Database 2016.09.29 20:02 Posted by 애플자라

■ mysqldump 사용하는 방법

 

전체 데이터베이스 또는 특정 데이터베이스를 백업하거나 특정테이블만 백업 할 수 있다.

 

▷ 전체 데이터베이스 백업

 

- 서버의 전체 데이터베이스를 alldatabase.sql로 백업한다.

 

mysqldump -uroot -p -A > alldatabase.sql

 

▷ 특정 데이터베이스 백업

 

- test 데이터베이스만 백업한다.

 

mysqldump -uroot -p test > testdb.sql

 

▷ 특정 테이블만 백업

 

- test 데이터베이스의 board 테이블만 백업 한다.

 

mysqldump -uroot -p test board > testdbboard.sql

 

 

※ 특정 데이타베이스의 테이블생성(schema) 정보만 백업하는 방법

 

mysqldump -uroot -p --no-data test > testdbschema.sql

 

- mysqldump-? 명령어로 여러 옵션을 확인 할 수 있다.

 


▷ InnoDB에서 트리거 , 프로시져, 함수 포함하여 백업하기


  - 트리거는 default값으로 백업이 실행되나 저장 프로시져는 백업되지 않는다. 


  - 저장 프로시져가 백업되게 하기 위해서는 옵션에  --routines 을 넣어줘야 한다.  


mysqldump -u계정 -p비밀번호 --routines 특정DB명 > 함수프로시져트리거.sql


(예) mysqldump -uroot -ppassword --routines  northwind > northwind.sql

 

 

   ※ 트리거 , 프로시져, 함수 만 백업하기 - 쿼리문만  


 mysqldump -u계정 -p비밀번호 --routines  --no-create-info --no-data --no-create-db --skip-opt 특정DB명 > 함수프로시져트리거.sql 

(예) mysqldump -uroot -ppassword --routines --no-create-info --no-data --no-create-db --skip-opt northwind > northwind_only_sp_trigger_function.sql

이렇게 트리커 프로시져 함수만 백업한 경우는 반드시 Data와 테이블 스키마를 별도로 백업 받아 줘야 합니다




출처 - http://bizadmin.tistory.com/entry/MySQL-%EB%B0%B1%EC%97%85-%EB%B0%8F-%EB%B3%B5%EA%B5%AC%ED%95%98%EA%B8%B0

[MYSQL]DB복구(innodb)

Database 2016.09.19 14:49 Posted by 애플자라

중요(장애시) : MYSQL이 죽은 상태에서 해야 씽크가 맞음!! 


ibdata 파일과 함께 테이블 정보가 있는 frm 파일준비 방법은 다음과 같습니다.

  1. MYSQL을 새로 설치한 후에 복구를 원하는 계정,database을 만듭니다.(ibdata, frm 사전백업)
  2. 이전 폴더에 database 이름으로 되어 있는 폴더를 그대로 새로운 폴더에 집어 넣습니다.
    해당 폴더에는 해당 database의 테이블 정보가 들어 있는 frm 파일들이 있습니다.
  3. C:\ProgramData\MySQL\MySQL Server 5.5\data 하단폴더 전체
  4. o    The .frm file for each InnoDB table.

    o    The tablespace files.

    o    The InnoDB log files.

    o    Any InnoDB configuration options, such as those stored in option files. The configuration options are required in case you need to restore the backup from scratch. In that case, you'll need to know how the tablespace and log files were created originally.

  5. 윈도우 기준으로 Mysql 설치 폴더/my.ini 이하 my.ini 파일에 innodb_force_recovery라는 명령어를 추가 시켜 주고 서비스를 재시작 하면 강제 복구 모드로 설정된다.
    예) innodb_force_recovery = 1 ~ 6
  6. 그리고 다시 실행하면 잘 됩니다.

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


재설치 설치 오류시(삭제)


제어판 Mysql삭제

C:\Program Files\MySQL 폴더삭제

C:\Users\Administrator\AppData -> MySql 검색후 전부삭제

C:\ProgramData\MySQL\MySQL Server 5.5 폴더삭제

D:\MySQL Datafiles 폴더삭제


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


윈도우 기준으로 Mysql 설치 폴더/my.ini 이하 my.ini 파일에 innodb_force_recovery라는 명령어를 추가 시켜 주고 서비스를 재시작 하면 강제 복구 모드로 설정된다.
예) innodb_force_recovery = 1
숫자는 1에서 6까지 사용 가능하며, 1이 가장 안전하고 좋은 복구 모드이고, 1에서 복구가 안된다면 1~6까지 순차적으로 값을 바꿔가야 한다.
자세한 내용은 http://www.mysqlkorea.co.kr/sub.html?mcode=manual&scode=01&m_no=21875&cat1=14&cat2=422&cat3=442&lang=k 를 참고 하길 바란다.

위와 같이 프로그램을 시작하면 서비스가 정상적으로 시작하게 되며 그후에 dump로 파일을 백업 시킬 수 있다.
덤프 명령어는 Mysql설치폴더/bin에서 mysqldump -u계정명 -p 데이터베이스명 > 백업할파일.sql 로 하면 백업이 되고
반대로 mysqldump -a -u계정명 -p 데이터베이스명 < 백업할파일.sql 이와 같이 하면 복원이 된다.

만약 1이 아닌 복구 모드로 실행시 파일이 전체적으로 백업되지 않았을 경우 복구 모드에 우선순위를 높여 select 명령어로 검사후 csv파일로 저장
저장 후 벌크 인서트로 파일 다시 불러옴
벌크는 http://kr.blog.yahoo.com/freud19390723/79 를 참고

복원이 완료 된 후에는 innodb_force_recovery = 1를 삭제후 프로그램 재시작을 한다.

간단히 설명하자면 파일이 손상된 경우
1. 서비스 시작 중지
2. my.ini파일에 innodb_force_recovery = 1~6 값 설정 후 저장
3. 서비스 시작
4. 서비스 시작시 정상 동작이면 6. 아니면 5.
5. 정상 동작이 아닐경우 다른 복구 모드를 선택하여 서비스 시작
6. 정상 동작일 경우 mysqldump로 파일 백업
7. 높은 우선순위로 변경하여 파일로 저장후 벌크 인서트로 다시 넣음
8. 복구 모드 삭제 후 서비스 재시작


출처 - http://discafe.tistory.com/entry/MYSQL-InnoDB-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B3%B5%EA%B5%AC-%EB%B0%A9%EB%B2%95

[ORACLE]CLOB DATA Export Excel(DBMS_LOB.SUBSTR)

Database 2016.03.28 15:09 Posted by 애플자라

CLOB 데이터가 원하는데로 안나와서 일단 미련하게 추출; 


 SELECT 

   BOARD_SEQ,

         SEQ,

         TITLE,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 1)  AS CONTENTS1,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 2001)     AS CONTENTS2,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 4001)     AS CONTENTS3,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 6001)     AS CONTENTS4,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 8001)     AS CONTENTS5,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 10001)    AS CONTENTS6,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 12001)    AS CONTENTS7,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 14001)    AS CONTENTS8,

         DBMS_LOB.SUBSTR(CNTNT, 2000, 16001)    AS CONTENTS9

         --dbms_lob.getlength(CNTNT) -- 15801

    FROM TBD_BOARD

   WHERE BOARD_SEQ = '3'

ORDER BY SEQ DESC

[MSSQL] MSSQL2000 DB백업본 복구하기

Database 2010.10.09 13:50 Posted by 애플자라


RESTORE FILELISTONLY
    FROM DISK = 'D:\ems_monitor_backup_20070226'

RESTORE DATABASE ems_monitor
    FROM DISK = 'D:\ems_monitor_backup_20070226'
    WITH MOVE 'ems_monitor_Data_01' TO 'D:\MSSQL\ems_monitor_Data_01_Data.NDF',
    MOVE 'ems_monitor_Log_01' TO 'D:\MSSQL\ems_monitor_Log_01_Log.LDF',
    stats = 10

exec sp_helpdb ems_monitor

exec sp_dbcmptlevel 'ems_monitor', '90'

DBCC SHRINKDATABASE (ems_monitor)
GO

[ORACLE] 자동 증가 컬럼(Sequence) 사용하기

Database 2008.05.07 11:32 Posted by 애플자라

Unique Key를 생성하는 방법은 DBMS마다 차이가 있다.
MS-SQL은 IDENTITY를, MySQL은 auto_increment와 같이 쉽게 사용할 수 있는 방법이 있는데 오라클에서는 Sequence를 사용하여 다음과 같이 유사하게 구현할 수 있다


1. 자동증가컬럼을 사용하고자 하는 MYTABLE테이블을 생성한다.


       CREATE TABLE MYTABLE
               (ID NUMBER, NAME VARCHAR2(20));


2. CREATE SEQUENCE 라는 문장을 사용하여 SEQ_ID라는 이름의 시퀀스를 만든다.


       CREATE SEQUENCE SEQ_ID INCREMENT BY 1 START WITH 10000;

      -- INCREMENT BY 1 : 증가값은 1
      -- START WITH 10000 :  10000부터 증가


3.  테이블에 데이터 입력시에는 NEXTVAL이라는 슈도 칼럼(Pseudo-column)을 이용하여 시퀸스를 사용한다.


       INSERT INTO MYTABLE VALUES( SEQ_ID.NEXTVAL, '홍길동');

       -- CURRVAL : 현재 값을 반환 합니다. .
       -- NEXTVAL : 현재 시퀀스값의 다음 값을 반환 합니다.

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


* Sequence 구문


CREATE SEQUENCE sequence_name
       [START WITH n]
       [INCREMENT BY n]
       [MAXVALUE n | NOMAXVALUE]
       [MINVALUE n | NOMINVALUE]
       [CYCLE | NOCYCLE]


* START WITH
시퀀스의 시작 값을 지정합니다. n을 1로 지정하면 1부터 순차적으로 시퀀스번호가 증가 합니다.


* INCREMENT BY
시퀀스의 증가 값을 말합니다. n을 2로 하면 2씩 증가합니다.
START WITH를 1로 하고 INCREMENT BY를 2으로 하면 1, 3, 5,7,..
이렇게 시퀀스  번호가 증가하게 됩니다.


* MAXVALUE n | NOMAXVALUE
MAXVALUE는 시퀀스가 증가할수 있는 최대값을 말합니다.
NOMAXVALUE는 시퀀스의 값을 무한대로 지정합니다.


* MINVALUE n  | NOMINVALUE
MINVALUE는 시퀀스의 최소값을 지정 합니다.
기본값은 1이며, NOMINVALUE를 지정할 경우 최소값은 무한대가 됩니다


[사용규칙]


* NEXTVAL, CURRVAL을 사용할 수 있는 경우
   - subquery가 아닌 select문
   - insert문의 select절
   - insert문의 value절
   - update문의 set절


* NEXTVAL, CURRVAL을 사용할 수 없는 경우
   - view의 select절
   - distinct 키워드가 있는 select문
   - group by, having, order by절이 있는 select문
   - select, delete, update의 subquery
   - create table, alter table 명령의 default값


[수정과 삭제]


ALTER SEQUENCE sequence_name
       [INCREMENT BY n]
       [MAXVALUE n | NOMAXVALUE]
       [MINVALUE n | NOMINVALUE]
       [CYCLE | NOCYCLE]


START WITH는 수정할수 없습니다.
START WITH 절이 없다는 점을 빼고는 CREATE SEQUENCE와 같습니다.


DROP SEQUENCE sequence_name


자료참고 : http://www.oracleclub.com/

INSERT INTO mysql.user(User, Host, Password, ssl_cipher, x509_issuer,
x509_subject
) VALUES('username', '%', Password('password'), '', '', '');

[ORACLE] 오라클 죽이고 살리고 @_@;;

Database 2007.08.30 00:05 Posted by 애플자라

오라클시작과종료 ::

① 오라클 데이터베이스 시작하기
Database 의 시작과 종료는 반드시!! Oracle 계정으로 수행해야 합니다.
[root@ora9 /]# su oracle
[oracle@ora9 /]$ source $HOME/.bash_profile
oracle 계정으로 로그인 후 oracle 계정의 환경설정을 reload 합니다.
(처음부터 오라클 계정으로 로그인 하였다면 이 과정은 불필요합니다.)
[oracle@ora9 /]$ sqlplus /nolog
SQL>connect / as sysdba
SQL> startup
오라클 데이터베이스를 시작하고 종료하기 위해서는 OS에서의 인증과 암호 파일을 생성하는
툴인 orapwd를 통해야 한다. 그리고 sys 스키마의 권한인 sysdba 권한과 public 스키마
권한인 sysoper 권한의 특별한 시스템 권한을 소유한 사용자이어야 한다.
· sysdba : 데이터베이스 시작/종료, 아카이브 및 복구 작업, ALTER DATABASE OPEN,
MOUNT, BACKUP, CHANGE, CHARACHER SET 절의 명령어 실행
· sysoper : 데이터베이스 시작/종료, 아카이브 및 복구 작업, ALTER DATABASE OPEN,
MOUNT, BACKUP 절의 명령어 실행
SQL> SELECT * FROM v$version;
현재의 오라클 데이터베이스 인스턴스의 버전 확인하기
② 오라클 데이터베이스 종료하기
[oracle@ora9 /]$ sqlplus /nolog
SQL> connect / as sysdba
SQL> shutdown immediate
③ oratab 파일 편집하기
오라클 데이터베이스를 /etc/rc.d/ini.d에 스크립트로 설정하여 자동으로 실행하게 하여봅시다.
[root@ora9 /]# vi /etc/oratab
다음 부분을 수정 ([SID], [ORACLE_HOME], [자동실행/종료 플래그]로 구성되어 있습니다.)
ora9:/opt/oracle/product/9.2.0.1.0:N e ora9:/opt/oracle/product/9.2.0.1.0:Y
④ Parameter 파일 링크 (xxxxxxxxxxxx은 일정치 않은 숫자 입니다.)
[root @ora9 /]# cp /opt/oracle/admin/ora9/pfile/initora9.ora.xxxxxxxxxxxx \r
/opt/oracle/product/9.2.0.1.0/dbs/initora9.ora
⑤ /etc/rc.d/init.d 에 등록하기
oracle9i 스크립트를 /etc/rc.d/init.d 에 복사합니다.
[root@ora9 /]# cp /usr/local/src/oracle9i /etc/rc.d/ini.t/
oracle9i에 실행권한을 부여합니다.
[root@ora9 /]# chmod 755 /etc/rc.d/init.d/oracle9i
실행수준 2,3,4에 해당하는 데이테베이스를 실행시키기 위하여 심볼릭 링크를 한다.
[root@ora9 /]# ln -s /etc/rc.d/init.d/oracle9i /etc/rc.d/rc2.d/S99oracle9i
[root@ora9 /]# ln -s /etc/rc.d/init.d/oracle9i /etc/rc.d/rc3.d/S99oracle9i
[root@ora9 /]# ln -s /etc/rc.d/init.d/oracle9i /etc/rc.d/rc4.d/S99oracle9i
시스템을 재부팅하거나, 재실행 할 때에 데이터베이스를 중지하기 위하여 심볼릭 링크를 한다.
[root@ora9 /]# ln -s /etc/rc.d/init.d/oracle9i /etc/rc.d/rc0.d/K01oracle9i
[root@ora9 /]# ln -s /etc/rc.d/init.d/oracle9i /etc/rc.d/rc6.d/K01oracle9i
Oracle Database를 재시작 시켜본 후, LISTENER 데몬이 띄워져 잇는지 확인합니다.
[root@ora9 /]# /etc/rc.d/init.d/oracle9i restart
[root@ora9 /]# ps ax | grep LISTENER

리스너 간략정리

오라클 클라이언트에서 서버에 접속하기 위해서는 오라클 서버에 리스너(LISTENER)가 실행되어 있어야 됩니다.

◈ 리스너(Listener)란?
- 오라클 리스너는 네트워크를 이용하여 클라이언트에서 오라클 서버로 연결하기 위한
오라클 네트워크 관리자 입니다.
- 오라클에서 네트워크를 통한 연결은 모두 리스너가 담당하며 리스너와 연결되기
위해서는 클라이언트에 오라클 NET8이 설치되어 있고 이를 통해 오라클 서비스명이라는 것을
만들어 접속해야 합니다.
- 오라클 서버에서 리스너를 시작시켜줘야 클라이언트들이 접속할 수 있습니다.
- lsnrctl명령어로 리스너를 관리 할 수 있습니다.

-- 리스너 시작하기
C:>lsnrctl
LSNRCTL for 32-bit Windows: Version 8.1.6.0.0 - Production on 01-MAY-2002 23:34:57
(c) Copyright 1998, 1999, Oracle Corporation. All rights reserved.
LSNRCTL에 오신 것을 환영합니다. 정보를 보시려면 "help" 를 입력하십시오.
-- start를 입력하면 리스너가 시작됩니다.
LSNRCTL>start

-- 리스너 관련 명령어들
시작시 : LSNRCTL> start
멈출 때 : LSNRCTL> stop
재시작시 : LSNRCTL> reload
서비스 상태보기 : LSNRCTL> status
명령어 보기 : LSNRCTL> help


오라클 서버/클라이언트간의 네트워크 설정을 하기위해서는 서버에서는 listener.ora파일을 그리고
클라이언트에서는 tnsnames.ora파일을 설정해 주어야 합니다.

◈ listener.ora
- 오라클 서버에서 클라이언트의 요청을 듣고, 클라이언트와의 통신을 환경을 설정하는 파일입니다.
- 오라클 서버에 존재하며, 오라클 클라이언트에서 서버로 접속할 때 필요한 프로토콜 및 포트정보등을 설정하는 파일 입니다.
- 프로토콜은 주로 TCP/IP가 많이 사용됩니다.

◈ tnsnames.ora
- 오라클 Client측에서 오라클 서버로 접속할때 필요한 프로토콜 및 포트번호, 서버주소, 인스턴스등을 설정해주는 파일로서 클라이언트에 위치 합니다.

* 참고
- listener.ora와 tnsnames.ora파일의 위치는 ORACLE_HOME/network/ADMIN/에 존재 합니다.
- linstener.ora와 tnsnames.ora는 둘다 오라클 설치시 Net8 configuration 작업을 해주면 생성이 됩니다.




개인적의견:DB죽일때 abort로 죽이지마시고 immiate로 죽이세욤.. 무슨일이 일어날찌 모름 --
그리고 안죽으면 물려있는 프로세스와 세션 다 죽이고 하삼...




출쳐+_+:http://cafe.naver.com/foryouweb.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1207

 

오라클 DB의 리스너 포트 변경하는 법

근데 오라클 메뉴얼에 있다는게 함정....


먼저 lsnrctl stop 으로 리스너를 중지합니다
그리고 listener.ora에서 1521 포트를 변경하고자하는 포트로 변경합니다.


LISTENER =
   (DESCRIPTION_LIST =
      (DESCRIPTION =
         (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
         (ADDRESS = (PROTOCOL = TCP)(HOST = DB서버호스트네임 or ip)(PORT = 1523))
      )
   )


이렇게 설정해주고 나서 lsnrctl start 명령으로 재시작 합니다.


오라클로 접속한 다음에


$ sqlplus / as sysdba

SQL> ALTER SYSTEM SET LOCAL_LISTENER = "(ADDRESS=(PROTOCOL=TCP)(HOST=DB서버호스트네임 or ip)(PORT=1523))";

SQL> ALTER SYSTEM REGISTER;


lsnrctl status 명령과 netstat -nlp | grep 1523 으로 확인해보면 정상 변경이 확인 될 겁니다.

 

출처 - http://db.necoaki.net/87