create spfile from pfile
读$ORACLE_HOME/dbs/spfile<sid>.ora文件,创建的pfile是 $ORACLE_HOME/dbs/init<sid>.ora
create pfile from spfile则与上相反。
/home/u01/app/oracle/product/11.2.3/dbhome_1/dbs
控制文件是二进制文件(不会超过100m,一般是几m大小),控制文件记录了数据库的结构和行为。在mount时候读
在数据库open时一直使用同,丢失需要恢复。
select * from v$controlfile;
--参数文件中的值。不需要重启便生效
select value from V$spparameter where name='control_files';
select CONTROLFILE_SEQUENCE# from v$database;
select TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED from V$CONTROLFILE_RECORD_SECTION;
一、Window oracle更改控制文件路径
1.查看控制文件路径
select name from v$controlfile;

1.通过sqlplus as sysdba打开数据库,查看控制文件路径
sqlplus SYS/SYS@seinescm as sysdba

2.使用命令创建pflie文件
create pfile='d:\init.ora' from spfile;

3.打开pfile文件修改控制文件路径

4.使用命令关闭数据库
shutdown immediate
手动复制控制文件到存储的新目录
5.方一
使用show parameter pfile,确定是否使用了spfile;

上图是有提示已经使用了SPFILE了,则直接执行如下命令修改里面的控制文件路径即可
alter system set control_files='D:\MoveOracle\CONTROL01.CTL','D:\MoveOracle\CONTROL02.CTL' scope=spfile;

5.方二:
使用pfile从d:\init.ora启动
startup pfile='d:\init.ora';
通过指定的pfile文件创建spfile文件
create spfile='D:\Oracle\product\11.2.0\dbhome_1\dbs\spfileseinescm.ora' from pfile='d:\init.ora';
验证如下:
6.通过shutdown immediate关闭数据库
7.startup force强制启动数据库

二、减少控制文件的个数
减少控制文件,实验的目的,有一个控制文件损坏,我们要将损坏的控制文件剔除。
1.修改参数文件,并验证
2.停止数据库
3.启动数据库
4.验证,查看v$controlfile

需要重启数据库才生效 startup force--重新启动数据库,

三、增加控制文件的个数
1.修改参数文件
alter system set control_files='D:\oracle\oradata\nalgene\CONTROL01.CTL','D:\oracle\oradata\nalgene\CONTROL01.CTL' scope=spfile;

2.重新启动数据库,使修改的参数起作用
提示错误:ORA-00214: control file 'D:\ORACLE\ORADATA\nalgene\CONTROL01.CTL' version 9499 inconsistent with file 'D:\ORACLE\ORADATA\nalgene\CONTROL02.CTL' version 9483
因为CONTROL02.CTL刚才脱离了数据库,没有参加修改,CONTROL01.CTL已经变化了,二CONTROL02.CTL没有变化,所以时间戳不正确了。
3.复制控制文件
SQL> host copy D:\ORACLE\ORADATA\nalgene\CONTROL01.CTL D:\ORACLE\ORADATA\nalgene\CONTROL02.CTL
4.启动数据库
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01507: database not mounted
因为我们处于数据库的nomount状态,想要open不能跨越mount台阶,所以必须先mount数据库。
SQL> alter database mount;
启动到mount状态
Database altered.
SQL> alter database open;
启动到open状态
Database altered.
5.验证,查看v$controlfile
select value from v$spparameter where name='control_files'
PS:若需要再增加第三个控制文件
1.修改参数文件alter system set.....
2.重启数据库
提示错误:
ORA-00205: error in identifying control file, check alert log for more info
因为不存在CONTROL03.CTL文件,所以数据库报错,没有找到指定的控制文件。
3.复制控制文件
host copy D:\ORACLE\ORADATA\nalgene\CONTROL01.CTL D:\ORACLE\nalgene\ORA10\CONTROL03.CTL
将最新的控制文件拷贝到CONTROL03.CTL文件,使三个控制文件完全相同
4.启动数据库
启动到mount状态alter database mount;
启动到open状态alter database open;
浙公网安备 33010602011771号