将数据文件,控制文件,日志文件分别放在不同的目录下,且数据库正常启动

本文详细指导如何定位并转移Oracle数据库的数据文件、控制文件和日志文件位置,包括创建新目录、修改文件路径及注意事项,如控制文件多路复用和文件权限设置。
摘要由CSDN通过智能技术生成

目录

一、定位数据文件、控制文件、日志文件的位置

1.以管理员身份登录数据库

2.查找数据文件位置

3.查找控制文件位置

4.查找日志文件位置 

二、创建其他目录用来放置数据文件,控制文件和日志文件

三、转移位置

1、修改控制文件位置(这里也实现了控制文件多路复用)

2、修改日志文件位置(这里也实现了日志文件多路复用)

3、修改数据文件位置


一、定位数据文件、控制文件、日志文件的位置

注意:后序需要用到这些文件的位置,可以在查询完毕之后先截图保存

1.以管理员身份登录数据库

sqlplus / as sysdba

2.查找数据文件位置

SELECT name FROM v$datafile;

3.查找控制文件位置

SELECT name FROM v$controlfile;

4.查找日志文件位置 

select member from V$logfile;

二、创建其他目录用来放置数据文件,控制文件和日志文件

这里我们选择这些文件的上一级目录作为目录文件,可以自由选择位置

mkdir -p /u01/app/oracle/oradata/data
mkdir -p /u01/app/oracle/oradata/ctl
mkdir -p /u01/app/oracle/oradata/log

成功创建

chmod -R 775 /u01/app/oracle/oradata/data
chmod -R 775 /u01/app/oracle/oradata/ctl
chmod -R 775 /u01/app/oracle/oradata/log
chown -R oracle:oinstall /u01/app/oracle/oradata/data
chown -R oracle:oinstall /u01/app/oracle/oradata/ctl
chown -R oracle:oinstall /u01/app/oracle/oradata/log

授权,保证不在权限方面出问题 

三、转移位置

1、修改控制文件位置(这里也实现了控制文件多路复用)

关闭数据库

 shutdown immediate

根据我们第一步找到的控制文件的位置去寻找控制文件(这里我们只移动控制文件1做个演示,如果你想全移动也可以)

cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/oradata/ctl/control01.ctl

现在我们去查看文件是否转移成功

cd /u01/app/oracle/oradata/ctl

我们可以看到已经移动成功了

然后登录数据库

sqlplus / as sysdba

然后启动到mount下:

这里上边如果使用的是mv移动控制文件会报错,报错的原因是spfile中控制文件配置的其中一个找不到了(因为我们把他们移动了),但是我们还有另一个控制文件可以使用,所以没有什么影响的,直接执行接来下的命令就可以了。

如果上边使用的是cp拷贝控制文件不会报错,但是在全部执行完毕之后需要自己去手动删除原来的控制文件,否则他会一直存在。

STARTUP MOUNT;
ALTER SYSTEM SET CONTROL_FILES='' SCOPE=SPFILE;

再次关闭数据库

SHUTDOWN IMMEDIATE;

启动到nomount状态下

STARTUP NOMOUNT;

ALTER SYSTEM SET CONTROL_FILES='/u01/app/oracle/oradata/ctl/control01.ctl', '/u01/app/oracle/fast_recovery_area/orcl/control02.ctl' SCOPE=SPFILE;

进入mount状态 

ALTER DATABASE MOUNT;

 出错了,说明还没有成功生效,退出登录从新进入然后再次启动就可以成功了,如下图

查看control_files路径:

show parameter control_files;

 我们可以看到控制文件路径已经修改成功了。

重启数据库一切正常,说明我们成功啦。 

2、修改日志文件位置(这里也实现了日志文件多路复用)

关闭数据库

 shutdown immediate

将日志文件进行拷贝:

 cp /u01/app/oracle/oradata/orcl/redo03.log /u01/app/oracle/oradata/ctl/redo03.log

以管理员模式登录到数据库

sqlplus / as sysdba

启动到mount下

STARTUP MOUNT;

修改日志文件:

ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/orcl/redo03.log' TO '/u01/app/oracle/oradata/ctl/redo03.log';

启动数据库

ALTER DATABASE OPEN;

查找日志文件位置:

select member from V$logfile;

发现修改完成。

3、修改数据文件位置

关闭数据库

 shutdown immediate

将数据文件进行拷贝(下面数据文件随便选一个拷贝就可以):

我这里选择的是system01.dbf和 undotbs01.dbf(注意不要选择过大的数据文件,否则拷贝时间会很久)

 cp /u01/app/oracle/oradata/orcl/system01.dbf /u01/app/oracle/oradata/data/system01.dbf
 cp /u01/app/oracle/oradata/orcl/undotbs01.dbf /u01/app/oracle/oradata/data/undotbs01.dbf

拷贝完成 

 以管理员模式登录到数据库下

sqlplus / as sysdba

启动到mount模式下

STARTUP MOUNT;

修改数据文件:

ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/orcl/undotbs01.dbf' TO '/u01/app/oracle/oradata/data/undotbs01.dbf';
ALTER DATABASE RENAME FILE '/u01/app/oracle/oradata/orcl/system01.dbf' TO '/u01/app/oracle/oradata/data/system01.dbf';

启动数据库

ALTER DATABASE OPEN;

查找数据文件位置

SELECT name FROM v$datafile;

修改成功。完结撒花

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会编程的喵星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值