zoukankan      html  css  js  c++  java
  • oracle 常见恢复

    author by :shawnloong

    环境:windows 2008 r2 sp1 db:oracle 11g r2

    做之前记得做个完整备份

    ONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

    CONFIGURE CONTROLFILE AUTOBACKUP ON;

    脚本如下

    run {
    delete noprompt obsolete;
    allocate channel cha1 type disk;
    allocate channel cha2 type disk;
    backup database format "c:akfull_%d_%T_%s"
    plus archivelog
    format "c:akarch_%d_%T_%s"
    delete all input;
    release channel cha1;
    release channel cha2;
    }

    exit

    保存为 rman.txt

    windows 脚本

    rman target / nocatalog CMDFILE 'e:/rman/rmanfull.txt' LOG 'e:/rman/rman_backup_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%".log'

    linux 一样的用shell脚本调用

    1.数据文件误删除恢复

    shutdown immediate;

    删除user01.dbf

    启动数据库会报一个错误,实例已经启来了mount状态,但是数据库未打开

    Image

    先将数据文件offline

    SQL> alter database datafile 4 offline;
    数据库已更改。

    restore datafile 4;

    Image(1)

    recover datafile 4

    Image(2)

    最后数据库open

    Image(3)

    记得将数据文件online,不然会出现以下错误

    Image(4)

    alter database datafile 4 online

    Image(5)

    2.参数文件丢失

    删除参数文件(路径C:apporacleproduct11.2.0dbhome_1dbs)init.ora 注意做之前记得备份 操作之前还得记下dbid

    SQL> select dbid from v$database;
          DBID
    ----------
    944333900

    C:apporacleproduct11.2.0dbhome_1database

    Image(6)

    记得将pfile 和spfile都删除

    这里涉及到pfile spfile 顺序

    spfilesid 〉 spfile 〉 initsid

    Image(7)

    启动到nomount

    Image(8)

    还原参数文件 注意这里非autobackup

    Image(9)

    Image(10)

    数据库已经启动

    Image(11)

    如果启动不了,设置一下dbid

    set dbid

    3.控制文件丢失

    注意控制文件一般做了冗余了。

    一般都有两个文件,默认安装在同一个文件下

    Image(12)

    如果删除时候删除一个可以用另外一个重建一下

    Image(13)

    Image(14)

    测试将这两个控制文件都删除掉

    关闭数据库后删除

    Image(15)

    Image(16)

    报错

    Image(17)

    Image(18)

    Image(19)

    如果路径一致记得将catalog start with

    Image(20)

    Image(21)

    恢复的时候记得resetlog

    Image(22)

    关于密码文件解释

    位置及命名方式windows 下以PWD实例名

    linux orapwd实例名

    如果删除密码文件本地as sysdba可以登录

    但是远程无法登录,会出现以下错误

    重新密码文件

  • 相关阅读:
    解决 Cordova 打包 vue项目为 APP 后,在安卓平台下 touchMove 事件不生效的问题
    解决微信内置浏览器里,下拉无法捕获 touchEnd 事件
    记录 React-native 项目中的各种坑坑
    内存型游戏外挂讲解
    浅谈数据抓取的几种方法
    php链表笔记:合并两个有序链表
    php链表笔记:链表的检测
    php链表笔记:单链表反转
    使用UUID和int自增主键的区别
    lumen框架使用Elasticsearch详解
  • 原文地址:https://www.cnblogs.com/shawnloong/p/3599494.html
Copyright © 2011-2022 走看看