[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-패스워드 인증을 넘어가면 성공!