一、怎样添加和移动控制文件
1、利用数据字典v$controlfile获取现有控制文件名字;
2、使用show parameter pfile,确定是否使用了spfile;
3、使用了spfile的,按照以下的方式修改controlfile
alter system set control_files=
'D:\Disk1\CONTROL01.CTL',
'D:\Disk2\CONTROL02.CTL',
'D:\Disk3\CONTROL03.CTL' scopr=spfile;
未使用spfile的,将新的控制文件名添加到参数文件的CONTROL_FILES中。
control_files=("D:\Disk1\CONTROL01.CTL","D:\Disk2\CONTROL02.CTL", "D:\Disk3\CONTROL03.CTL")
4、正常关闭数据库,shutdown immediate;
5、拷贝原来的控制文件到相应的位置;
6、重启Oracle数据库,startup;
7、查看v$controlfile中控制文件是否改变了,如果没有改变,按照步骤重新来。
二、控制文件备份
数据库的结构发生变化后,要立即备份控制文件
alter database backup controlfile to 'D:\backup\controlfile.bak'
三、控制文件创建
1、startup nomount;
2、alter database backup controlfile to trace;
在ORA_HOME\admin\sample\udump\目录下生成SID_ora_*.trc文件,
该文件包含重建控制文件所需的SQL语句,一般分为归档模式和非归档模式。
3、以非归档模式为例:
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/opt/oracle/oradata/orcl/redo01.log' SIZE 50M,
GROUP 2 '/opt/oracle/oradata/orcl/redo02.log' SIZE 50M,
GROUP 3 '/opt/oracle/oradata/orcl/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/opt/oracle/oradata/orcl/system01.dbf',
'/opt/oracle/oradata/orcl/undotbs01.dbf',
'/opt/oracle/oradata/orcl/sysaux01.dbf',
'/opt/oracle/oradata/orcl/users01.dbf',
'/opt/oracle/oradata/orcl/example01.dbf'
CHARACTER SET WE8ISO8859P1;
4、startup nomount 启动数据库
5、在SQL模式下:执行如下命令。
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/opt/oracle/oradata/orcl/redo01.log' SIZE 50M,
GROUP 2 '/opt/oracle/oradata/orcl/redo02.log' SIZE 50M,
GROUP 3 '/opt/oracle/oradata/orcl/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/opt/oracle/oradata/orcl/system01.dbf',
'/opt/oracle/oradata/orcl/undotbs01.dbf',
'/opt/oracle/oradata/orcl/sysaux01.dbf',
'/opt/oracle/oradata/orcl/users01.dbf',
'/opt/oracle/oradata/orcl/example01.dbf'
CHARACTER SET WE8ISO8859P1
6、执行:SQL > RECOVER DATABASE
7、执行: SQL > ALTER DATABASE OPEN;
8、执行: SQL > ALTER TABLESPACE TEMP ADD TEMPFILE '/opt/oracle/oradata/orcl/temp01.dbf'
SIZE 20971520 REUSE AUTOEXTEND OFF
9、问题解决,控制文件重建成功。
10、如果遇到失败情况,请按照上述步骤重新确认在执行。
11、重建好后,建议重新备份一次。
四、ORA-00214错误解决
SQL> conn sys as sysdba
SQL> startup nomount
SQL> alter system set control_files=
'D:\ORACLE\ORADATA\ORA10\CONTROL02.CTL'
scope=spfile;
SQL> alter database mount
SQL> alter database open