Home > Database > Mysql Tutorial > RMAN中时间格式问题

RMAN中时间格式问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 17:16:34
Original
1324 people have browsed it

利用RMAN进行基于时间点的修复,奇怪的是设置了nls_date_format之后,就不能登录RMAN了?现象如下:C:gt;set NLS_DATE_FORMAT=

利用RMAN进行基于时间点的修复,奇怪的是设置了nls_date_format之后,就不能登录RMAN了?
现象如下:

C:>set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'

C:>rman nocatalog target rman/rman@test

Recovery Manager: Release 9.2.0.1.0 - Production

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04005: error from target database: ORA-00604: error occurred at recursive SQL level 1
ORA-02248: invalid option for ALTER SESSION

在未设置NLS_DATE_FORMAT之前, 用rman nocatalog targetrman/rman@test是可以登录的

其实出现问题的原因是没有正确设置nls_date_format,由于受到在sqlplus中设置它的影响,
所以,有时候我们直接C:>set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
实际上在win cmd下虽然没有报错,但这是不正确的!
正确的做法是:
C:>set NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS --注意去掉了什么?
然后再,C:>rman nocatalog targetrman/rman@test
ok,成功!

附:rman until time recover
RMAN>run {
allocate channel c1 type disk;
alloctae channel c2 type disk;
set until time='2007-05-21:15:08:01';
restore database;
recover database;
sql 'alter database open resetlogs';
release channel c1;
release channel c2;
}

附:如何修改nls_date_format
win cmd下修改默认格式:
SQL>select sysdate from dual;

SYSDATE
----------
21-5月- 07

设置nls_date_format方法如下:
1.用alter session来修改
SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; --注意:这里可能会让我们形成思维定势
SQL> select sysdate from dual;

SYSDATE
-------------------
2007-05-21 15:51:26

2.在OS中设置nls_date_format
C:>SET NLS_DATE_FORMAT=yyyy-mm-dd hh24:mi:ss --注意:yyyy-mm-dd hh24:mi:ss不能加引号,但在unix系统中要加

SQL> select sysdate from dual;

SYSDATE
-------------------
2007-05-21 15:51:26

3.在RMAN中修改
RMAN>run { sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";}
格式说明:
[单][单]yyyy-mm-dd hh24:mi:ss[单][单]
sql [双]……[双]

--[单]代表单引号,[双]代表双引号。

4.在RMAN中修改
直接在run中SET UNTIL TIME="TO_DATE('2007-05-21 15:08:01','yyyy-mm-dd hh24:mi:ss')";


5.永久生效
上述两种方法只对当前session有效,如果不想每次都设置,就修改环境变量,增加一个nls_date_format变量,
值为yyyy-mm-dd hh24:mi:ss

linux

Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template