注意
请谨慎操作!!!本文档只为个人学习记录,非专业指导文档,仅供娱乐!!!概不承担任何责任!!!
一、迁移之前的准备工作
1.查看数据文件路径
SQL> select file_name from dba_data_files;
2.查看控制文件路径
SQL> show parameter control;
3.查看日志文件路径
SQL> select member from v$logfile;
二、开始迁移工作
1.新目录更改属组
[root@localhost~]#chown -R oracle:oinstall /datanew
2.登录数据库
[root@localhost~]#sqlplus /nolog
sql>connect / as sysdba
3.创建pfile
#路径为需要迁移的目的路径下
sql> create pfile='/datanew/oracle/pfile.ora' from spfile;
4.编辑创建成功的pfile文件,修改控制文件的位置
vi /datanew/oracle/pfile.ora
找到控制文件并修改迁移后的目的路径
#/datanew/oradata/test/为迁移后的控制文件路径
*.control_files='/datanew/oradata/test/control01.ctl','/datanew/oradata/test/control02.ctl'
5.关闭数据库
SQL> shutdown immediate
6.拷贝数据文件到新目录
[oracle19c@localhost~]$ echo $ORACLE_HOME
/home/oracle/oracle/product/19.3.0/db_1
[oracle19c@localhost~]$ cd /home/
[oracle19c@localhost~]$cp -r oracle/ /datanew/
7.mount方式启动数据库
SQL> startup mount pfile='/datanew/oracle/pfile.ora'
8.批量修改数据文件路径
sql>connect / as sysdba
sql>alter database rename file '/home/test/sysaux01.dbf' to '/datanew/oradata/test/sysaux01.dbf';
sql>alter database rename file '/home/test/sysaux02.dbf' to '/datanew/oradata/test/sysaux02.dbf';
sql>alter database rename file '/home/test/sysaux03.dbf' to '/datanew/oradata/test/sysaux03.dbf';
9.批量修改日志文件路径
sql>alter database rename file '/home/test/redo01.log' to '/datanew/oradata/test/redo01.log';
sql>alter database rename file '/home/test/redo02.log' to '/datanew/oradata/test/redo02.log';
sql>alter database rename file '/home/test/redo03.log' to '/datanew/oradata/test/redo03.log';
10.启动数据库
SQL> alter database open;
#创建spfile
SQL> create spfile from pfile='/datanew/oracle/pfile.ora';
11.按spfile重启数据库
SQL> shutdown immediate;
SQL> startup;
12.测试数据库是否正常。