ITPub博客

首页 > 数据库 > Oracle > RMAM基础命令

RMAM基础命令

原创 Oracle 作者:leon830216 时间:2014-02-23 21:59:38 0 删除 编辑
1. 登录数据库
$ export ORACLE_SID=test
$ rman target /
$ rman target sys/admin@tnsname

$ rman
$ connect target /
$ connect target sys/admin@tnsname


2. 输出日志
rman target / log C:\rman.log


3. 显示配置
show all


4. 执行主机命令
RMAN> host;


5. 备份

5-1. 备份全库
backup database
backup database format '/backup/bak_%U'

5-2. 备份表空间
backup tablespace users

5-3. 备份指定数据文件
backup datafile '/data/system01.dbf'
backup datafile 1

5-4. 备份控制文件
backup datafile 1
backup tablespace system
configure controlfile autobackup on
backup current controlfile
backup datafile 4 include current controlfile
backup spfile include current controlfile
backup database include current controlfile

5-5. 备份 spfile
bakcup spfile

5-6. 备份归档日志文件
backup archivelog all [delete input]

# 会归档并备份当前日志和备份过程中的日志, 任何 backup 命令都可以加 plus
# 还可以通过制定 until scn time sequence 等指定归档区间
backup database plus archivelog

5-7. 备份备份集
# 只能从磁盘到磁盘或磁盘到磁带, 适用于从磁盘备份到磁带
backup backupset all [delete input]
backup backupset n,m


6. 列出备份信息
list backup of database
list copy of tablespace system
list backup of datafile n ['/data/users.dbf']
list device type disk [tbs] backup --- 列出某设备上的备份信息
list backup of controlfile
list backup of archivelog all
list expired backup --- 列出无效备份


7. 删除备份
# delete noprompt xxx

7-1. 删除过期备份, 根据冗余策略
delete obsolete

7-2. 删除无效备份
crosscheck backup
delete expired backup

7-3. 删除 expired 副本
delete expired copy

7-4. 删除特定备份集
delete backupset 19


7-5. 删除指定备份片
delete backuppiece '/backup/DEMO_19.bak'

7-6. 删除所有备份集
delete backup

7-7. 删除特定影像备份
delete datafile copy '/backup/DEMO_19.bak'

7-8. 删除所有映像副本
delete copy

7-9. 备份后删除输入对象
backup archivelog all delete input
backup backupset 22 format = "/data/%u.bak" delete input


8. 报表显示
# 查看模式信息, 必须连接catalog

8-1. 查看 7 天前数据库的模式
report schema at time 'sysdate-7'

8-1. 查看所有需要备份的文件
report need backup

8-2. 查看指定表空间是否需要备份
report need backup tablespace system

8-3. 查看过期备份
report obsolete;
report obsolete redundancy 1;
report obsolete recovery window of 1 days;


9. 执行检查

9-1. 检查所有归档文件, 并更新控制文件中 RMAN 备份信息
# 可以解决备份归档日志时的下列错误
# RMAN-06059: expected archived log not found, lost of archived log compromises recoverability
crosscheck archivelog all;
change archivelog all crosscheck;

# 删除所有归档, 同时更新控制文件, 这样再备份归档日志时不会报错
delete archivelog all;

9-2. 检查所有备份集
crosscheck backup;


10. 修改记录状态

10-1. 修改指定备份集状态
change backupset n unavailable
change backupset n available

10-2. 修改表空间备份集状态
change backup of tablespace users available

10-3. 修改归档日志文件状态同时还可以删除
# logseq为归档文件序号, 通过 v$archived_log 获取
change archivelog logseq=n unavailable [delete]


11. 运行脚本

11-1.
rman target / @aaa.rman
@aaa.rman
run{ @aaa.rman }

11-2. 运行存储在回复目录中的脚本
run { execute script backup_whole_db }

11-3. 操作系统脚本
rman cmdfile=bak.rman


12. 块修改跟踪
alter database enable block change tracking using file '/data/filename.log';
alter database disable block change tracking;
select status from v$block_change_tracking;


13. 复合备份 (duplexed)

13-1. 备份时指定
backup copies 2 spfile;
run {
set backup copies 2;
backup device type disk format '/back/1_%U', '/back/2_%U' spfile;
}

13-2. 参数中指定
configure datafile backup copies for device type disk to 2;
configure archivelog backup copies for device type disk to 2;
configure channel 1 device type disk format '/back/1_%u';
configure channel 2 device type disk format '/back/2_%u';


14. 分配通道

14-1. 参数中指定
configure channel device type disk format '/back/%u';
configure default device type to disk;
configure channel 1 device type disk format '/back/1_%u';
configure channel 2 device type disk format '/back/2_%u';

14-2. 手动分配
run {
allocate channel c1 device type disk format '/home/oracle/1_%U';
backup spfile;
release channel c1;
}

# 维护用的通道, 不能放在 run 中
allocate channel for maintenance device type disk;
crosscheck backupset;
delete noprompt obsolete;

15. 指定备份集文件名
backup spfile format '/back/%U';


16. 指定备份文件标签
backup spfile tag 'tag_spfile';


17. 指定备份大小和数量
configure maxsetsize to unlimited;

17-1. 备份片大小
RMAN> run {
allocate channel c1 device type disk maxpiecesize=20k format '/back/%U';
backup tablespace users;
release channel c1;
}

17-2. 备份集大小
# 限制备份集不超过指定大小
# 备份集中任何一个文件的大小必须大于指定的大小, 否则备份报错
# 实际应用中一般限制备份片大小
backup database maxsetsize=300m;

17-3. 备份片个数
backup database plus archivelog filesperset 20;
backup tablespace users filesperset 10;


18. 备份压缩
backup as compressed backupset spfile;


19. 备份加密

19-1. 类型

19-1-1. 透明模式 (transparent encryption mode)
需要配置 oracle encryption wallet 特性
适合于同一服务器的备份恢复

19-1-2. 密码模式 (password encryption mode)
适合于不同服务器的备份恢复
在备份前设置密码, 恢复前指定密码
仅当前会话有效, 会覆盖 configure 设置
set encryption on identified by pass only;

19-1-3. 双重模式 (dual encryption mode)
# 使用 configure 同时, 使用 set encryption 命令 (不加 only)
configure encryption for database on;
configure encryption for tablespace users on;
configure encryption algorithm 'aes128';


20. format 字符串 (注意大小写)
# 如果在 BACKUP 命令中没有指定 FORMAT 选项, 则 RMAN 默认使用 %U 为备份片段命名
%a: 数据库的 activation ID 即 RESETLOG_ID
%c: 备份片段的复制数 (从 1 开始编号最大不超过256)
%d: 数据库名称
%D: 当前时间中的日, 格式为DD
%e: 归档序号
%f: 绝对文件编号
%F: 基于 "DBID + 时间" 确定的唯一名称, 格式的形式为 c-IIIIIIIIII-YYYYMMDD-QQ, 其中 IIIIIIIIII 为该数据库的DBID, YYYYMMDD 为日期, QQ 是一个 1-256 的序列
%h: 归档日志线程号
%I: 数据库的 DBID
%M: 当前时间中的月, 格式为 MM
%N: 表空间名称
%n: 数据库名称, 并且会在右侧用 x 字符进行填充, 使其保持长度为 8
%p: 备份集中备份片段的编号, 从 1 开始
%s: 备份集号
%t: 备份集时间戳
%T: 当前时间的年月日格式 (YYYYMMDD)
%Y: 当前时间中的年, 格式为 YYYY
%u: 是一个由备份集编号和建立时间压缩后组成的 8 字符名称。利用 %u 可以为每个备份集生成一个唯一的名称
%U: 默认是 %u_%p_%c 的简写形式, 利用它可以为每一个备份片段 (即磁盘文件) 生成一个唯一名称
这是最常用的命名方式, 执行不同备份操作时, 生成的规则也不同:
生成备份片段时, %U=%u_%p_%c;
生成数据文件镜像复制时,%U=data-D-%d_id-%I_TS-%N_FNO-%f_%u
生成归档文件镜像复制时,%U=arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u
生成控制文件镜像复制时,%U=cf-D_%d-id-%I_%u


22. set 配置

22-1. run 块外的常用设置
# 控制时候回显执行的命令行
set echo off;
set echo on;

# 可以通过查询 v$session 来查看备份执行的状态
set command id to 'demo';

# nomount 下执行
set dbif n;

22-2. run 内的常用设置

# 指定数据文件新路径
run {
allocate channel c1 device type disk;
set newname for datafile 4 to '/data/users.dbf';
}

# 指定恢复时间点或 scn
run {
allocate channel c1 device type disk;
set until time "to_date('2012-01-01 01:01:01', 'yyyy-mm-dd hh24:mi:ss')";
}

# 指定备份片段的冗余
run {
allocate channel c1 device type disk;
set backup copies 3;
}

# 指定 restore/recover 产生的归档文件的存储路径
# 默认在 log_archive_dest_1 下
run {
allocate channel c1 device type disk;
set archivelog destination to '/arch/';
}

23. 相关动态视图
v$backup_set
v$backup_set_details
v$backup_set_summary
v$backup_piece
v$backup_piece_details
v$backup_corruption
v$session
v$session_longops
v$process

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

下一篇: 重做日志的恢复
请登录后发表评论 登录
全部评论

注册时间:2009-09-18

  • 博文量
    164
  • 访问量
    319954