您的位置:首页 > 运维架构

备份相关的动态性能视图及监控

2015-01-11 17:16 357 查看

1.相关视图

v$backup_files

v$backup_set

v$backup_piece

v$backup_redolog

v$backup_spfile

v$backup_device

v$rman_configuration

v$archived_log

v$backup_corruption

v$copy_corruption

v$database_block_corruption

v$backup_datafile

2.查看channel对应的server sessions

使用set command id命令

查询v$process和v$session判断哪一个会话与之对应的RMAN通道

SQL> select sid,username,client_info from v$session

2 where client_info is not null;

SID USERNAME CLIENT_INFO

---------- ------------------------------ ------------------------------

146 SYS rman channel=ORA_DISK_1

148 SYS rman channel=ORA_DISK_2

150 SYS rman channel=ORA_DISK_3

--下面使用了set command id命令

RMAN> run{

2> allocate channel ch1 type disk;

3> set command id to 'rman';

4> backup as copy datafile 4

5> format '/u01/app/oracle/rmanbak/dd_%U';

6> }

SQL> select sid,username,client_info from v$session

2 where client_info is not null;

SID USERNAME CLIENT_INFO

---------- ------------------------------ ------------------------------

140 SYS id=rman

SQL> select sid,spid,client_info

2 from v$process p ,v$session s

3 where p.addr = s.paddr

4 and client_info like '%id=%';

SID SPID CLIENT_INFO

---------- ------------ ------------------------------

140 5002 id=rman

--查看rman完整的进度

SQL> select sid,serial#,context,sofar,totalwork,

2 round(sofar/totalwork*100,2) "% Complete"

3 from v$session_longops

4 where opname like 'RMAN:%'

5 and opname not like 'RMAN:aggregate%'

6 and totalwork!=0;

--通过如下SQL获得rman用来完成备份操作的服务进程的SID与SPID信息:

select sid, spid, client_info

from v$process p, v$session s

where p.addr = s.paddr

and client_info like '%id=rman%'

3.Linux下的rman自动备份

备份脚本+crontab

bak_inc0 :0级增量备份,每周日使用级增量进行备份

bak_inc1 :1级增量备份,每周三使用级增量备份,备份从周日以来到周三所发生的数据变化

bak_inc2 :2级增量备份,备份每天发生的差异增量。如从周日到周一的差异,从周一到周二的差异

--下面是级增量的脚本,其余级与级依法炮制,所不同的是备份级别以及tag标记

[oracle@oradb scripts]$ cat bak_inc0

run {

allocate channel ch1 type disk;

backup as compressed backupset incremental level 0

format '/u01/oracle/bk/rmbk/incr0_%d_%U'

tag 'day_incr0'

database plus archivelog delete input;

release channel ch1;

}

逐个测试脚本

[oracle@oradb bk]$ rman target / log=/u01/oracle/bk/log/bak_inc0.log /

> cmdfile=/u01/oracle/bk/scripts/bak_inc0.rcv

RMAN> 2> 3> 4> 5> 6> 7> 8> 9>

[oracle@oradb bk]$

编辑crontab

[root@oradb ~]# whoami

root

[root@oradb ~]# crontab -e -u oracle

45 23 * * 0 rman target / log=/u01/oracle/bk/log/bak_inc0.log append cmdfile = /u01/oracle/bk/scripts/bak_inc0.rcv

45 23 * * 1 rman target / log=/u01/oracle/bk/log/bak_inc2.log append cmdfile = /u01/oracle/bk/scripts/bak_inc2.rcv

45 23 * * 2 rman target / log=/u01/oracle/bk/log/bak_inc2.log append cmdfile = /u01/oracle/bk/scripts/bak_inc2.rcv

45 23 * * 3 rman target / log=/u01/oracle/bk/log/bak_inc1.log append cmdfile = /u01/oracle/bk/scripts/bak_inc1.rcv

45 23 * * 4 rman target / log=/u01/oracle/bk/log/bak_inc2.log append cmdfile = /u01/oracle/bk/scripts/bak_inc2.rcv

45 23 * * 5 rman target / log=/u01/oracle/bk/log/bak_inc2.log append cmdfile = /u01/oracle/bk/scripts/bak_inc2.rcv

45 23 * * 6 rman target / log=/u01/oracle/bk/log/bak_inc2.log append cmdfile = /u01/oracle/bk/scripts/bak_inc2.rcv

"/tmp/crontab.XXXXInBzgR" 7L, 791C written

crontab: installing new crontab

保存之后重启crontab

[root@oradb ~]# service crond restart

Stopping crond: [ OK ]

Starting crond: [ OK ]

检查自动备份是否成功执行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: