2014-10-18 5 views
0

공간을 추가 할 때 하나의 UNDO 데이터 파일이 잘못된 위치에 잘못 배치되었습니다. 그 파일을 올바른 위치로 옮기고 싶습니다. 프로덕션 데이터베이스이므로 진행중인 트랜잭션을 방해하고 싶지 않습니다. 이동하면서 해당 실행 취소 데이터 파일을 오프라인으로 전환 할 수 있습니까? 데이터 손실없이 데이터베이스가 정상적으로 작동합니까?트랜잭션을 방해하지 않고 실행중인 데이터베이스에서 실행 취소 데이터 파일을 이동하는 방법은 무엇입니까?

버전 : 11.2.0.4.0

어느 것이 좋습니다.

답변

1

데이터베이스 실행 중 및 연중 무휴 환경에서 실행 취소 데이터 파일의 새 위치로 새 실행 취소 테이블 공간을 만들어야합니다. 이 새로운 테이블 스페이스를 생성 한 후에는 진행중인 트랜잭션에 영향을 미치지 않고 이전 테이블 스페이스에서 새로운 테이블 스페이스로 온라인으로 전환 할 수 있습니다.

다음 예는 목표를 달성하는 방법을 보여줍니다. 이 트릭을 사용하면 데이터 손실을 피할 수 있습니다.

SQL>create undo tablespace undotbs2 datafile '/yournewlocation/undotbs02.dbf' size 1000m; 

Now set new undo tablespace as default undo tablespace using following command as SYSDBA in SQLPLUS 
SQL> alter system set undo_tablespace= undotbs2 ; 

After finishing above task you can drop old undotbs tablespace from database using following command. 
SQL> drop tablespace undotbs including contents; 
0

내가 TEST_TBS는 빅 데이터 파일로 실행 취소 테이블 스페이스를 만드는 것이 좋습니다 것이다 : 나는 또한 둘의 범위로 시스템을 변경하는 것

CREATE BIGFILE UNDO TABLESPACE UNDOTBS02 
    DATAFILE '/yournewlocation/UNDOTBS02.dbf' 
    SIZE 100M AUTOEXTEND ON NEXT 100M 
    MAXSIZE 500G; --or whatever size you consider sufficient for your DB 

, 변경이 메모리와 SPFILE 모두 구성되어 있는지 확인합니다 :

ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS02 SCOPE=BOTH; 

그런 다음 모든 활성 트랜잭션과 UNDO_RETENTION 기간 (있는 경우)을 완료, 당신은 doc123에 의해 설명 된대로 테이블을 드롭 할 수 있습니다를 제공했다.