转:oracle添加controlfile重建spfile(spfileorcl.ora)

添加controlfile,重新创建spfile

1.编辑init.ora文件
指定需要添加的控制文件的路径
control_files=("E:\oracle\product\10.1.0\oradata\orcl\control01.ctl", "E:\oracle\product\10.1.0\oradata\orcl\control02.ctl", "E:\oracle\product\10.1.0\oradata\orcl\control03.ctl", "E:\oracle\product\10.1.0\oradata\orcl\control04.ctl","E:\oracle\product\10.1.0\oradata\orcl\control05.ctl")
--添加control04.ctl,control05.ctl的路径
2.创建control04.ctl,control05.ctl文件
E:\oracle\product\10.1.0\admin\orcl\init.ora --添加controlfile
SQL> shutdown--切换状态
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host copy e:\oracle\product\10.1.0\oradata\orcl\control01.ctl e:\oracle\product\10.1.0\oradata\orcl\control04.ctl
已复制         1 个文件。
SQL> host copy e:\oracle\product\10.1.0\oradata\orcl\control01.ctl e:\oracle\product\10.1.0\oradata\orcl\control05.ctl
已复制         1 个文件。
 
3.使用pflie文件引导oracle启动
--系统首选启动文件e:\oracle\product\10.1.0\Db_1\database\spfileorcl.ora
--管理员无法直接更改spfileorcl.ora文件,只能重新创建
SQL> startup pfile='e:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.7112011153835';
ORACLE instance started.
 
Total System Global Area  171966464 bytes
Fixed Size                   787988 bytes
Variable Size             145488364 bytes
Database Buffers           25165824 bytes
Redo Buffers                 524288 bytes
Database mounted.
Database opened.
--controlfile已经添加成功
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL01.CTL
E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL02.CTL
E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL03.CTL
E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL04.CTL
E:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CONTROL05.CTL
SQL>
4.重新创建spfile
--(1)oracle使用pfile登录 open状态创建spfile
SQL> create spfile from pfile='e:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.7112011153835';
File created.
 
--(2)nomount 状态无法创建spflie
--oracle使用pfile登录nomount状态可以创建spfile
SQL> startup nomount
ORACLE instance started.
Total System Global Area  171966464 bytes
Fixed Size                   787988 bytes
Variable Size             145488364 bytes
Database Buffers           25165824 bytes
Redo Buffers                 524288 bytes
SQL> create spfile from pfile='e:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.7112011153835';
create spfile from pfile='e:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.7112011153835'
*
ERROR at line 1:
ORA-32002: cannot create SPFILE already being used by the instance
SQL>
 
--(3)oracle关闭状态创建spfile
SQL> shutdown
ORA-01507: database not mounted
 
ORACLE instance shut down.
SQL> create spfile from pfile='e:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.7112011153835';
File created.
SQL>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库的控制文件遭到损坏或丢失时,我们需要重建控制文件。下面是重建控制文件的步骤: 1. 首先,我们需要确保数据库处于关闭状态。如果数据库正在运行,我们需要停止所有相关进程,包括实例和监听器。 2. 找到数据库实例的初始化参数文件(通常是spfile或init.ora文件),此文件记录了数据库的配置信息和启动参数。确保备份此文件,以防止意外情况发生。 3. 打开一个编辑器,并创建一个新的SQL脚本文件,例如控制文件重建.sql,用于重建控制文件。 4. 在SQL脚本文件中,编写以下命令: ALTER DATABASE BACKUP CONTROLFILE TO TRACE; 这个命令将生成一个包含重建控制文件所需的语句的跟踪文件。 5. 关闭SQL脚本文件,并将其放置在$ORACLE_HOME/rdbms/admin目录中。 6. 启动数据库实例,但不要打开任何数据库。 7. 使用SQL*Plus以SYSDBA权限登录到数据库。 8. 运行以下命令加载步骤4中生成的跟踪文件: @?/rdbms/admin/控制文件重建.sql 这将执行所需的SQL语句,以重建控制文件。 9. 当脚本执行完成后,检查控制文件是否已经成功重建。你可以通过查询V$CONTROLFILE视图来检查。 10. 确认控制文件的完整性和正确性后,关闭数据库实例。 11. 最后,备份新生成的控制文件,以便将来遇到类似问题时可以快速恢复。 总结起来,重建Oracle控制文件涉及到备份初始化参数文件、创建包含重建语句的SQL脚本、加载脚本以重建控制文件,最后确认重建结果并备份新的控制文件。这些步骤将帮助我们成功重建控制文件,使数据库恢复正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值