ORACLE windows驱动盘符自动变更导致oracle数据库崩溃无法启动

    今天,接到贵阳同事申告,说机房意外断电后数据库起不来了,状况如下:

    看到启动报错,第一反应是归档路径发生变更了,于是使用如下语句手工创建pfile文件,查看
CREATE pfile='c:\initorcl.ora' from spfile='D:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILEMYDB.ORA';
    打开initorcl.ora查看,果然不出所料:  log_archive_dest_1 = "location=F:\backup\arch",经过查找,发现原先在F盘的f:\backup\arch变成了i:\backup\arch
  processes                = 1000
  memory_target            = 26240M
  control_files            = "D:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL"
  control_files            = "D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL"
  control_file_record_keep_time= 30
  db_block_size            = 8192
  compatible               = "11.2.0.0.0"
  log_archive_dest_1       =  "location=F:\backup\arch"
  log_archive_format       = "arch_%r_%t_%s.arc"
  db_recovery_file_dest    = "D:\app\Administrator\flash_recovery_area"
  db_recovery_file_dest_size= 3912M
  undo_tablespace          = "UNDOTBS1"
  remote_login_passwordfile= "EXCLUSIVE"
  db_domain                = ""
  dispatchers              = "(PROTOCOL=TCP) (SERVICE=orclXDB)"
  session_cached_cursors   = 3000
  audit_file_dest          = "D:\APP\ADMINISTRATOR\ADMIN\ORCL\ADUMP"
  audit_trail              = "DB"
  db_name                  = "orcl"
  open_cursors             = 300
  deferred_segment_creation= FALSE
  _optimizer_use_feedback  = FALSE
  diagnostic_dest          = "D:\APP\ADMINISTRATOR"
    于是,将错就错将pfile的 log_archive_dest_1 的值改为 "location=I:\backup\arch",然后执行startup nomount pfile=c:\initorcl.ora,发现能够startup nomount了,但是alter database open报错:
SQL>alter database open;
Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_dbw0_3256.trc:
ORA-01157: cannot identify/lock data file 14 - see DBWR trace file
ORA-01110: data file 14: 'E:\BMI\TSP_DW_BILL_01.DBF'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 21) 设备未就绪。
    再查看操作系统磁盘驱动盘符,发现系统里没有E、F盘,令人意外的是光驱竟然使用了E盘:

经与系统负责人沟通确认,决定重启服务器后,修改驱动盘符后,然后再启动数据库,修改后的磁盘驱动盘符
当然,E、F盘的盘符必须对应Oracle数据库里参数文件、控制文件对应的归档路径、数据文件所在磁盘盘符):

    系统盘符修正后,启动数据库正常:
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 1月 6 10:45:46 2017
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            F:\backup\arch
最早的联机日志序列     71586
下一个存档日志序列   71591
当前日志序列           71591
SQL>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 Windows 的任务计划程序来实现 Oracle 数据库Windows自动备份。具体步骤如下: 1. 创建一个备份脚本 在任意位置创建一个文本文件,命名为 backup.bat,将以下命令写入该文件中: ``` @echo off set ORACLE_SID=your_sid set ORACLE_HOME=your_oracle_home set PATH=%PATH%;%ORACLE_HOME%\bin expdp username/password@your_database schemas=your_schema directory=backup_dir dumpfile=backup_%date:~0,4%%date:~5,2%%date:~8,2%.dmp logfile=backup_%date:~0,4%%date:~5,2%%date:~8,2%.log ``` 其中,your_sid、your_oracle_home、your_database 和 your_schema 分别代表您的 Oracle 实例名称、Oracle 安装路径、数据库名称和需要备份的数据库对象。backup_dir 为先前创建的备份目录。%date:~0,4%%date:~5,2%%date:~8,2% 代表当前日期,用于在备份文件名和日志文件名中添加日期信息。 2. 创建一个 Windows 任务计划 打开 Windows 的任务计划程序,点击“创建任务”按钮,在“常规”选项卡中输入任务名称和描述信息,选择“使用最高权限运行”选项。 在“触发器”选项卡中,点击“新建”按钮,选择备份的频率和时间。 在“操作”选项卡中,点击“新建”按钮,选择“启动程序”操作,将 backup.bat 文件的路径输入到“程序/脚本”框中。 在“条件”选项卡中,选择“仅在计算机使用交流电源时运行此任务”。 在“设置”选项卡中,选择“允许任务在遗失期限后结束”和“如果运行时间超过以下时间,则自动停止”。 3. 运行任务计划 保存任务计划,并等待任务计划运行,即可实现 Oracle 数据库Windows自动备份。 注意:在执行备份操作之前,请确保您有足够的磁盘空间来存储备份文件。此外,备份数据时可能会影响数据库性能,请在高峰期之外执行备份操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值