问题1:修改日志文件(redo log)的位置的方法
目的:將重做日志(redo log)文件從當(dāng)前磁盤位置遷移到新的位置
解決方法:
A:可以停掉數(shù)據(jù)庫的情況
1.關(guān)閉數(shù)據(jù)庫
SQL>shutdown immediate
Databaseclosed.
Databasedismounted.
ORACLEinstance shut down.
2.將重做日志文件拷貝到新的位置上
[oracle@radiusradius]$ mv redo0*.log /ora/newlocation/
[oracle@radiusoradata]$ cd /ora/newlocation/
[oracle@radiusnewlocation]$ ls
redo01.log? redo02.log?redo03.log? redo04.log? redo05.log
3.啟動(dòng)數(shù)據(jù)庫到mount狀態(tài),切記不要打開數(shù)據(jù)庫。
[oracle@radiusnewlocation]$ sqlplus / as sysdba
SQL*Plus:Release 10.2.0.4.0 - Production on Thu Jul 10 14:34:15 2014
Copyright(c) 1982, 2007, Oracle.? All RightsReserved.
Connectedto an idle instance.
SQL>startup mount
ORACLEinstance started.
TotalSystem Global Area? 599785472 bytes
FixedSize????????????????? 2085776 bytes
VariableSize???????????? 205524080 bytes
DatabaseBuffers????????? 385875968 bytes
RedoBuffers??????????????? 6299648 bytes
Databasemounted.
4.重新命名日志成員
SQL>alterdatabase rename?file
'/ora/oradata/radius/redo03.log','/ora/oradata/radius/redo02.log','/ora/oradata/radius/redo01.log','/ora/oradata/radius/redo04.log','/ora/oradata/radius/redo05.log'
to?
'/ora/newlocation/redo03.log','/ora/newlocation/redo02.log','/ora/newlocation/redo01.log','/ora/newlocation/redo04.log','/ora/newlocation/redo05.log';
Databasealtered.
5.打開數(shù)據(jù)庫
SQL>alter database open;
Databasealtered.
6.查看日志文件成員的位置信息
SQL>select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/ora/newlocation/redo03.log
/ora/newlocation/redo02.log
/ora/newlocation/redo01.log
/ora/newlocation/redo04.log
/ora/newlocation/redo05.log
/home/oracle/flash_recovery_area/RADIUS/onlinelog/o1_mf_5_9vw9blxk_.log
/home/oracle/flash_recovery_area/RADIUS/onlinelog/o1_mf_6_9vw9bt19_.log
7rows selected.
?B. ?如果數(shù)據(jù)庫不能停機(jī),就不能夠直接修改重做日志文件的名字,因此需要首先增加日志組,然后刪除不需要的日志組,最終達(dá)到修改重做日志文件位置的目的。
1. 需要修改幾組日志文件,就新增加幾個(gè)日志組
SQL>alter database add logfile group 7 '/ora/oradata/radius/redo07.log' size 50M;
Databasealtered.
SQL>alter database add logfile group 8 '/ora/oradata/radius/redo08.log' size 50M;
Databasealtered.
2. 刪除不在需要的日志組,但是必須要有alter database的系統(tǒng)權(quán)限
在刪除一個(gè)在線日志組之前,應(yīng)該注意以下的限制條件:
2.1 ?每個(gè)實(shí)例至少要有2個(gè)日志組,不需要考慮日志組中的日志成員的數(shù)量(一個(gè)日志組中有1個(gè)或1個(gè)以上的日志成員)
2.2? 只有在日志成員組的狀態(tài)是INACTIVE的狀態(tài)下,才可以對(duì)其進(jìn)行刪除,如果需要?jiǎng)h除當(dāng)前正在使用的日志組,首先需要進(jìn)行一次日志切換,使其變成非當(dāng)前日志組,如果數(shù)據(jù)庫已經(jīng)開啟了歸檔模式,那么在刪除日志組之前確保日志組已經(jīng)完全歸檔完成了,然后在對(duì)其進(jìn)行刪除。
查看日志組的狀態(tài):
日志組:1 2 3 的狀態(tài)是INACTIVE,可以對(duì)其進(jìn)行刪除操作。
對(duì)1 2執(zhí)行刪除操作,刪除這兩個(gè)日志組:
SQL>alter database drop logfile group 1;
Databasealtered.
SQL>alter database drop logfile group 2;
Databasealtered.
3. ?查看日志成員信息
SQL>select group#,archived,status from v$log;
?GROUP# ARC STATUS
------------- ----------------
???????? 3 YES INACTIVE
???????? 4 NO?CURRENT
???????? 5 YES UNUSED
???????? 6 YES UNUSED
???????? 7 YES UNUSED
???????? 8 YES UNUSED
SQL>select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/ora/newlocation/redo03.log
/ora/newlocation/redo04.log
/home/oracle/flash_recovery_area/RADIUS/onlinelog/o1_mf_5_9vw9blxk_.log
/home/oracle/flash_recovery_area/RADIUS/onlinelog/o1_mf_6_9vw9bt19_.log
/ora/oradata/radius/redo07.log
/ora/oradata/radius/redo08.log
4. 通過以上的步驟確認(rèn),在線日志組已經(jīng)成功刪除之后,通過操作系統(tǒng)命令,將刪除的日志組的系統(tǒng)文件進(jìn)行刪除。
[oracle@radiusnewlocation]$ pwd
/ora/newlocation
[oracle@radiusnewlocation]$ ls
redo01.log? redo02.log?redo03.log? redo04.log? redo05.log
[oracle@radiusnewlocation]$ rm -f redo01.logredo02.log redo03.log
[oracle@radiusnewlocation]$ ls
redo04.log? redo05.log
[oracle@radiusnewlocation]$
--END--
?
總結(jié)
以上是生活随笔為你收集整理的问题1:修改日志文件(redo log)的位置的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 几行代码轻松实现百度定位和在地图显示指定
- 下一篇: iOS开发——MRC(手动内存管理)