※ 방법 2가지를 이해해야함
① clone DB 로 데이터를 복구한 뒤에 network 인 dblink 로 연결 해서 데이터 옮기기
② export / import 를 수행해서 데이터를 옮기기
oracle 설치 후 할일
1. sys 비번 설정하기
2. oracle port 바꾸기
◎ Oracle Net Work
□ 접속절차
① 확인
② 요청
③ 요청
④ Connection
⑤ Sesseion
※ 최초접속에만 ② 적용하고 그다음 부터는 ② 생략
□ Client
Client 측에서는 tnsnames. ora 를 확인
tnsnames.ora : 접속하려는 oracle 서버에 대한 정보 를 적음
(SID , Port , 주소(ip, host name) 등의 정보)
□ Server
Server 쪽에는 listener.ora
(SID , Port , 주소(ip, host name) 등의 정보, 여려개의 Listener로 나눌 수 있음 )
※ oracle 과 Listener는 별개의 프로그램
※ 복구시에는 운영DB가 Clinent 가되고 CloneDB가 Server의 역할을 하게됨
※ port 는 program 별로 할당된 들어오는 문 ex) http:80 , oracle=1521
※ 1개의 Server에 실제로 oracle Instance를 여러개 실행해 놓고 할 수 있음
※ Listener
※ conectction & sesstion
□ window(oracle clinent program) → linux(oracle server) 실습
[Window Client ]
① 관리자 실행 setup Program 설치하기 (주의 할점은 관리자 선택)
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Oracle - OraClient11g_home1
② 설치 완료후 윈도우 → 모든프로그램→ OraClient11g_home1→ →구성 및 이전 툴
→ Net Configuration Assistant(관리자 권한 실행)
③ 설치 화면 나옴 1
사진
사진
- 이름 지정 방법구성, 다음
- 기본값대로 다음
- 완료화면
-------------
- 로컬 네트 서비스 이름 구성 다음
- 추가 다음
- 서비스 이름은 database 이름(SID)하고 같게 해야함 ★★
- TCP 다음
- oracle 서버 확인후에 호스트 이름에 ip 주소를 넣어줌, 포트 확인하기
- 테스트를 수행합니다 다음
④ [ Linux Server 설정] (리스너가 없습니다 경우)
① 콘솔 화면이 아닌 display 화면으로 가서 터미널 실행 후 export LANG=ko , netca
사진
사진
② Listener 구성
③ add 선택
④ 이름 선택
[oracle@server113 ~]$ cd /app/oracle/product/11g/network/admin/listener.ora 가 생겨야 함
⑤ [oracle@server113 admin]$ vi listener.ora
[내용 추가해줄것]
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = testdb)
(ORACLE_HOME = /app/oracle/product/11g)
)
)
⑥ 완료된 후에 consol 에서 lsnrctl 후 status , start listener , stop listener
③ 설치 화면 나옴 2
- 로그인문제의 경우 계정을 scott/tiger 로 바꿀것
- 네트 서비스이름도 testdb로 해줄것을 권장 (SID 와 같게해주기 쉽게 구분하기위해)
- 다른 네트 서비스를 구성하시겠습니까 아니오
- C:\app\stu\product\11.2.0\client_1\network\admin/tnsnames.ora 가 있어야함
사진
사진
⑤ 확인 하기 window cmd 에서 tnsping testdb
sqlplus scott/tiger@testdb
sqlplus sys/oracle@testdb as sysdba
※ 설정바뀌면 리스너 재시작 할것
※ 네트워크 설정이 Bridged 여야 되는듯= 같은 대역이여야 됨
※ 네트 서비스 : tnsnames.ora 설정되어 있는 접속하려는 db 정보
※ Listener : DB의 접속하기 위한 정보기 들어 있는 것 listener.ora
※ lsnrctl start listener2 : 번호 조심할것!!
◎ DB link
□ 개요
물리적인 DB server 2대를 연결하여 1개의 DB server 처럼 사용
※ 기존의 export/import 활용한 복구
※ DB LINK 를 활용한 복구
□ cloneDB 만들어서 DB link 연결 실습
개요: 장애가 발생한 운영DB 를 복사해서 Clone DB 에서 데이터를 복구 후에 db link 생성해서 운영 DB로 이동하기
[테이블 만들어 주기]
create table scott.ctest(
2 no number,
3 name varchar2(10),
4 address varchar2(10))
5 tablespace users;
[root 돌리기 ]
begin
for i in 1..100 loop
insert into scott.ctest
values(i, dbms_random.string('a',9),
dbms_random.string('b',9));
end loop;
commit;
end;
/
[조회하기]
select count(*) from scott.ctest;
COUNT(*)
----------
100
[시간 조회하기]
select to_char(sysdate,'YYYY-MM-DD:HH24:MI:SS') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2015-04-05:10:54:34
SQL> truncate table scott.ctest;
테이블이 잘렸습니다.
SQL> select count(*) from scott.ctest;
COUNT(*)
----------
0
SQL> alter system switch logfile;
시스템이 변경되었습니다.
SQL> /
시스템이 변경되었습니다.
SQL> /
시스템이 변경되었습니다.
SQL> /
시스템이 변경되었습니다.
SQL> /
시스템이 변경되었습니다.
SQL>
[복구는 알아서 할것 ㅋㅋㅋㅋ]
[Listner 연결하기]
운영 DB 를 Client 로 만들려면 tnsnames.ora 가있어야함
/app/oracle/product/11g/network/admin 위치에 만들어 줄것 (sample에서 복사하면 쉬움)
listener.ora (복구 Server에 대한 정보 )
tnsnames.ora (운영 DB (Clinent 쪽)에서 요청하는)
[oracle@server113 admin]$ lsnrctl start listener2
[ Clinet 에 설정된 net 서비스 실행하기]
[oracle@server113 admin]$ tnsping clonedb
[Clinet 에서 clone DB 로 연결하는 db link 생성]
□ 여러가지 짬뽕 장애
SQL> create tablespace test4
2 datafile '/app/oracle/oradata/testdb/test04.dbf' size 10M
3 autoextend on;
SQL> create temporary tablespace temp_test4
2 tempfile '/app/oracle/oradata/testdb/temp_test04.dbf' size 10M
3 autoextend on;
SQL> create user usera
2 identified by abc123
3 default tablespace test4
4 temporary tablespace temp_test4;
SQL> grant connect , resource to usera;
SQL> conn usera/abc123;
USERA>create table gogak
2 (no number ,
3 name varchar2(10),
4 address varchar2(20));
USERA>create table sangpum
2 (no number,
3 name varchar2(10),
4 qty number);
begin
for i in 1..1000 loop
insert into gogak values(i, dbms_random.string('A',10), dbms_random.string('K',10));
end loop;
commit;
end;
/
'ORACLE > Back & Recovery' 카테고리의 다른 글
12장 RMAN(BACKUP) (0) | 2015.04.24 |
---|---|
11장 FLASHBACK (0) | 2015.04.23 |
9장 무정지 상태에서 복구 (0) | 2015.04.21 |
8장 데이터 이동하기 2 (다못함) (0) | 2015.04.21 |
8장 데이터 이동하기 (0) | 2015.04.20 |