查看: 3683|回复: 12

rman 中执行delete noprompt obsolete时出现错误!

[复制链接]
论坛徽章:
150
蓝锆石
日期:2011-11-16 22:31:22萤石
日期:2011-11-17 13:05:31祖母绿
日期:2008-06-14 15:23:26海蓝宝石
日期:2011-11-16 22:25:15紫水晶
日期:2011-11-16 22:31:22红宝石
日期:2011-10-09 08:54:30蓝锆石
日期:2009-01-31 15:20:54萤石
日期:2008-12-22 15:22:00祖母绿
日期:2011-11-17 13:13:26海蓝宝石
日期:2008-07-05 14:52:18
跳转到指定楼层
1#
发表于 2007-4-23 12:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手动分配通道出现错误,使用自动通道没有错误,相同的脚本在10g下没有错误,什么原因?这个测试脚本是在9201上!
[php]
RMAN> list backup;


RMAN> crosscheck backupset;

使用通道 ORA_DISK_1

RMAN> backup database format='D:\rman_bak\dmti_full_%U';

启动 backup 于 23-4月 -07
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\DMT\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\DMT\DMT01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\DMT\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\ORADATA\DMT\TEST.DBF
输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\DMT\TEST1.DBF
输入数据文件 fno=00006 name=D:\ORACLE\ORADATA\DMT\DMT02.DBF
通道 ORA_DISK_1: 正在启动段 1 于 23-4月 -07
通道 ORA_DISK_1: 已完成段 1 于 23-4月 -07
段 handle=D:\RMAN_BAK\DMTI_FULL_2NIFSI0T_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:26
完成 backup 于 23-4月 -07

RMAN>

RMAN>

RMAN> run{
2> allocate channel c1 device type disk;
3> allocate channel c2 device type disk;
4> backup database format='D:\rman_bak\dmti_full_%U';
5> report obsolete;
6> delete noprompt obsolete;
7> }

释放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: sid=13 devtype=DISK

分配的通道: c2
通道 c2: sid=14 devtype=DISK

启动 backup 于 23-4月 -07
通道 c1: 正在启动 full 数据文件备份集
通道 c1: 正在指定备份集中的数据文件
输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\DMT\DMT01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\DMT\UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\ORADATA\DMT\TEST.DBF
输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\DMT\TEST1.DBF
通道 c1: 正在启动段 1 于 23-4月 -07
通道 c2: 正在启动 full 数据文件备份集
通道 c2: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\DMT\SYSTEM01.DBF
输入数据文件 fno=00006 name=D:\ORACLE\ORADATA\DMT\DMT02.DBF
通道 c2: 正在启动段 1 于 23-4月 -07
通道 c1: 已完成段 1 于 23-4月 -07
段 handle=D:\RMAN_BAK\DMTI_FULL_2OIFSI48_1_1 comment=NONE
通道 c1: 备份集已完成, 经过时间:00:00:12
通道 c2: 已完成段 1 于 23-4月 -07
段 handle=D:\RMAN_BAK\DMTI_FULL_2PIFSI48_1_1 comment=NONE
通道 c2: 备份集已完成, 经过时间:00:00:27
完成 backup 于 23-4月 -07

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
备份集               806    23-4月 -07
备份段       807    23-4月 -07         D:\RMAN_BAK\DMTI_FULL_2NIFSI0T_1_1
控制文件副本     723    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\CON1.BA
K
控制文件副本     725    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\CON2.BA
K
存档日志          732    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\ARC000
21.001
存档日志          729    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00021.001
存档日志          730    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00022.001
存档日志          735    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00023.001
存档日志          803    23-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00024.001

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
删除以下已废弃的备份和副本:
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
备份集               806    23-4月 -07
备份段       807    23-4月 -07         D:\RMAN_BAK\DMTI_FULL_2NIFSI0T_1_1
控制文件副本     723    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\CON1.BA
K
控制文件副本     725    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\CON2.BA
K
存档日志          732    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\ARC000
21.001
存档日志          729    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00021.001
存档日志          730    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00022.001
存档日志          735    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00023.001
存档日志          803    23-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00024.001
释放的通道: c1
释放的通道: c2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of delete command on default channel at 04/23/2007 09:15:16
ORA-19569: 设备未配置给此会话

RMAN> run{
2> backup database format='D:\rman_bak\dmti_full_%U';
3> report obsolete;
4> delete noprompt obsolete;
5> }

启动 backup 于 23-4月 -07
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
正在略过数据文件 4; 已经备份 2 次
通道 ORA_DISK_1: 正在启动 full 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=D:\ORACLE\ORADATA\DMT\SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\ORADATA\DMT\DMT01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\ORADATA\DMT\UNDOTBS01.DBF
输入数据文件 fno=00005 name=D:\ORACLE\ORADATA\DMT\TEST1.DBF
输入数据文件 fno=00006 name=D:\ORACLE\ORADATA\DMT\DMT02.DBF
通道 ORA_DISK_1: 正在启动段 1 于 23-4月 -07
通道 ORA_DISK_1: 已完成段 1 于 23-4月 -07
段 handle=D:\RMAN_BAK\DMTI_FULL_2QIFSIAO_1_1 comment=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:26
完成 backup 于 23-4月 -07

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
备份集               806    23-4月 -07
备份段       807    23-4月 -07         D:\RMAN_BAK\DMTI_FULL_2NIFSI0T_1_1
备份集               818    23-4月 -07
备份段       820    23-4月 -07         D:\RMAN_BAK\DMTI_FULL_2PIFSI48_1_1
控制文件副本     723    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\CON1.BA
K
控制文件副本     725    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\CON2.BA
K
存档日志          732    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\ARC000
21.001
存档日志          729    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00021.001
存档日志          730    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00022.001
存档日志          735    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00023.001
存档日志          803    23-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00024.001

RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
使用通道 ORA_DISK_1
删除以下已废弃的备份和副本:
类型                 关键字 完成时间           文件名/句柄
-------------------- ------ ------------------ --------------------
备份集               806    23-4月 -07
备份段       807    23-4月 -07         D:\RMAN_BAK\DMTI_FULL_2NIFSI0T_1_1
备份集               818    23-4月 -07
备份段       820    23-4月 -07         D:\RMAN_BAK\DMTI_FULL_2PIFSI48_1_1
控制文件副本     723    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\CON1.BA
K
控制文件副本     725    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\CON2.BA
K
存档日志          732    22-4月 -07         D:\ORACLE\ORADATA\DMT\DF_COPY\ARC000
21.001
存档日志          729    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00021.001
存档日志          730    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00022.001
存档日志          735    22-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00023.001
存档日志          803    23-4月 -07         D:\ORACLE\ORA92\RDBMS\ARC00024.001
已删除备份段
备份段 handle=D:\RMAN_BAK\DMTI_FULL_2NIFSI0T_1_1 recid=176 stamp=620644382
已删除备份段
备份段 handle=D:\RMAN_BAK\DMTI_FULL_2PIFSI48_1_1 recid=178 stamp=620644494
已删除控制文件的副本
控制文件副本 filename=D:\ORACLE\ORADATA\DMT\DF_COPY\CON1.BAK recid=6 stamp=62058
2921
已删除控制文件的副本
控制文件副本 filename=D:\ORACLE\ORADATA\DMT\DF_COPY\CON2.BAK recid=7 stamp=62058
2979
已删除的存档日志
存档日志文件名 =D:\ORACLE\ORADATA\DMT\DF_COPY\ARC00021.001 记录 ID=35 时间戳 =62
0583160
已删除的存档日志
存档日志文件名 =D:\ORACLE\ORA92\RDBMS\ARC00021.001 记录 ID=33 时间戳 =620583094
已删除的存档日志
存档日志文件名 =D:\ORACLE\ORA92\RDBMS\ARC00022.001 记录 ID=34 时间戳 =620583097
已删除的存档日志
存档日志文件名 =D:\ORACLE\ORA92\RDBMS\ARC00023.001 记录 ID=36 时间戳 =620583506
已删除的存档日志
存档日志文件名 =D:\ORACLE\ORA92\RDBMS\ARC00024.001 记录 ID=37 时间戳 =620643518
9 对象已删除


RMAN>
/
[/php]
论坛徽章:
17
授权会员
日期:2005-10-30 17:05:33优秀写手
日期:2014-03-20 06:00:352013年新春福章
日期:2013-02-25 14:51:242012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:412011新春纪念徽章
日期:2011-02-18 11:43:352011新春纪念徽章
日期:2011-01-04 10:38:442010新春纪念徽章
日期:2010-03-01 11:05:00生肖徽章2007版:马
日期:2009-11-03 13:55:02祖国60周年纪念徽章
日期:2009-10-09 08:28:00
2#
发表于 2007-4-23 13:13 | 只看该作者
$ORACLE_HOME/bin/rman target / << EOF

crosscheck backup ;
crosscheck  archivelog all ;
delete noprompt obsolete ;
delete expired backup;
exit ;
EOF


我的不存在你这个问题,我是分开写的。
你试试看

使用道具 举报

回复
论坛徽章:
150
蓝锆石
日期:2011-11-16 22:31:22萤石
日期:2011-11-17 13:05:31祖母绿
日期:2008-06-14 15:23:26海蓝宝石
日期:2011-11-16 22:25:15紫水晶
日期:2011-11-16 22:31:22红宝石
日期:2011-10-09 08:54:30蓝锆石
日期:2009-01-31 15:20:54萤石
日期:2008-12-22 15:22:00祖母绿
日期:2011-11-17 13:13:26海蓝宝石
日期:2008-07-05 14:52:18
3#
 楼主| 发表于 2007-4-23 13:19 | 只看该作者
最初由 orablue 发布
[B]$ORACLE_HOME/bin/rman target / << EOF

crosscheck backup ;
crosscheck  archivelog all ;
delete noprompt obsolete ;
delete expired backup;
exit ;
EOF


我的不存在你这个问题,我是分开写的。
你试试看 [/B]


windows环境

你写在一起测试下我的那个出错了的脚本看看有没有问题,使用
手动分配通道

使用道具 举报

回复
论坛徽章:
24
授权会员
日期:2006-05-06 22:39:09技术图书徽章
日期:2013-12-11 10:12:13技术图书徽章
日期:2013-12-11 10:12:48路虎
日期:2014-01-26 14:35:49技术图书徽章
日期:2014-07-30 14:36:51海蓝宝石
日期:2014-08-06 14:09:322014年世界杯参赛球队: 俄罗斯
日期:2014-08-22 13:57:242014系统架构师大会纪念章
日期:2014-09-11 13:40:07itpub13周年纪念徽章
日期:2014-09-28 10:55:55优秀写手
日期:2014-09-29 06:00:12
4#
发表于 2007-4-23 14:24 | 只看该作者
出现同样的问题, 我自己暂时的解决方法是:

run{
2> allocate channel c1 device type disk;
3> allocate channel c2 device type disk;
4> backup database format='D:\rman_bakdmti_full_%U';
5> report obsolete;
6> }
7> delete noprompt obsolete;

放到脚本执行, 就没问题

使用道具 举报

回复
论坛徽章:
59
狮子座
日期:2016-03-26 13:35:402013年新春福章
日期:2013-02-25 14:51:24双黄蛋
日期:2013-02-25 11:06:15ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20灰彻蛋
日期:2012-04-25 13:19:33紫蛋头
日期:2012-03-14 11:16:09最佳人气徽章
日期:2012-03-13 17:39:18玉石琵琶
日期:2012-02-21 15:04:38鲜花蛋
日期:2011-11-30 14:13:01ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
5#
发表于 2007-4-23 14:42 | 只看该作者
delete noprompt obsolete操作要使用maintenance通道,你在run里面没有分配这种channel,所以会报错
如果把delete noprompt obsolete放在run{}的外面则oracle会自动分配所需要通道

使用道具 举报

回复
论坛徽章:
0
6#
发表于 2007-4-23 15:43 | 只看该作者
厉害,佩服!

使用道具 举报

回复
论坛徽章:
0
7#
发表于 2007-4-23 15:43 | 只看该作者
maintenance通道手工怎么分配啊?

使用道具 举报

回复
论坛徽章:
150
蓝锆石
日期:2011-11-16 22:31:22萤石
日期:2011-11-17 13:05:31祖母绿
日期:2008-06-14 15:23:26海蓝宝石
日期:2011-11-16 22:25:15紫水晶
日期:2011-11-16 22:31:22红宝石
日期:2011-10-09 08:54:30蓝锆石
日期:2009-01-31 15:20:54萤石
日期:2008-12-22 15:22:00祖母绿
日期:2011-11-17 13:13:26海蓝宝石
日期:2008-07-05 14:52:18
8#
 楼主| 发表于 2007-4-23 16:30 | 只看该作者
最初由 bluemoon0083 发布
[B]delete noprompt obsolete操作要使用maintenance通道,你在run里面没有分配这种channel,所以会报错
如果把delete noprompt obsolete放在run{}的外面则oracle会自动分配所需要通道 [/B]


多谢,是这样的
在请教下:
维护通道不能写在run里面吗?

使用道具 举报

回复
论坛徽章:
150
蓝锆石
日期:2011-11-16 22:31:22萤石
日期:2011-11-17 13:05:31祖母绿
日期:2008-06-14 15:23:26海蓝宝石
日期:2011-11-16 22:25:15紫水晶
日期:2011-11-16 22:31:22红宝石
日期:2011-10-09 08:54:30蓝锆石
日期:2009-01-31 15:20:54萤石
日期:2008-12-22 15:22:00祖母绿
日期:2011-11-17 13:13:26海蓝宝石
日期:2008-07-05 14:52:18
9#
 楼主| 发表于 2007-4-23 16:34 | 只看该作者
1 分配完维护通道之后如何查看?show all看不出来?
2 run中不能分配维护通道?
[php]RMAN> show all;

RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\ORA92\DATABASE\SNCFDMTI.ORA';
# default

RMAN> allocate channel for maintenance device type disk;

分配的通道: ORA_MAINT_DISK_1
通道 ORA_MAINT_DISK_1: sid=13 devtype=DISK

RMAN> show all;

RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\ORA92\DATABASE\SNCFDMTI.ORA';
# default

RMAN> run {
2> allocate channel for maintenance device type disk;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01005: syntax error: found "for": expecting one of: "channel_id, double-quo
ted-string, identifier, single-quoted-string"
RMAN-01007: at line 2 column 18 file: standard input

RMAN> release channel;

释放的通道: ORA_MAINT_DISK_1

RMAN>
/
[/php]

使用道具 举报

回复
论坛徽章:
59
狮子座
日期:2016-03-26 13:35:402013年新春福章
日期:2013-02-25 14:51:24双黄蛋
日期:2013-02-25 11:06:15ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20灰彻蛋
日期:2012-04-25 13:19:33紫蛋头
日期:2012-03-14 11:16:09最佳人气徽章
日期:2012-03-13 17:39:18玉石琵琶
日期:2012-02-21 15:04:38鲜花蛋
日期:2011-11-30 14:13:01ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15
10#
发表于 2007-4-23 17:31 | 只看该作者
最初由 warehouse 发布
[B]

多谢,是这样的
在请教下:
维护通道不能写在run里面吗? [/B]

看来是这样的

To specify the device type to use for an operation explicitly, use the ALLOCATE
CHANNEL command, which must be used within a RUN block, or ALLOCATE
CHANNEL FOR MAINTENANCE, which must be executed at the RMAN prompt.

我觉得还是不要把backup和delete,crosscheck等操作放在一个run里面
至于10G可以这样用,估计是10G的新特性?

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表