[Mysql] Table 백업/풀기

DB 2010. 5. 18. 21:58


1. 백업
mysqldump -u[사용자계정이름] -p [DB명] [테이블명] > [백업파일]
예) mysqldump -uroot -p platform dbprop_oraclelink > dbprop_oraclelink.sql

2. 풀기

mysql -u[사용자계정이름] -p [DB명] < [백업파일]
mysql -uroot -p platform_beta < dbprop_main.sql

'DB' 카테고리의 다른 글

ORA-01013  (0) 2010.10.13
[Mysql] skip-name-resolve 옵션  (0) 2010.06.13
MSSQL의 jdbc url에 DB 이름(DB명, DB name)이 없는 경우에 대한 설명  (0) 2010.05.13
[mysql] mysql.sock 위치 확인  (0) 2010.03.09
Mysql db replication 구성  (0) 2010.02.10
Posted by '김용환'
,

 

MSSQL mysql oracle과 달리 DB 이름이 jdbc url에 없어도 잘 붙고 동작을 합니다.

 

예를 들자면, 현재 특정 웹 서비스에서 DB MSSQL를 쓰고 있습니다. 이 때, DB명없는 jdbc url을 가지고 있습니다.

Jdbc:jtds:sqlserver://1.1.1.1:1433;sendStringParam……

 

MSSQL 로 접근하는 DB 계정명을 가지고 여러 DB를 접근한다는 것을 의미하기 때문에 편하게 사용한다고 합니다.

, 오라클이나 mysql에서는 (특정 DB, 특정 계정)이라는 개념이 있었는데, mssql (특정 DB, 특정 계정) 뿐 아니라 (여러 DB, 특정 계정)의 개념이 있다는 것을 알았습니다..^^

지인들에게 물어보니. 좋은 대답을 해줍니다.

다른 RDBMS 와 비교해서 MSSQL SYBASE 'DB' 개념은 물리적인 단위보다는 논리적인 성격이 강합니다.

Active Directory 기반의 인증을 지원하다보니 하나의 계정을 여러 DB에서도 사용할 수 있어야 하고, 그러다보니 MSSQL이 저런 구조를 가지게 된 것입니다. 사실 오라클도 LDAP 기반의 인증을 사용하면 마찬가지라고 합니다.

오라클의 경우 인스턴스 사이의 구분이 엄격해서, 다른 DB, 다른 인스턴스는 물리적으로도 다른 곳에 위치한다고 생각합니다. DB Link가 그 해답입니다.



출처 : http://blog.ohmynews.com/icorea77/239068

◈ DB Link (오라클 원격DB 연결)

현재 접속되어 있는 DB에서 원격으로 다른 곳의 DB에 연결하여 사용한다.
기본적으로 오라클은 dblink를 사용하면 세션 연결이 지속 되기 때문에,
로컬DB의 연결을 끊거나, commit/rollback을 하여 세션을 끊어야 한다.

[사용방법]
CREATE [PUBLIC] DATABASE LINK <link_name>
       CONNECT TO <user> IDENTIFIED BY <password>
       USING '<service_name>';

[예 1] tnsnames에 원격DB 설정이 되어있는 경우
create public database link testlink
  connect to scott identified by tiger
using 'testdb';


[예 2] tnsnames에 원격DB 설정이 되어있지 않은 경우
create public database link testlink
  connect to scott identified by tiger
  using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.2)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TESTDB)))';

[DB Link 전체보기]
select * from all_db_links;

[사용 1] 단순조회
select * from emp@testlink;

[사용 2] 로컬DB와 원격DB의 JOIN
select t.*, s.dname
  from dept s, emp@testlink t
where t.deptno = s.deptno;

[사용 3] 원격 프로시져/함수 호출
<procedure_name>@<database_link>(<parameters>);




 

'DB' 카테고리의 다른 글

[Mysql] skip-name-resolve 옵션  (0) 2010.06.13
[Mysql] Table 백업/풀기  (0) 2010.05.18
[mysql] mysql.sock 위치 확인  (0) 2010.03.09
Mysql db replication 구성  (0) 2010.02.10
Mysql 물리적인 서버 이동 작업 History  (0) 2010.02.10
Posted by '김용환'
,


mysql 실행하다가 /tmp/mysql.sock이 없다고 DB 접속하지 못할 수 있다.
그때는 아래와 같이 mysql.sock 파일의 위치를 확인한다.

netstat -an | grep mysql

그리고, 실행한다.

./mysql -uroot -p --socket=위치.../mysql.sock
Posted by '김용환'
,

Mysql db replication 구성

DB 2010. 2. 10. 12:05



DB는 master(101), slave(102) 이렇게 구성하였다.

1. Replication 구성 
기본적으로 데이터가 insert되지 않는 상황에서 작업하면 엄청 빠르다.
하지만, 난 두 서버의 데이터를 맞춰놓았다. 물리적 서버 이동해야 되서.. 휴..
처음부터 디스크 용량 큰거 맞춰놓고 mysql 쓰는게 편하다...ㅠㅠ

(1) Master
  <my.conf 확인>
  server-id       = 1
 
  <Slave에서 Replication할 계정 생성>
mysql> create user repl identified by 'replx123'
mysql> grant replication slave on *.* to 'repl'@'slave 102 address' identified by 'replx123';

   <master log file과 position 확인 - Slave에서 사용>
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000016 | 10596158 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


(2) Slave
  <my.conf 확인>
# Replication setting
server-id       = 2

  <mysql restart>
  ps -ef | grep mysqld
  kill -9 데몬 id
   ./mysqld_safe &
   
  <change master 확인>
mysql> change master to master_host='master ip address', master_user='repl', master_password='replx123', master_log_file='mysql-bin.000016', master_log_pos=10596158;

  <Slave 쓰레드 기동>
mysql>  start slave

  <Slave 로그 확인 - tail  ../data/호스트파일.err >
100210 11:17:02 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000016' at position 10596158, relay log '/mysql/data/mntdbs102-relay-bin.000003' position: 98
100210 11:17:02 [Note] Slave I/O thread: connected to master 'repl@master-ip address:3306',  replication started in log 'mysql-bin.000016' at position 10596158

 

 

Posted by '김용환'
,

1. 작업이유

기존 mysql DB의 하드디스크 용량 부족으로 인한 물리적 서버 DB 이전

 

2. 작업 내용 (일반적으로 하는 mysql DBA가 하는 작업과 동일)

140G에 달하는 데이터 이관작업 시간은 14시간 소요

 - Mysql 데이터를 덤프 뜨는데, 4시간

    용량 부족으로 네트웍 덤프 (./mysqldump -h<ipaddress> -umonitor -p monitor > monitor.dump)  

- 덤프 뜬 Mysql 데이터를 Master Mysql 에 저장하는 데 4시간 (정확하게 3 50분 소요)

   ./mysql -uroot -p --socket=/tmp/mysql.sock monitor < monitor.dump

- Slave Mysql 에 저장하는 4시간.

- 뻘 짓 (rsync로 하면 데이터 정합성에 문제가 있는지. 정상적이지 않음. 에러 뜸) 2시간

 

3. 작업를 통해서 느낀 점 / 할 일

데이터 이전을 빨릴 할 수 있는 툴이 있으면 좋겠음. 자바 멀티쓰레드를 이용하여 개발할지 고민중..

- 비교자료 있음

http://www.softwareprojects.com/resources/programming/t-how-to-move-copy-a-live-mysql-database-and-what-1257.html

'DB' 카테고리의 다른 글

[mysql] mysql.sock 위치 확인  (0) 2010.03.09
Mysql db replication 구성  (0) 2010.02.10
SQL query timeout이 나거든..  (0) 2009.10.29
테이블 구조 및 복제하기  (0) 2009.10.23
오라클의 객체 정보(procedure) 파악하기  (0) 2009.10.20
Posted by '김용환'
,

SQL query timeout이 나거든..

DB 2009. 10. 29. 10:27

이 두개의 값을 확인하기~

queryTimeout
maxwait

<property name="queryTimeout" value="1800"/>
<property name="maxWait" value="30000"/>

Posted by '김용환'
,

테이블 구조만 복사하기  (오라클/mysql)

create table (새테이블명) as select * from (소스테이블명) where 1=0;

테이블 복제하기

create table (새테이블명) as select * from (소스테이블명)
Posted by '김용환'
,


http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2063.htm
오라클의 객체(프로시저...)를 보기 위해서는 다음의 테이블 ALL_SOURCE 을 이용하면 된다.


참조 : http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2063.htm

ALL_SOURCE

ALL_SOURCE describes the text source of the stored objects accessible to the current user.

Related Views

  • DBA_SOURCE describes the text source of all stored objects in the database.

  • USER_SOURCE describes the text source of the stored objects owned by the current user. This view does not display the OWNER column.

Column Datatype NULL Description
OWNER VARCHAR2(30) NOT NULL Owner of the object
NAME VARCHAR2(30) NOT NULL Name of the object
TYPE VARCHAR2(12)   Type of object: FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER, TYPE, TYPE BODY
LINE NUMBER NOT NULL Line number of this line of source
TEXT VARCHAR2(4000)   Text source of the stored object

'DB' 카테고리의 다른 글

SQL query timeout이 나거든..  (0) 2009.10.29
테이블 구조 및 복제하기  (0) 2009.10.23
Statement, PreparedStatement 성능 비교  (0) 2009.08.13
Delete와 Truncate의 차이점  (0) 2009.07.23
Oracle Client 10g 무한 루프 현상  (0) 2009.07.22
Posted by '김용환'
,


http://www.koug.net/xe/?mid=oracle_tip&page=10&document_srl=3644
http://www.javaservice.net/~java/bbs/read.cgi?m=devtip&b=jdbc&c=r_p&n=1061521652
http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html



'DB' 카테고리의 다른 글

테이블 구조 및 복제하기  (0) 2009.10.23
오라클의 객체 정보(procedure) 파악하기  (0) 2009.10.20
Delete와 Truncate의 차이점  (0) 2009.07.23
Oracle Client 10g 무한 루프 현상  (0) 2009.07.22
Mysql 테이블 복제 하기  (0) 2009.07.20
Posted by '김용환'
,

Delete와 Truncate의 차이점

DB 2009. 7. 23. 10:13
Posted by '김용환'
,