拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. Oracle基础知识
  3. 图灵小队
  4. 正文

图灵小队—Oracle技巧记录

2021年11月22日 3174点热度 3人点赞 0条评论

目录

  • 47、查看执行计划
  • 46、查看编译无效的对象
  • 45、vi快速定位到某一个行:行号+shift+G
  • 44、数据库监听状态为blocked,表示数据库没有open
  • 43、expdp导表
    • (1)expdp 排除大量的表(排除OLD开头的,使用table:like参数,还有转义字符)
  • (2)只导出表结构
  • 42、查看DG的归档日志是否同步
  • 41、grid:has(单机叫法),crs(集群叫法)
  • 40、DG过程
  • 39、12C关于DG的新特性
  • 38、RMAN中的Auto backup
    • (1)如果设置了auto backup on,
    • (2)如果设置了auto backup off(默认)
  • 37、MRP进程
  • 36、查看用户拥有哪些角色
  • 35、expdp导出表(按条件)
    • (1)一个表,按条件
    • (2)多个表,按条件
  • 35、expdp导出排除表
  • 34、关于sql trace的查询语句
  • 33、获取session的sid和serial#
  • 32、Oracle删除数据文件
    • (1)通过删除表空间,将数据文件删除
    • (2)删除一个空数据文件
  • 31、Oracle数据文件改名:
    • (1)mounted状态:
    • (2)open状态:
  • 30、关于sql_trace
  • 1、vi .bash_profile
  • 2、LWGR触发条件
  • 3、DBWn触发条件
    • (1) 通过正常事务处理或者立即选项关闭例程时
    • (2) 当通过设置初始化参数:
    • (3) 当数据库管理员手动请求时:
    • (4) 每次日志切换时;
  • 4、ARCn触发条件
  • 5、rman中的catalog和nocatalog的区别
    • (1)nocatalog下
    • (2)catalog下
  • 6、resetlogs和noresetlogs的区别
  • 7、resetlogs后注意事项
  • 8、show all改变数据备份位置
  • 9、查看控制文件scn和数据头scn
  • 10、理解recover database using backup controlfile
    • (1)不加using backup controlfile的情况。
    • (2)需要用using backup controlfile
  • 11、RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time问题解决
  • 11、4个SCN
  • 18、rman restore报错:ORA-19573
  • 19、通过RMAN命令清理归档日志失败报错RMAN-08137解决方案

47、查看执行计划

SQL> explain plan for select * from sfc_mo A inner join so_register_product B on A.Requir_Dtl_Id=B.id ;
SQL> select * from table(dbms_xplan.display);

46、查看编译无效的对象

SQL>select owner,object_name,object_type,status from dba_objects where status !='VALID' and owner not in ('SYS','SYSTEM')

直接生成可以执行的语句
SQL>select 'alter'||' '||object_type ||' '|| owner ||'.'|| object_name || ' '||'compile;' from dba_objects where status !='VALID' and owner not in ('SYS','SYSTEM') order by object_type;

45、vi快速定位到某一个行:行号+shift+G

44、数据库监听状态为blocked,表示数据库没有open

43、expdp导表

(1)expdp 排除大量的表(排除OLD开头的,使用table:like参数,还有转义字符)

expdp mes_prd/mes800 dumpfile=MESPRD_202203141000.dmp logfile=MESPRD_2022031410000.dmp.log DIRECTORY=backup_mes2 exclude=table:\"like\'OLD%\'\" compression=all;

(2)只导出表结构

expdp mes_prd/mes800 dumpfile=MESPRD_20220416_only.dmp logfile=MESPRD_20220416_metadata_only.dmp.log DIRECTORY=backup_mes2 include=table:\"like\'OLD%\'\" CONTENT=METADATA_ONLY compression=all;

42、查看DG的归档日志是否同步

SELECT UNIQUE THREAD#, MAX(SEQUENCE#) OVER(PARTITION BY THREAD#) LAST FROM V$ARCHIVED_LOG;

41、grid:has(单机叫法),crs(集群叫法)

40、DG过程

什么最重要?alert.log最重要,所有的传输,同步,应用,以及服务的启停过程都要看日志,才能及时快速的排错。

39、12C关于DG的新特性

(1)在线进行duplicate,rman的用户不能使用sys了,必须要使用sysbackup或sysdg用户才可以。

38、RMAN中的Auto backup

(1)如果设置了auto backup on,

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP on;
RMAN> backup database format '/oracle/LLL_%s_%p_%u.bak';

那么rman 在备份时,会自动备份到db_recovery_file_dest目录中。

(2)如果设置了auto backup off(默认)

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP off;
RMAN> backup database format '/oracle/LLL_%s_%p_%u.bak';

那么rman 在备份时,会自动备份到和数据文件一个备份集中的其他备份片中。

对于DG中,建议使用auto backup off模式,否则将备份拷贝到备机时,备机存放备份文件路径要和备份文件原路径一致。又因autobackup的文件在db_recovery_file_dest,备机如果没有这个目录,且控制文件备份集不在,那么备库rman还原数据时会失败。

37、MRP进程

DG或ADG中,执行下述语句,MRP进程开始运行

SQL>alter database recover managed standby database disconnect from session;

36、查看用户拥有哪些角色

select * from dba_role_privs where grantee='SYS' ;

35、expdp导出表(按条件)

(1)一个表,按条件

expdp system/oracle directory=expdp dumpfile=ncc20211221_1_tables.dmp logfile=ncc20211221_1_tables.log tables=ncc.ITF_TRANSLOGVO query=\'ITF_TRANSLOGVO:"where rownum<2"\'

(2)多个表,按条件

expdp system/oracle directory=expdp dumpfile=ncc20211221_1_tables.dmp logfile=ncc20211221_1_tables.log tables=ncc.SMG_PAY1_LOG,ncc.ITF_TRANSLOGVO query=\'SMG_PAY1_LOG:"where rownum<2"\',\'ITF_TRANSLOGVO:"where rownum<2"\'

35、expdp导出排除表

排除ncc用户下的表ITF_TRANSLOGVO和表SMG_PAY1_LOG

[oracle@nccpdb:/backup/expdp]$expdp system/oracle directory=expdp dumpfile=ncc20211221_1.dmp logfile=ncc20211221_1.log schemas=ncc exclude=TABLE:\"IN \(\'ITF_TRANSLOGVO\',\'SMG_PAY1_LOG\'\)\"

34、关于sql trace的查询语句

SQL> select * from dba_enabled_trace;
SQL> select * from dba_enabled_aggregations;
SQL> select * from v$serv_mod_act_stats;

33、获取session的sid和serial#

SQL>select * from v$mystat where rownum=1;
SID STATISTIC# VALUE
---------- ---------- ----------
222 0 0
SQL>select sid,serial# from v$session where sid=222;

32、Oracle删除数据文件

(1)通过删除表空间,将数据文件删除

DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

(2)删除一个空数据文件

--先确认是否为空数据文件(当前数据文件是否有段名或表名)

select SEGMENT_NAME,FILE_ID,BLOCKS from dba_extents where file_id=9

--如果有,则把表移动到其他表空间

SQL>alter table test move tablespace PERFSTAT;

--如果没有或已经移到其他表空间,可以进行数据文件删除

alter tablespace users drop datafile   2  '/u01/app/oracle/oradata/orcl/users02.dbf';

31、Oracle数据文件改名:

(1)mounted状态:

SQL>select open_mode from v$database;

OPEN_MODE
------------------------------
MOUNTED

SQL>host cp /u01/app/oracle/oradata/userdata/users02.dbf /u01/app/oracle/oradata/userdata/users01.dbf

SQL>alter database rename file '/u01/app/oracle/oradata/userdata/users02.dbf' to '/u01/app/oracle/oradata/userdata/users01.dbf';

(2)open状态:

SQL>alter tablespace users offline;

SQL>!cp /u01/app/oracle/oradata/userdata/users01.dbf /u01/app/oracle/oradata/userdata/users02.dbf

SQL>alter database rename file '/u01/app/oracle/oradata/userdata/users01.dbf' to '/u01/app/oracle/oradata/userdata/users02.dbf';

SQL>alter tablespace users online;

30、关于sql_trace

关于数据库的跟踪日志,在$ORACLE_BASE/diag/rdbms/<db_name>/<oracle_sid>/trace中。

其中日志模式为<oracle_sid>_进程名称_系统pid.trc或trm

参数sql_trace为true后,很多日志就都生成了。

1、vi .bash_profile

alias log='/usr/bin/tail -100f /oracle/app/oracle/diag/rdbms/mesorcl/mesorcl/trace/alert_mesorcl.log'

2、LWGR触发条件

  --用户提交(commit)
  --有 1/3 重做日志缓冲区未被写入磁盘(磁盘是指redo01.log等)
  --有大于 1m 的重做日志缓冲区未被写入磁盘
  --3 秒超时
  --dbwr 需要写入的数据的 scn 大于 lgwr 记录的 scn, dbwr 触发 lgwr 写入。

3、DBWn触发条件

(1) 通过正常事务处理或者立即选项关闭例程时

shutdown immediate
shutdown normal

(2) 当通过设置初始化参数:

log_checkpoint_interval,
log_checkpoint_timeout ,
fast_start_io_target 强制时;

(3) 当数据库管理员手动请求时:

alter system checkpoint;     --触发完全点检查
alter tablespace ... offline;  

(4) 每次日志切换时;

alter system switch logfile  ---触发完全点检查

注意:

  • alter system switch logfile 也将触发完全检查点的发生。
  •  alter database datafile ... offline 不会触发检查点进程。

4、ARCn触发条件

①当LGWR将一个在线重做日志文件填满时,就将其复制到另一个位置。
②alter system switch logfile

5、rman中的catalog和nocatalog的区别

(1)nocatalog下

rman进行数据备份、archivelog备份,参数备份等,都会将备份的信息写入到controlfile中,所以在备份完成上述后,也要对控制文件进行备份。以防所有的数据都丢失后,需要用控制文件引导上述数据文件结构信息的重建,恢复。
如果上述备份,不备份控制文件,等所有数据丢失,则无法恢复任何数据。
如果上述备份,不备份控制文件,等控制文件中的这些备份信息被覆盖后,则无法恢复任何数据。
所以需要最后备份控制文件。

(2)catalog下

catalog成为恢复目录,可以单独部署一台oracle服务器,创建针对于catalog的表空间,用户。可以将网内所有的oracle注册到catalog数据库中。
如此每次A数据库rman备份时,通过rman target /  catalog rman/oracle@catalog_tns 连接到catalog中, 备份时,会把所有的cataolog备份的信息结构(如A数据库的数据文件备份在什么位置等,都会被catalog记录)。
等还原恢复时,A数据库管理员,通过登录rman target /  catalog rman/oracle@catalog_tns 进行restore/recover database就可以直接定位恢复了。

6、resetlogs和noresetlogs的区别

(1)首先,resetlogs是不完全恢复,noresetlogs可称为完全恢复
(2)再次,在控制文件丢失了或损坏了,则使用旧的备份控制文件进行数据库恢复,在alter database open阶段需要resetlogs或noresetlogs
(3)其次,如果只是控制文件丢失了,不管是resetlogs还是noresetlogs,都不会丢失数据
(4)最后,resetlogs是通过还原(restore),恢复(recover)流程时使用。noresetlogs是通过重建控制文件时使用

可参照:

Oracle文档中提到,一旦用备份的控制文件进行数据库恢复,就需要使用resetlogs的方法打开数据库,但是resetlogs通常意味着不完全恢复,而且更重要的是一旦用resetlogs方法打开数据库,日志的序号用重新从1开始。其实如果只是控制文件损坏,日志文件都完整的话,数据库是可以完全恢复的,而且不必非得用resetlogs打开。

https://blog.csdn.net/u011616400/article/details/39700655
https://www.cnblogs.com/storymedia/p/4538894.html

7、resetlogs后注意事项

一旦进行了resetlogs,一定要记得做一次rman备份,因为resetlogs后,所有的序列号全部从1开始计数。使用catalog方式无法正常恢复。

(1)如果使用catalog方式的时候,且还用老的rman备份文件(数据,控制,参数)等,会出现incarnation(对应物)如报错:

因为在catalog记录的信息,是上一次resetlogs之前的序列。

ORA-00283: recovery session canceled due to errors
RMAN-11003: failure during parse/execution of SQL statement: alter database recover if needed
start until cancel using backup controlfile
ORA-00283: recovery session canceled due to errors
ORA-19909: datafile 1 belongs to an orphan incarnation
ORA-01110: data file 1: '/data/u01/app/oracle/oradata/mesorcl/system01.dbf'

(2)如果用nocatalog,再用老的rman文件,先把控制文件从rman恢复出来,就可以正常恢复数据文件。

8、show all改变数据备份位置

RMAN> configure channel device type disk format ' /data/backup/full/%U_%u_%f_%c';

9、查看控制文件scn和数据头scn

SQL> select CHECKPOINT_CHANGE# from v$datafile;------控制文件
SQL> select CHECKPOINT_CHANGE# from v$datafile_header;---数据头文件

10、理解recover database using backup controlfile

见:http://blog.itpub.net/31397003/viewspace-2666619/

要理解recover database using backup controlfile,先理解 recover database.

(1)不加using backup controlfile的情况。

在普通的recover database 或者 recover tablespace, recover datafile时, Oracle会以当前controlfile所纪录的SCN为准,利用archive log和 redo log的redo entry, 把相关datafile 的 block恢复到“当前controlfile所纪录的SCN”。

(2)需要用using backup controlfile

而某些情况下,Oracle需要把数据恢复到比当前controlfile所纪录的SCN还要靠后的位置(比如说,control file是backup controlfile , 或者 controlfile是根据trace create的。),这时候,就需要用using backup controlfile. 恢复就不会受“当前controlfile所纪录的SCN”的限制。

这时候的限制就来自于你的语句(until time , until scn),或者可用的archive log(until cancel) ...

11、RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time问题解决

分析:出现这个问题的原因似乎因为对应物(incarnation)的缘故;数据库recover后进行了resetlogs打开方式,其incarnation的值增加了一个,由7变为8,

RMAN> list incarnation;

List of Database Incarnations
DB Key      Inc Key    DB Name          DB ID            STATUS          Reset SCN   Reset Time
-------           -------      --------        ----------------             ---               ----------       ----------
2                       2        MESORCL   3009899787          PARENT      995548         24-JUN-21
3                       3        MESORCL   3009899787           PARENT     1010188       24-JUN-21
4                       4        MESORCL    3009899787         PARENT      1077744       24-JUN-21
5                       5        MESORCL    3009899787         PARENT      1136414         25-JUN-21
6                       6        MESORCL    3009899787        PARENT       1157025        25-JUN-21
1                       1         MESORCL    3009899787        PARENT       1291463        25-JUN-21
7                       7        MESORCL    3009899787        PARENT       1398272         28-JUN-21
8                      8        MESORCL    3009899787        CURRENT  1400805      28-JUN-21

以resetlogs方式打开数据库,此时数据库就会以incarnation DB Key=7此时间点状态打开一个新的incarnation DB Key=8数据库(当数据库恢复成功,只要没有执行alter database open resetlogs,那么数据库incarnation就会一直处于DB Key=7的状态,此时由于归档日志和重做日志都是完整的,因此可以在此状态下恢复到自RMAN全备后的任一时间点)。

8这个状态数据库的归档日志和重做日志都是空的,且只能从他打开的该时间点往后记录数据库的所有操作,而不能从该时间点回退数据库操做,因为在8状态下,没有归档日志和重做日志,因此当recover之后,在此基础上进行的后续操作,由于数据库处于新的状态8,没有归档日志和重组日志,所以无法在此基础上恢复EMP表。

解决办法就是重置数据库到状态7,然后直接恢复数据库到指定的那个时间点即可。

RMAN> RESET DATABASE TO INCARNATION 7;

11、4个SCN

首先这里我们先介绍四个SCN概念。

1、系统检查点scn (System Checkpoint SCN)

当一个checkpoint检查点动作完成后,Oracle就把系统检查点的SCN存储到控制文件中。

select checkpoint_change# from v$database;

2,数据文件检查点scn (Datafile Checkpoint SCN)

当一个checkpoint动作完成后,Oracle就把每个数据文件的Datafile Checkpoint SCN单独存放在控制文件中。

select name,checkpoint_change# from v$datafile;

3,启动scn (Start SCN)

Oracle把这个检查点的scn存储在每个数据文件的文件头中,这个值称为启动scn,这个SCN用于用于在数据库实例启动

时,检查是否需要执行数据库恢复media recovery。

select name,checkpoint_change# from v$datafile_header;

4、终止scn (Stop SCN)

每个数据文件的终止scn都存储在控制文件中。这个SCN号用于检查数据库启动过程是否需要做instance recovery。

select name,last_change# from v$datafile;

5.media recovery和instance recovery

1).media recovery是需要利用以前的备份来进行恢复的,而INSTANCE RECOVERY是不需要的。

2).media recovery通常发生在数据库的数据文件之类发生损坏,需要利用以前的备份来进行的恢复,需要人工处理。

3).instance recovery则是发生在实例不正常关闭情况下的恢复,是INSTANCE自己来的,不需要人工干预的。

6、在数据库运行期间的scn值

1).在数据库打开并运行之后,控制文件中的系统检查点、控制文件中的数据文件检查点scn和每个数据文件头中的启动scn都

是相同的。控制文件中的每个数据文件的终止scn都为null.

2).在安全关闭数据库的过程中,系统会执行一个检查点动作,这时所有数据文件的终止scn都会设置成数据文件头中的那个

启动scn的值。

3).在数据库重新启动的时候,Oracle将文件头中的那个启动scn与数据库文件检查点scn进行比较,如果这两个值相互匹配,

oracle接下来还要比较数据文件头中的启动scn和控制文件中数据文件的终止scn。如果这两个值也一致,就意味着所有数据

块多已经提交,所有对数据库的修改都没有在关闭数据库的过程中丢失,因此这次启动数据库的过程也不需要任何恢复操作,

此时数据库就可以打开了。当所有的数据库都打开之后,存储在控制文件中的数据文件终止scn的值再次被更改为null,这表

示数据文件已经打开并能够正常使用了。

7.SCN与数据库启动

在数据库启动过程中,当System Checkpoint SCN、Datafile Checkpoint SCN和Start SCN都相同时,数据库可以正常启

动,不需要做media recovery。三者当中有一个不同时,则需要做media recovery.如果在启动的过程中,End SCN为NULL

,则需要做instance recovery。Oracle在启动过程中首先检查是否需要media recovery,然后再检查是否需要instance

reco very。

8.SCN与数据库关闭

如果数据库的正常关闭的话,将会触发一个checkpoint,同时将数据文件的END SCN设置为相应数据文件的Start SCN。当

数据库启动时,发现它们是一致的,则不需要做instance recovery。在数据库正常启动后,ORACLE会将END SCN设置为

NULL.如果数据库异常关闭的话,则END SCN将为NULL。

9.系统正常关闭:

system scn=datafile scn=start scn=stop scn

1)system scn=datafile scn=start scn,不需要介质恢复

2)stopscn not null,不需要实例恢复

10.系统异常关闭:

system scn=datafile scn=start scn,stop scn null

1)system scn=datafile scn=start scn,不需要介质恢复

2)stopscn null,需要实例恢复

11.旧数据文件

system scn=datafile scn>start scn,stop scn null/notnull

1)system scn=datafile scn>start scn,需要介质恢复成system scn=datafile scn=start scn

2)stopscn null,需要实例恢复,not null 不需要实例恢复

12.备份控制文件

system scn=datafile scn<=start scn(当数据文件为旧的相等),stop scn notnull/null

1)system scn=datafile scn<=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start

scn=current log scn(当前日志最大SCN)

2)为保证上一次恢复没有用到log日志不被使用,必须resetlogs

13.重建noresetlogs控制文件

控制文件中 datafile Checkpoint来自Online logs中的Current log头

current log scn=system scn=datafile scn>=start scn,stop scn not null/null

1)current log scn=system scn=datafile scn>=start scn,需要介质恢复成system scn=datafile scn=start scn=redolog

scn(当前日志最大SCN),stop scn not null

2)stopscn not null 不需要实例恢复

14.重建resetlogs控制文件

控制文件中datafile Checkpoint来自各数据文件头。

system scn>=datafile scn=start scn,stop scn not null/null

1)system scn>=datafile scn=start scn,需要使用using backup controlfile介质恢复成system scn=datafile scn=start

scn(当前日志最大SCN),stop scn not null

2)stop notnull,因为SCN已经为redolog scn,log已经不能使用,必须resetlogs

15.recover database using backup controlfile

如果丢失当前控制文件,用冷备份的控制文件恢复的时候,用来告诉oracle,不要以controlfile中的scn作为恢复的终点;

16.recover database until cancel

如果丢失current/active redo的时候,手动指定终点。

17.recover database using backup controlfile until cancel

如果丢失当前controlfile并且current/active redo都丢失,会先去自动应用归档日志,可以实现最大的恢复;

18、rman恢复过程,打开过程如果无法出现如下错误:建议重建控制文件,再进行恢复(但恢复使用using backup controlfile

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00600: internal error code, arguments: [adbdrv_inconsist_dbkey], [], [],
[], [], [], [], [], [], [], [], []
Process ID: 11793
Session ID: 96 Serial number: 3

(1)重建控制文件(SQL MOUNT>alter database backup controlfile to trace as '/data/cnt.cl')

(2)RMAN>restore database

(3)SQL>recover database using backup controlfile until cacel——cancel

(4)SQL>alter database open resetlogs;

18、rman restore报错:ORA-19573

RMAN-03002: failure of restore command at 07/28/2021 08:26:13
ORA-19870: error while restoring backup piece /data/backup/LLL_level0_mesorcl_131_1_1079079559
ORA-19573: cannot obtain exclusive enqueue for datafile 5

原因:数据库有数据文件online,需要在mount下恢复

19、通过RMAN命令清理归档日志失败报错RMAN-08137解决方案

1. 报错如下:
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process
archived log file name=/archive_bams/1_71800_812561563.arc thread=1 sequence=71800

2. 触发bug:metalink ID 1079953.1
通常是在搭建dg的时候,主库和备库已经互相确认了主备关系,但是备库的归档日志缺失了一部分,导致备库上仅有的那部分归档日志无法成功应用日志。这时主库认为备库没有成功应用这些归档,而无法在主库中删除对应的归档日志。

3. 解决方案:清理主库归档时,增加force关键字

DELETE noprompt force ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-1';

 

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2022年4月24日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号