利用RMAN進(jìn)行基于時(shí)間點(diǎn)的修復(fù),奇怪的是設(shè)置了nls_date_format之后,就不能登錄RMAN了?
現(xiàn)象如下:
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
在未設(shè)置NLS_DATE_FORMAT之前, 用rman nocatalog targetrman/rman@test是可以登錄的
其實(shí)出現(xiàn)問(wèn)題的原因是沒(méi)有正確設(shè)置nls_date_format,由于受到在sqlplus中設(shè)置它的影響,
所以,有時(shí)候我們直接C:>set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
實(shí)際上在win cmd下雖然沒(méi)有報(bào)錯(cuò),但這是不正確的!
正確的做法是:
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下修改默認(rèn)格式:
SQL>select sysdate from dual;
SYSDATE
----------
21-5月- 07
設(shè)置nls_date_format方法如下:
1.用alter session來(lái)修改
SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; --注意:這里可能會(huì)讓我們形成思維定勢(shì)
SQL> select sysdate from dual;
SYSDATE
-------------------
2007-05-21 15:51:26
2.在OS中設(shè)置nls_date_format
C:>SET NLS_DATE_FORMAT=yyyy-mm-dd hh24:mi:ss --注意:yyyy-mm-dd hh24:mi:ss不能加引號(hào),但在unix系統(tǒng)中要加
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''";}
格式說(shuō)明:
[單][單]yyyy-mm-dd hh24:mi:ss[單][單]
sql [雙]……[雙]
--[單]代表單引號(hào),[雙]代表雙引號(hào)。
4.在RMAN中修改
直接在run中SET UNTIL TIME="TO_DATE('2007-05-21 15:08:01','yyyy-mm-dd hh24:mi:ss')";
5.永久生效
上述兩種方法只對(duì)當(dāng)前session有效,如果不想每次都設(shè)置,就修改環(huán)境變量,增加一個(gè)nls_date_format變量,
值為yyyy-mm-dd hh24:mi:ss
本文出自:億恩科技【www.riomediacenter.com】
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|