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

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

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

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

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

sqlplus sys as sysdba

2.查找数据文件位置

SELECT name FROM v$datafile;

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

3.查找控制文件位置

SELECT name FROM v$controlfile;

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

4.查找日志文件位置 

select member from V$logfile;

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

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

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

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

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

成功创建

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

然后我们要找到pfile的位置

切换到dbs目录下

cd  $ORACLE_HOME/dbs/

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

我们可以看到自己的init.ora这个文件

编辑init.ora

vi init.ora

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

我们修改这个控制文件的位置

将这里修改为:

/u01/app/oracle/oradata/ctl/control01.ctl,/u01/app/oracle/fast_recovery_area/orcl/control02.ctl

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

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

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

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

cd /u01/app/oracle/oradata/ctl

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

然后登录数据库

sqlplus / as sysdba

然后启动到mount下。这里可以能报错,不用管

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

再次关闭数据库

SHUTDOWN IMMEDIATE;

启动到nomount状态下

STARTUP NOMOUNT;

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

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

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

进入mount状态 

ALTER DATABASE MOUNT;

将数据文件,控制文件,日志文件分别放在不同的目录下,且数据库正常启动_第11张图片 出错了,说明还没有成功生效,退出登录从新进入然后再次启动就可以成功了,如下图

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

查看control_files路径:

show parameter control_files;

将数据文件,控制文件,日志文件分别放在不同的目录下,且数据库正常启动_第13张图片 我们可以看到控制文件路径已经修改成功了。

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

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

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

关闭数据库

 shutdown immediate

将日志文件进行拷贝:

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

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

启动到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;

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

发现修改完成。

你可能感兴趣的:(数据库运维,数据库,运维,oracle,linux)