ITPub博客

首页 > Linux操作系统 > Linux操作系统 > rman做基于时间的不完全

rman做基于时间的不完全

原创 Linux操作系统 作者:warehouse 时间:2005-07-11 00:00:00 0 删除 编辑

rman做基于时间的不完全
os:red hat as 3
ora:9204
catalog:windowns 2000(所有的操作都在客户端catalog所在的机器上操作)

1、首先在数据库服务器上设置时间格式:
NLS_DATE_FORMAT="YYYY.MM.DD HH24:MI:SS"
export NLS_DATE_FORMAT

C:>rman target sys/system@test catalog rman/rman@rmandb

恢复管理器: 版本9.2.0.1.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

连接到目标数据库: TEST (DBID=1837576790)
连接到恢复目录数据库

RMAN> register database;

注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync

RMAN> list backupset;


RMAN> run{
2> allocate channel c1 type disk ;
3> allocate channel c2 type disk ;
4> backup database format='/dbbak/db_full_%U';
5> release channel c1;
6> release channel c2;
7> }

分配的通道: c1
通道 c1: sid=10 devtype=DISK

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

启动 backup 于 05-2月 -04
通道 c1: 正在启动 full 数据文件备份集
通道 c1: 正在指定备份集中的数据文件
输入数据文件 fno=00002 name=/oradata/test/undotbs01.dbf
输入数据文件 fno=00007 name=/oradata/test/xdb01.dbf
输入数据文件 fno=00006 name=/oradata/test/users01.dbf
输入数据文件 fno=00004 name=/oradata/test/indx01.dbf
输入数据文件 fno=00008 name=/oradata/test/rmantest.dbf
通道 c1: 正在启动段 1 于 05-2月 -05
通道 c2: 正在启动 full 数据文件备份集
通道 c2: 正在指定备份集中的数据文件
在备份集中包含当前的 SPFILE
备份集中包括当前控制文件
输入数据文件 fno=00001 name=/oradata/test/system01.dbf
输入数据文件 fno=00003 name=/oradata/test/drsys01.dbf
输入数据文件 fno=00005 name=/oradata/test/tools01.dbf
通道 c2: 正在启动段 1 于 05-2月 -05
通道 c1: 已完成段 1 于 05-2月 -05
段 handle=/dbbak/db_full_24gbvpl5_1_1 comment=NONE
通道 c1: 备份集已完成, 经过时间:00:01:43
通道 c2: 已完成段 1 于 05-2月 -05
段 handle=/dbbak/db_full_25gbvpl5_1_1 comment=NONE
通道 c2: 备份集已完成, 经过时间:00:01:43
完成 backup 于 05-2月 -04

释放的通道: c1

释放的通道: c2

--在客户端CATALOG所在的机器上(另一个SQLPLUS窗口中)输入测试数据
SQL> connect sys/system@test as sysdba;
已连接。


SQL> select * from test.test;

AA
--------------------
test2
test3
success
test
test1

SQL> set timing on
SQL> set time on
09:15:37 SQL> delete from test.test;

已删除5行。

已用时间: 00: 00: 00.02
09:15:45 SQL> desc test.test;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------

AA VARCHAR2(10)

09:16:12 SQL> insert into test.test values('test');

已创建 1 行。

已用时间: 00: 00: 00.00
09:16:23 SQL> commit;

提交完成。

已用时间: 00: 00: 00.00
09:16:25 SQL>
09:16:43 SQL>
09:16:43 SQL>
09:16:44 SQL>
09:16:44 SQL>
09:16:44 SQL>
09:16:44 SQL> drop table test.test;

表已丢弃。

已用时间: 00: 00: 02.01
09:16:59 SQL>
09:17:00 SQL>
09:17:00 SQL>
09:17:00 SQL>
09:17:00 SQL>
09:17:01 SQL>
09:17:01 SQL>
09:17:01 SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
09:22:30 SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
数据库装载完毕。

RMAN> run{
2> set until time '2005.02.05 09:16:44';
3> restore database;
4> recover database;
5> };

正在执行命令: SET until clause
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of set command at 02/05/2004 09:22:12
ORA-01861: literal does not match format string

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01005: syntax error: found ";": expecting one of: "allocate, alter, backup,
beginline, blockrecover, catalog, change, connect, copy, create, crosscheck, co
nfigure, duplicate, debug, delete, drop, exit, endinline, host, {, library, list
, mount, open, print, quit, recover, register, release, replace, report, renorma
lize, reset, restore, resync, rman, run, rpctest, set, setlimit, sql, spool, sta
rtup, shutdown, send, show, test, upgrade, validate"
RMAN-01007: at line 0 column 2 file: standard input

--修改日期格式

RMAN> sql "alter session set nls_date_format=''yyyy.mm.dd hh24:mi:ss'' ";

sql 语句: alter session set nls_date_format=''yyyy.mm.dd hh24:mi:ss''

RMAN> run{
2> set until time '2005.02.05 09:16:44';
3> restore database;
4> recover database;
5> };

正在执行命令: SET until clause

启动 restore 于 05-2月 -04

分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=10 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到/oradata/test/system01.dbf
正将数据文件00003恢复到/oradata/test/drsys01.dbf
正将数据文件00005恢复到/oradata/test/tools01.dbf
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=/dbbak/db_full_25gbvpl5_1_1 tag=TAG20040205T091300 params=NULL
通道 ORA_DISK_1: 恢复完成
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00002恢复到/oradata/test/undotbs01.dbf
正将数据文件00004恢复到/oradata/test/indx01.dbf
正将数据文件00006恢复到/oradata/test/users01.dbf
正将数据文件00007恢复到/oradata/test/xdb01.dbf
正将数据文件00008恢复到/oradata/test/rmantest.dbf
通道 ORA_DISK_1: 已恢复备份段 1
段 handle=/dbbak/db_full_24gbvpl5_1_1 tag=TAG20040205T091300 params=NULL
通道 ORA_DISK_1: 恢复完成
完成 restore 于 05-2月 -04

启动 recover 于 05-2月 -04
使用通道 ORA_DISK_1

正在开始介质的恢复
完成介质的恢复

完成 recover 于 05-2月 -04

RMAN>

09:22:41 SQL> alter database open resetlogs;

数据库已更改。

已用时间: 00: 00: 05.07
09:27:14 SQL> select *from test.test;
select *from test.test
*
ERROR 位于第 1 行:
ORA-00942: table or view does not exist

已用时间: 00: 00: 00.00
09:27:38 SQL>


这里问题出现了,为什么数据没有恢复过来?
我想是服务器端的时间和客户端的时间不一致造成的
09:53:34 SQL> alter session set nls_date_format='yyyy.mm.dd hh24:mi:ss';

会话已更改。

已用时间: 00: 00: 00.00
09:54:08 SQL> select sysdate from dual;

SYSDATE
-------------------
2005.02.05 08:56:43

已用时间: 00: 00: 00.00
09:54:11 SQL>


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

请登录后发表评论 登录
全部评论

注册时间:2007-12-07

  • 博文量
    717
  • 访问量
    5145594