생계/Oracle2023. 2. 28. 14:24

오라클은 8i 에서부터 백업을 위해 rman 이라는 것을 처음 소개했다. 
백업과 복구가 보다 쉬워진다는 것이 오라클이 내세운 명분이다.
하지만 새로운 것을 다시 배워야 하기에 한동안 DBA 들에겐 외면받아왔다. 
그렇지만 본격적으로 오라클이 ASM 이라는 개념을 들고왔다.
그리고 이것은 rman 을 통해서만 백업이 가능해서 이제 DBA 들은 RMAN 을 반드시 익혀야 하는 현실이다. 

각설하고..

Recovery catalog DB 란

한마디로 rman 이 사용할 metadata 들을 저장한 db스키마 라고 생각하면된다. 
RMAN 을 사용하려면 백업과 복구를 위한 정보들을 저장할 공간이 필요하다.
별도로 CATALOG DB 를 설치하지 않아도 rman 사용에는 지장이 없다.
이 경우 controlfile 에 해당 정보들이 저장된다. 


Recovery catalog 가 담는 metadata types 은 어떤 것들인가

 1) datafile, archived redo log backup sets & backup pieces
 2) datafile copies
 3) archived redo logs and their copies
 4) db structure (tbs, datafiles)
 5) stored scripts
 6) rman config


Recovery catalog DB 사용의 이점

안써도 사용가능하지만 굳이 catalog db 를 사용해서 얻는 이점은 아래와 같다.
1) redundancy of controlfile
 =>  catalog db 를 쓴다고 controlfile 에 metadata 를 저장하지 않는 것은 아니다. 정보의 중복 저장이다. 
  이것이 이점이 될수 있을까 싶지만, 원본db 의 controlfile 이 삭제되었을때도 카탈로그에는 남아있는 장점이 있다.
  
** backup, restore, and crosscheck 같은 operation 발생시 metadata 가 변경이 된다. 
이때 순서는 언제나 target db controlfile 우선 update, 카탈로그db 는 후에 sync 된다. 

2) 모든 타겟 DB metadata 중앙관리화 
 => 여러 서버를 가진 경우 한곳에서 metadata 정보 관리하기 편함. 

3) longer metadata history
 => controlfile 에 저장할때 보다 더 긴 기간 정보 저장이 가능. 

4) stored script 사용
 => catalog 에서만 가능한 것. 한번 스크립트를 생성해서 재사용 가능. 아래에서 확인해보자


 * 아카이브로그를 지우는 script 를 생성해보자. 

CREATE SCRIPT DEL_ARCH
{
 crosscheck archivelog all;
 delete noprompt expired archivelog all;
 delete noprompt archivelog all completed before 'sysdate -1';
}

* 이번에는 global keyword 로 생성해보자. 

CREATE GLOBAL SCRIPT GLB_DEL_ARCH
COMMENT 'use when deleting arc log..'
{
crosscheck archivelog all;
  delete noprompt expired archivelog all;
delete noprompt archivelog all completed before 'sysdate -1';
}
* 아래 구문으로 실행해보자. 
RUN
{
EXECUTE SCRIPT GLB_DEL_ARCH;
}

카탈로그 디비에 해당 스크립트가 저장이 되고 이는 아래 뷰에서 확인이 가능하다. 
SELECT *
  FROM RC_STORED_SCRIPT
;
 

반응형
Posted by 돌고래트레이너
생계/백업복구2023. 2. 23. 17:09

전통적 테이블복구방식
recover table 명령
개념
undo, 해당 datafile, archive 을 자동 restore
dump로 떨구기

모니터링
어느시점의 백업을 쓰는가

어느시점의 아카이브를 적용중인가

-- rman table backup test
* archive mode
@testdb

1) setting 
rman target / 
backup database;

drop table oraadm.rman_test purge;
create table oraadm.rman_test(a int, b timestamp);

2) dml & arch

set time on

insert into oraadm.rman_test(a,b) values(1,systimestamp);
insert into oraadm.rman_test(a,b) values(2,systimestamp);
insert into oraadm.rman_test(a,b) values(3,systimestamp);
insert into oraadm.rman_test(a,b) values(4,systimestamp);
insert into oraadm.rman_test(a,b) values(5,systimestamp);

alter system switch logfile;
alter system switch logfile;
alter system switch logfile;

commit;

select count(*) from oraadm.rman_test;

select systimestamp from dual;

3) human error

insert into oraadm.rman_test(a,b) values(6,systimestamp);
insert into oraadm.rman_test(a,b) values(7,systimestamp);

-- human error
delete from oraadm.rman_test;

commit;

select count(*) from oraadm.rman_test;

4) restore & recover

backup database plus archivelog;

/* ##### init ora ###############
db_name=TESTDB
db_unique_name=AUX_TESTDB
compatible=19.0.0
db_block_size=8192
db_files=3000
diagnostic_dest=/oralog
_system_trig_enabled=FALSE
sga_target=2194M
processes=200
db_create_file_dest=+RECO_DG
log_archive_dest_1='location=+RECO_DG'
max_string_size=EXTENDED
############################## */

SET AUXILIARY INSTANCE PARAMETER FILE TO '/xxx/initAUX.ora'

recover table oraadm.rman_test
until time "to_date('2023-02-23 15:49:30','YYYY-MM-DD HH24:MI:SS')"
AUXILIARY DESTINATION '+RECO_DG'
DATAPUMP DESTINATION '/dawork/TESTDB/dpdump'
DUMP FILE 'exp_rman_test.dmp'
NOTABLEIMPORT;

-- monitoring
select
from v$backup files
where tag like

select
from v$archived log
where archived yes
  and completion time > sysdate 1



impdp oraadm/oraadm \
job_name=imp_aux_t
DUMPFILE='exp_rman_test.dmp'
remap_table=RMAN_TEST:RMAN_TEST2
LOGFILE='imp_test.log'
DIRECTORY=DATA_PUMP_DIR
CONTENT=all
TABLE_EXISTS_ACTION=REPLACE

col b for a40
select * from oraadm.rman_test2;












반응형

'생계 > 백업복구' 카테고리의 다른 글

오라클 백업 복구 방식  (0) 2023.02.03
Posted by 돌고래트레이너

## 2017.05.17 작성 


한적한 미국 남부에서 지내다가 뉴욕으로 오니 확 다른 분위기를 실감한다.  일단 차에 관련한 것만 내가 느낀바는...

- 운전매너

조금만 길에서 헤메거나 느리게 간다면 바로 뒤에서 인정사정없이 클락션을 울려댄다. 클락션으로 스트레스를 해소하는가 싶을정도로 크고 길게 울려댄다. 한국의 강남보다도 더 살벌한 분위기. 다른점이 있다면 한국은 옆으로 지나가면서 운전자가 누구인지 굳이 확인하고 인상을 쓰거나 소리를 지르고 가지만 여긴 그냥 지나간다는 것.
뉴욕의 이런 분위기가 꽤 낯설고 서글프게 느껴지는걸 보니 난 이미 미국 촌사람이 된거 같다.

- 열악한 주차 공간

대중교통이 발달해서 차가 필요 없는 뉴욕이지만, 그래도 인구가 많으니 많은 수의 사람들이 차를 소유하고 있다.
내가 있는 브루클린에서 주차를 할수 있는 방법은 아래 정도가 있는데.. (유료주차장은 비싸기도 하지만 거의 없어서 집근처에는 없다.)

1)개인차고
집에 garage 가 있으면 여기 파킹.

2)driveway parking
개인 garage 에서 도로까지의 길에 주차를 하기도 하는데 이를 driveway parking 이라고 부른다.
자기는 차고에 파킹하고 driveway 를 돈받고 다른사람에게 주차할수 있게 하는 곳도 봤다.

 

 

사진에서 처럼 골목을 지나가다 보면 집과 집 사이의 좁은 공간이 있는 집이 있다. 
첨엔 이 공간으로 차가 지나다닌다고 해서 거짓말인줄 알았는데 진짜로 차가 다니는 driveway 였다.
구조가 참 특이하다. 집 뒤로 차고가 있다.

3) storage parking

craigslist 를 잘 뒤져보면 parking/storage 가 있는데 돈받고 monthly 주차를 할수가 있다.
충격적이다. 왠만한 차고 가격으로 조지아에서 방 하나로 한달을 지낼 수 있다...

4)건물 내 주차장

위의 사진처럼 한국의 단독주택에 해당하는 개인 주택이 아니고 아파트 보단 작은 규모의 (3,4층) 한국으로 치면 빌라 건물이 있다. 내가 사는 곳 또한 이런 스탈. 건물내 주차장이 있어서 돈내고 이용 할 수 있다. 
내가 지내는 데는 monthly 로는 안되고 1년치 요금을 내는거 같다. landlord 랑 얘기해야하는 것 같아서 지금 렌트하는 사람이 신청하기를 주저함. 자꾸 복잡하다는 얘기만 하고 알아봐주기를 주저함..

** 내가 사는 곳은 집주인 따로 있고 그집을 렌트하는 사람이 있고 그가 방을 타인과 쉐어하고 있다. 정작 렌트하는 사람은 방이 아닌 거실에 파티션을 치고 살고 있다. 호주도 보통 유학생들이나 워홀러들은 이런식으로 많이 지냄
 

5) street parking

다른 지역은 모르겠는데, 브루클린의 많은 지역이 street parking 을 하고 있다. 나를 포함.
그냥 길가에 대면 되는데, 주의해야 할것은...
  - driveway 를 막지 말것
  - 주택가 No parking 써있는데는 안되고..
  - hydrant (소화전) 주변은 안되고..
  - 주차 가능한 요일/시간인지 확인..
     
alternate side parking 이라고 해서 어느날은 길의 왼쪽 사이드를 청소해야하니 파킹이 불가하고
어느날은 길의 오른쪽 사이드를 청소해야하니 파킹이 불가.

   위의 사진은 오른쪽 사이드가 청소중이라 주차 할수 없으니 잠시 왼쪽 옆에 주차해 놓은것이다. (신호대기중이거나 정차중인거 아님.)  청소가 끝나면 중앙의 차들은 다시 오른쪽 사이드에 주차한다.  자세히 보면 차에 운전자가 없고 뒤에 차들이 줄지어 주차해 놨다.

보통 청소는 일주일에 한번 정해진 시간 동안만 한다. 아래 사진은 금요일 8:30 부터 10시까지 청소 할꺼니까
주차하지 말라는 표시이다.
 

 

실제로는 그 시간 동안 계속 청소하는게 아니고 아래같은 차가 한번 훅 쓸고 지나가는 걸로 끝인것 같다.
또 사진을 보면 알겠지만 원래는 주차할수 없게 되어있지만 꼭 한둘은 그냥 방치해 놓은 차들이 있기 마련이다.
그때는 그냥 그부분은 청소 안하고 지나가더란...
​                   

           ** 스트리트 파킹의 단점

              스트리트 파킹을 허용함으로써 뉴욕시는 어느정도 주차난을 해소할수 있었겠지만 여기에는 문제도 있다.

              


누군지도 모르는 사람이 내 차 앞,뒤에 주차를 하는 상황이라 주차하면서 스크래치가 많이 생긴다.
위의 사진은 스크래치 방지하려고 범퍼에 뭔가를 덧달았다.
내차도 그동안 범퍼에 기스하나 없었는데, 뉴욕와서 1주일 만에 누군가가 기스를 확 내고 가버렸다.

한국은 차에 스크래치 하나라도 날까 엄청 신경쓰는 사람이 많은데 그런사람들은 여기 오면 정신병 걸릴듯

   어떻게 나가라는 걸까

원래는 뉴욕주에 등록/inspection 통과 된 차량에 한해 스트릿파킹을 허가하는 것 같다. 그렇지 않으면 티켓을 받는다고 알고 있는데.. NYPD 가 일일이 다 확인하지 않으니 티켓 받고 안받고는 운에 달린듯.

나는 조지아주 번호판이지만 한번도 티켓을 받지 않았다. 

반응형

'별거없는 일상 > 아메리칸드림' 카테고리의 다른 글

닭공장 4개월차  (0) 2023.02.05
닭공장 OT 기록  (0) 2023.02.05
미국에서 중고차 구하기  (0) 2023.01.30
미국 정착 준비하기(2016.06.21)  (0) 2023.01.30
애틀란타 첫 느낌  (0) 2023.01.29
Posted by 돌고래트레이너