'DB'에 해당되는 글 3건

SELECT A.SESSION_ID SID,
B.SERIAL# SERIAL_NO,
A.OS_USER_NAME OS_USER_NAME,
A.ORACLE_USERNAME ORACLE_USERNAME,
B.STATUS STATUS
FROM V$LOCKED_OBJECT A, V$SESSION B
WHERE A.SESSION_ID = B.SID;

SELECT *
  FROM V$LOCKED_OBJECT;

ALTER SYSTEM KILL SESSION 'SID, SERIAL_ID';
블로그 이미지

마크제이콥스

초보 개발자의 이슈및 공부 내용 정리 블로그 입니다.

,

dblink

DB/MSSQL 2019. 4. 2. 15:59

dblink


<DB Link순서> 


1. Oracle Client 설치 및 Oracle Net Service Name 등록 하기 


Oracle에 접속하기 위해서는 Oracle client를 설치하고 접속하고자 하는 Oracle DB에 대한 정보를 등록해줘야 한다. 이 과정에서 ODBC Data Source Name과 비슷한 역할을 하는Oracle Net Service Name을 등록하게 된다. 설치 및 ODBC Data Source Name등록에 대한 설명은 Oracle client 설치 가이드를 참고 하기 바란다. 


2. Linked server 등록하기 


Linked server name방식으로 작업을 수행하기 위해서는 Enterprise Manager에서 Linked server를 설정하거나 T-SQL에서 Sp_addLinkedServer, Sp_addLinkedSrvLogin, Sp_serverOption, Sp_dropServer 등을 이용해서 설정하면 된다. 각 SP에 대한 자세한 설명은 BOL(온라인설명서)를 참조하기 바라며, 아래는 Linked server를 생성하는 간단한 예이다. 


(1) Linked server 생성하기 


  sp_addlinkedserver [ @server = ] 'server' 

    [ , [ @srvproduct = ] 'product_name' ] 

    [ , [ @provider = ] 'provider_name' ] 

    [ , [ @datasrc = ] 'data_source' ] 

    [ , [ @location = ] 'location' ] 

    [ , [ @provstr = ] 'provider_string' ] 

    [ , [ @catalog = ] 'catalog' ] 




예) EXEC sp_addlinkedserver  'JYOra817',  'Oracle',  'MSDAORA',  'JY817' 


- JY817이라는 Oracle Net Service Name으로 등록된 Oracle데이터베이스를 JYOra817이라는 이름의 Linked server로 등록한다. 


(2) Login 생성하기 


sp_addlinkedsrvlogin [ @rmtsrvname = ] 'rmtsrvname' 

    [ , [ @useself = ] 'useself' ] 

    [ , [ @locallogin = ] 'locallogin' ] 

    [ , [ @rmtuser = ] 'rmtuser' ] 

    [ , [ @rmtpassword = ] 'rmtpassword' ] 


  예) EXEC sp_addlinkedsrvlogin 'JYOra817', 'FALSE', NULL, 'scott', 'tiger' 


- JYOra817이라는 Linked server에 scott/tiger라는 아이디와 패스워드를 이용해서 로그인하는 정보를 등록한다. 


3. Linked server를 이용한 QUERY수행하기 


(1) OPENQUERY() 사용하기 


앞서 생성한 Linked Sever를 이용해서 Query를 수행하고자 할 경우 OPENQUERY()라는 함수를 이용하는 방법이 있으며 구문은 아래와 같다. 


OPENQUERY ( linked_server , 'query' ) 


OPENQUERY를 사용하는 예이다. 

- select empno,ename,sal from OPENQUERY ( JYOra817 , 'select empno,ename,sal from scott.emp' ) 





위의 순서에 따라서 Oracle 클라이언트를 설치하고. Oracle로 접속해서 상대쪽 Oracle 정보를 Select하는것은 성공을 했습니다. 


Oracle 넷 매니저로 등록한 거라서 tnsnames.ora에도 연결할 서버 정보가 나와있습니다 


그런데, 이상하게 openquery로 질의를 날리면 계속 시간만 잡고 전혀 실행이 되질 않습니다. 


혹시나 권한이 없는가 해서 admin 계정 빌려서 접속했는데, 이번에는 mssql server 엔터프라이즈 관리자에서 연결된 서버 확인하자마자 위처럼 계속 시간만 잡아먹고 실행이 전혀 되지 않았습니다. DB가 아예 뻗어버리더군요;; 


방화벽 문젠가 싶어서 저희쪽과 상대방 서버쪽 방화벽을 다 확인해 보았는데도, Mssql-Oracle쪽은 나간 로그나 차단된 로그 자체가 존재하질 않습니다. Oracle로 상대박 Oracle 접속할 때는 허용되거나 차단된 정책이 다 나오는데.. 


Oracle 클라이언트 외에도 여러 버전이 설치가 되어있어서 그런건가요? 


Providename = OraOLEDB.Oracle 로 했는데, 제가 어떤 설정을 잘못한 것인지 알고 싶습니다. 

#T=dblink : mssql 2008 -> oracle 11g 테스트 완료

EXEC master.dbo.sp_addlinkedserver @server = N'test', @srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc="N'ORCL'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'test',@useself=N'False',@locallogin=NULL,@rmtuser=N'scott',@rmtpassword='1'

 


EXEC master.dbo.sp_serveroption @server=N'test', @optname=N'collation compatible', @optvalue=N'true'

GO

'DB > MSSQL' 카테고리의 다른 글

[MSSQL] 날짜 형식 맞추기  (0) 2022.04.21
dblink3  (0) 2019.04.02
dblink2  (0) 2019.03.22
페이지 쿼리2  (0) 2019.03.22
페이지 쿼리  (0) 2019.03.22
블로그 이미지

마크제이콥스

초보 개발자의 이슈및 공부 내용 정리 블로그 입니다.

,

DB 백업 및 복원

DB/MYSQL 2019. 3. 4. 09:24

DB 백업 및 복원    


1. DB 전체 백업/복구


일반적으로 DB를 통째로 백업받고, 복원하는 방법은 사실 인터넷 검색을 통해서 쉽게 알수 있지만 전 매번 자주 사용하지 않아 까먹게 되서 이렇게 정리 하게 되었습니다.


1) DB전체 백업 : mysqldump -u 사용자명 -p DB명 > 백업DB명.sql

2) DB전체 복원 : sql -u 사용자명 -p DB명 < 백업DB명.sql



2. 특정 TABLE만 백업받기


mysqldump -u 사용자명 -p DB명 TABLE명 > 백업DB명.sql


이런식으로 덤프 명령을 사용해요 특정항 DB안에 있는 테이블만 지정을 해서 백업이 가능합니다.

특정 TABLE만 백업 받는경우는 저같은 경우 해당 테이블은 데이터을 지워야 하거나 테이블의 컬럼및 정보등을 변경했을때 혹시모를 일에 대비해 백업을 하는 경우가 많습니다.


3. 특정 TABLE만 복원하기


백업받은 테이블을 복구하는 방법은 아래와 같습니다.


mysql -u 사용자명 -p DB명 < 백업DB명.sql


-> 이 명령으로 백업받은 테이블 데이터를 복원하기 전에 반드시 복원하고자 하는 테이블을 먼저 삭제해야 합니다!!


* drop table TABLE명;  //* 이런식으로 테이블을 삭제한 다음에 위의 명령을 사용해야 에러없이 복원됩니다.



MYSQL 기본 명령어 : 대소문자 구분 없습니다.


- 데이터베이스 만들기

mysql> create database DB명;


- 데이터베이스 삭제하기

mysql> drop database DB명;


- 데이터베이스 보기

mysql> show databases;


- 테이블 보기

mysql> show tables;


- 테이블 만들기

mysql> create table 테이블명;


- 테이블 삭제

mysql> drop table 테이블명;


- 테이블 내용 보기

mysql> select * from 테이블명;


테이블 이름 변경

mysql> alert table 예전테이블명 rename 새테이블명;


- 데이터베이스의 필드 정보보기

mysql> desc db;

'DB > MYSQL' 카테고리의 다른 글

PORT 변경  (0) 2019.03.04
MYSQL 일자별 백업  (0) 2019.03.04
MYSQL 암복호화  (0) 2019.03.04
mysql -u root -p  (0) 2019.03.04
function 예제  (0) 2019.03.04
블로그 이미지

마크제이콥스

초보 개발자의 이슈및 공부 내용 정리 블로그 입니다.

,