• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

RMAN中时间格式问题

mysql 搞代码 4年前 (2022-01-09) 34次浏览 已收录 0个评论

利用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下虽然没有报错,但这本文来源gao@!dai!ma.com搞$$代^@码网*是不正确的!
正确的做法是:
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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:RMAN中时间格式问题
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址