http://infodbbase.tistory.com/81



'개발 > DB' 카테고리의 다른 글

SQL SERVER 2012 복원  (0) 2013.12.18
복구의 종류  (0) 2009.11.29
백업 테스트  (0) 2009.11.28
백업의 종류  (0) 2009.11.27
아카이브 로그 모드 설정  (0) 2009.11.26
Posted by 무혹
,

SQL SERVER 2012 복원

개발/DB 2013. 12. 18. 22:30

현재 회사에서 SQL SERVER 2012를 사용하고 있는데 개발서버는 없이 운영서버만 있다.

나는 DB관리자도 아니지만(우리회사에 있지도 않지..) 개발서버를 만들고 있었다.

그러던중에 복원에서 문제가 발생했다.


개발DB에 데이터베이스를 생성하고 태스크 => 복원으로 시도하니 계속 오류가 발생한다.


알고보니 다른 DB에 넣을때는 데이터베이스를 생성하지 않고

데이터베이스 => 데이터베이스 복원을 통해서 해야 한다.





여러가지 설정값이 맞지 않아서 그런거라는 생각이 들었는데

다른 DB도 같은지는 잘 기억이 안 난다. 

(나는 DBA가 아니니까.. 테스트정도밖에 안해봤다고..)

'개발 > DB' 카테고리의 다른 글

SQL Server Stored Procedure 검색  (0) 2014.01.24
복구의 종류  (0) 2009.11.29
백업 테스트  (0) 2009.11.28
백업의 종류  (0) 2009.11.27
아카이브 로그 모드 설정  (0) 2009.11.26
Posted by 무혹
,

복구의 종류

개발/DB 2009. 11. 29. 08:00
 
  1. Data File 이동방법 (tablespace 단위)

    (1) tablespace offline

    (2) data file 이동

    (3) tablespace online

    (1) ~ (3) 반복

  2. Data file 이동방법 (db 단위)

    (1) db shutdown

    (2) file 이동

    (3) alter database open

    (4) db open

  1. 완전복구 (매체장애)의 순서 – offline 가능한 경우

    (1) tablespace offline

    (2) data file 복원

    (3) recover tablespace '복구 수행할 tablespace명’

    (4) tablespace online

    (tablespace가 아닌 datafile 단계에서도 가능하나 오라클 매뉴얼에는 없음)

  2. 완전복구의 순서 – offline할 수 없는 경우 (system, undo, offline불가능, 많은 Tablespace 동시 손상)

    (1) db shutdown ( or abort)

    (2) data file 복원

    (3) db mount

    (4) recover database

    (5) db open

  3. 완전복구의 종류

    (1) 닫힌 데이터베이스 복구

    - system 테이블스페이스, 활성화된 undo 테이블스페이스에 속한 데이터 파일이

    손상된 경우

    (2) 오픈 상태의 데이터베이스 복구

    - 손상된 파일이 system, 활성화된 undo 세그먼트를 포함한 테이블스페이스에 속하지

    않을 경우

    (3) 다른 위치에 datafile 복구 (닫힌 복구, 열린 복구 모두 가능)

    - data file의 원래 경로에 파일의 복원이 불가능한 경우

    (4) 백업하지 않은 데이터 파일 복구 (닫힌 복구, 열린 복구 모두 가능)

    - 디스크 장애나 사용자 실수로 아직 백업하지 않은 데이터 파일이 손상된 경우

    (백업시점 이후 생성한 경우 : 백업시점에 이미 누락된것은 복구 절대 불가)

  4. 완전 복구 명령 : recover 구문 사용

    - 마운트 상태의 recover 구문 (닫힌)

    recover database

    recover datafile '데이터 파일명’

    alter database recover database

    - 오픈 상태의 recover 구분 (열린)

    recover tablespace 테이블스페이스명

    recover datafile '데이터 파일명’

    alter database recover datafile '데이터 파일명’

    - recover archive log 찾을때 동작 3가지

    AUTO, 엔터키, 경로와 이름 입력

    - recover 명령 이전에 archive log 위치 변경

    alter system archive log start to '신규 경로’

    - recover명령시 새로운 경로 지정

    recover from '신규 경로’ database

  5. 완전복구시 필요 파일

    - 손상된 data file 의 백업본

    - archive log file

    - redo log file

    - 현재시점 control file

  6. 불완전 복구의 설명및 원인

    (1) 설명

    - 복구 시점이 완전복구와 달리 장애 발생시점이 아님. 따라서 완전복구처럼

    모든 로그파일을 사용하지 않는다.

    (2) 원인

    - 사용자 에러 : 사용자가 중요한 테이블이나 테이블스페이스를 삭제하거나

    잘못된 데이터를 커밋한 경우

    (delete, updatewhere 조건 실수, 테이블이나 테이블스페이스 drop)

    - 리두 로그 정보의 손실 : 데이터 파일을 복구할 때 아카이브 리두 로그 파일이 일부 손실되거나 없어지는 경우

  7. 불완전 복구 유형과 recover 명령

    (1) 시간기반 (time-base)복구

    SQL> recover database until time 'YYYY-MM-DD:HH:MI:SS';

    (2) 취소기반 (cancel-base) 복구

    (archive log 파일 손상된 경우)

    SQL> recover database until cancel;

    (3) 백업 컨트롤 파일을 이용한 복구 (시간기반, 취소기반)

    SQL> recover database until time 'YYYY-MM-DD:HH:MI:SS' using backup controlfile

    SQL> recover database until cancel using backup controlfile

  1. 불완전 복구의 복구 과정

    (1) 장애 확인 데이터베이스 종료

    (2) 닫힌 백업 실시 (임시 백업)

    (3) 모든 데이터 파일 복원 (필요에 따라 컨트롤 파일 복구)

    (4) 데이터베이스 마운트 모드 시작, recover 명령으로 복구

    (5) restlogs 옵션으로 데이터베이스 오픈후 동작확인

    (6) (5)번이 정상시 데이터베이스 종료후 닫힌 백업 실시

  1. 불완전 복구의 복구 과정 (time basecancel base 비교)

    (1) db shundown

    (2) file 모두 복원 ( *.dbf or *.dbf, *.ctl)

    (3) db mount;

    (4) recover database until time(시간 기반) using backup controlfile; (ctl을 복사한 경우)

    recover database until cancel(취소 기반) using backup controlfile; (ctl을 복사한 경우)

    (5) alter database open restlogs;






'개발 > DB' 카테고리의 다른 글

SQL Server Stored Procedure 검색  (0) 2014.01.24
SQL SERVER 2012 복원  (0) 2013.12.18
백업 테스트  (0) 2009.11.28
백업의 종류  (0) 2009.11.27
아카이브 로그 모드 설정  (0) 2009.11.26
Posted by 무혹
,

백업 테스트

개발/DB 2009. 11. 28. 08:59
  1. 닫힌 백업 (close backup)

    백업 디렉토리 : /backup/close/


Step 1 : 백업대상 파일 확인


SQL> select name, status from V$datafile; (datafile 목록확인)

SQL> select name, status from v$tempfile; (tempfile 확인)

SQL> select name from v$controlfile; (controlfile 확인)

SQL> select * from v$logfile;

SQL> !ls $ORACLE_HOME/dbs


Step 2 : DB shutdown


SQL> shutdown immediate; (shutdown abort;)


Step 3 : 파일 백업


SQL> !cp -rpf /app/ora10g/oradata/* /backup/close/

SQL> !cp -rpf /app/ora10g/10g/dbs /backup/close/

SQL> !rm /backup/archive/*


Step 4 : DB open


SQL> startup




  1. 열린 백업 (open backup)

백업 디렉토리 : /backup/open/


Step 1 : 백업 대상 확인


SQL> select tablespace_name, bytes, blocks, file_name from dba_data_files;

SQL> select tablespace_name, status, contents, extent_management,

segment_space_management from dba_tablespaces;

SQL> select * from v$controlfile;


Step 2 : 백업 스크립트 생성


SQL> !vi open.sql


alter tablespace SYSTEM begin backup;

!cp /app/ora10g/oradata/disk3/system01.dbf /backup/open/disk3/

alter tablespace SYSTEM end backup;

alter tablespace UNDO begin backup;

!cp /app/ora10g/oradata/disk3/undo01.dbf /backup/open/disk3/

alter tablespace UNDO end backup;

-----

-----

alter database backup controlfile to '/backup/open/control.ctl';


Step 3 : 백업 수행

SQL> @open




'개발 > DB' 카테고리의 다른 글

SQL SERVER 2012 복원  (0) 2013.12.18
복구의 종류  (0) 2009.11.29
백업의 종류  (0) 2009.11.27
아카이브 로그 모드 설정  (0) 2009.11.26
백업및 복구를 위한 기본개념  (0) 2009.11.25
Posted by 무혹
,

백업의 종류

개발/DB 2009. 11. 27. 08:59
  1. 닫힌 백업 (close backup, cold backup, offline backup)

  • 닫힌 백업 대상 파일

    데이터 파일, 컨트롤 파일, 파라미터 파일, 패스워드 파일, 리두 로그 파일등

  • 닫힌 백업 수행 과정

    a. 백업 대상 파일 정보 수집

    b. 오라클 종료

    c. 운영체제의 복사명령이나 백업 명령을 이용해서 대상 파일 백업

    d. 백업 이전 생성된 아카이브 로그 파일 삭제(용량 확보 목적)

    e. 오라클 재시작


  1. 열린 백업 (open backup, hot bakcup, online backup)

  • 열린 백업 조건

    아카이브 로그 모드 설정, 아카이브 프로세스 활성화

  • 열린 백업 수행 과정

    a. 백업 대상 테이블스페이스를 백업모드로 변경

    (백업모드가 아닌 offlineaccess 불가능, 백업모드는 access 가능하나

    필히 스크립트로 실행하여 속도 확보)

    : alter tablespace <테이블스페이스명> begin backup;

    b. 해당 테이블 스페이스의 데이터 파일을 백업 디렉토리로 복사

    c. 테이블스페이스를 정상적인 상태로 되돌린다.

    : alter tablespace <테이블스페이스명> end backup;

    d. 모든 파일의 동기화 정보 일치를 위해 체크포인트 강제 실행

    : alter system checkpoint;

  • 컨토롤 파일의 열린 백업

    *. alter database backup controlfile to <생성될 컨트롤 파일명> (주로 사용)

    *. alter database backup controlfile to trace; (스크립트로 실행)





'개발 > DB' 카테고리의 다른 글

복구의 종류  (0) 2009.11.29
백업 테스트  (0) 2009.11.28
아카이브 로그 모드 설정  (0) 2009.11.26
백업및 복구를 위한 기본개념  (0) 2009.11.25
아카이브 로그 모드와 노 아카이브 로그 모드  (0) 2009.11.24
Posted by 무혹
,
  1. 아카이브 로그모드 설정절차

  • 파라미터 파일 수정

    log_archive_dest_1=”location=경로명”

    log_archive_format= 파일명

  • 데이터베이스 종료

    SQL> shutdown

  • DB mount

    SQL> startup mount

  • 아카이브 로그 모드로 변경

    SQL> alter database archivelog;

  • 데이터베이스 오픈

    SQL> Alter database open;


  1. 아카이브 로그모드 설정 예제

  • DB Connect

    $ sqlplus / as sysdba

  • DB startup및 상태 확인

    SQL> startup

    SQL> archive log list

    SQL> select * from v$logfile;

  • Parameter 설정

    SQL> show parameter log_archive_desc

    SQL> alter system set log_archive_dest_1=”location=/backup/archive”;

    SQL> alter system set log_archive_format=”%S_%T_%R.ARC” scope=spfile;

  • DB shutdown

    SQL> shutdown immediate

  • DB Mount

    SQL> startup mount

  • Archive모드 활성화

    SQL> alter database archivelog;

  • DB Open

    SQL> alter database open;

  • 정상 확인

    SQL> archive log list

    SQL> alter system switch logfile;

    SQL> alter system checkpoint;

    SQL> !ls /backup/archive





'개발 > DB' 카테고리의 다른 글

백업 테스트  (0) 2009.11.28
백업의 종류  (0) 2009.11.27
백업및 복구를 위한 기본개념  (0) 2009.11.25
아카이브 로그 모드와 노 아카이브 로그 모드  (0) 2009.11.24
mysql 페이징  (0) 2009.03.02
Posted by 무혹
,

*. SGA영역의 Log WriterRedo Log버퍼에서 Redo log fileWrite한다.

(Commit 데이터의 유실 방지)

*. Redo Log를 외부에 다시한번 저장하는 경우 Archive 모드라 한다.

이 경우 저장파일을 Archive log file이라고 한다.

Archive log fileArchive log mode에서 사용하는 복구파일이므로

유실시 복구가 안된다.

*. 복원 : Backup 시점의 Backup파일 복사

*. 복구(recovery) : ArchiveRedo에서 복구

*. 완전복구 : 전체 정상복구

*. 불완전복구 : ArchiveRedo로그에서 누락된것

*. DB online에서 datafile을 백업할때는 datafileoffline으로 하고 작업

(tablespace offline뿐만 아니라 datafile offline도 가능)


*. Redo log는 그룹으로 관리된다.


*. Redo log3이라고 할때 동작은 아래와 같다.

설치후 Archive log mode, backup 을 하는 경우



















'개발 > DB' 카테고리의 다른 글

백업의 종류  (0) 2009.11.27
아카이브 로그 모드 설정  (0) 2009.11.26
아카이브 로그 모드와 노 아카이브 로그 모드  (0) 2009.11.24
mysql 페이징  (0) 2009.03.02
mysql  (0) 2009.01.21
Posted by 무혹
,
  1. 아카이브 로그 모드 (Archive log mode)

  1. 백업방법

    - 닫힌 백업(Close Backup), 열린 백업(Open Backup, Online Backup)

  2. 복구

    - 아카이브 로그 파일 이용한 완전 복구

    - 온라인 복구 가능 : 해당 테이블스페이스만 복구, 나머지 테이블스페이스는

    사용가능

    - 부분 복구 가능

  3. 운영

    - 백업파일과 아카이브 로그 파일 모두 유지

  1. 노 아카이브 로그 모드 (No Archive log mode)

  1. 백업방법

    - 닫힌 백업(Close Backup)

  2. 복구

    - 복구할때 최종 백업이후 데이터는 모두 상실

    - 복구중 DB사용 불가 (Close Backup이므로)

    - 부분 복구 불가능

  3. 운영

    - 닫힌 백업파일만 관리


*. 기본적으로 아카이브 로그 모드로 운영해야 오라클을 사용하는 목적에 부합함

노 아카이브 로그 모드를 사용한다면 구태여 오라클 사용 이유 없음


'개발 > DB' 카테고리의 다른 글

아카이브 로그 모드 설정  (0) 2009.11.26
백업및 복구를 위한 기본개념  (0) 2009.11.25
mysql 페이징  (0) 2009.03.02
mysql  (0) 2009.01.21
결합 컬럼 인덱스  (0) 2008.06.11
Posted by 무혹
,

mysql 페이징

개발/DB 2009. 3. 2. 09:34
일반적이지 않은 방법


LIMIT 속도저하 회피
(하지만 하단의 질문자 말이 맞는듯..)

LIMIT사용법




'개발 > DB' 카테고리의 다른 글

아카이브 로그 모드 설정  (0) 2009.11.26
백업및 복구를 위한 기본개념  (0) 2009.11.25
아카이브 로그 모드와 노 아카이브 로그 모드  (0) 2009.11.24
mysql  (0) 2009.01.21
결합 컬럼 인덱스  (0) 2008.06.11
Posted by 무혹
,

mysql

개발/DB 2009. 1. 21. 15:52
1. mysql 제약조건 생성시 해당 칼럼에 index가 존재해야 한다.

ALTER TABLE TBLPERMMENU ADD INDEX IDX_TBLPERMMENU_NO1(PERM_NO);

ALTER TABLE TBLPERMMENU ADD FOREIGN KEY(PERM_NO) REFERENCES TBLPERM(PERM_NO) ON DELETE RESTRICT;

이런식...

'개발 > DB' 카테고리의 다른 글

아카이브 로그 모드 설정  (0) 2009.11.26
백업및 복구를 위한 기본개념  (0) 2009.11.25
아카이브 로그 모드와 노 아카이브 로그 모드  (0) 2009.11.24
mysql 페이징  (0) 2009.03.02
결합 컬럼 인덱스  (0) 2008.06.11
Posted by 무혹
,