개요
데이터파일의 파일명 수정 혹은 경로 변경을 위해 수행할 수 있는 3가지 방법에 대해 설명합니다.
•
control 파일을 수정하지 않는 방법
•
control 파일 수정 및 재생성
•
테이블스페이스 offline
각 방법은 적용 환경과 목적에 따라 선택적으로 사용할 수 있습니다.
방법
1. Control 파일을 수정하지 않는 방법
1. Tibero 종료
tbdown immediate
SQL
복사
2. 데이터파일 복사
기존 데이터파일을 원하는 이름이나 경로로 복사합니다.
$ cp /home/tibero/oldfile.dtf /home/tibero/newfile.dtf
SQL
복사
3. mount 모드
tbboot mount
SQL
복사
4. SQL 접속
SYS 계정으로 접속합니다.
tbsql sys/tibero
SQL
복사
5. 데이터파일 이름 변경
ALTER DATABASE RENAME FILE '/home/tibero/oldfile1.dtf' TO '/home/tibero/newfile1.dtf';
ALTER DATABASE RENAME FILE '/home/tibero/oldfile2.dtf' TO '/home/tibero/newfile2.dtf';
SQL
복사
6. Tibero 종료
tbdown immediate
SQL
복사
7. Tibero 기동
tbboot
SQL
복사
2. control 파일 수정 및 재생성
1. control 파일 생성문 백업 (normal 모드)
tbsql sys/tibero
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/data/ctl.sql' REUSE NORESETLOGS;
SQL
복사
2. Tibero 종료
tbdown immediate
SQL
복사
3. 데이터파일 복사
기존 데이터파일을 원하는 이름이나 경로로 복사합니다.
$ cp /home/tibero/oldfile.dtf /home/tibero/newfile.dtf
SQL
복사
4. control 파일 생성문 수정
1번에서 백업한 control 파일 생성문 내용 중 해당 파일명을 수정합니다.
...
NORESETLOGS
DATAFILE
'/home/tibero/system001.dtf',
...
'/home/tibero/oldfile.dtf', ⇒ '/home/tibero/newfile.dtf '
...
SQL
복사
5. nomount 모드
tbboot nomount
SQL
복사
6. SQL 접속
tbsql sys/tibero
SQL
복사
7. control 파일 재생성
SQL> @/data/ctl.sql
SQL
복사
8. Tibero 종료
tbdown
SQL
복사
9. mount 모드
tbboot mount
SQL
복사
10. 복구 수행
SQL> alter database recover automatic;
SQL
복사
Tibero 종료
tbdown
SQL
복사
12. Tibero 기동
tbboot
SQL
복사
13. TEMPFILE 재생성
control 파일 생성문 중 temp 생성문 이용하여 tempfile 재생성합니다.
...
---- Adding Tempfiles is required in OPEN mode.
-- ALTER TABLESPACE TEMP ADD TEMPFILE '/home/tibero/temp001.dtf'
-- SIZE 100M REUSE AUTOEXTEND ON NEXT 16M MAXSIZE 3G;
...
SQL > ALTER TABLESPACE TEMP ADD TEMPFILE '/home/tibero/temp001.dtf' SIZE 100M REUSE AUTOEXTEND ON NEXT 16M MAXSIZE 3G;
SQL
복사
테이블스페이스 offline
1. 테이블스페이스 Offline 처리
해당 데이터파일이 속한 테이블스페이스를 offline 상태로 전환합니다.
SQL> alter tablespace tablespace_name offline;
SQL
복사
2. 데이터파일 복사
기존 데이터파일을 원하는 이름이나 경로로 복사합니다.
$ cp /home/tibero/oldfile.dtf /home/tibero/newfile.dtf
SQL
복사
3. 데이터파일 변경
SQL> ALTER DATABASE RENAME FILE '/home/tibero/oldfile.dtf' TO '/home/tibero/newfile.dtf';
SQL
복사
4. 테이블스페이스 online
SQL> alter tablespace tablespace_name online;
SQL
복사
참고
•
3번 방법은 normal 모드에서 데이터베이스를 다운하지 않고도 수행할 수 있다는 장점이 있지만, 해당 테이블스페이스에 접근 중인 트랜잭션이 전혀 없어야만 안전하게 수행 가능합니다. 따라서 실제 운영 환경에서는 수행하기 어렵습니다.
•
또한, 테이블스페이스 offline이 정상적으로 되지 않을 경우 데이터파일에 문제가 발생할 수 있기 때문에, 3번보다는 1번 또는 2번 방법을 사용하는 것을 권장합니다.