catalog start with + switch database to copy的妙用
本blog介绍了各种asm数据文件和filesystem文件之间的转换方法,有的记录了过程,有的没有记录过程只记录了相关代码,大家若有兴趣可以自行测试。
背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来。
数据文件OFFLINE之后必须要做的一件事就是立刻执行一次RECOVER操作,这样在无论过了多久之后,在ONLINE该数据文件的时候就不需要执行RECOVER操作了。
oracle rac环境将datafile创建到本地文件系统,会造成间歇性访问异常。
1、系统正常关闭: system scn=datafile scn=start scn=stop scn 1)system scn=datafile scn=start scn,不需要介质恢复 2)stopscn not null,不需要实例恢复 2、系统异常关闭: system scn=datafile scn=start scn,stop scn null 1)system scn=datafile scn=start scn,不需要介质恢复 2)stopscn null,需要实例恢复 3、旧数据文件 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 不需要实例恢复 4、备份控制文件 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 5、重建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 不需要实例恢复 6、重建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
【DB宝24】在Oracle 19c中创建容器数据库(1)--DBCA静默创建CDB
背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来。 环境:Oracle 10.2.0.5 DG 单机
今天碰到个有意思的事情,有客户在Oracle RAC环境,误操作将新增的数据文件直接创建到了其中一个节点的本地存储上。 发现网上去搜的话这种问题还真不少,对应解决方案也各式各样,客户问我选择哪种方案可行,看来基础的数据维护工作还是有必要进一步规范的。 数据库是归档模式,那么我们实际可以利用rman的backup as copy datafile xxx format ''以及 switch datafile xxx to copy来操作,这样来解决是最简单且最不容易误操作的。
环境:Oracle 10.2.0.5 现象:RMAN分配多个通道,但实际无法使用到并行。 构建测试用例:
环境: RHEL6.4 + Oracle 11.2.0.4 Primary RAC + Standby RAC
1.背景概述 2.本次测试环境基本信息 3.测试步骤 3.1. 使用BCO进行压缩备份 3.2. 不使用压缩备份 3.3. 使用ACO中LOW级别进行压缩备份 3.4. 使用ACO中MEDIUM级别进行压缩备份 3.5. 使用ACO中HIGH级别进行压缩备份 4.各类备份方式对比分析 4.1. 生成备份文件大小差异 4.2. 备份时长差异 4.3. 备份CPU资源差异 4.4. 备份Memory资源差异 4.5. 备份IO资源差异 5.总结
bbed很好的数据文件修复工具,解决二进制文件修改难题。在没有备份、灾难发生、恢复失效时挽救DB的终极武器。
① 该语句会删除磁盘上的文件并更新控制文件和数据字典中的信息,删除之后的原数据文件序列号可以重用。
备库的service_name设置为db_standby;需要到参数文件修改。
ALTER TABLESPACE TS_DD_LHR DROP DATAFILE n; --n为数据文件号
在运维操作过程中会出现一些失误,针对在使用ASM磁盘管理下,给表空间添加数据文件,添加的数据文件不符合创建规则,因此需要对数据文件进行rename操作,关于使用文件系统的rename操作网上已经有很多,在此不在多讲。
众所周知我们的Data Guard数据同步是基于日志流的。所以在主库执行nologging操作是不被允许的。这也就是为什么我们需要在配置Data Guard阶段需要使用Force Logging。但是这也会带来很多问题(SQL执行效率),例如:当我们使用数据泵进行迁移时我们希望最少停机时间完成,这时候我们就可能会考虑到以最小日志导入的方式以加快导入速度,然后重新同步备库。
在Oracle中,通常所有的表空间都要在同一个时间点上保持一致。但实际工作中,有时我们需要在同一个数据库中,把部分数据恢复到不同的时间点。这时就要用到RMAN的表空间时间点恢复功能。这里姚远老师给大家介绍一下这个功能,参考官方文档《Backup and Recovery User's Guide》21 Performing RMAN Tablespace Point-in-Time Recovery (TSPITR)
有的时候由于备库空间不足,在主库添加了数据文件后,导致备库数据文件的缺失,可能很久之后才发现,但是由于归档的缺失等其它原因而导致备库不能正常应用Redo日志。还有其它情况可能导致备库的数据文件不能正常ONLINE,在这种情况下,可以在主库上利用CONVERT命令备份一个数据文件然后拷贝到备库即可。若是备库归档文件比较全,则可以直接在备库创建数据文件后应用Redo日志即可,而不需要从主库拷贝数据文件。
本文阐述了Oracle ADG备库SYSAUX数据文件坏块恢复处理(ORA-00600,ORA-10567,ORA-10564,ORA-01110,ORA-10561)的思路、步骤、解决方案。
注意: CONTROL_FILES参数,如果未使用OMF,则需要指定。我这里使用OMF。指定 db_create_file_dest即可。 DB_BLOCK_SIZE参数,大小必须与源库一致,如果源库设置,则也需要指定。我这里不需要。
Migrate database from single instance to Oracle RAC
Thu Mar 29 11:21:45 2018 FAL[client]: Failed to request gap sequence GAP - thread 1 sequence 184-185 DBID 1484954774 branch 960494131 FAL[client]: All defined FAL servers have been attempted. ------------------------------------------------------------ Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization parameter is defined to a value that's sufficiently large enough to maintain adequate log switch information to resolve archivelog gaps.
在Oracle12c之前的版本中,rman进行数据恢复时只能进行database/tablespace/datafile/block四种级别的恢复,如果误操作删除某张表或表中数据,无法通过闪回进行数据还原时,且有完整备份以及归档,该种情况下可以进行表空间时间点恢复,但恢复方式较麻烦,在Oracle12c中,Oracle对rman功能进行了增强,除了之前的四种级别的恢复,rman也提供了表/表分区级别的恢复,该特性可以直接从现有的rman备份中来恢复表/表分区,且恢复的过程不影响数据库中的其他的对象。
对于 Oracle Oracle ADG 备库重启时有些人都会有一个小问题,那就是没有及时应用日志没启动 MRP0 进程,导致主备库不同步。一般情况下主备库不同步的原因有:
源环境:RHEL6.4 + Oracle 11.2.0.4 目的环境:Windows 2003 需求:研发测试环境的Oracle数据库从Linux迁移到Windows,可以停机。
当主库的某些日志没有成功传送到备库,那么这时候就发生了归档裂缝(Archive Gap)。目前Oracle提供了两种日志GAP的检测和处理机制,分别是自动GAP处理(Automatic Gap Resolution)和FAL进程GAP处理(FAL Gap Resolution)。自动GAP处理即主库上的ARCn进程会每分钟检查备库上的日志GAP情况并做相应处理。FAL(Fetch Archive Log)是通过配置FAL_SERVER和FAL_CLIENT实现GAP检测的一种机制,它是备库主动发起的“取”日志的过程。备库就是FAL_CLIENT,它从FAL_SERVER中取这些GAP。Oracle会首先尝试使用FAL进程处理GAP,当发现FAL机制并没有配置生效的时候,进而尝试使用自动GAP处理。FAL进程只在物理备库存在。FAL进程提供了一个CLIENT/SERVER的机制,用来解决检测在主库产生的连续的归档日志,而在备库接受的归档日志不连续的问题。该进程只有在需要的时候才会启动,而当工作完成后就关闭了,因此在正常情况下,该进程是无法看见的。
普通数据文件指:非system表空间、undo_tablespace表空间、临时表空间和只读表空间的数据文件。它们损坏导致用户数据不能访问,不会导致db自身异常、实例崩溃、数据库不恢复就无法启动的情况。
DG GAP 顾名思义就是:DG不同步,当备库不能接受到一个或多个主库的归档日志文件时候,就发生了 GAP。
不管是 10g、11g、12c ,RAC 架构的数据文件均是存放在共享存储上的,但是由于扩容时误操作少写一个符号,则会将数据文件建立到本地文件系统上的 $ORACLE_HOME/dbs 目录下,这样当然不会立即出错,也提示添加成功,但当另外一个节点访问此数据文件上面的数据时就会报错 ORA-1157、ORA-1110 提示无法锁定该数据文件,导致出现异常应用无法访问此数据。
案例:Standby RAC遭遇ORA-1157,1111,1110导致实例crash处理 环境:RHEL 6.5 + Oracle RAC 11.2.0.4 + Dataguard 今天在实验环境的Pirmary RAC主库上做了一个增加表空间的操作,结果Standby RAC启动同步后直接crash,具体报错如下:
**导读** > 作者:杨漆 > 16年关系型数据库管理,从oracle 9i 、10g、11g、12c到Mysql5.5、5.6、5.7、8.0 到TiDB获得3个OCP、2个OCM;运维路上不平坦,跌过不少坑、熬过许多夜。把工作笔记整理出来分享给大伙儿,希望帮到大家少走弯路、少熬夜。 提问: 如果您的生产环境为3节点的Rac+ASM,10T以上数据,业务对主库有极高性能要求,不能占用主库资源、通道、带宽,且主库归档日志每4小时会定时删除一次(归档存储空间有限,且无法扩容),现有备库上的归档每小时不定
但是上面 for 循环有个问题,一次循环中需要等 耗时最长的子进程 结束才能开始下一个循环
本例通过943名用户对1664部电影的评分数据,构建协同过滤模型,进而推荐电影供用户观看。通过本例,可以了解协同过滤算法在电子商务智能推荐领域的应用方法,帮助用户更加便捷的获取想要的信息,进而提升用户体验、促进推荐转化。
最近先后帮客户做了两套从虚拟化环境到物理机的数据库迁移,都是Linux系统,Oracle 11.2.0.4的RAC,最终选定ADG方案实现迁移,简单高效。 在之前的文章Oracle 11g ADG 部署(duplicate)快速参考中,已经详细介绍了搭建步骤。但本次环境准备时还是遇到些小问题,本文记录下解决过程。
其实利用OS拷贝也可以联机操作,不关闭数据库,但是只针对可以OFFLINE的数据文件,步骤如下所示:
SQL> alter tablespace yhqt read only; SQL> alter tablespace yhqt read write;
在Oracle中,如何修复由于主库NOLOGGING引起的备库ORA-01578和ORA-26040错误?
在数据恢复实践(一)中,我们了解到在 Windows 的11.2.0.1的环境中恢复过程比较顺利,那么接下来的测试,是我遇到更加复杂的情况:系统表空间保护两个不连续的系统文件;恢复过程中出现 ORA 错误及数据字典不匹配的情况。我借助了一些非常规的手段规避这些问题,达到数据拯救的目的。
1. 简介 sed 是非交互式的编辑器。它不会修改文件,除非使用 shell 重定向来保存结果。默认情况下,所有的输出行都被打印到屏幕上。 sed 编辑器逐行处理文件(或输入),并将结果发送到屏幕。具
修复由于主库NOLOGGING操作引起的备库ORA-01578和ORA-26040错误
周玉其 云和恩墨南区技术顾问,曾在电信、物流等行业从事多年数据库开发、管理工作。
在Oracle 10g的中搭建Data Guard环境真是一个纠结,目前大体都是采用两种方式,一种是rman备份,一种是duplicate的方式,但是这两个地方不够让我满意,一来是rman备份数据量不小,需要先在本地生成备份,然后拷贝到备库去,这个搭建周期略长,另外一个就是推荐的方式duplicate,在10g中有些鸡肋的味道,本地备份,然后拷贝到备库,然后动用duplicate的方式,这样的方式还不如手工rman的方式同步来得顺心顺意,所以在10g中我是不怎么喜 欢duplicate方式。当然11
将RAC备份集恢复到单实例数据库的过程基本上就是先将备份集恢复为RAC数据库,然后再将数据库转换为单实例的数据库。
ll /data/|grep system|awk '{print $9}' >datafile_name.txt
Oracle 数据库是由无数个表空间组成,表空间是由无数个数据文件组成,数据文件存放在磁盘中。
墨墨导读:一套19C CDB数据库,存储更换HBA卡宕,本文详述这起begin backup导致的故障恢复全过程。
12c可以通过Server name直连主库,Online修复,省去Rman基于scn备份后再传输到备库恢复的冗繁步骤
领取专属 10元无门槛券
手把手带您无忧上云