公司一外厂商的产品把oracle安装在C盘了,D盘上1T的空间用不上,C盘几乎要撑满了,所以计划把数据文件、归档日志、监听日志、告警日志、快速恢复区转移到D盘
- 在D盘建立相应目录
mkdir d:appAdministratororadataorcl 数据文件目录
mkdir d:appAdministratordiag 诊断目录
mkdir d:appAdministratorfast_recovery_area 快速恢复区
mkdir d:apparchlog
注意目录层间用反斜杠
- 快速恢复区、归档日志、告警日志调整(online处理)
sqlplus / as sysdba
Alter system set fast_recovery_file_size=10G;
Alter system set fast_recovery_file_dest=’D:/app/Administrator/fast_recovery_area/’;
Alter system set log_archive_dest_1=’location=d:/app/archlog’;
Alter system set diagnostic_dest=’d:/app/Administrator
- Datafile、tempfile、redo日志迁移
Sqlplus /as sysdba
Select group#,status from v$log;
Alter system switch logfile;
/
/
Shu immediate;
操作系统层面将datafile与tempfile ,redolog拷贝到指定位置d:appAdministratororadataorcl
Startup mount
Select name from v$datafile union select name from v$tempfile;
Select member from v$logfile;
修改控制文件中的文件位置
alter database rename file ‘C:appAdministratororadataorclSYSTEM.DBF’ to ‘d:appAdministratororadataorclSYSTEM.DBF’;
alter database rename file ‘C:appAdministratororadataorcl edo01.log’ to ‘d:appAdministratororadataorcl edo01.dbf’;
......
......
Alter database open;
- 修改监听日志位置
Lsnrctl
Lsnrctl>help
Lsnrctl>show help
Lsnrctl>set log_directory ‘d:appAdministratordiag nslsnr’
会报错,提示TNS-01251,在ADR下不能设置trace/log目录
这是因为:
Oracle11g中引入了ADR特性。
如果listener.ora文件中参数DIAG_ADR_ENABLED_listenername设置为on,则会忽略参数log_directory的设置。 trace文件和log文件被创建在ADR_BASE_listener_name指定的路径下。可以通过参数ADR_BASE_listener_name参数指定的位置作为trace和log文件的存放的base目录。
也可以通过在listener.ora中设置,取消ADR特性,
DIAG_ADR_ENABLED_listener_name=OFF
LOG_DIRECTORY_listener_name = </path/.../>