您可以使用操作系统命令重定位重做日志,然后使用ALTER DATABASE语句使数据库知道其新名称(位置)。此过程是必要的,例如,如果要删除当前用于某些重做日志文件的磁盘,或者数据文件和多个重做日志文件存储在同一磁盘上并且应该分开以减少争用。
要重命名重做日志成员,您必须具有ALTER DATABASE系统特权。此外,您可能还需要操作系统权限才能将文件复制到所需的位置以及打开和备份数据库的权限。
在重新定位重做日志或对数据库进行任何其他结构更改之前,请在执行操作时遇到问题时完全备份数据库。作为预防措施,在重命名或重定位一组重做日志文件后,立即备份数据库控制文件。
使用以下步骤重定位重做日志。用于说明这些步骤的示例假定:
- 日志文件位于两个磁盘上:diska和diskb。
- 重做日志是双工的:一个组由成员/diska/logs/log1a.rdo和/diskb/logs/log1b.rdo组成,第二个组由成员/diska/logs/log2a.rdo和/ diskb /logs/ log2b.rdo。
- 位于diska上的重做日志文件必须重定位到diskc。新文件名将反映新位置:/diskc/logs/log1c.rdo和/diskc/logs/log2c.rdo。
重命名重做日志成员的步骤
- 关闭数据库
SHUTDOWN
- 将重做日志文件复制到新位置
必须使用相应的操作系统命令复制操作系统文件,例如重做日志成员。有关复制文件的详细信息,请参阅操作系统特定的文档。您可以执行操作系统命令来复制文件(或执行其他操作系统命令),而无需使用HOST命令退出SQL * Plus。某些操作系统允许您使用字符代替HOST一词。例如,您可以在UNIX中使用感叹号(!)。
以下示例使用操作系统命令(UNIX)将重做日志成员移动到新位置:
mv /diska/logs/log1a.rdo /diskc/logs/log1c.rdo mv /diska/logs/log2a.rdo /diskc/logs/log2c.rdo
- 启动数据库,mount,但不要打开它。
CONNECT / as SYSDBA STARTUP MOUNT
- 重命名重做日志成员。
使用带有RENAME FILE子句的ALTER DATABASE语句重命名数据库重做日志文件。
ALTER DATABASE RENAME FILE '/diska/logs/log1a.rdo', '/diska/logs/log2a.rdo' TO '/diskc/logs/log1c.rdo', '/diskc/logs/log2c.rdo';
- 打开数据库以进行正常操作。
打开数据库时,重做日志更改将生效
ALTER DATABASE OPEN;
参考资料
https://docs.oracle.com/cd/E11882_01/server.112/e25494/onlineredo.htm#ADMIN11321