情境:儲存介質被破壞,造成控制檔案丟失,需更換硬碟,並重建立立控制檔案。
(1)修改初始化參數control_files,改變控制檔案位置
SQL> ALTER SYSTEM SET CONTROL_FILES='/disk1/oradata/control01.ctl','/disk2/oradata/control.ctl' scope=spfile;
(2)關閉資料庫
SQL>shutdown immediate
(3)啟動執行個體
SQL>startup nomount
SQL> select value from v$parameter where name=’control_files';
(4)建立控制檔案
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/app/Oracle/oradata/orcl/redo01.log' SIZE 50M,
GROUP 2 '/u01/app/oracle/oradata/orcl/redo02.log' SIZE 50M,
GROUP 3 '/u01/app/oracle/oradata/orcl/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/u01/app/oracle/oradata/orcl/system01.dbf',
'/u01/app/oracle/oradata/orcl/undotbs01.dbf',
'/u01/app/oracle/oradata/orcl/sysaux01.dbf',
'/u01/app/oracle/oradata/orcl/users01.dbf',
'/u01/app/oracle/oradata/orcl/example01.dbf'
CHARACTER SET WE8ISO8859P1;
注意:
NORESETLOGS 選項用於指定仍然使用原有的重做日誌
RESETLOGS 不使用原有的重做日誌
(5)開啟資料庫
SQL> ALTER DATABASE OPEN;
(6)增加臨時檔案
SQL>alter database temp add tempfile ‘/disk1/oradata/temp01.dbf' size 50m reuse autoextend off;