043-2 RMAN的增量备份

RMAN增量备份2种:
lv0 全备份,与backup Database 效果相同,但属于增量备份
1.lv1    增量备份,只备份差异的未备份的
2.lv1c   增量备份,备份最后一次lv0之后的全部数据(可能包括之前lv1备份的内容)
--***************
演示增量备份(043文档,Differential Versus Cumulative)
模拟一周的备份情况
--***************
Truncate Table  System.t;
Select * From v$log;   --group# 2
C:\>RMAN
RMAN> Connect target Sys/oracle@testdb catalog rman/rman@catalogDB
RMAN> Delete Backup;   --清除之前的备份
Insert Into System.T Values(0,'A',Sysdate);   
Commit;
RMAN> Backup incremental Level=0 Database;     --周日进行一次lv0备份

Insert Into System.T Values(1,'B',Sysdate);   
Commit;
Alter System Archive Log Current;              --手动归档与Alter System Switch Logfile;效果相同,但只能用在归档模式
RMAN> Backup incremental Level=1 Database;     --周一进行一次lv1即差异增量备份

Insert Into System.T Values(2,'C',Sysdate);   
Commit;
Alter System Archive Log Current;              --手动归档与Alter System Switch Logfile;效果相同,但只能用在归档模式
RMAN> Backup incremental Level=1 Database;     --周二进行一次lv1备份

Insert Into System.T Values(3,'D',Sysdate);   
Commit;
Alter System Archive Log Current;              --手动归档与Alter System Switch Logfile;效果相同,但只能用在归档模式
RMAN> Backup incremental Level=1 cumulative Database;     --周三进行一次lv1c 即1级累计增量备份

Insert Into System.T Values(4,'E',Sysdate);   
Commit;
Alter System Archive Log Current;              --手动归档与Alter System Switch Logfile;效果相同,但只能用在归档模式
RMAN> Backup incremental Level=1 Database;     --周四进行一次lv1备份

Insert Into System.T Values(5,'F',Sysdate);   
Commit;
Alter System Archive Log Current;              --手动归档与Alter System Switch Logfile;效果相同,但只能用在归档模式
RMAN> Backup incremental Level=1 cumulative Database;     --周五进行一次lv1c 即1级累计增量备份

Insert Into System.T Values(6,'G',Sysdate);   
Commit;
Alter System Archive Log Current;              --手动归档与Alter System Switch Logfile;效果相同,但只能用在归档模式
RMAN> Backup incremental Level=1 Database;     --周六进行一次lv1备份

RMAN> List Backup Of Database summary;         --查看备份信息的简要信息

RMAN> Restore priveiw Database;                --查看恢复需要哪些备份 lv0  还要5,6这两天的备份

--*****模拟损坏进行恢复
RMAN> Shutdown Immediate
RMAN> startup Mount
RMAN> Restore Database;                        --开始恢复,恢复最后一次备份的lv0
RMAN> Recover Database;                        --在RMAN中Recover database找的是增量备份的文件,sql中会找归档日志

--**********************
RMAN备份的优缺点
--**********************
其他备份的缺点
1.Shutdown|Offline
2.os copy
3.Log(部分联机备份)

rman备份客服了以上缺点
4.使用过的数据块,永远都会被备份     --10.2.0.3补丁已经解决
Select * From t;
Select * From dba_tables Where owner='SYS' And TABLE_NAME='T'
Select BYTES/1024/1024,TABLESPACE_NAME,segment_name From DBA_SEGMENTS Where SEGMENT_NAME='T' And OWNER='SYS'     --SYS用户下的表T,在USERS表空间占用80M的容量
RMAN> Backup Tablespace users;         --查看容量1
Drop Table t Purge;
RMAN> Backup Tablespace users;         --查看容量2 和容量1相等
优点:
1.当数据块损坏时,可以针对单个数据块的恢复
Alter Database Datafile 4 Resize 10m;  --将表空间缩小到10M,如果表空间内容很少,但是仍然缩小不了,则可以使用move table和index rebuild来整理空间
Select BYTES/1024/1024,TABLESPACE_NAME,segment_name,OWNER From DBA_SEGMENTS Where Tablespace_NAME='USERS';
Alter Table  SYS.T Move;
Alter Index System.IDX_T1 Rebuild;

Create Table T Tablespace USERS As Select * From DBA_OBJECTS;
Insert Into T Select * From T;  --重复插入多次,让数据涨到8W以上
Shutdown Immediate              --关闭后模拟USERS表空间损坏
用UE打开USERS表空间的文件,前8行不能编辑,不然数据头文件损坏,在后面编辑一些数据后保存,更改3个地方
startup
Select * From t;                --报错,ORA-01578:ORACLE DATA BLOCK CORRUPTED (FILE # 4, BLOCK #730)
--******检查数据块的坏块
c:\dbv File =C:\oracle\product\10.2.0\oradata\testDB\USERS01.DBF  --查看USERS表空间的数据文件中有哪些数据块是损坏的:   
RMAN> Backup Validate Datafile 4;                                 --RMAN对数据文件4进行坏块检查,不进行备份,检查后不报错,记录在v$database_block_corruption视图中
RMAN> Backup Datafile 4;          --如果备份有坏块的数据文件,会报错:ORA-19566: EXCEEDED LIMIT OF 0 CORRUPT BLOCKS FOR FILE C:\oracle\product\10.2.0\oradata\testDB\USERS01.DBF
RMAN> run{
Set maxcorrupt For Datafile 4 To 1;    --设置数据文件4,允许有1个折断块CORRUPT BLOCKS,只能放在run{}中执行
}
--***************针对检查到的坏块,进行恢复
RMAN> blockrecover Datafile 4 Block 730;                          --只恢复数据文件4的第730个块
RMAN> blockrecover Datafile 4 Block 933;                         
RMAN> blockrecover Datafile 4 Block 1438;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15810196/viewspace-1146671/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15810196/viewspace-1146671/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值