oracle数据库服务器(内存减小导致Oracle启动不了,解决方法)

简介:

原因:由于机器使用阿里云服务器,初期内存较大,所以选择中途降配,由8G减少到4G,降配完成后,数据库无法正常启动,报以下错误

ORA-00845: MEMORY_TARGET not supported on this system

经过查资料了解其原理后

发现:

原因可能:ORACLE MEMORY_TARGET参数设置超过了oracle服务器本身内存、或超过了现在服务器空闲内存(就是oracle启动时无法获取设置的内存),或者 超过了/dev/shm的大小/. 这些都有可能造成以上错误、


问题确认:

确认为oracle MEMORY_TARGET参数设置SGA大于操作系统的空闲内存,超过了/dev/shm的大小

解决:

修改MEMORY_TARGET的值为合适的范围之内(如果是正式环境切oracle需要设置MEMORY_TARGET的内存,需要增加服务器内存,本初不讨论)

1.备份现有spfile文件

 

1
cp   init.ora.715201510237  init.ora.715201510237_bak


2.使用spfile创建pfile(spfile为二进制文本,不可直接修改),修改pfile后,重新生成spfile

1
2
SQL>  create  pfile  from  spfile;
File created.

修改pfile参数*.memory_target=104857600(此处的值小于 操作系统的空闲内存,小于/dev/shm的大小)

1
2
3
SQL>  create  spfile  from  pfile;
File created.
确认后,启动oracle

3,如果以上完成后,还无法正常startup,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
SQL> startup pfile=/app/oracle/admin/orcl/pfile/init.ora.103201271612 
SQL>  alter  system  set  memory_max_target=1258M scope=both; 
alter  system  set  memory_max_target=1258200M scope=both 
                
ERROR  at  line 1: 
ORA-02095: specified initialization parameter cannot be modified
  
SQL>  alter  system  set  memory_max_target=1258M scope=spfile; 
alter  system  set  memory_max_target=1258M scope=spfile 
ERROR  at  line 1: 
ORA-32001: write  to  SPFILE requested but  no  SPFILE  is  in  use//spfile文件可能不存在
SQL> shutdown immediate; 
Database  closed. 
Database  dismounted. 
ORACLE instance shut down
  
SQL> startup nomount 
ORA-01078: failure  in  processing system parameters 
LRM-00109: could  not  open  parameter file  '/app/oracle/product/11.2.0/dbhome_2/dbs/initorcl.ora'
# ------------------------------spfile不存在
  
# -----------------------------spfile位置:$ORACLE_HOME/dbs/init[ORACLE_SID].ora
  
# -----------------------------名字格式为:initORACLE_SID.ora
  
[oracle@h1 dbhome_2]$ cd /app/oracle/admin/orcl/pfile/ 
[oracle@h1 pfile]$ ls 
init.ora.103201271612
  
  
  
[oracle@h1 pfile]$echo $ORACLE_SID
  
orcl
  
# -------------------查看环境变量$ORACLE_SID
  
[oracle@h1 pfile]$ cp init.ora.103201271612 /app/oracle/product/11.2.0/dbhome_2/dbs
  
[oracle@h1 pfile]$ cd /app/oracle/product/11.2.0/dbhome_2/dbs
  
[oracle@h1 dbs]$ mv init.ora.103201271612  initorcl.ora
  
# ------------------------------更改名字格式为:initORACLE_SID.ora

 

 

4.mount数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
  
  
  
  
[oracle@h1 dbs]$ sqlplus  "/as SYSDBA"
  
SQL*Plus: Release 11.2.0.1.0 Production  on  Sun Nov 4 16:59:09 2012
  
Copyright (c) 1982, 2009, Oracle.   All  rights reserved.
  
Connected  to  an idle instance.
  
SQL> startup mount 
ORACLE instance started.
  
Total System  Global  Area 1219260416 bytes 
Fixed  Size                   2212856 bytes 
Variable  Size             738200584 bytes 
Database  Buffers          469762048 bytes 
Redo Buffers                9084928 bytes 
Database  mounted. 
SQL>
  
  
SQL> show parameter memory_target;
  
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
memory_target                        big  integer  1168M 
SQL> show parameter memory_max_target;
  
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
memory_max_target                    big  integer  1168M 
SQL>        
SQL>   alter  system  set  memory_max_target=1G scope=spfile; 
alter  system  set  memory_max_target=1G scope=spfile 
ERROR  at  line 1: 
ORA-32001: write  to  SPFILE requested but  no  SPFILE  is  in  use
  
SQL> show parameter spfile;
  
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
spfile                              string
  
# ------------------重建spfile 
SQL>  create  spfile  from  pfile;
  
File created.
  
SQL> shutdown immediate; 
Database  closed. 
Database  dismounted. 
ORACLE instance shut down. 
SQL>  startup 
ORACLE instance started.
  
Total System  Global  Area 1219260416 bytes 
Fixed  Size                   2212856 bytes 
Variable  Size             738200584 bytes 
Database  Buffers          469762048 bytes 
Redo Buffers                9084928 bytes 
Database  mounted. 
Database  opened. 
SQL> show parameter spfile;
  
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
spfile                              string      /app/oracle/product/11.2.0/dbh 
                                                 ome_2/dbs/spfileorcl.ora
  
  
  
SQL>  alter  system  set  memory_max_target=1G scope=spfile;
  
System altered.
  
  
  
SQL>  alter  system  set  memory_target=1G scope=both;
  
System altered.
  
  
  
SQL>  alter  system  set  memory_max_target=1332M scope=both; 
alter  system  set  memory_max_target=1332M scope=both 
                
ERROR  at  line 1: 
ORA-02095: specified initialization parameter cannot be modified
  
  
  
SQL>  alter  system  set  memory_max_target=1332M scope=spfile;
  
  
  
System altered.
  
-------------------------------
  
SQL> shutdown immediate 
Database  closed. 
Database  dismounted. 
ORACLE instance shut down. 
SQL> startup 
ORACLE instance started.
  
Total System  Global  Area 1402982400 bytes 
Fixed  Size                   2213296 bytes 
Variable  Size             922749520 bytes 
Database  Buffers          469762048 bytes 
Redo Buffers                8257536 bytes 
Database  mounted. 
Database  opened. 
SQL> show parameter memory_max_target;
  
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
memory_max_target                    big  integer  1344M
  
SQL> show parameter memory_target;
  
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
memory_target                        big  integer  1G 
SQL>
-----------------------finish




      本文转自crazy_charles 51CTO博客,原文链接:http://blog.51cto.com/douya/1753362 ,如需转载请自行联系原作者



相关文章
|
12月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
918 93
|
11月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
495 0
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
12月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
706 8
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
617 11
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
3541 0
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
1196 1
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
1681 0

推荐镜像

更多