• 丢失所有初始化参数文件后如何恢复


     如果丢失所有初始化参数文件,但是有参数文件的备份可以用的情况下如何处理:

    1.模拟问题发生

    备份spfile

    去dbs下面把所有初始化参数文件都删掉

    2.如果实例并没有关闭,那么所有参数都还存储在内存中,就可以用

    create pfile from spfile;  

    来创建pfile,之后再用

    create spfile='/home/oracle/spfileorcl.ora' from pfile;  

     来创建spfile

    3.如果实例是关闭掉的,或者是迁移到新的环境上的,可以先手工创建一个简单的pfile:

    然后启动到nomount

    然后进入rman,用spfile的备份文件恢复出一个spfile来:

    检查是否生成:

    然后关闭数据库重新启动

     4.总结

    数据库的初始化参数大多数都设置了默认值,作为数据库的标准配置,所以即使pfile只定义了一个db_name,其他数据库运行必要的参数,在实例启动的时候都是会给配上的。

    在一个用spfile启动的数据库中,我们可能会发现v$parameter里面的值会跟v$spparameter的值不一样,v$spparameter很多内容是空的。

    这是因为v$spparameter中的变量是来自磁盘上存储的spfile<SID>.ora的,而v$parameter的参数是来自当前运行的实例(内存)的。

    改动静态参数,只会写到spfile里面,不会写入内存,SMON从spfile里面读到了这个参数,才会写入内存。

    5.补充

    后来发现RMAN可以在没有可用参数文件的情况启动到nomount,使得DBA可以操作备份恢复。道理跟上面是一样的,只不过连手工创建一个简单的pfile都不需要了。

    删掉所有初始化参数文件,然后尝试启动数据库:

    登入rman,启动到nomount

    检查当前数据库状态

    然后一样道理,操作spfile的restore

      

  • 相关阅读:
    [Coding Made Simple] Text Justification
    [Coding Made Simple] Box Stacking
    [Coding Made Simple] Maximum Sum Increasing Subsequence
    [Coding Made Simple] Longest Palindromic Subsequence
    [Coding Made Simple] Longest Increasing Subsequence
    [Coding Made Simple] Minimum jump to reach end
    [LeetCode 115] Distinct Subsequences
    [Coding Made Simple] String Interleaving
    [Coding Made Simple] Maximum Sub Square Matrix
    [GeeksForGeeks] Populate inorder successor for all nodes in a binary search tree
  • 原文地址:https://www.cnblogs.com/Elaine-Lan/p/9886704.html
Copyright © 2020-2023  润新知