Oracle ASM中的spfile恢复

这篇具有很好参考价值的文章主要介绍了Oracle ASM中的spfile恢复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

做Database In-Memory的实验,经常会出现内存参数设置不正确,导致数据库无法启动的情况,例如inmemory_size设的太大,或者设置时没有带单位。此时就需要恢复spfile。本文讨论spfile位于ASM时的恢复过程。

数据库启动时错误为:

[oracle@bigt01 dbim]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 26 02:18:19 2023
Version 19.18.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-00600: internal error code, arguments: [ktsima_get_poolsize-1], [13421770], [16777216], [], [], [], [], [], [], [], [], []
SQL>

2023年5月19日,数据库启动报以下错误,也用本文方法解决了:

$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri May 19 10:56:53 2023
Version 19.16.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Connected to an idle instance.

SYS@orcl>startup
ORACLE instance started.

Total System Global Area 3.2748E+10 bytes
Fixed Size                  9239408 bytes
Variable Size            5150605312 bytes
Database Buffers         1610612736 bytes
Redo Buffers              207720448 bytes
In-Memory Area           2.5770E+10 bytes
ORA-03113: end-of-file on communication channel
Process ID: 364270
Session ID: 7867 Serial number: 53337

5月20日,以下错误也通过此方法解决:

SYS@orcl>STARTUP
ORA-00821: Specified value of sga_target 31232M is too small, needs to be at least 47296M
ORA-01078: failure in processing system parameters

23年8月28日,以下错误也通过此方法解决:

SQL> startup
ORA-00823: Specified value of sga_target greater than sga_max_size
ORA-01078: failure in processing system parameters

从srvctl中得到当前spfile的位置:

# 获取数据库名
$ srvctl config
DB0410_nrt1pv

# 获取数据库配置,其中有spfile的位置
$ srvctl config database -d DB0410_nrt1pv
Database unique name: DB0410_nrt1pv
Database name: DB0410
Oracle home: /u01/app/oracle/product/19.0.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/DB0410_NRT1PV/PARAMETERFILE/spfile.262.1133756061
Password file:
Domain: sub07290808380.training.oraclevcn.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: RECO,DATA
Mount point paths: /opt/oracle/dcs/commonstore
Services: DB0410_orclpdb1.paas.oracle.com
Type: SINGLE
OSDBA group: dba
OSOPER group: dbaoper
Database instance: DB0410
Configured nodes: bigt02
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

当然以grid用户运行asmcmd也可以获取其位置:

$ asmcmd
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304   1048576   706888                0          706888              0             Y  DATA/
MOUNTED  EXTERN  N         512             512   4096  4194304    524288   520956                0          520956              0             N  RECO/

ASMCMD> cd DATA/
ASMCMD> cd DB0410_NRT1PV/
ASMCMD> cd PARAMETERFILE/
ASMCMD> ls -l
Type           Redund  Striped  Time             Sys  Name
PARAMETERFILE  UNPROT  COARSE   APR 26 02:00:00  Y    spfile.262.1133756061

知道其位置后,就可以依据他创建pfile了:

$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 26 11:45:43 2023
Version 19.18.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> create pfile from spfile='&1';
Enter value for 1: +DATA/DB0410_NRT1PV/PARAMETERFILE/spfile.262.1133756061
old   1: create pfile from spfile='&1'
new   1: create pfile from spfile='+DATA/DB0410_NRT1PV/PARAMETERFILE/spfile.262.1133756061'

File created.

pfile的默认位置在$ORACLE_HOME/dbs中,显然本例即initDB0410.ora

$ date
Wed Apr 26 11:47:44 UTC 2023
[oracle@bigt02 bigtable]$ ll $ORACLE_HOME/dbs
total 16
-rw-rw---- 1 oracle asmadmin 1544 Apr 25 23:59 hc_DB0410.dat
-rw-r--r-- 1 oracle asmadmin 2408 Apr 26 11:46 initDB0410.ora
-rw-r--r-- 1 oracle oinstall 3079 May 14  2015 init.ora
-rw-r----- 1 oracle oinstall 2048 Apr 10 04:07 orapwDB0410

pfile的文件名格式为init$ORACLE_SID.ora

我们来看下这个文件:

$ cat $ORACLE_HOME/dbs/initDB0410.ora
DB0410.__data_transfer_cache_size=0
DB0410.__db_cache_size=13153337344
DB0410.__inmemory_ext_roarea=0
DB0410.__inmemory_ext_rwarea=0
DB0410.__java_pool_size=0
DB0410.__large_pool_size=167772160
DB0410.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
DB0410.__pga_aggregate_target=12482248704
DB0410.__sga_target=49928994816
DB0410.__shared_io_pool_size=134217728
DB0410.__shared_pool_size=1946157056
DB0410.__streams_pool_size=0
DB0410.__unified_pga_pool_size=0
*._datafile_write_errors_crash_instance=false
*._db_writer_coalesce_area_size=16777216
*._disable_interface_checking=TRUE
*._enable_numa_support=FALSE
*._file_size_increase_increment=2143289344
*._fix_control='18960760:on'
*._gc_policy_time=20
*._gc_undo_affinity=TRUE
*.audit_file_dest='/u01/app/oracle/admin/DB0410_nrt1pv/adump'
*.audit_sys_operations=TRUE
*.audit_trail='db'
*.compatible='19.0.0.0'
*.control_files='+RECO/DB0410_NRT1PV/CONTROLFILE/current.256.1133755633'
*.control_management_pack_access='DIAGNOSTIC+TUNING'
*.cpu_count=0
*.cursor_sharing='EXACT'
*.db_block_checking='OFF'
*.db_block_checksum='TYPICAL'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_create_online_log_dest_1='+RECO'
*.db_domain='sub07290808380.training.oraclevcn.com'
*.db_files=1024
*.db_lost_write_protect='TYPICAL'
*.db_name='DB0410'
*.db_recovery_file_dest='+RECO'
*.db_recovery_file_dest_size=511g
*.db_unique_name='DB0410_nrt1pv'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=DB0410XDB)'
*.enable_ddl_logging=TRUE
*.enable_pluggable_database=true
*.encrypt_new_tablespaces='ALWAYS'
*.fast_start_mttr_target=300
*.filesystemio_options='setall'
*.global_names=TRUE
*.inmemory_size=51539607552
*.local_listener='LISTENER_DB0410'
*.log_archive_format='%t_%s_%r.dbf'
*.log_buffer=134217728
*.memory_target=0
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=1000
*.os_authent_prefix='ops$'
*.parallel_execution_message_size=16384
*.parallel_threads_per_cpu=2
*.pga_aggregate_limit=24964497408
*.pga_aggregate_target=12482248704
*.processes=1200
*.remote_login_passwordfile='EXCLUSIVE'
*.session_cached_cursors=100
*.sga_target=49928994816
*.spatial_vector_acceleration=TRUE
*.sql92_security=TRUE
*.tde_configuration='keystore_configuration=FILE'
*.undo_retention=900
*.undo_tablespace='UNDOTBS1'
*.use_large_pages='only'
*.wallet_root='/opt/oracle/dcs/commonstore/wallets/DB0410_nrt1pv'

罪魁祸首在这里,之前设的50G太大了:

*.inmemory_size=51539607552

将其值调小,本例设为42G:

*.inmemory_size=42G

pfile修改对了,现在可以以pfile启动数据库了:

startup pfile='initDB0410.ora';
-- 更完善的启动路径指定
-- startup pfile='$ORACLE_HOME/dbs/initorcl.ora'
create spfile='+DATAC1' from memory;
-- 以上ASM disk group也可能是其他的名字,如+DATA
-- 总之与之前srvctl输出中一致就好
shutdown immediate;

我们可以看到spfile的位置变了:

$ srvctl config database -d DB0410_nrt1pv
Database unique name: DB0410_nrt1pv
Database name: DB0410
Oracle home: /u01/app/oracle/product/19.0.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/DB0410_NRT1PV/PARAMETERFILE/spfile.290.1135166043
Password file:
Domain: sub07290808380.training.oraclevcn.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: RECO,DATA
Mount point paths: /opt/oracle/dcs/commonstore
Services: DB0410_orclpdb1.paas.oracle.com
Type: SINGLE
OSDBA group: dba
OSOPER group: dbaoper
Database instance: DB0410
Configured nodes: bigt02
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed

一切正常,现在数据库可以启动了:

$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Apr 26 11:56:31 2023
Version 19.18.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 4.9929E+10 bytes
Fixed Size                  9304376 bytes
Variable Size             922746880 bytes
Database Buffers         3758096384 bytes
Redo Buffers              141688832 bytes
In-Memory Area           4.5097E+10 bytes
Database mounted.
Database opened.

参考:文章来源地址https://www.toymoban.com/news/detail-432052.html

  • How Srvctl Modify Database SPFILE

到了这里,关于Oracle ASM中的spfile恢复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • oracle连表查询in后边跟另一张表中的字符串字段

    今天在做通过in进行连表查询的时候发现以下问题记录下 我的需求是A,B两张表连接查询,A中有一个FOOD_TYPES字段 存的值类型为1,2,3 B表中的字段是FOOD_TYPE 存的是单个数字字符串 我需要where b.food_type in a.food_types 但是无论怎么写都无法实现这样的查询 最终使用了 b.food_type in

    2024年02月13日
    浏览(48)
  • Oracle database 静默安装 oracle 11g 一键安装

    Linux :centerOS 7 oracle :11.2.0 runInstaller应答文件 /database/response/db_install.rsp netca应答文件 /database/response/netca.rsp dbca应答文件 /database/response/dbca.rsp 解压oracle安装包后在生成database目录 静默安装需先编辑对应应答文件 编辑完成后执行安装程序指定对应应答文件 基于oracle可以实现静

    2024年02月13日
    浏览(51)
  • Oracle database 静默安装 oracle12c 一键安装 12.1.0.2

    注意此安装脚本基于12.1.0.2 安装包 原始安装包结构为两个压缩包 此脚本使用安装包为原始压缩包解压后、 重新封装为一个.zip压缩包 Linux :centerOS 7 oracle :12.1.0.2 runInstaller应答文件 /database/response/db_install.rsp netca应答文件 /database/response/netca.rsp dbca应答文件 /database/response/dbc

    2024年02月03日
    浏览(68)
  • SQLAlchemy & Oracle Database 23c Free 集成之旅

    SQLAlchemy 是 Python SQL 工具包和对象关系映射器,为应用程序开发人员提供 SQL 的全部功能和灵活性。 它提供了一整套众所周知的企业级持久化模式,专为高效、高性能的数据库访问而设计,并适应于简单且Pythonic的领域语言。 官网地址:https://www.sqlalchemy.org/ SQLAlchemy SQL 工具包

    2024年02月07日
    浏览(44)
  • 一篇文章弄懂Oracle和PostgreSQL的Database Link

    🏆 文章目标:本篇介绍Oracle和PostgreSQL的Database Link 🍀 一篇文章弄懂Oracle和PostgreSQL的Database Link ✅ 创作者:Jay… 🎉 个人主页:Jay的个人主页 🍁 展望:若本篇讲解内容帮助到您,请帮忙点个赞吧,再点点您的小手关注下,您的支持是我继续写作的最大动力,谢谢🙏 作为回

    2024年02月06日
    浏览(52)
  • 磁盘database数据恢复: ddrescue,dd和Android 设备的数据拷贝

    区别: GNU ddrescue 不是 dd 的衍生物,也与 dd 没有任何关系 除了两者都可用于将数据从一台设备复制到另一台设备。 关键的区别在于 ddrescue 使用复杂的算法来复制 来自故障驱动器的数据,尽可能少地造成额外的损坏。 ddrescue 具备更强大的错误处理和恢复机制,可以更好地处

    2024年02月20日
    浏览(39)
  • Oracle数据库ORA-01507: database not mounted解决方法

    连接上安装好的oracle后,执行SQL报ORA-01507: database not mounted错误,根据百度ORA-01507: database not mounted的解决办法,问题解决了,下面详细介绍一下这个方法: 执行sql命令: shutdown ,并退出sqlplus /oracle/SHP/11204/是本例的oracle的家目录,要根据自身安装目录做修改 语句为 fuser -u l

    2024年02月16日
    浏览(44)
  • Oracle设置日志参数-ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

    要实现两个数据库之间的实时同步,需要给Oracle设置参数 遇到的问题 在执行第一条命令的时候,等待超过12小时,命令挂起12小时。原因是要等待数据库中的其它事务都提交以后才可以执行这个命令。 解决方案 1. 等待其它事务全部执行完成 2. 数据库停机重启,强制关闭所有

    2024年03月09日
    浏览(56)
  • 【Oracle Database】如何远程连接服务器、创建用户、从本地dmp导入表

    连接服务器的操作自己通过sql developer连接 删除用户 检查test用户的权限

    2024年03月08日
    浏览(66)
  • use h2 database in netty function test

    Add H2 database dependency in your project. You can add the following dependency in your pom.xml file: Create a new H2 database instance. You can create a new in-memory H2 database instance in your test setup method. For example: Use the database in your tests. You can use the H2 database instance to execute SQL queries in your tests. For example: Note that

    2023年04月14日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包