转如何检查数据库是否处于一致性的状态 以及 如果在DG 库上备份,恢复成一个主库
##sample 0 不完全恢复之后,open resetlogs之前,怎么快速的检查数据库是否处于一致性的状态?
https://blog.csdn.net/msdnchina/article/details/55515313
How to quickly check that Database is consistent after incomplete recovery (Point in Time Recovery) before OPEN RESETLOGS (Doc ID 1354256.1)
(主要思想是检查数据库是否同步,文件是否是fuzzy)
通过从物理datafile中读取 datafile header来查询datafile的当前状态和PIT(Point In Time up to which the datafiles have been recovered)
SQL> select fuzzy, status, error, recover, checkpoint_change#, checkpoint_time, count(*)
from v$datafile_header
group by fuzzy, status, error, recover, checkpoint_change#, checkpoint_time ;
For Unix:
% export NLS_DATE_FORMAT='dd-mon-rr hh24:mi:ss'
% rman target /
For Windows:
> set nls_date_format=dd-mon-rr:hh24:mi:ss
> rman target /
找到备份的命令:
RMAN> LIST BACKUP OF DATABASE COMPLETED AFTER '<date>';
or
RMAN> LIST BACKUP OF DATABASE COMPLETED AFTER 'sysdate -n';
设置<date> 来限制backup命令的输出,以便定位到你想要的backup的输出,注意完成时间,
对于一个multi-piece的backup,请注意最后一个被创建的backuppiece的完成时间.
在本文中,运行SQL查询语句时,你应该在session级别设置NLS_DATE_FORMAT,如下:
SQL> alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS';
检查项 1:Checkpoint Time and Fuzziness
目标:验证被恢复(recovered)到想要的时间点(point in time--PIT)的datafiles,这些数据文件是一致的(FUZZY=NO)
通过从物理datafile中读取 datafile header来查询datafile的当前状态和PIT(Point In Time up to which the datafiles have been recovered)
SQL> select fuzzy, status, error, recover, checkpoint_change#, checkpoint_time, count(*)
from v$datafile_header
group by fuzzy, status, error, recover, checkpoint_change#, checkpoint_time ;
FUZ STATUS ERROR REC CHECKPOINT_CHANGE# CHECKPOINT_TIME COUNT(*)
--- ------- --------------- --- ------------------ -------------------- ----------
NO ONLINE 5311260 31-AUG-2011 23:10:14 6
YES ONLINE 5311260 31-AUG-2011 23:10:14 1
a)验证 checkpoint_time/checkpoint_change# 符合你想要的 UNTIL TIME/SCN,如果不符合,继续recover database,若是你有更多的archived log的话
b)如果有些datafile的FUZZY=YES,这意味着需要更多的recovery.
如果这些归档日志被丢失了,定位这些datafile并决定我们是否可以将这些datafile置于offline(译者注:当然可以用bbed进行修改,只不过风险自当,责任自负)
警告:如果把datafile置为offline,我们会丢失这些datafile中的数据.
如果这些datafile属于system or undo 表空间,没有合适的分析,我们决不能把这些文件置为offline状态.请联系Oracle Support以获取进一步的action.
SQL> select file#, substr(name, 1, 50), substr(tablespace_name, 1, 15), undo_opt_current_change# from v$datafile_header where fuzzy='YES' ;
FILE# SUBSTR(NAME,1,50) SUBSTR(TABLESPA UNDO_OPT_CURRENT_CHANGE#
---------- -------------------------------------------------- --------------- ------------------------
3 /u01/app/oracle/oradata/prod111/undotbs01.dbf
###参考Step by Step method to create Primary/Standby Database from Standby Backup (文档 ID 1604251.1)
Note:
Only from 11g, backup of controlfile which is taken as " Backup current controlfile" can be restored at standby database as
(a) current controlfile ( restore controlfile from '<>.BKP'; )
(b) standby controlfie ( restore standby controlfile from <>.bkp')
Step a1:
init ( minimum required parameter )
>>>
DB_NAME=MASTERDB # Database name of standby/primary
DB_UNIQUE_NAME="MASTERDBSNGS" # can be set for differentiation
control_files='/<path><>.CTL'
log_file_name_convert = '<your current standby REDO location >,< your new host location >' ( # optional )
<<<
Step a2:
$ export ORACLE_SID=MASTERDBSNGS
$ sqlplus / as sysdba
sql> startup nomount;
Step a3:
In another session
$ export ORACLE_SID=MASTERDBSNGS
$ rman target /
RMAN> restore controlfile from '<backup location/ctl.BKP'; for ( case a)
RMAN> alter database mount;
RMAN> catalog start with '< backup piece location>';
RMAN
run {
allocate channel t1 type disk;
allocate channel t2 type disk;
set newname for datafile 1 to '< new location/ DF name> ';
set newname for datafile 2 to '< new location/ DF name> ';
...
set until sequence 212; # this is to set as per your requirement
restore database;
switch datafile all;
recover database;
}
Step a4: alter database open resetlogs.
@ mount stage
SQL> alter database rename file '<old file location and name>' to '<new location and name>';
a4.1 Option (1) alter database open resetlogs;
a4.2 Option (b) Activate the Standby
SQL> Alter database activate physical standby database ;
SQL> Alter database open;
n 11.2.0.4 , you can follow below workaround if patch 18455956 NOT applied.
Since controlfile type would be 'STANDBY step (a4) will fail at 'Alter database open resetlogs'
With any of below option you can open the database as Primary role
Option (a) Create trace file of controlfile
recreate the controlfile from trace
recover database using backup controlfile until cancel # Cancel the recovery
alter database open resetlogs
Option (b) Activate the Standby
SQL> Alter database activate physical standby database ;
SQL> Alter database open;
##sample 1 如何对10g容灾库进行一个一致性备份
How to take consistent backups at standby site (文档 ID 1292126.1)
-》1.备库上停下MRP
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
备库上执行
RMAN> backup database plus archivelog ;
##10G 主库上执行
RMAN> backup current controlfile;
(Note: In 10g, you will need to backup the controlfile from the primary site.
The above will result in a consistent, self-contained backup.)
3) 备份重启MRP restart managed recovery:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNETED FROM SESSION;
3) 使用备份恢复 restart managed recovery:
To restore from this backup:
RMAN> startup nomount;
RMAN> restore controlfile from 'controlfile backuppiece name and location';
RMAN> alter database mount;
RMAN> restore database;
RMAN> recover database noredo;
##sample 2 如何在11g ADG环境备份一个一致性的备份;
Howto make a consistent RMAN backup in an Standby database in Active DataGuard mode (文档 ID 1419923.1)
1.如果在11.2.0.4 主库上备份,只要执行这条命令即可完成一致性备份。
Consistent means, that the backup is having the datafiles and the related archived redologs, so that it can be opened with this backup. This done on the Primary database by using :
RMAN> backup database plus archivelog;
This will execute the following :
Backup the existing archived redologs
Backup the datafiles
Switch a logfile
Backup all the archives again, but this time it will include all the archived redologs created during and just after the datafile backup. This are the archives which are required to make the datafile backup consistent.
2.如果在11.2.0.4 上standby db ADG上执行,就需要显性在主库上执行如下命令,对当前日志进行归档,
因为在恢复模式下对备用数据库进行的备份也不会得到所有归档日志,除非在主日志上执行切换并进行第二次存档日志备份, 否则需要第二次备份存档日志。
-》1.备库上准备远程切换主库的归档日志的脚本
shell script : /usr/local/bin/logswitch.sh
#!/bin/ksh
#
# Change <passwd>
# <primary_db>
#
sqlplus -s "sys/<passwd>@<primary_db> as sysdba" <<EOF
alter system archive log current;
exit
EOF
% chmod 755 /usr/local/bin/logswitch.sh
-》2 备库上执行如下命令,归档进行二次备份。
Example of RMAN backup script on the Active Dataguard Standby database
% rman target / catalog <un/pw@catalog_db>
Rman> Configure controlfile autobackup on ;--------------> This would ensure Controlfile auto backup
RMAN> backup database plus archivelog delete input;
host "/usr/local/bin/logswitch.sh";
backup archivelog all delete input;
注意:
(A backup taken of a MOUNTED standby database in recovery mode will also not get all of the archived logs required unless a switch is performed on the primary and a second archived log backup is taken.
)
(The missing 'Log Switch' by making an explicit 'Log Switch' on the Primary.
also does apply to the BASIC DATA GUARD case as well where the database is MOUNTED and in
managed recovery mode (MRP).
A backup taken of a MOUNTED standby database in recovery mode will also not get all of the archived logs required unless a switch is performed on the primary and a second archived log backup is taken.
)
通过在主服务器上创建显式 "日志切换" 来丢失 "日志切换"。
也适用于基本数据保护表的情况下, 以及在其中的数据库是移动和在托管恢复模式 (MRP)。
在恢复模式下对备用数据库进行的备份也不会得到所有归档日志,除非在主日志上执行切换并进行第二次存档日志备份, 否则需要存档日志。
转如何检查数据库是否处于一致性的状态 以及 如果在DG 库上备份,恢复成一个主库的更多相关文章
- 【DB宝46】NoSQL数据库之CouchBase简介、集群搭建、XDCR同步及备份恢复
目录 一. CouchBase概述 1.1.简述 1.2.CouchDB和CouchBase比对 1.2.1.CouchDB和CouchBase的相同之处 1.2.2.CouchDB和CouchBas ...
- MS SQL巡检系列——检查数据库上一次DBCC CHECKDB的时间
DBCC CHECKDB检查指定数据库中的所有对象的逻辑和物理完整性,具体请参考MSDN文档.我们必须定期对数据库做完整性检查(DBCC CHECKDB),以便能及时发现一些数据库损坏(Corrupt ...
- 怎样在SharePoint管理中心检查数据库架构版本号、修补级别和修补程序的常规监控
怎样在SharePoint管理中心检查数据库架构版本号.修补级别和修补程序的常规监控 准备: 确保你是可以訪问管理中心的场管理员. 開始: 1. 打开管理中心--升级和迁移. 2. 点击"查 ...
- Oracle安装11.2.0.4.180116补丁及如何检查数据库安装补丁
最近做了一个安装11.2.0.4.180116补丁的实验,突然想起之前和同事讨论的一个问题:如何检查数据库安装补丁的版本,之前搜到的是去查dba_registry_history,有的说在操作系统中执 ...
- Oracle管理监控之检查数据库和日常维护数据库
linux系统的系统日志一般位于/var/log目录下.linux的系统日志由一个叫syslog的进程管理的,如下日志都是由syslog服务驱动的. /var/log/ messages:记录linu ...
- 【计算机网络基础】用 telnet 检查 VPS 的某个端口是否处于监听状态
命令 telnet x.x.x.x p 其中 x.x.x.x 代表 VPS 的 IP 地址,p 代表要检查的端口号. 起因是我的 ss 不好使了.IP 没被封,查了一下,可能是 ssserver 的端 ...
- Redis缓存穿透、击穿、雪崩,数据库与缓存一致性
Redis作为高性能非关系型(NoSQL)的键值对数据库,受到了广大用户的喜爱和使用,大家在项目中都用到了Redis来做数据缓存,但有些问题我们在使用中不得不考虑,其中典型的问题就是:缓存穿透.缓存雪 ...
- Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复
Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工 ...
- 删库到跑路?还得看这篇Redis数据库持久化与企业容灾备份恢复实战指南
本章目录 0x00 数据持久化 1.RDB 方式 2.AOF 方式 如何抉择 RDB OR AOF? 0x01 备份容灾 一.备份 1.手动备份redis数据库 2.迁移Redis指定db-数据库 3 ...
随机推荐
- 关于如何在服务器上搭建tomcat并发布自己的web项目
最近在学习如何在服务起上搭建tomcat,并发布自己的项目,自己是花了一下午的时间才把里面的东西弄明白,各种百度,各种请教大神,真的是备受折磨啊.好了废话不多说,直接进入主题. 1:众所周知,tomc ...
- [GO]单向channel和应用
var ch1 chan int //ch1是一个正常的channel,不是单向的 var ch2 chan <- float64 //ch2是一个单向的channel,只用于写float ...
- 大佬福利之在你眼中 Web 3.0 是什么?(转)
web 3.0 Web 3.0一词包含多层含义,用来概括互联网发展过程中某一阶段可能出现的各种不同的方向和特征.Web 3.0 充满了争议和分歧,它到底应该什么样?具体的标志点又是什么? Web 2. ...
- Type Hierarchy
Window - Preferences - General - Keys Name: Open Type Hierarchy Description: Open a type hie ...
- QGIS与Python
Qgis python开发教程(一):https://blog.csdn.net/u011435933/article/details/80419496
- C# 生成dll文件 并导入使用
首先 在unity创建一个脚本 并编写内容,其中需要调用的方法.变量要公有化(也可以直接新建cs文件用编译器打开编译,但要先导入UnityEngine.dll). 然后,复制脚本关闭unity,在外界 ...
- 编写高质量代码改善C#程序的157个建议——建议122:以<Company>.<Component>为命名空间命名
建议122:以<Company>.<Component>为命名空间命名 建议以<Company>.<Component>为程序集命名,比如Microso ...
- 12306GT多线程、分流免费抢票工具使用心德
大事记背景 我相信很多远游他乡的朋友每逢佳节都会遇到一个难题,就是购票难,这个难题有多难呢?经常在12306官网购票的小伙伴应该知道每个地方的放票时间是不一样的,但是逢年过节的那几天即使你在放票几分钟 ...
- 卡在Initializing Spring root WebApplicationContext
1,多数情况下是连接数据库时出现问题, 2,如果使用mybatis 请查看 xml映射文件是否和对应的java 的dao文件名字相同,或者<mapper namespace="com. ...
- delphi实现截全屏功能
procedure TForm1.Button10Click(Sender: TObject);var bmp: TBitmap; can: TCanvas; dc: HDC; Image1: TIm ...