Tablespace 단위로 Export 한 후, Import 할 때 imp 프로그램이 Tablespace를 만들지는 않는다. 

직접 만들어 놓아야 한다.


 Export

Import 

계정,비밀번호,Default tablespace 가 같아야 한다. 


dmp 파일은 절대로 수정 및 저장 금지




Large Object loB(대용량 자료)


A(일반 칼럼)

B(일반 칼럼)

C(LOB)

 data

data 

Large data 


Select A,B from table 이라고 쳤을 경우 DB cache에 C도 같이 올라가게 된다.

그러면 많은 과부하가 걸리기 때문에 LOB 는 따로 관리를 하게 된다.

C 칼럼은 링크 형식으로 해놓고 따로 별개의 tablespace에 저장을 해 놓기 때문에, Export, Import 할 때에도 A,B 가 저장되어 있는 tablepsace 와 C 가 저장되어 있는 tablepsace 모두 준비를 해 놓고 Import 해야 한다.



by 짱구를꼭말려 2013. 7. 24. 12:34

예제 : 1. create table space test -> create table guest tablespace test -> insert into guest -> rm test datafile -> drop table guest

 

temp 폴더에서 사용하던 오라클을 temp2 폴더로 임시로 지정하여 guest 테이블이 나오는지 본다.

 

[oracle@server122 temp2]$ cp -av /data/temp/control01.ctl ./
`/data/temp/control01.ctl' -> `./control01.ctl'
[oracle@server122 temp2]$ cp -av /data/temp/redo* ./
`/data/temp/redo01_a.rdo' -> `./redo01_a.rdo'
`/data/temp/redo01_b.rdo' -> `./redo01_b.rdo'
`/data/temp/redo01_c.rdo' -> `./redo01_c.rdo'
`/data/temp/redo02_a.rdo' -> `./redo02_a.rdo'
`/data/temp/redo02_b.rdo' -> `./redo02_b.rdo'
`/data/temp/redo02_c.rdo' -> `./redo02_c.rdo'
[oracle@server122 temp2]$ cp -av /data/backup/close/*.dbf ./
`/data/backup/close/example01.dbf' -> `./example01.dbf'
`/data/backup/close/sysaux01.dbf' -> `./sysaux01.dbf'
`/data/backup/close/system01.dbf' -> `./system01.dbf'
`/data/backup/close/temp01.dbf' -> `./temp01.dbf'
`/data/backup/close/temp_web01.dbf' -> `./temp_web01.dbf'
`/data/backup/close/test01.dbf' -> `./test01.dbf'
`/data/backup/close/ts_web01.dbf' -> `./ts_web01.dbf'
`/data/backup/close/ts_web_idx01.dbf' -> `./ts_web_idx01.dbf'
`/data/backup/close/undotbs01.dbf' -> `./undotbs01.dbf'
`/data/backup/close/users01.dbf' -> `./users01.dbf'

백업된 datafile과 현재 사용하던 control file & redo log file 을 temp2 로 폴더로 복사한다.

백업된 Control file 을 쓰면 어떻게 될까?_?


[oracle@server122 temp2]$ cd ~
[oracle@server122 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.2.0 Production on Thu Jul 4 17:40:35 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

Connected to an idle instance.

SYS> startup mount
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1344616 bytes
Variable Size             272632728 bytes
Database Buffers          142606336 bytes
Redo Buffers                6086656 bytes
Database mounted.
SYS> @df

TS_NAME    FILE_NAME                                             MB STATUS
---------- -------------------------------------------------- ----- -------
SYSTEM     /data/temp2/system01.dbf                            2010 SYSTEM
SYSAUX     /data/temp2/sysaux01.dbf                             520 ONLINE
UNDOTBS1   /data/temp2/undotbs01.dbf                             90 ONLINE
USERS      /data/temp2/users01.dbf                                5 ONLINE
EXAMPLE    /data/temp2/example01.dbf                            346 ONLINE
TS_WEBHARD /data/temp/ts_web01.dbf                              100 OFFLINE
TS_WEB_IDX /data/temp/ts_web_idx01.dbf                           10 OFFLINE
TEST       /data/temp/test01.dbf                                  0 ONLINE
TS_NEW     /data/temp/ts_new.dbf                                 10 RECOVER

9 rows selected.

SYS> !
[oracle@server122 ~]$ vi /app/oracle/product/11g/dbs/inittestdb.ora
[oracle@server122 ~]$ exit
exit

SYS> alter database create datafile '/data/temp/test01.dbf'
  2  as '/data/temp2/test01.dbf';

Database altered.

test01.dbf 파일이 지워졌으니 대체품을 새로 만든다.

 

SYS> @df

TS_NAME    FILE_NAME                                             MB STATUS
---------- -------------------------------------------------- ----- -------
SYSTEM     /data/temp2/system01.dbf                            2010 SYSTEM
SYSAUX     /data/temp2/sysaux01.dbf                             520 ONLINE
UNDOTBS1   /data/temp2/undotbs01.dbf                             90 ONLINE
USERS      /data/temp2/users01.dbf                                5 ONLINE
EXAMPLE    /data/temp2/example01.dbf                            346 ONLINE
TS_WEBHARD /data/temp/ts_web01.dbf                              100 OFFLINE
TS_WEB_IDX /data/temp/ts_web_idx01.dbf                           10 OFFLINE
TEST       /data/temp2/test01.dbf                                 5 ONLINE
TS_NEW     /data/temp/ts_new.dbf                                 10 RECOVER

9 rows selected.

temp2 로 모두 변경 완료

SYS> @log

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp/redo01_a.rdo                         10    1 CURRENT  NO
     1 /data/temp/redo01_b.rdo                         10    1 CURRENT  NO
     1 /data/temp/redo01_c.rdo                         10    1 CURRENT  NO
     2 /data/temp/redo02_a.rdo                         10    0 UNUSED   YES
     2 /data/temp/redo02_b.rdo                         10    0 UNUSED   YES
     2 /data/temp/redo02_c.rdo                         10    0 UNUSED   YES

6 rows selected.

SYS> alter database rename file '/data/temp/redo01_a.rdo'
  2  to '/data/temp2/redo01_a.rdo';

Database altered.

SYS> ed
Wrote file afiedt.buf

  1  alter database rename file '/data/temp/redo01_b.rdo'
  2* to '/data/temp2/redo01_b.rdo'
SYS> /

Database altered.

SYS> ed
Wrote file afiedt.buf

  1  alter database rename file '/data/temp/redo01_c.rdo'
  2* to '/data/temp2/redo01_c.rdo'
SYS> /

Database altered.

SYS> ed
Wrote file afiedt.buf

  1  alter database rename file '/data/temp/redo02_c.rdo'
  2* to '/data/temp2/redo02_c.rdo'
SYS> /

Database altered.

SYS> ed
Wrote file afiedt.buf

  1  alter database rename file '/data/temp/redo02_b.rdo'
  2* to '/data/temp2/redo02_b.rdo'
SYS> /

Database altered.

SYS> ed
Wrote file afiedt.buf

  1  alter database rename file '/data/temp/redo02_a.rdo'
  2* to '/data/temp2/redo02_a.rdo'
SYS> /

Database altered.

SYS> ed
Wrote file afiedt.buf

  1  alter database rename file '/data/temp/redo02_a.rdo'
  2* to '/data/temp2/redo02_a.rdo'
SYS> @log

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp2/redo01_a.rdo                        10    1 CURRENT  NO
     1 /data/temp2/redo01_b.rdo                        10    1 CURRENT  NO
     1 /data/temp2/redo01_c.rdo                        10    1 CURRENT  NO
     2 /data/temp2/redo02_a.rdo                        10    0 UNUSED   YES
     2 /data/temp2/redo02_b.rdo                        10    0 UNUSED   YES
     2 /data/temp2/redo02_c.rdo                        10    0 UNUSED   YES

6 rows selected.

temp2 로 리두 파일들도 변경 완료

SYS> @df

TS_NAME    FILE_NAME                                             MB STATUS
---------- -------------------------------------------------- ----- --------
SYSTEM     /data/temp2/system01.dbf                            2010 SYSTEM
SYSAUX     /data/temp2/sysaux01.dbf                             520 ONLINE
UNDOTBS1   /data/temp2/undotbs01.dbf                             90 ONLINE
USERS      /data/temp2/users01.dbf                                5 ONLINE
EXAMPLE    /data/temp2/example01.dbf                            346 ONLINE
TS_WEBHARD /data/temp/ts_web01.dbf                              100 OFFLINE
TS_WEB_IDX /data/temp/ts_web_idx01.dbf                           10 OFFLINE
TEST       /data/temp2/test01.dbf                                 5 ONLINE
TS_NEW     /data/temp/ts_new.dbf                                 10 RECOVER

9 rows selected.

SYS> recover database time until '2013-07-04:16:44:00' ; (미리 알고 있는 시간으로 복구)(시간모를땐 어케하지?ㅠㅠ)
ORA-00905: missing keyword


SYS> recover database until time '2013-07-04:16:44:00';
ORA-00279: change 1271471 generated at 07/04/2013 12:37:04 needed for thread 1
ORA-00289: suggestion : /data/arc1/1_1_819894588.arc
ORA-00280: change 1271471 for thread 1 is in sequence #1


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

Log applied.
Media recovery complete.
SYS> alter database open resetlogs;

Database altered.

SYS> select * from guest;

        NO
----------
         3
         6
         7
         9

'Oracle > 백업과 복구' 카테고리의 다른 글

Flashback Query  (411) 2013.08.08
by 짱구를꼭말려 2013. 7. 22. 11:17

 Redo Log File 조회  log.sql

 

SELECT a.group#,a.member,b.bytes/1024/1024 MB,b.sequence# "SEQ#",b.status,b.archived"ARC" FROM v$logfile a, v$log b
WHERE a.group#=b.group#
ORDER BY 1,2 

 

GROUP# MEMBER                                          MB SEQ# STATUS   ARC
------ --------------------------------------------- ---- ---- -------- -----
     1 /data/temp/redo01_a.rdo                         10    3 INACTIVE YES
     1 /data/temp/redo01_b.rdo                         10    3 INACTIVE YES
     1 /data/temp/redo01_c.rdo                         10    3 INACTIVE YES
     2 /data/temp/redo02_a.rdo                         10    4 CURRENT  NO
     2 /data/temp/redo02_b.rdo                         10    4 CURRENT  NO
     2 /data/temp/redo02_c.rdo                         10    4 CURRENT  NO

6 rows selected.

 

 

Data File 조회  df.sql

 

set line 200

col tablespace_name for a10

col file_name for a50

select a.name "TS_NAME", b.name "FILE_NAME", b.bytes/1024/1024 MB, b.status
from v$tablespace a, v$datafile b
where a.ts#=b.ts#

 

TS_NAME    FILE_NAME                                             MB STATUS
---------- -------------------------------------------------- ----- --------
SYSTEM     /data/temp2/system01.dbf                            2010 SYSTEM
SYSAUX     /data/temp2/sysaux01.dbf                             520 ONLINE
UNDOTBS1   /data/temp2/undotbs01.dbf                             90 ONLINE
USERS      /data/temp2/users01.dbf                                5 ONLINE
EXAMPLE    /data/temp2/example01.dbf                            346 ONLINE
TS_WEBHARD /data/temp/ts_web01.dbf                              100 OFFLINE
TS_WEB_IDX /data/temp/ts_web_idx01.dbf                           10 OFFLINE

7 rows selected.

 

 

by 짱구를꼭말려 2013. 7. 18. 12:40

SCN 이 달라서 데이터파일이 온라인으로 안되는 경우

 

SYS> @df

TS_NAME    FILE_NAME                                             MB STATUS
---------- -------------------------------------------------- ----- --------
SYSTEM     /data/temp/system01.dbf                             2010 SYSTEM
SYSAUX     /data/temp/sysaux01.dbf                              520 ONLINE
UNDOTBS1   /data/temp/undotbs01.dbf                              90 ONLINE
USERS       /data/temp/users01.dbf                                 5 ONLINE
EXAMPLE    /data/temp/example01.dbf                             346 ONLINE
TS_WEBHARD /data/temp/ts_web01.dbf                              100 ONLINE
TS_WEB_IDX /data/temp/ts_web_idx01.dbf                           10 OFFLINE

7 rows selected.

 

SYS> alter database datafile '/data/temp/ts_web_idx01.dbf' online;
alter database datafile '/data/temp/ts_web_idx01.dbf' online
*
ERROR at line 1:
ORA-01190: control file or data file 7 is from before the last RESETLOGS
ORA-01110: data file 7: '/data/temp/ts_web_idx01.dbf'

SQL> recover datafile '/data/temp/ts_web_idx01.dbf' 

 

ORA-00279: change 1242623 generated at 07/04/2013 05:17:03 needed for thread 1
ORA-00289: suggestion : /data/arc1/3_1_819794020.arc
ORA-00280: change 1242623 for thread 1 is in sequence #3


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

AUTO

 

어쩌구저쩌구 많이 나옴

 

Log applied.
Media recovery complete.

 

SYS> alter database datafile '/data/temp/ts_web_idx01.dbf' online;

Database altered.

정상적으로 온라인 되었다.

 

 

'Oracle > 오류' 카테고리의 다른 글

Oracle 설치 도중 Swap Size Error  (0) 2013.08.12
by 짱구를꼭말려 2013. 7. 18. 11:21

테이블 스페이스 만들기

 

Create tablespace test(테이블스페이스 이름)

datafile '/app/oracle/oradata/testdb/test01.dbf' size 5M;

 

 

 

테이블 스페이스 및 연결된 데이터파일 조회

 

SQL> set line 200
SQL> col tablespace_name for a10
SQL> col file_name for a50
SQL> select tablespace_name,bytes/1024/1024 MB, file_name
2 from dba_data_files;

TABLESPACE MB FILE_NAME
--------------------------------------------------------------------------------
USERS 5 /app/oracle/oradata/testdb/users01.dbf
UNDOTBS1 90 /app/oracle/oradata/testdb/undotbs01.dbf
SYSAUX 520 /app/oracle/oradata/testdb/sysaux01.dbf
SYSTEM 2010 /app/oracle/disk3/system01.dbf
EXAMPLE 345.625 /app/oracle/oradata/testdb/example01.dbf
TS_WEBHARD 100 /app/oracle/oradata/testdb/ts_web01.dbf
TS_WEB_IDX 10 /app/oracle/oradata/testdb/ts_web_idx01.dbf

 

7 rows selected.

 

 

 

테이블 스페이스 삭제 및 연결된 데이터파일 삭제

 

SQL> drop tablespace test including contents and datafiles;

 

 

 

테이블 스페이스 오프라인으로 변경하기

 

SQL> alter tablespace test offline;

 

 

 

테이블 스페이스 복원 복구

 

SQL> recover tablespace test;

 

 

테이블이 어떤 테이블 스페이스에 들어 있는지 조회하기

 

SYS> select table_name, tablespace_name from all_all_tables where table_name='TT100';

(주의:Dictionary 는 대문자로 조회 해야 한다)

TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TT100                          EXAMPLE 

 

 

사용하고 있는 데이터 파일 조회

SQL> select name,file# from v$datafile;

NAME FILE#
------------------------------ ----------
/data/temp/system01.dbf 1
/data/temp/sysaux01.dbf 2
/data/temp/undotbs01.dbf 3
/data/temp/users01.dbf 4
/data/temp/example01.dbf 5
/data/temp/ts_web01.dbf 6
/data/temp/ts_web_idx01.dbf 7
/data/temp/test01.dbf 8

8 rows selected.


DB를 켠 상태로 데이터파일 사용중인 경로 바꾸기

SQL> alter database rename file '/app/oracle/disk3/system01.dbf'
2 to '/data/temp/system01.dbf';

 

Database altered.

 

Data File을 잃었을 때 DB를 끄지 않고 새로 생성하여 유지하기

(파일을 백업 하지 못했는데 복구가 필요할 때)

SQL> alter database create datafile '/app/oracle/oradata/testdb/test01.dbf'
2 as '/data/temp/test01.dbf';

 

Database altered.

 

변경된 상태 조회

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/data/temp/system01.dbf
/data/temp/sysaux01.dbf
/data/temp/undotbs01.dbf
/data/temp/users01.dbf
/data/temp/example01.dbf
/data/temp/ts_web01.dbf
/data/temp/ts_web_idx01.dbf
/data/temp/test01.dbf

8 rows selected.

 

DataFile 오프라인으로 변경하기

alter database datafile '/home/oracle/temp/test01.dbf' offline drop;

'Oracle > Admin' 카테고리의 다른 글

[Oracle Admin] Chap 2. SQL 문장의 실행 원리  (0) 2013.09.08
[Oracle Admin] Chap 1. Oracle server 구조  (0) 2013.09.08
Archive/No Archive log mode  (0) 2013.08.02
Export, Import  (0) 2013.07.24
불완전 복구(Incomplete Recovery)  (0) 2013.07.16
by 짱구를꼭말려 2013. 7. 16. 12:09

불완전 복구

 

주의점

  • 한방에 성공해야 한다.

  • 복구 시점이 정확히 기억이 나지 않는다면 Temp 폴더로 임시복구를 해 본다.(그 시점까지 반복)

  •  

     

    RESETLOG

    Archive <-> No Archive

     무조건 풀 백업을 다시 받아야 한다

     

    alter database open resetlogs -> Redo Log FIle -> 1. 파일이 있는 경우 : 초기화

     2. 파일이 없는 경우 : 재생성

     

     

    특정 날짜로 복구하고 싶은 경우 불완전 복구를 이용한다

     Recover 명령을 썼을 때 읽어들이는 파일의 순서 : recover -> control file -> data file -> redo/archive log file

     

    특정 날짜로 복구하기

     

    1. 100번의 DATAFILE들 + 106번의 redo_log파일+ 106번의 control 파일 을 임시 폴더로 복사

    2. alter database rename file '원래 데이터파일 경로' to '임시 데이터파일 경로';

    3. alter database rename file '원래 Redo log file 경로' to '임시 Redo log file 경로';

    4. recover database until time '2013-07-03:11:59:00';

    5. alter database open resetlogs;

     

     

    'Oracle > Admin' 카테고리의 다른 글

    [Oracle Admin] Chap 2. SQL 문장의 실행 원리  (0) 2013.09.08
    [Oracle Admin] Chap 1. Oracle server 구조  (0) 2013.09.08
    Archive/No Archive log mode  (0) 2013.08.02
    Export, Import  (0) 2013.07.24
    Table Space 및 DATA file 관리  (0) 2013.07.16
    by 짱구를꼭말려 2013. 7. 16. 11:13

    새 창에 이것을 켜놓고 작업하면 Alert Log 를 보며 작업할 수 있다.

     

    [oracle@server122 ~]$ tail -f /app/oracle/diag/rdbms/testdb/testdb/trace/alert_testdb.log (11g)

     

    tail -f $ORACLE_BASE/admin/SID/bdump/alert_SID.log     (10g)

     

     

    by 짱구를꼭말려 2013. 7. 16. 10:50