Oracle backup/recovery – copy server 복구 (delete)

[copydb DB가 정상적으로 오픈하지 않는 경우] offline backup files full restore 시각 파일의 시점이 일치하므로 DB 정상 오픈 1.ORACLE_SID 확인 $echo$ORACLE_SID [copydb DB가 정상 오픈하지 않는 경우] offline backup files full restore 시각 파일의 시점이 일치하므로 DB 정상 오픈 1.ORACLE_SID 확인 $echo$ORACLE_SID

$ echo $ORACLE_SID $ echo $ORACLE_SID

2. parameter file 확인$ ORACLE_HOME/dbs/initcopydb.ora 2. parameter file 확인$ ORACLE_HOME/dbs/initcopydb.ora

$ORACLE_HOME/dbs/initcopydb.ora $ORACLE_HOME/dbs/initcopydb.ora

3. controlfile 위치 확인 <- 방법은 rename $ vi $OACLE_HOME/dbs/initcopydb.ora 3. controlfile 위치 확인 <- 방법은 rename $ vi $OACLE_HOME/dbs/initcopydb.ora

$ vi $OACLE_HOME/dbs/initcopydb.ora $ vi $OACLE_HOME/dbs/initcopydb.ora

4. restore$ cp /oracle12/backup/20241212/*.ctl /oracle12/recover$ cp /oracle12/backup/20241212/*.log /oracle12/recover$ cp /oracle12/backup/20241212/*。dbf /oracle12/recover 4. restore$ cp /oracle12/backup/20241212/*.ctl /oracle12/recover$ cp /oracle12/backup/20241212/*.log /oracle12/recover$ cp /oracle12/backup/20241212/*。dbf /oracle12/recover

$ cp /oracle12/backup/20241212/*.ctl /oracle12/recover$ cp /oracle12/backup/20241212/*.log /oracle12/recover$ cp /oracle12/backup/20241212/*。dbf /oracle12/recover $ cp /oracle12/backup/20241212/*.ctl /oracle12/recover$ cp /oracle12/backup/20241212/*.log /oracle12/recover$ cp /oracle12/backup/20241212/*。dbf /oracle12/recover

5. startup mount6. open(error)202412일에 백업된 컨트롤 파일은/home/oracle/oradata아래에 있는 데이터 파일과 리두 로그 파일을 읽는다/home/oracle/oradata아래에 있는 데이터 파일과 리두 로그 파일은 최근까지 운영 중인 파일이었다(백업 시점 이후의 시점). 그러므로 20241212일에 받은 데이터 파일과 리두 로그 파일은 시점이 일치하지 않기 때문에 정상적으로 오픈할 수 없는 7.rename/home/oracle/oradata영역이 아니다/oracle12/recover영역에 있는 데이터 파일과 리두 로그 파일을 읽도록 하는 init->/oracle12/recover/control01.ctl 5. startup mount6. open(error)202412일에 백업된 컨트롤 파일은/home/oracle/oradata아래에 있는 데이터 파일과 리두 로그 파일을 읽는다/home/oracle/oradata아래에 있는 데이터 파일과 리두 로그 파일은 최근까지 운영 중인 파일이었다(백업 시점 이후의 시점). 그러므로 20241212일에 받은 데이터 파일과 리두 로그 파일은 시점이 일치하지 않기 때문에 정상적으로 오픈할 수 없는 7.rename/home/oracle/oradata영역이 아니다/oracle12/recover영역에 있는 데이터 파일과 리두 로그 파일을 읽도록 하는 init->/oracle12/recover/control01.ctl

[ 실습 ]1. shutdwon abort [ 실습 ]1. shutdwon abort

SQL> shutdown abort SQL> shutdown abort

2. copydb 모든 파일 삭제 2. copydb 모든 파일 삭제

$ cd /oracle12/recover$ rm * $ cd /oracle12/recover$ rm *

[실습복구] startup 이후 오류 확인 [실습 복구] startup 이후 오류 확인

SQL> startupORACLE instance started.Total System Global Area 830472192 bytesFixed Size 8626144 bytesVariable Size 633339936 bytesDatabase Buffers 180355072 bytesRedo Buffers 8151040 bytesDatabase mounted。ORA-01190: control file or data file 1 is from before the last RESETLOGSORA-01110: data file 1: ‘/oracle12/recover/system01.dbf’ SQL> startupORACLE instance started.Total System Global Area 830472192 bytesFixed Size 8626144 bytesVariable Size 633339936 bytesDatabase Buffers 180355072 bytesRedo Buffers 8151040 bytesDatabase mounted。ORA-01190: control file or data file 1 is from before the last RESETLOGSORA-01110: data file 1: ‘/oracle12/recover/system01.dbf’

1. init parameter 확인 <- $ORACLE_SID 확인 1. init parameter 확인 <- $ORACLE_SID 확인

$ dbs$ echo $ORACLE_SID $ dbs$ echo $ORACLE_SID

 

$ ls $ORACLE_HOME/dbs/initcopydb.ora $ ls $ORACLE_HOME/dbs/initcopydb.ora

 

2. controlfile 위치 확인 $ grep control $ORACLE_HOME/dbs/initcopydb.ora 2. controlfile 위치 확인 $ grep control $ORACLE_HOME/dbs/initcopydb.ora

$ grep control $ORACLE_HOME/dbs/initcopydb.ora*.control_files=’/oracle12/recover/control01.ctl’,’/oracle12/recover/control02.ctl’ $ grep control $ORACLE_HOME/dbs/initcopydb.ora*.control_files=’/oracle12/recover/control01.ctl’,’/oracle12/recover/control02.ctl’

 

3. offile backup full restore 3. offile backup full restore

$ cp /oracle12/backup/20241212/* /oracle12/recover $ cp /oracle12/backup/20241212/* /oracle12/recover

4. startup mount 4. startup mount

SQL> select name from v$datafile;SQL> select member from v$logfile; SQL> select name from v$datafile;SQL> select member from v$logfile;

 

여기 있는 모든 파일을 rename 해주세요. 5. rename (전체 파일에 대해) alter database rename file ‘to’; 여기 있는 모든 파일을 rename 해주세요. 5. rename (전체 파일에 대하여) alter database rename file ‘to’;

 

6. open 6. open

SQL> alter database open; SQL> alter database open;

SQL> startupORACLE instance started.Total System Global Area 830472192 bytesFixed Size 8626144 bytesVariable Size 633339936 bytesDatabase Buffers 180355072 bytesRedo Buffers 8151040 bytesDatabase mounted.ORA-01190: control file or data file 1 is from before the last RESETLOGSORA-01110: data file 1: ‘/oracle12/recover/system01.dbf’SQL> alter database backup controlfile to trace as ‘/oracle12/backup/recon.sql’;Database altered. SQL> startupORACLE instance started.Total System Global Area 830472192 bytesFixed Size 8626144 bytesVariable Size 633339936 bytesDatabase Buffers 180355072 bytesRedo Buffers 8151040 bytesDatabase mounted.ORA-01190: control file or data file 1 is from before the last RESETLOGSORA-01110: data file 1: ‘/oracle12/recover/system01.dbf’SQL> alter database backup controlfile to trace as ‘/oracle12/backup/recon.sql’;Database altered.

[oracle@copy 20241212]$ cd /oracle12/backup[oracle@copy backup]$ ls -ltotal 12drwxr-xr-x。 2 oracle oinstall 4096 Dec 12 11:10 20241212-rw-r–r–。 1 oracle oinstall 4809 Dec 13 10:30 recon.sql[oracle@copy backup]$ vi recon.sql [oracle@copy 20241212]$ cd /oracle12/backup[oracle@copy backup]$ ls -ltotal 12drwxr-xr-x。 2 oracle oinstall 4096 Dec 12 11:10 20241212-rw-r–r–。 1 oracle oinstall 4809 Dec 13 10:30 recon.sql[oracle@copy backup]$ vi recon.sql

CREATE CONTROLFILE REUSE DATABASE “DB1” NORESETLOGS ARCHIVELOGMAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 (‘/home/oracle/oradata/db1/redo01.log’,’/home/oracle/oradata/db1/redo01_2.log’) SIZE 200M BLOCKSIZE 512,GROUP 2 (‘/home/oracle/oradata/db1/redo02.log’,’/home/oracle/oradata/db1/redo02_2.log’) SIZE 200M BLOCKSIZE 512,GROUP 3 (‘/home/oracle/oradata/db1/redo03.log’,’/home/oracle/oradata/db1/redo03_2.log’) SIZE 200M BLOCKSIZE 512– STANDBY LOGFILEDATAFILE’/home/oracle/oradata/db1/system01.dbf’,’/home/oracle/oradata/db1/sysaux01.dbf’,’/home/oracle/oradata/db1/undotbs01.dbf’,’/home/oracle/oradata/db1/users01.dbf’CHARACTER SET KO16MSWIN949; CREATE CONTROLFILE REUSE DATABASE “DB1″ NORESETLOGS ARCHIVELOGMAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 292LOGFILEGROUP 1 (‘/home/oracle/oradata/db1/redo01.log’,’/home/oracle/oradata/db1/redo01_2.log’) SIZE 200M BLOCKSIZE 512,GROUP 2 (‘/home/oracle/oradata/db1/redo02.log’,’/home/oracle/oradata/db1/redo02_2.log’) SIZE 200M BLOCKSIZE 512,GROUP 3 (‘/home/oracle/oradata/db1/redo03.log’,’/home/oracle/oradata/db1/redo03_2.log’) SIZE 200M BLOCKSIZE 512– STANDBY LOGFILEDATAFILE’/home/oracle/oradata/db1/system01.dbf’,’/home/oracle/oradata/db1/sysaux01.dbf’,’/home/oracle/oradata/db1/undotbs01.dbf’,’/home/oracle/oradata/db1/users01.dbf’CHARACTER SET KO16MSWIN949;

 

SQL> shutdown abortORACLE instance shut down. SQL> shutdown abortORACLE instance shut down.

SQL> startup nomountORACLE instance started.Total System Global Area 830472192 bytesFixed Size 8626144 bytesVariable Size 633339936 bytesDatabase Buffers 180355072 bytesRedo Buffers 8151040 bytes SQL> startup nomountORACLE instance started.Total System Global Area 830472192 bytesFixed Size 8626144 bytesVariable Size 633339936 bytesDatabase Buffers 180355072 bytesRedo Buffers 8151040 bytes

SQL> @/oracle12/backup/recon.sqlControl file created. SQL> @/oracle12/backup/recon.sqlControl file created.

SQL> alter database open;Database altered. SQL> alter database open;Database altered.

 

장애 복구 – oel7 서버의 db1 DB 장애에 대한 copydb 복구 장애 복구 – oel7 서버의 db1 DB 장애에 대한 copydb 복구

[oel7 서버의 db1 DB 장애에 대한 copydb 복구] [사전 준비 – oel7(db1)] 1. shutdown immediate 2. 아카이브 삭제 3. offline full backup 4. DB open 5. 로그 스위치 (5회 이상) [oel7 서버의 db1 DB 장애에 대한 copydb 복구] [사전 준비 – oel7(db1)] 1. shutdown immediate 2. 아카이브 삭제 3. offline full backup 4. DB open 5. 로그스위치(5회이상)

6. /etc/hosts 파일수정(아래추가) <-IP대신 이름맞추기(별칭) $su-root #vi/etc/hosts 6./etc/hosts 파일수정(아래추가) <-IP대신 이름맞추기(별칭) $su-root #vi/etc/hosts

$ su – root# vi /etc/hosts $ su – root# vi /etc/hosts

172.16.60.131 copy 172.16.60.131 copy

172.16.60.131 copy 172.16.60.131 copy

 

# exit # exit

[실습·장애 발생(db1)] 1. 시점 확인– 2024/12/13 11:05:31 [실습·장애 발생(db1)] 1. 시점 확인– 2024/12/13 11:05:31

select sysdate from dual; select sysdate from dual;

 

2. 장애 발생 2. 장애 발생

select * from scott.student; select * from scott.student;

 

백업은 장애 발생 시점의 가장 최근 백업본으로 진행 <-아카이브 유실 및 아카이브 적용 시간이 오래걸림 백업은 장애 발생 시점의 가장 최근 백업본으로 진행 <-아카이브 유실 및 아카이브 적용 시간이 오래걸림

[실습 – 복구사전준비(db1)] 1. 장애 / 복구시점 확인장애 / 복구시점: 2024/12/13 11:05:31 ******** ****** 가장중요2. 가장 가까운 백업시점 확인 백업시점: 2024/12/13 10:48:00 [실습 – 복구사전준비(db1)] 1. 장애 / 복구시점 확인장애 / 복구시점: 2024/12/13 11:05:31 ******** ** 가장중요2. 가장 가까운 백업시점 확인 백업시점: 2024/12/13 10:48:00

3. restore (data file) oel7 -> copy <-서버 엔지니어에게 요청1) 위치 이동 3. restore (data file) oel7 -> copy <-서버 엔지니어에게 요청1) 위치 이동

$ cd /oracle12/backup/20241213 $ cd /oracle12/backup/20241213

 

2) scp대상 사용자명 @ip: 위치<-/etc/hosts 파일에 기록하면 별칭 사용가능 $scp*.db foracle@copy:/oracle12/recover2) scp대상 사용자명 @ip: 위치<-/etc/hosts 파일에 기록하면 별칭 사용가능 $scp*.db foracle@copy:/oracle12/recover

$ scp *.dbf oracle@copy:/oracle12/recover $ scp *.dbf oracle@copy:/oracle12/recover

 

copydb에서 restore 되었는지 확인!!! copydb에서 restore 되었는지 확인!!!

$ cd /oracle12/recover$ ls -l $ cd /oracle12/recover$ ls -l

 

4. 현재 운영중인 init parameter 다운, 전송1) 다운 4. 현재 운영중인 init parameter 다운, 전송1) 다운

SQL> create pfile from spfile; SQL> create pfile from spfile;

 

2) 전송 2) 전송

$ cd /oracle12/app/oracle/product/12.2.0.1/db_1/dbs$ scp initdb1.ora oracle@copy:/oracle12/recover — scp 대상 유저명@ip:위치 $ cd /oracle12/app/oracle/product/12.2.0.1/db_1/dbs$ scp initdb1.ora oracle@copy:/oracle12/recover — scp 대상 유저명@ip:위치

 

5. controlfile 재생성 스크립트 다운, 전송 1) 다운 5. controlfile 재생성 스크립트 다운, 전송 1) 다운

SQL> alter database backup controlfile to trace as ‘/oracle12/backup/con.sql’; SQL> alter database backup controlfile to trace as ‘/oracle12/backup/con.sql’;

 

2) 전송 2) 전송

$ cd /oracle12/backup$ scp con.sql oracle@copy:/oracle12/recover — scp 대상 유저명@ip:위치 $ cd /oracle12/backup$ scp con.sql oracle@copy:/oracle12/recover — scp 대상 유저명@ip:위치

 

6. 필요한 아카이브 확인 쿼리 확인, 전송 1) 로그 스위치 6. 필요한 아카이브 확인 쿼리 확인, 전송 1) 로그 스위치

alter system switch logfile; alter system switch logfile;

2) 필요한 아카이브 조회 2) 필요한 아카이브 조회

select name, sequence#, first_change#, round(block_size*blocks/1024/1024,2)as”size(mb)”, completion_time,’scp’|| name||’oracle@copy:/arch’as scp_cmd from v$archived_log where completion_time between to_date(‘2024/12/13 10:48:00′,’yyyy/mm/dd hh24:mi:ss’)최근 백업 시점 and to_date(‘2024/12/13 11:05:31′,’yyyy/mm/dd hh24:mi:ss’)-복구 시기 or to_date(‘2024/12/13 10:48:00′,’yyyy/mm/dd hh24:mi:ss’)between first_time and completion_time;-복구 시기+1개 select name, sequence#, first_change#, round(block_size*blocks/1024/1024,2)as”size(mb)”, completion_time,’scp’|| name||’oracle@copy:/arch’as scp_cmd from v$archived_log where completion_time between to_date(‘2024/12/13 10:48:00′,’yyyy/mm/dd hh24:mi:ss’)최근 백업 시점 and to_date(‘2024/12/13 11:05:31′,’yyyy/mm/dd hh24:mi:ss’)-복구 시기 or to_date(‘2024/12/13 10:48:00′,’yyyy/mm/dd hh24:mi:ss’)between first_time and completion_time;-복구 시기+1개

 

2) 필요한 아카이브 전송 2) 필요한 아카이브 전송

scp /arch/1_1_1187557364.dbf oracle@copy:/archscp /arch/1_2_1187557364.dbf oracle@copy:/archscp /arch/1_3_1187557364.dbf oracle@copy:/archscp /arch/1_4_1187557364.dbf oracle@copy:/archscp /arch/1_5_1187557364.dbf oracle@copy:/arch scp /arch/1_1_1187557364.dbf oracle@copy:/archscp /arch/1_2_1187557364.dbf oracle@copy:/archscp /arch/1_3_1187557364.dbf oracle@copy:/archscp /arch/1_4_1187557364.dbf oracle@copy:/archscp /arch/1_5_1187557364.dbf oracle@copy:/arch

 

7. copydb에서 파일이 전송되었는지 확인 7. copydb에서 파일이 전송되었는지 확인

$ cd /oracle12/recover$ ls -l /oracle12/recover$ ls -l /arch $ cd /oracle12/recover$ ls -l /oracle12/recover$ ls -l /arch

 

[실습 – 복구(copydb)] [실습 – 복구(copydb)]

1. copydb shutdown 2. restore 위치 확인 (/oracle12/recover)$ ls /oracle12/recover 1. copydb shutdown 2. restore 위치 확인 (/oracle12/recover)$ ls /oracle12/recover

$ ls /oracle12/recover $ ls /oracle12/recover

3. 아카이브위치확인(/arch)$ls/arch$rm/arch/*3. 아카이브위치확인(/arch)$ls/arch$rm/arch/*

$ ls /arch$ rm /arch/* $ ls /arch$ rm /arch/*

 

4. init parameter 수정$ cp /oracle12/recover/initdb1.ora $ORACLE_HOME/dbs/initcopydb.ora$ vi ORACLE_HOME/dbs/initcopydb.ora 4. init parameter 수정$ cp /oracle12/recover/initdb1.ora $ORACLE_HOME/dbs/initcopydb.ora$ vi ORACLE_HOME/dbs/initcopydb.ora

$ cp /oracle12/recover/initdb1.ora $ORACLE_HOME/dbs/initcopydb.ora$ vi $ORACLE_HOME/dbs/initcopydb.ora $ cp /oracle12/recover/initdb1.ora $ORACLE_HOME/dbs/initcopydb.ora$ vi $ORACLE_HOME/dbs/initcopydb.ora

 

$ vi $ORACLE_HOME/dbs/initcopydb.ora $ vi $ORACLE_HOME/dbs/initcopydb.ora

before before

tobe 기존 운영경로를 (/oracle12/recover/)로 경로변경 tobe 기존 운영경로를 (/oracle12/recover/)로 경로변경

*.audit_file_dest=’/oracle12/recover/adump’*.control_files=’/oracle12/recover/control01.ctl’,’/oracle12/recover/control02.ctl’ *.audit_file_dest=’/oracle12/recover/adump’*.control_files=’/oracle12/recover/control01.ctl’,’/oracle12/recover/control02.ctl’

 

5. controlfile 재생성 스크립트 수정(resetlogs) <- 불완전 복구 – datafile, redo 위치 수정 5. controlfile 재생성 스크립트 수정(resetlogs) <- 불완전 복구 – datafile, redo 위치 수정

$ vi /oracle12/recover/con.sql $ vi /oracle12/recover/con.sql

before before

tobe 경로 변경 () tobe 경로 변경 ()

:%s/\/home\/oracle\/oradata\/db1/\/oracle12\/recover :%s/\/home\/oracle\/oradata\/db1/\/oracle12\/recover

 

6. startup nomount 6. startup nomount

SQL> startup nomount SQL> startup nomount

 

7. controlfile 7. controlfile

SQL> @/oracle12/recover/con.sql SQL> @/oracle12/recover/con.sql

 

8. recovery until time 8. recovery until time

SQL> recover database until time ‘2024/12/13 11:05:31’ using backup controlfile; SQL> recover database until time ‘2024/12/13 11:05:31’ using backup controlfile;

 

9. open(resetlogs) 9. open(resetlogs)

SQL> alter database open resetlogs; SQL> alter database open resetlogs;

 

10. 데이터 체크 10. 데이터 체크

SQL> select * from scott.student; SQL> select * from scott.student;

 

타겟 방향 확인 후 dblink 타겟 방향 확인 후 dblink

10. dblink 생성 및 데이터 전송 copydb에서 실행 ip, 10. dblink 생성 및 데이터 전송 copydb에서 실행 ip,

SQL> SELECT NAME, DB_UNIQUE_NAME FROM v$database; SQL> SELECT NAME, DB_UNIQUE_NAME FROM v$database;

 

SQL> SELECT NAME, DB_UNIQUE_NAME FROM v$database; SQL> SELECT NAME, DB_UNIQUE_NAME FROM v$database;

 

oel7에서 실행1)dblink생성 oel7에서 실행1)dblink생성

–oel7 에서 수행create database link copyconnect to system identified by “oracle”using ‘(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.60.131)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = db1)))’; –oel7 에서 수행create database link copyconnect to system identified by “oracle”using ‘(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.60.131)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = db1)))’;

2) oel7 scott.student 테이블 조회 2) oel7 scott.student 테이블 조회

–oel7 조회select * from scott.student; –oel7 조회select * from scott.student;

 

3) oel7에서 copydb 안의 scott.student 테이블 조회 3) oel7에서 copydb 안의 scott.student 테이블 조회

–oel7에서 copy 조회select * from scott.student@copy; –oel7에서 copy 조회select * from scott.student@copy;

 

4) oel7에서 copydb 안의 scott.student 테이블 데이터 삽입 4) oel7에서 copydb 안의 scott.student 테이블 데이터 삽입

–oel7에서 copydb 데이터 넣기insert into scott.student select * from scott.student@copy; –oel7에서 copydb 데이터 넣기insert into scott.student select * from scott.student@copy;

 

디비링크 드롭 및 디비링크 조회 디비링크 드롭 및 디비링크 조회

DROP DATABASE LINK copy;SELECT * FROM DBA_DB_LINKS; DROP DATABASE LINK copy;SELECT * FROM DBA_DB_LINKS;

 

drop table purge 복구 drop table purge 복구

1. 시점 확인select sysdate from dual;2. 장애 발생select from scott.professor; drop table scott.professor purge;3. 복구 수행4. 테이블 재생성(db1)create table scott.professorasselect from scott.professor@dblink_copydb; dblink 생성 1. 시점 확인select sysdate from dual;2. 장애 발생select from scott.professor; drop table scott.professor purge;3. 복구 수행4. 테이블 재생성(db1)create table scott.professorasselect from scott.professor@dblink_copydb; dblink 생성

1. 확인 select*from dba_db_links;2.oel7 tnsnames.ora파일에 이하의 등록 COPYDB=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=copy)(PORT=1521)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=db1);3.dblink생성(oel7->copydb)create public database link dblink_copydbconnect to scott identified by oracle using’copydb’;scp 1. 확인 select*from dba_db_links;2.oel7 tnsnames.ora파일에 이하의 등록 COPYDB=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=copy)(PORT=1521)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=db1);3.dblink생성(oel7->copydb)create public database link dblink_copydbconnect to scott identified by oracle using’copydb’;scp

*참고-scp(Secure Copy Protocol)네트워크를 통해서 두 시스템 간에 파일을 안전하게 전송하는 프로토콜 SSH(Secure Shell)을 기반으로 작동하므로 파일 전송 중에 데이터가 암호화되고 안전하게 전달되기에 원격 시스템과 로컬 시스템 간에 파일을 복사하거나, 두 원격 시스템 간에 파일을 전송할 때 자주 사용의 사용법:scp전송 대상 접속 유저명@타깃 서버 아이피:목표물의 위치[]에게 자동 로그인 설정 ssh인증 방식을 public-key에 서버에 등록하여 사용하면 암호를 입력하지 않고 자동으로 로그인할 수 있다.1.public-key생성(oel7)$ssh-keygen-t rsa2.public-key target서버에 전송(oel7)$scp~/. ssh/id_rsa.pub [email protected] copy확인(copy)$cd/home/oracle/. ssh$lsauthorized_keys id_rsa id_rsa.pub known_hosts$cat authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGYsW7yaqbo4yWgofCjGwy8VZXcleKyDunpxE6bANysSb9h/sD1E5B26rGcg8n3wbqslskdfC9a6L9aC5J5qlMw3crlJ1OB0iN9NmNPPrXIHw4gqSVt7mWYKamyQFeutnnfAYQvGogeK6rqdcLKbZTA7H10A/2YHIW8bz8z35R1P3OBYwBj+hkAjEL+J9Hpr/tNG3/swEkBst51E8Vww26uc2J323VE5Xl4PlmUQNZi1z3UQZgBz5lq8QDZ59vyjwOQxEI1VLFaCbvZt6XGhV1MIR3KRKIXbn47wSrg2e9jxkFsFcd6l2p7cDYlqxBLdd2qYhXGHLaPRm018Qq1vXz oracle@oel7<—-oracle@oel7확인 4. 권한 설정(copy)chmod 755/home/oraclechmod 700/home/oracle/. sshchown-R oracle/home/oracle/. sshchmod 600/home/oracle/. ssh/authorized_keys5.scp테스트(oel7)$dbs$scp initdb1.ora oracle@copy:/oracle12/backup-패스워드 인증을 넘어가면 성공!*참고-scp(Secure Copy Protocol)네트워크를 통해서 두 시스템 간에 파일을 안전하게 전송하는 프로토콜 SSH(Secure Shell)을 기반으로 작동하므로 파일 전송 중에 데이터가 암호화되고 안전하게 전달되기에 원격 시스템과 로컬 시스템 간에 파일을 복사하거나, 두 원격 시스템 간에 파일을 전송할 때 자주 사용의 사용법:scp전송 대상 접속 유저명@타깃 서버 아이피:목표물의 위치[]에게 자동 로그인 설정 ssh인증 방식을 public-key에 서버에 등록하여 사용하면 암호를 입력하지 않고 자동으로 로그인할 수 있다.1.public-key생성(oel7)$ssh-keygen-t rsa2.public-key target서버에 전송(oel7)$scp~/. ssh/id_rsa.pub [email protected] copy확인(copy)$cd/home/oracle/. ssh$lsauthorized_keys id_rsa id_rsa.pub known_hosts$cat authorized_keysssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGYsW7yaqbo4yWgofCjGwy8VZXcleKyDunpxE6bANysSb9h/sD1E5B26rGcg8n3wbqslskdfC9a6L9aC5J5qlMw3crlJ1OB0iN9NmNPPrXIHw4gqSVt7mWYKamyQFeutnnfAYQvGogeK6rqdcLKbZTA7H10A/2YHIW8bz8z35R1P3OBYwBj+hkAjEL+J9Hpr/tNG3/swEkBst51E8Vww26uc2J323VE5Xl4PlmUQNZi1z3UQZgBz5lq8QDZ59vyjwOQxEI1VLFaCbvZt6XGhV1MIR3KRKIXbn47wSrg2e9jxkFsFcd6l2p7cDYlqxBLdd2qYhXGHLaPRm018Qq1vXz oracle@oel7<—-oracle@oel7확인 4. 권한 설정(copy)chmod 755/home/oraclechmod 700/home/oracle/. sshchown-R oracle/home/oracle/. sshchmod 600/home/oracle/. ssh/authorized_keys5.scp테스트(oel7)$dbs$scp initdb1.ora oracle@copy:/oracle12/backup-패스워드 인증을 넘어가면 성공!

Scroll to Top