网站首页 > 技术文章 正文
这个...不知道是镜像问题还是配置上有问题,Docker版的Oracle 11g在上次部署完之后已经出现了多次无法访问的情况(就是 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 这个镜像),最后一次修复已经将连接数从150(默认)提升到8000,这次无法访问肯定不是连接数已满的问题。
遇事不要慌,先通过docker exec进入容器内部连接一下oracle数据库,看到的是
ORA-01034: ORACLE not available
这...难道是之前为了修改连接数直接关机导致日志无法归档么?
上网查了些资料,最终通过如下步骤解决的:
先用sqlplus使用sysdba权限访问连接数据库
[oracle@e156e1b777f5 -]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sun Nov 14 13:36:28 2021
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
查询v$log看看能否正常查询到日志信息
SQL> select * from v$log;
select × from v$log
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
在发现报ORA-01034: ORACLE not available错误后,我们再试试操作resetlogs
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: O
Session ID: 0 Serial number: 0
要注意,这里使用resetlogs方式打开数据库对oracle进行恢复是存在风险的,如果日志文件没有损坏的情况下可以直接恢复就可以了,这次的情况比较麻烦,所以才想用这种方式进行。
既然所有操作都报错了,就先关闭实例
SQL> shutdown immediate;
ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist
Linux-x86 64 Error: 2: No such file or directory
重新挂载启动
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size 2213776 bytes
Variable Size 1342179440 bytes
Database Buffers 251658240 bytes
Redo Buffers 7360512 bytes
Database mounted.
重启之后再尝试使用resetlogs打开数据库
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery
这里又是一个ERROR,先不要管它继续下一步操作。
这时我们又再查一次v$log
如上图所示,通过v$log得知日志只记录到昨天(11月13日),还好不是生产环境的一天的时间还能够接受。
通过recover database命令进行数据恢复
SQL> recover database until time '2021-11-13 00:00:00'
ORA-10879: error signaled in parallel recovery slave
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/home/oracle/app/oracle/oradata/helowin/systeml.dbf'
嗯...没有头绪还是先“重启”吧
SOL> shutdown;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SOL> startup
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size 2213776 bytes
Variable Size 1342179440 bytes
Database Buffers 251658240 bytes
Redo Buffers 7360512 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
这次连启动也报错,真是“一波未平一波又起”。
sqlplus再查询一次l日志
既然这样就手动redo一次吧。
执行recover database
执行完了之后再open resetlogs就可以了
SQL> alter database open resetlogs;
Database altered.
为了使操作完全生效决定重启了一下oracle
SQL> shutdown immedate;
SP2-0717: illegal SHUTDOWN option
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SOL> startup;
ORACLE instance started.
Total System Global Area 1603411968 bytes
Fixed Size 2213776 bytes
Variable Size 1342179440 bytes
Database Buffers 251658240 bytes
Redo Buffers 7360512 bytes
Database mounted.
Database opened.
这样就搞定了。
- 上一篇: 如何正确打开和查看db文件的详细步骤
- 下一篇: 审计功能的开启与关闭 审计功能定位
猜你喜欢
- 2024-11-08 审计功能的开启与关闭 审计功能定位
- 2024-11-08 如何正确打开和查看db文件的详细步骤
你 发表评论:
欢迎- 09-0613.通过Excel导出数据库中的维值_数据库exp导入导出数据
- 09-06做数据分析时,SQL需要达到以下水平
- 09-06Java开发指南:JDK21下载、安装及目录解析,轻松开启编程之旅
- 09-06hive存储过程_hive存储过程环境变量
- 09-06Maven常用命令_maven常用命令有哪些
- 09-06JDK从8升级到21的问题集_jdk更新到几了
- 09-06Oracle狂刷存在感 NRF展会惊艳四座
- 09-06哪些软件支持UDI标签的生成与验证
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)