打开oracle数据库,查看数据文件,控制文件,日志文件存放的地方
sqlplus / as sysdba
#查看数据文件
SELECT name FROM v$datafile;
#查看控制文件
SELECT name FROM v$controlfile;
#查看日志文件
SELECT member FROM v$logfile;
1.备份原来的数据文件、控制文件和日志文件:
(orcl为我数据库的名称,按自己需求更改)
su -
mkdir /目录
cp -R /u01/app/oracle/oradata/orcl /目录/data-backup
cp -R /u01/app/oracle/admin/orcl/orcl/dpdump /目录/control-backup
cp -R /u01/app/oracle/diag/rdbms/orcl/orcl/trace /目录/log-backup
2.数据文件、控制文件和日志文件,创建新的目标文件夹,用于存放数据文并设置正确的权限:
mkdir /u01/app/data
mkdir /u01/app/control
mkdir /u01/app/archive
chmod -R 775 /u01/app/data
chmod -R 775 /u01/app/control
chmod -R 775 /u01/app/archive
chown -R oracle:oinstall /u01/app/data
chown -R oracle:oinstall /u01/app/control
chown -R oracle:oinstall /u01/app/archive
3.将数据文件、控制文件和日志文件分别从原来的文件夹移动到新的目标文件夹:
mv /u01/app/oracle/oradata/orcl/*.dbf /u01/app/data
mv /u01/app/oracle/oradata/orcl/*.ctl /u01/app/controlmv /u01/app/oracle/oradata/orcl/*.log /u01/app/archive
4.更新数据库的配置文件以反映新的文件路径:
su - oracle
cd $ORACLE_HOME/dbs
vi init.ora
control_files = (/u01/app/control/control01.ctl, /u01/app/control/control02.ctl)
db_create_file_dest = /u01/app/data
log_archive_dest_1 = location=/u01/app/archive
在编辑器中找到 CONTROL_FILES
、BACKGROUND_DUMP_DEST
和 USER_DUMP_DEST
参数,并将其更新为新的文件路径。保存并关闭文件。
5.逻辑上修改数据文件、日志文件位置(两个例子)
alter database rename file '/u01/app/oracle/oradata/orcl/example01.dbf' to '/u01//app/data/example01.dbf';
alter database rename file '/u01/app/oracle/oradata/orcl/redo03.log' to '/u01//app/archive/redo03.log';
5.启动数据库,确保数据文件、控制文件和日志文件都能正常访问并进行操作:
su - oracle
sqlplus / as sysdba
SQL> startup
SQL> exit