备份恢复2——备份恢复结构*

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 1、备份恢复结构: 当执行备份恢复操作时,经常需要提供数据文件的动态信息,为了获得数据文件的动态信息,可以产销动态性能视图:v$datafile和v$datafile_header。

1、备份恢复结构:

当执行备份恢复操作时,经常需要提供数据文件的动态信息,为了获得数据文件的动态信息,可以产销动态性能视图:v$datafilev$datafile_header

其中 v$datafile 的动态信息来自于控制文件

v$datafile_header 的动态信息来自于数据文件的头部。在数据库正常运行的情况下,这两个动态性能视图的检查点scn的值是一致的,但是如果数据文件出新损坏,并且转储了数据文件备份,那么v$datafile_header可以确定应用重做的起始scn值,而v$datafile 可以确定应用重做的结束scn值

看下面的示例:

          select  a.name , a.checkpoint_change# "起始scn值",b.checkpoint_change# "结束scn值"

 from v$datafile_header a , v$datafile b where a.file#=b.file# ;        


单实例环境中,只有一个特定重做线程,在rac环境中,包含多个重做线程,每个重做线程至少包含两个日志组,通过查询动态性能视图 v$log可以显示重做线程的所有日志组信息。包括:日志组编号,日志成员个数,日志组状态,尺寸,日志序列

           select group#,members,sequence#,status,bytes,first_change# from v$log where thread#=1;


查看当前数据库的信息:

           select dbid,name,log_mode,current_scn from v$database;

dbid:用于描述数据库的唯一数值。

name:描述当前数据库的名字。

log_mode:用于描述日志的操作模式。

current_scn:标识数据库的当前scn。



查询日志组成员的信息:

           select member,status from v$logfile where group#=1;


通过查询动态性能视图v$controlfile可以显示当前数据库的所有控制信息:

          select name from v$controlfile;


查看归档日志信息:

select name,first_change#,next_change# from v$archived_log where thread#=1;  

(thread#意思是redo thread number 只有一个redo线程所以值都唯一)

name:标识归档日志文件名。

first_change#:归档日志起始scn。

next_change#:本归档日志的结束scn,也是下一个归档日志文件的起始scn。


2、备份控制文件:

使用alter database backup controlfile to trace命令,oracle会将控制文件的信息,备份到服务器进程跟踪文件(trace file)中,如果控制文件一旦损坏,我们就可以用跟踪文件重建控制文件。


控制文件多元化:

一个视图:v$controlfile,一个参数:control_files


配置实例恢复参数:

fast_start_mttr_target:指定实例恢复的最大时间。通过它控制检查点checkpoint发生的频率。

log_checkpoint_timeout:指定发出检查点的时间间隔,单位是秒。

log_checkpoint_interval:用于指定发出检查点的重做日志块的间隔。单位是 操作系统数据块。


上面这三个参数现在都主要用第一个,后两个是为了与早期版本保留的参数,一般现在不用了。操作:

alter system set fast_start_mttr_target=1000;


视图:v$instance_recovery:  可以监视实例恢复的动态信息,操作:

select actual_redo_blks,target_redo_blks,estimated_mttr from v$instance_recovery;

actual_redo_blks:用于标识当前情况下实例恢复需要的redo块个数。

target_redo_blks:当前情况下实例恢复最多需要的redo块个数。

estimated_mttr:用于标识实例恢复需要用的时间。


降低实例恢复的时间:

因为实例恢复主要是redo时间和undo时间,所以为了降低实例恢复的时间,应该调整redo和undo时间。

redo的操作时由smon完成的,为了降低实例的恢复时间可以启动多个恢复进程,由初始化参数recovery_parallelism控制,修改后重启生效。

alter system set recovery_parallelism=3 scope=spfile;


undo也是由smon控制的,参数fast_start_parallel_rollback最大的平行回滚进程的数量,同个设置这个参数可以加快undo操作;

fast_start_parallel_rollback的取值有三个,分别是false,low,high。取false表示不用parallel rollback;low表示2倍的cpu的个数,high表示4倍的cpu的个数。

alter system set fast_start_parallel_rollback = high;


动态性能视图:v$fast_start_servers   可以监视执行undo操作的进程信息。


改变数据库日志归档的模式,只能在mount阶段进行,不能打开数据库具体操作如下:

先关闭shutdown immediate——再挂载startup mount——改变日志操作模式alter database archivelog——打开数据库:alter database open。


归档模式转变成archivelog的时候自动 启动ARCn进程,在10g之前要想自动启动ARCn进程,必须将参数log_archive_start设置为true。

归档日志的名称格式:由静态初始化参数(设置后重启生效):log_archive_format确定,如:alter system set log_archive_format='%s_%t_%r.log' scope=spfile;


具体什么意思呢?且听我慢慢说,首先要知道什么事匹配符,就是这几个%s, %t,%r 的东西,每个都有特定含义:

%s——日志序列号;

%S——日志序列号(带有前导0);

%t——重做线程号;

%T重做线程号(带有前导0);

%a——活动id号;

d%——数据库id号;

r%——resetlogs的id值。


如果LGWR进程切换了日志,那么归档日志就会接下来生成一个类似于22_1_5222517960.log的归档日志,其中22是日志序列号,1是重做线程号,522...0是resetlogs的编号。如果归档日志存放在快速恢复区,那么归档日志文件不会采用log_archive_format的格式。

参数log_archive_dest_n:其中n表示1到10之间的数,用于指定归档日志的位置。不仅可以指定本地的,也可以指定远程的位置。

操作:alte system set log_archive_dest_1='location=c:\demo\archive';——location关键词表示在本地设置。

             alter system set log_archive_dest_2='location=d:\demo\archivcwe';

            alter system set log_archive_dest_3='service=standby';               ——service关键词表示在远程节点设置归档位置。


参数:log_archive_dest_state_n:用于控制某个归档位置的可用性,默认值为enable,表示某位置可用,defer时表示末位置暂时不可用。

参数:log_archive_max_processes:用于控制归档进程个数。当启用archivelog模式的时候,默认为两个,你可以自己改变为更少或者更多。

参数:log_archive_min_succeed_dest:控制本地归档的最小成功个数,如:alter system set log_archive_min_succeed_dest=2;执行此句后,如果本地生成的归档日志少于两个,那么重做日志将不能被覆盖。


操作:archive  log  list :显示日志操作模式,显示最后一个本地归档位置,还有当前日志序列号。

操作:显示归档日志信息: select name,sequence#,first_change#  from v$archived_log; 

name——日志文件名,frist_change#——日志起始scn。

操作:显示归档日志位置:select dest_name,destination,status from v$archive_dest; 

dest_name——归档位置参数名,destination——归档位置,如果是本地归档,显示操作系统目录,如果是远程归档,显示网络服务名,status——用于标识归档位置的状态。


操作:select  thread# , sequence# , first_change#, first_time , switch_change# from v$loghist;  

thread#——标识重做线程号,sequence#——日志序列号;first_change#——日志序列号对应的起始scn;first_time——用于标识起始scn发生的时间。switch_change#——标识日志切换时的scn值。


操作:查看所有归档进程的信息:select process, status , log_sequence, stat  from v$archive_processes;

process——标识所有ARCn进程的编号;status——标识ARCn进程的状态(active——活动,stoped——未启动;Possible values  are: STOPPEDSCHEDULEDSTARTINGACTIVESTOPPING, andTERMINATED.),log_sequence——用于标识正在进行归档的日志序列号;state——标识ARCn进程的工作状态( Possible keywords are IDLE or BUSY.)。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
存储 关系型数据库 数据库
PostgreSQL的逻辑备份与物理备份
制定备份和恢复计划是每一个DBA最重要的工作之一,它决定了数据的有效性和完整性。也可以搭建跨越不同数据中心的流复制集群,能有效的帮助你避免单点故障。但是只有一份有效的备份能够帮助从delete或者drop的误操中恢复数据。
3617 0
|
数据库
OushuDB 管理指南 备份恢复(上)
使用gpfdist外部表进行备份的步骤: 检查数据库的大小,确定gpfdist使用的文件系统有充分的空间 ● 使用pg_dump导出需要备份的数据schema ● 启动gpfdist并创建使用gpfdist的writable外部表 ● 备份数据
125 0
OushuDB 管理指南 备份恢复(上)
|
数据库
OushuDB 管理指南 备份恢复(中)
pg_dump和pg_restore是一种串行备份和恢复方式,对大数据库来说从运行时间和空间来看都不适合。所以只适用于非常小的数据库备份。
117 0
OushuDB 管理指南 备份恢复(中)
|
存储 数据库
OushuDB 管理指南 备份恢复(下)
如果待备份表是压缩的,这个查询给出的大小是压缩后的大小,如果你的备份是没有压缩的,需要乘上一个压缩比来计算所需空间。通常我们使用3做为估计的压缩比。 基于数据库使用空间评估完压缩比的影响后,如果使用hdfs外部表备份,则获得的数据库大小需要乘hdfs存储副本个数评估总大小,通常该副本个数为3,即所需空间为databasesize * 3 * 3;如果使用gpfdist,gpfdist使用的机器个数是N,则每个机器上需要的空间是databasesize * 3 / N。
106 0
OushuDB 管理指南 备份恢复(下)
|
SQL Cloud Native 关系型数据库
PolarDB-X 1.0-用户指南-数据恢复表-备份恢复
备份恢复 本文将介绍备份恢复的两种方式及方法。
210 0
PolarDB-X 1.0-用户指南-数据恢复表-备份恢复
|
Oracle 关系型数据库 数据库
|
存储 运维 安全
备份!备份!备份! 看阿里云HBase的企业级备份恢复如何设计
数据安全是生命线,一线人员辛苦一年的努力可能因为一时疏忽而废,升职加薪无望;一个公司或者团队辛苦几年的打拼可能一夜回到解放前。所以面对重要的事情要说三遍:备份!备份!备份!
1214 0
备份!备份!备份! 看阿里云HBase的企业级备份恢复如何设计
|
数据库
数据库异地备份及不还原快速查询备份集最佳实践
传统数据库异地备份和查询中,有两个大的痛点,一个是备份数据集的管理,另外一个是备份数据的查询,本方案将通过阿里云DBS、OSS、DLA的组合,搭建一整套数据库本地/异地自动化备份和管理的方案。在备份的基础上,实现分钟级全备数据集的查询,节省大量数据库还原时间。
3154 0
|
MySQL 关系型数据库 数据库