背景:
数据库安装在PC服务器的本地硬盘上,数据文件也存放在本地,目前增加了存储设备,需要将数据文件拷贝到存储下,将数据文件路径指定目录存储,具体如下:
数据文件现在路径:/opt/oracle/oradata/orcl/
数据文件存储路径:/opt/data/oracle/orcl/
需要拷贝的数据文件件:
dbf,sysaux01.dbf,system01.dbf,temp01.dbf,undotbs01.dbf,users01.dbf
话不多具体看操作
1、挂载存储目录
mount /dev/sda /opt/data
2、建立一个文件夹来存放需要拷贝出来的数据文件,建完之后需要修改文件夹属主及读写权限,如下:
[root@vm-CentOS75-0-139 ~]# mkdir -p /opt/data/oracle/orcl/
[root@vm-CentOS75-0-139 ~]#chown -R oracle:oinstall /opt/data/oracle/orcl/
3、关闭数据库监听
[oracle@vm-CentOS75-0-139 ~]$ lsnrctl stop
4、关掉数据库,并启动数据库到mount状态;
SQL> shutdown immediate;
SQL>startup mount;
5、拷贝数据文件,必须oracle用户,否则权限不对
[oracle@vm-CentOS75-0-139 ~]$ cp /opt/oracle/oradata/orcl/*.dbf /opt/data/oracle/orcl/
耐心等待。。。。。
6、拷贝完之后进入到数据库rename文件,修改改数据文件的路径及名称,实质就是修改controlfile里面的内容:
SQL> alter database rename file '/opt/oracle/oradata/orcl/system01.dbf' to '/opt/data/oracle/system01.dbf';
SQL> alter database rename file '/opt/oracle/oradata/orcl/sysaux01.dbf' to '/opt/data/oracle/sysaux01.dbf';
SQL> alter database rename file '/opt/oracle/oradata/orcl/users01.dbf' to '/opt/data/oracle/users01.dbf';
SQL> alter database rename file '/opt/oracle/oradata/orcl/big01.DBF' to '/opt/data/oracle/big01.DBF';
SQL> alter database rename file '/opt/oracle/oradata/orcl/undotbs01.dbf' to '/opt/data/oracle/undotbs01.dbf';
7、打开数据库并查看数据库状态
SQL> alter database open;
SQL> select file#,ts#,status,name from v$datafile;
1 0 SYSTEM
2 1 online
3 2 online
4 3 online
5 4 online
6 5 online
7 6 online
8 7 online
全部都是online状态就表示修改成功了;
8、查看数据文件所在目录
SQL> select name from v$datafile;
如上数据文件均在存储目录路径下,说明数据文件迁移成功。
9、验证业务
如果业务正常,就可以进行下边的步骤了
10、删掉源文件
这个步骤可以不操作,原来的数据文件现在已经没有什么用
结束,小酒一喝~~~~