CAFE

Re: 백업과 복구 이수자 평가1번 문제

작성자22기_권오현|작성시간26.03.17|조회수22 목록 댓글 0

코드 : 

다음과 같이 12c ts20000 테이블 스페이스를 19c 로 TTS 이관 하시오

--12c
--ts20000 테이블 스페이스를 read only 로 변경합니다.
select t.name, d.enabled, d.name
 from  v$tablespace  t, v$datafile  d
 where  t.ts# = d.ts#;
 
alter  tablespace  ts20000 read only;

--ts20000 테이블 스페이스를 테이블 스페이스 레벨로 export pump 합니다.

expdp directory=datapump_dir dumpfile=ts20000.dmp transport_tablespace=y tablespaces=ts20000

--ts20000.dbf 와 ts20000.dmp 파일을 scp 명령어로 oracle 19c 리눅스로 보냅니다.

scp /home/oracle/pump_ora12c/ts20000.dmp oracle@192.168.23.152:/home/oracle/pump_ora19c/

scp /u01/app/oracle/oradata/ora12/ts20000.dbf oracle@192.168.23.152:/home/oracle/oradata

 

코드 : 

--19c
drop user sh2 cascade;

create user  sh2
  identified by sh2
  default tablespace users
  temporary  tablespace temp
  quota unlimited on users;

grant connect, resource to sh2;

grant create view to sh2;

grant create sequence to sh2;

impdp transport_datafiles='/home/oracle/oradata/ts20000.dbf' directory=datapump_dir dumpfile=ts20000.dmp remap_schema=sh:sh2


--tablespace READ WRITE 복구 (sys에서 실행)
ALTER TABLESPACE ts20000 READ WRITE;
GRANT CREATE DATABASE LINK TO sh2;

--기본 테이블스페이스 변경 (sys에서 실행)
ALTER USER sh2 DEFAULT TABLESPACE ts20000;

--새 테이블스페이스(ts20000)에 무제한 할당량 부여
ALTER USER sh2 QUOTA UNLIMITED ON ts20000;

-- (선택사항) 기존 users 테이블스페이스의 할당량 회수
-- 만약 더 이상 users를 못 쓰게 하려면 실행하세요.
ALTER USER sh2 QUOTA 0 ON users;

--DB Link 생성 (sh2 에서 실행)
DROP DATABASE LINK sh_link;

CREATE DATABASE LINK sh_link
CONNECT TO sh
IDENTIFIED BY sh
USING '192.168.23.102:1521/ora12';

 

코드 : 

-- 테이블
SELECT table_name FROM user_tables
MINUS
SELECT table_name FROM user_tables@sh_link;

SELECT table_name FROM user_tables@sh_link
MINUS
SELECT table_name FROM user_tables;

-- 인덱스
SELECT index_name FROM user_indexes
MINUS
SELECT index_name FROM user_indexes@sh_link;

SELECT index_name FROM user_indexes@sh_link
MINUS
SELECT index_name FROM user_indexes;

-- 제약
SELECT constraint_name FROM user_constraints
MINUS
SELECT constraint_name FROM user_constraints@sh_link;

SELECT constraint_name FROM user_constraints@sh_link
MINUS
SELECT constraint_name FROM user_constraints;

-- 시퀀스
SELECT sequence_name FROM user_sequences
MINUS
SELECT sequence_name FROM user_sequences@sh_link;

SELECT sequence_name FROM user_sequences@sh_link
MINUS
SELECT sequence_name FROM user_sequences;

-- 시너님
SELECT synonym_name FROM user_synonyms
MINUS
SELECT synonym_name FROM user_synonyms@sh_link;

SELECT synonym_name FROM user_synonyms@sh_link
MINUS
SELECT synonym_name FROM user_synonyms;

-- 뷰
SELECT view_name FROM user_views
MINUS
SELECT view_name FROM user_views@sh_link;

SELECT view_name FROM user_views@sh_link
MINUS
SELECT view_name FROM user_views;



--갯수 확인
-- 테이블
SELECT count(*) FROM user_tables
union all
SELECT count(*) FROM user_tables@sh_link;
--14개 동일

-- 인덱스
SELECT count(*) FROM user_indexes
union all
SELECT count(*) FROM user_indexes@sh_link;
--28개 동일

-- 제약
SELECT count(*) FROM user_constraints
union all
SELECT count(*) FROM user_constraints@sh_link;
--137개 동일

-- 시퀀스
SELECT count(*) FROM user_sequences
union all
SELECT count(*) FROM user_sequences@sh_link;
--0개 동일

-- 시너님
SELECT count(*) FROM user_synonyms
union all
SELECT count(*) FROM user_synonyms@sh_link;
--0개 동일

-- 뷰
SELECT count(*) FROM user_views
union all
SELECT count(*) FROM user_views@sh_link;
--0개 동일

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼