删除日志组
如果想要删除DB中的某个日志组,比如下面的配置
SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
--------- --- ----------------
1 YES ACTIVE
2 NO CURRENT
3 YES INACTIVE
4 YES INACTIVE
可以用这个命令来删除
ALTER DATABASE DROP LOGFILE GROUP 3;
删除日志成员
如果某个日志组有多个成员,如下所示:
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
C:\ORACLE\ORADATA\ORA10G\ONLINELOG\O1_MF_1_6Y993Y41_.LOG
C:\ORACLE\FLASH_RECOVERY_AREA\ORA10G\ONLINELOG\O1_MF_1_6Y993YBB_.LOG
C:\ORACLE\ORADATA\ORA10G\ONLINELOG\O1_MF_2_6Y993YGP_.LOG
C:\ORACLE\FLASH_RECOVERY_AREA\ORA10G\ONLINELOG\O1_MF_2_6Y993YLR_.LOG
C:\ORACLE\ORADATA\ORA10G\ONLINELOG\O1_MF_3_6Y993YRD_.LOG
C:\ORACLE\FLASH_RECOVERY_AREA\ORA10G\ONLINELOG\O1_MF_3_6Y993YX3_.LOG
可以用这个命令来删除某个成员
ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';
而如果某个成员属于活跃组(active),那么先要做一次日志切换:
ALTER SYSTEM SWITCH LOGFILE;
移动临时文件
查看文件状态
SQL> SELECT v.file#, t.file_name, v.status
2 FROM dba_temp_files t, v$tempfile v
3 WHERE t.file_id = v.file#;
FILE# FILE_NAME STATUS
---------- ------------------------- -------
1 /u01/temp01.dbf ONLINE
2 /u02/temp02.dbf ONLINE
3 /u02/temp03.dbf ONLINE
更改为OFFLINE
SQL> ALTER DATABASE TEMPFILE '/u01/temp01.dbf' OFFLINE;
复制文件到新的位置
SQL> !cp -p /u01/temp01.dbf /u02/temp01.dbf
修改临时文件配置
SQL> ALTER DATABASE RENAME FILE '/u01/temp01.dbf' TO '/u02/temp01.dbf';
改为ONLINE
SQL> ALTER DATABASE TEMPFILE '/u02/temp01.dbf' ONLINE;
删除旧文件
SQL> !rm -rf /u01/temp01.dbf