我写了以下脚本:
RUN {shutdown immediate
startup mount
SQL 'alter system archive log current';
BACKUP archivelog all format '/opt/pra_data/backup/al_%s_%p_%t';
BACKUP CURRENT CONTROLFILE FORMAT '/opt/ora_data/backup/cntrl_%s_%p_%t';
backup database format '/opt/ora_data/backup/%U';
alter database open;
}
但是运行的时候报错如下,请教一下我这个脚本哪里有问题,谢谢。using target database control file instead of recovery catalog
database dismounted
Oracle instance shut downconnected to target database (not started)
Oracle instance started
database mountedTotal System Global Area 167772160 bytesFixed Size 1266392 bytes
Variable Size 104860968 bytes
Database Buffers 58720256 bytes
Redo Buffers 2924544 bytessql statement: alter system archive log current
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 04/29/2009 14:14:58
RMAN-11003: failure during parse/execution of SQL statement: alter system archive log current
ORA-01109: database not open
RUN {shutdown immediate
startup mount
SQL 'alter system archive log current';
BACKUP archivelog all format '/opt/pra_data/backup/al_%s_%p_%t';
BACKUP CURRENT CONTROLFILE FORMAT '/opt/ora_data/backup/cntrl_%s_%p_%t';
backup database format '/opt/ora_data/backup/%U';
alter database open;
}
但是运行的时候报错如下,请教一下我这个脚本哪里有问题,谢谢。using target database control file instead of recovery catalog
database dismounted
Oracle instance shut downconnected to target database (not started)
Oracle instance started
database mountedTotal System Global Area 167772160 bytesFixed Size 1266392 bytes
Variable Size 104860968 bytes
Database Buffers 58720256 bytes
Redo Buffers 2924544 bytessql statement: alter system archive log current
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of sql command on default channel at 04/29/2009 14:14:58
RMAN-11003: failure during parse/execution of SQL statement: alter system archive log current
ORA-01109: database not open
解决方案 »
- 请教一个时间sql语句
- 关于导入导出数据,涉及表空间的问题
- oracle数据存储过程
- 高手请进!如何做一个软件工具实现两台机器数据的同步备份!!大急!!!
- 求救,马上结贴。oracle过程调用,设置1个in参数1个out参数返回值,为什么调用时错误?OUT值也需要传入吗?
- 一个电脑上能不能同时装SQL Server 和Oracle,而且让它们同时运行?
- ORACLE触发器问题
- 建立job出错
- 有什么工具可以吧SQL2000下底存储过程转到ORACLE下面吗?
- oracle 存储过程 Error: PLS-00103: 出现符号 "GETALLPAYMENTAPPLY"在需要下列之一时: if
- SQL查询语句
- 再问个关于克隆数据库的问题
周日进行增量0备份
backup incremental level=0 database plus archivelog;周3进行增量1备份
backup incremental level=1 database plus archivelog;周5进行增量2备份
backup incremental level=2 database plus archivelog;然后进行循环,循环周期一个简单的计算方法是:
进行优化存储备份时,增量2备份文件大小是增量0的一半。
那依照你的意思就是说,我只需要运行backup database format '/opt/ora_data/backup/%U'; 就吧DB,LOGFILE,DATAFILE全部都备份了么?
RUN {
backup database format '/opt/ora_data/backup/%U';
}
这样么?
还有一个小问题,我想请问一下,我在RMAN中如何查看所有存在的LOGFILE和DATAFILE?
谢谢?
ORA-01109: database not open alter system archive log current
需要数据库在打开的状态下才能成功
看datafile要么在数据库中看,要么在rman中report schema;
看日志文件就只有在数据库中。
当然备份之后你可以用
list看备份文件中的备份内容,那个里面有详细的每个备份文件具体备份数据库的内容,包括备份了哪些日志文件,数据文件
我是不是可以这样理解,我需要写三个自动备份的shall,周日、周三、周五各运行一个脚本。
====================================================================
用 RMAN 的 report 命令RMAN> report schema;
$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append << EOF >> $RMAN_OUT_FILE
RUN {report schema;
shutdown immediate
startup mount
}RUN {backup database;
aler database open;
}
EOF
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/ORCTEST_full%s_%t_%U';
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/ORCTEST_full%s_%t_%U';
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/ORCTEST_full%s_%t_%U';然后我在RUN中写的allocate channel 1 type disk 必须使用我设置好的通道么?还是说可以任意写?
谢谢。
run如果需要自己手工分配通道的话,必须是已经设置好的通道,或者你直接用默认的通道类型。
====================================================================================
Inthirties关注Oracle数据库 优化,安全,备份,恢复,迁移 如果你需要帮助或想和我一起学习的请联系
联系方式QQ:370140387
QQ群: 85837884(注明:数据库)
电子邮件:[email protected]
网站: http://www.inthirties.com
对于RMAN备份我已经有了一定的了解了。
是否是要在SHALL里面写两个RUN,还是说在一个RUN里面写就可以了。
RUN {
ALLOCATE CHANNEL 1 TYPE DISK;
ALLOCATE CHANNEL 2 TYPE DISK;
BACKUP DATABASE;
RELEASE CHANNEL 1;
RELEASE CHANNEL 2;
}
在运行的时候却是报错,我想请教一下,ALLOCATE CHANNEL 1 TYPE DISK;中的1是否必须是我配置中的通道1,或者说可以任意定义呢?
感觉你的规则很多,又要写shell脚本,
建议LZ安装GRID CONTROL把,然后通过网页制定和管理你的备份作业,
我确实已经配置了CHANNEL ,但是还是报错,不知道是何原因。其实我就是想写一个自动全备份脚本,是写在SHELL里面,然后每天定期自动运行,并且可以看到运行的日志,而且在备份前显示LOGFILE和DATAFILE并写入日志。但是我现在就是在ALLOCATE CHANNEL 1 TYPE DISK这里报错了,我就觉得很奇怪,在网上也看过很多资料是这样写的,我就不明白为什么别人的就不报错,而且我还想知道这句语句是什么含义。谢谢。
下面是我的脚本:
rman target sys/qwe123@orc_test << EOF >> test.sh.outRUN {
ALLOCATE CHANNEL 1 TYPE DISK;
ALLOCATE CHANNEL 2 TYPE DISK;
BACKUP DATABASE;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
BACKUP FILESPERSET 3 ARCHIVELOG ALL DELETE INPUT;
RELEASE CHANNEL 1;
RELEASE CHANNEL 2;
}
EOF
下面是我的配置:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/opt/ora_data/backup/ORCTEST_CF_%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 3;
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/ORCTEST_full%s_%t_%U';
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/orctest_full%U.bak';
CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/orc_full_%U.dbf';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/opt/oracle/product/10.2.0/db_1/dbs/snapcf_orctest.f'; # default
下面是报错:
Recovery Manager: Release 10.2.0.4.0 - Production on Thu Apr 30 15:13:38 2009Copyright (c) 1982, 2007, Oracle. All rights reserved.connected to target database: ORC_TEST (DBID=2652864220)RMAN>
RMAN> 2>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "integer": expecting one of: "channel_id, double-quoted-string, equal, identifier, single-quoted-string"
RMAN-01007: at line 3 column 18 file: standard inputRMAN>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "integer": expecting one of: "for"
RMAN-01007: at line 1 column 18 file: standard input。
RMAN>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "integer": expecting one of: ";"
RMAN-01007: at line 1 column 17 file: standard inputRMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found ";": expecting one of: "allocate, alter, backup, beginline, blockrecover, catalog, change, connect, copy, convert, create, crosscheck, configure, duplicate, debug, delete, drop, exit, endinline, flashback, host, {, library, list, mount, open, print, quit, recover, register, release, replace, report, renormalize, reset, restore, resync, rman, run, rpctest, set, setlimit, sql, switch, spool, startup, shutdown, send, show, test, transport, upgrade, unregister, validate"
RMAN-01007: at line 1 column 18 file: standard inputRMAN>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "integer": expecting one of: ";"
RMAN-01007: at line 1 column 17 file: standard inputRMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found ";": expecting one of: "allocate, alter, backup, beginline, blockrecover, catalog, change, connect, copy, convert, create, crosscheck, configure, duplicate, debug, delete, drop, exit, endinline, flashback, host, {, library, list, mount, open, print, quit, recover, register, release, replace, report, renormalize, reset, restore, resync, rman, run, rpctest, set, setlimit, sql, switch, spool, startup, shutdown, send, show, test, transport, upgrade, unregister, validate"
RMAN-01007: at line 1 column 18 file: standard inputRMAN>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "}": expecting one of: "allocate, alter, backup, beginline, blockrecover, catalog, change, connect, copy, convert, create, crosscheck, configure, duplicate, debug, delete, drop, exit, endinline, flashback, host, {, library, list, mount, open, print, quit, recover, register, release, replace, report, renormalize, reset, restore, resync, rman, run, rpctest, set, setlimit, sql, switch, spool, startup, shutdown, send, show, test, transport, upgrade, unregister, validate"
RMAN-01007: at line 1 column 1 file: standard inputRMAN> Recovery Manager complete.
先查询你的channel
show channel; 定义你的channel
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '%U';这里是默认的通道如果要在你的脚本里手工通道,也是通过以上类似语句
ALLOCATE CHANNEL n1 DEVICE TYPE DISK format '%u';你的脚本里写错了
1.掉了device,
2.名字不能为integer
RUN {
ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/ORCTEST_full%s_%t_%U';
ALLOCATE CHANNEL C2 DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/ORCTEST_full%s_%t_%U';
BACKUP DATABASE;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
RELEASE CHANNEL C1;
RELEASE CHANNEL C2;
}现在备份成功,但是我有点疑问:
1.ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/ORCTEST_full%s_%t_%U'是自己指定通道,必须要FORMAT么?我在配置中已经配置好的设置不是没用么?
我的配置:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/opt/ora_data/backup/ORCTEST_CF_%F';
2.这里手工指定的CHANNEL和我配置的CHANNAL 1有关系么,或者说两个根本就没有关系?是否我可以这样理解,假设在RUN中没有ALLOCATE CHANNEL,则直接调用配置中的CHANNEL 1,假设RUN中使用ALLOCATE CHANNEL,则优先使用RUN中的CHANNEL,不摘掉我这样理解对不对。
谢谢。
RUN {
ALLOCATE CHANNEL C1 DEVICE TYPE DISK ;
ALLOCATE CHANNEL C2 DEVICE TYPE DISK ;
BACKUP DATABASE;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
RELEASE CHANNEL C1;
RELEASE CHANNEL C2;
}
错误信息:
Recovery Manager: Release 10.2.0.4.0 - Production on Thu Apr 30 17:08:18 2009Copyright (c) 1982, 2007, Oracle. All rights reserved.connected to target database: ORC_TEST (DBID=2652864220)RMAN>
RMAN> 2> 3> 4> 5> 6> 7> 8>
using target database control file instead of recovery catalog
allocated channel: C1
channel C1: sid=158 devtype=DISKallocated channel: C2
channel C2: sid=132 devtype=DISKStarting backup at 30-APR-09
channel C1: starting full datafile backupset
channel C1: specifying datafile(s) in backupset
input datafile fno=00001 name=/opt/oradata/orc_test/system01.dbf
input datafile fno=00004 name=/opt/oradata/orc_test/users01.dbf
channel C1: starting piece 1 at 30-APR-09
channel C2: starting full datafile backupset
channel C2: specifying datafile(s) in backupset
input datafile fno=00003 name=/opt/oradata/orc_test/sysaux01.dbf
input datafile fno=00002 name=/opt/oradata/orc_test/undotbs01.dbf
channel C2: starting piece 1 at 30-APR-09
RMAN-03009: failure of backup command on C1 channel at 04/30/2009 17:08:27
ORA-19806: cannot make duplex backups in recovery area
continuing other job steps, job failed will not be re-run
released channel: C1
released channel: C2
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command on C2 channel at 04/30/2009 17:08:28
ORA-19806: cannot make duplex backups in recovery areaRMAN> Recovery Manager complete.如果要手工指定CHANNEL则必须是这样的格式ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/opt/ora_data/backup/ORCTEST_full%s_%t_%U'; 是么?
backup filesperset 3 format 。是什么意思?
是备份集的一种方式,你可以google一下,有介绍的。