Oracle数据库迁移所有文件到新挂载磁盘路径
作者:福娃筱欢
根据实际须要,有时安装了oracle以后须要扩展磁盘空间时,每每是新增一个单独的文件路径并挂载存储,这时便须要总体迁移数据库文件数据库,本文就来介绍一下Oracle数据库迁移所有文件到新挂载磁盘路径
主要步骤:
1、停掉服务,
2、关闭数据库shutdown immediate
3、移动数据文件到新的位置。
4、启动到mount状态,如果也移动了ctl,需要启动到nomount下,生成参数文件。
5、alter database rename '文件名' to '新位置',逐个文件处理。
6、startup。(alter database open)
迁移前准备
查看当前数据库所有文件信息
查看当前数据库所有文件信息,含数据文件、日志文件、临时文件、控制文件、参数文件
export ORACLE_SID=topicisxc sqlplus / as sysdba SQL> startup ORACLE 例程已经启动。 Total System Global Area 4977278976 bytes Fixed Size 2261768 bytes Variable Size 1610616056 bytes Database Buffers 3355443200 bytes Redo Buffers 8957952 bytes 数据库装载完毕。 数据库已经打开。 SQL> archive log lis;t SP2-0718: 非法的 ARCHIVE LOG 选项 SQL> archive log list; 数据库日志模式 非存档模式 自动存档 禁用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 当前日志序列 3 SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /data/oradata/topicisxc/system01.dbf /data/oradata/topicisxc/sysaux01.dbf /data/oradata/topicisxc/undotbs01.dbf /data/oradata/topicisxc/users01.dbf SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /data/oradata/topicisxc/temp01.dbf SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /data/oradata/topicisxc/redo03.log /data/oradata/topicisxc/redo02.log /data/oradata/topicisxc/redo01.log SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- /data/oradata/topicisxc/control01.ctl /opt/u01/app/oracle/fast_recovery_area/topicisxc/control02.ctl SQL> show parameter pfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string /opt/u01/app/oracle/product/11 .2.0/db_1/dbs/spfiletopicisxc. ora
迁移步骤
创建pfile文件
export ORACLE_SID=topicisxc sqlplus / as sysdba SQL> create pfile='/home/oracle/pfiletopicisxc0104.ora' from spfile; File created.
关闭数据库
export ORACLE_SID=topicisxc sqlplus / as sysdba SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> exit --查看进程 [oracle@cxdb gs]# ps -ef | grep ora_pmon root 12919 12862 0 17:43 pts/7 00:00:00 grep --color=auto ora_pmon [oracle@cxdb gs]#
移动数据库文件到新路径
--创建目录 [root@cxdb ~]# cd /gs [root@cxdb gs]# ls -l 总用量 20 drwxr-xr-x. 2 root root 4096 1月 4 15:55 back drwx------ 2 root root 16384 1月 3 20:24 lost+found [root@cxdb gs]# mkdir -p oradatanew [root@cxdb gs]# chown -R oracle:oinstall oradatanew/ [root@cxdb gs]# ls -ld oradatanew/ drwxr-xr-x 2 oracle oinstall 4096 1月 4 17:41 oradatanew/ [root@cxdb gs]# chmod -R 755 oradatanew/ --移动数据库文件到新路径 尽可能用oracle用户移动 [oracle@cxdb data]$ cd oradata/ [oracle@cxdb oradata]$ ls -l total 0 drwxr-x---. 2 oracle oinstall 179 Jan 3 19:43 topicisxc [oracle@cxdb oradata]$ cp -r topicisxc /gs/oradatanew/ [oracle@cxdb oradata]$ ls -l /gs/oradatanew/ total 4 drwxr-x--- 2 oracle oinstall 4096 Jan 4 17:43 topicisxc [oracle@cxdb oradata]$ ls -l /gs/oradatanew/topicisxc/ total 2919424 -rw-r----- 1 oracle oinstall 9748480 Jan 4 17:43 control01.ctl -rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo01.log -rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo02.log -rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo03.log -rw-r----- 1 oracle oinstall 545267712 Jan 4 17:43 sysaux01.dbf -rw-r----- 1 oracle oinstall 775954432 Jan 4 17:43 system01.dbf -rw-r----- 1 oracle oinstall 30416896 Jan 4 17:43 temp01.dbf -rw-r----- 1 oracle oinstall 78651392 Jan 4 17:43 undotbs01.dbf -rw-r----- 1 oracle oinstall 5251072 Jan 4 17:43 users01.dbf --移动控制文件到新路径 尽可能用oracle用户移动 [oracle@cxdb ~]$ cp /opt/u01/app/oracle/fast_recovery_area/topicisxc/control02.ctl /gs/oradatanew/topicisxc/control02.ctl --复制完成后查看 [oracle@cxdb ~]$ ls -l /gs/oradatanew/topicisxc total 2928944 -rw-r----- 1 oracle oinstall 9748480 Jan 4 17:43 control01.ctl -rw-r----- 1 oracle oinstall 9748480 Jan 4 17:51 control02.ctl -rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo01.log -rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo02.log -rw-r----- 1 oracle oinstall 524288512 Jan 4 17:43 redo03.log -rw-r----- 1 oracle oinstall 545267712 Jan 4 17:43 sysaux01.dbf -rw-r----- 1 oracle oinstall 775954432 Jan 4 17:43 system01.dbf -rw-r----- 1 oracle oinstall 30416896 Jan 4 17:43 temp01.dbf -rw-r----- 1 oracle oinstall 78651392 Jan 4 17:43 undotbs01.dbf -rw-r----- 1 oracle oinstall 5251072 Jan 4 17:43 users01.dbf
更改生成的参数文件中的控制文件路径
--更改pfile中的控制文件路径 [oracle@cxdb oradata]$ cd [oracle@cxdb ~]$ ls -l total 4 -rw-r--r-- 1 oracle oinstall 1188 Jan 4 17:38 pfiletopicisxc0104.ora [oracle@cxdb ~]$ vi pfiletopicisxc0104.ora topicisxc.__db_cache_size=4110417920 topicisxc.__java_pool_size=33554432 topicisxc.__large_pool_size=50331648 topicisxc.__oracle_base='/opt/u01/app/oracle/'#ORACLE_BASE set from environment topicisxc.__pga_aggregate_target=1677721600 topicisxc.__sga_target=4999610368 topicisxc.__shared_io_pool_size=0 topicisxc.__shared_pool_size=771751936 topicisxc.__streams_pool_size=0 *.audit_file_dest='/opt/u01/app/oracle/admin/topicisxc/adump' *.audit_trail='db' *.compatible='11.2.0.4.0' *.control_files='/gs/oradatanew/topicisxc/control01.ctl','/gs/oradatanew/topicisxc/control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='topicisx' *.db_recovery_file_dest='/opt/u01/app/oracle/fast_recovery_area' *.db_recovery_file_dest_size=214748364800 *.db_unique_name='topicisxc' *.diagnostic_dest='/opt/u01/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=topicisxcXDB)' *.filesystemio_options='setall' *.job_queue_processes=1000 *.nls_language='SIMPLIFIED CHINESE' *.nls_territory='CHINA' *.open_cursors=1000 *.pga_aggregate_target=1665138688 *.processes=2000 *.remote_login_passwordfile='EXCLUSIVE' *.sessions=2450 *.sga_target=4995416064 *.undo_tablespace='UNDOTBS1'
更改控制文件路径 *.control_files='/gs/oradatanew/topicisxc/control01.ctl','/gs/oradatanew/topicisxc/control02.ctl'
用改好的pfile文件启动数据库到mount状态
--用改好的pfile文件启动数据库到nomount状态 export ORACLE_SID=topicisxc sqlplus / as sysdba SQL> startup pfile='/home/oracle/pfiletopicisxc0104.ora' nomount ORACLE instance started. Total System Global Area 1778384896 bytes Fixed Size 8621712 bytes Variable Size 687866224 bytes Database Buffers 1073741824 bytes Redo Buffers 8155136 bytes --启动数据库到mount状态 SQL> alter database mount; Database altered.
重定向数据库控制文件中的所有数据文件和日志文件路径
export ORACLE_SID=topicisxc sqlplus / as sysdba SQL> alter database rename file '/data/oradata/topicisxc/system01.dbf' to '/gs/oradatanew/topicisxc/system01.dbf'; 数据库已更改。 SQL> alter database rename file '/data/oradata/topicisxc/sysaux01.dbf' to '/gs/oradatanew/topicisxc/sysaux01.dbf'; 数据库已更改。 SQL> alter database rename file '/data/oradata/topicisxc/undotbs01.dbf' to '/gs/oradatanew/topicisxc/undotbs01.dbf'; 数据库已更改。 SQL> alter database rename file '/data/oradata/topicisxc/users01.dbf' to '/gs/oradatanew/topicisxc/users01.dbf'; 数据库已更改。 SQL> alter database rename file '/data/oradata/topicisxc/temp01.dbf' to '/gs/oradatanew/topicisxc/temp01.dbf'; 数据库已更改。 SQL> alter database rename file '/data/oradata/topicisxc/redo01.log' to '/gs/oradatanew/topicisxc/redo01.log'; 数据库已更改。 SQL> alter database rename file '/data/oradata/topicisxc/redo02.log' to '/gs/oradatanew/topicisxc/redo02.log'; 数据库已更改。 SQL> alter database rename file '/data/oradata/topicisxc/redo03.log' to '/gs/oradatanew/topicisxc/redo03.log'; 数据库已更改。
打开数据库
export ORACLE_SID=topicisxc sqlplus / as sysdba SQL> alter database open; 数据库已更改。
检查各文件路径
export ORACLE_SID=topicisxc sqlplus / as sysdba SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- /gs/oradatanew/topicisxc/system01.dbf /gs/oradatanew/topicisxc/sysaux01.dbf /gs/oradatanew/topicisxc/undotbs01.dbf /gs/oradatanew/topicisxc/users01.dbf SQL> select name from v$tempfile; NAME -------------------------------------------------------------------------------- /gs/oradatanew/topicisxc/temp01.dbf SQL> select member from v$logfile; MEMBER -------------------------------------------------------------------------------- /gs/oradatanew/topicisxc/redo03.log /gs/oradatanew/topicisxc/redo02.log /gs/oradatanew/topicisxc/redo01.log SQL> select name from v$controlfile; NAME -------------------------------------------------------------------------------- /gs/oradatanew/topicisxc/control01.ctl /gs/oradatanew/topicisxc/control02.ctl SQL> show parameter pfile NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ spfile string
创建spfile
export ORACLE_SID=topicisxc sqlplus / as sysdba SQL> create spfile from pfile='/home/oracle/pfiletopicisxc0104.ora'; 文件已创建。
重启数据库
export ORACLE_SID=topicisxc sqlplus / as sysdba --关闭数据库 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程已经关闭。 --启动数据库 SQL> startup ORACLE 例程已经启动。 Total System Global Area 4977278976 bytes Fixed Size 2261768 bytes Variable Size 1610616056 bytes Database Buffers 3355443200 bytes Redo Buffers 8957952 bytes 数据库装载完毕。 数据库已经打开。
清理原文件(可选)
如果磁盘空间足够,可省略该步骤。
--删除原控制文件 [root@cxdb data]# cd /opt/u01/app/oracle/fast_recovery_area/topicisxc/ [root@cxdb topicisxc]# ls -l 总用量 9520 -rw-r-----. 1 oracle oinstall 9748480 1月 4 17:38 control02.ctl [root@cxdb topicisxc]# rm -f control02.ctl --删除原数据文件 临时文件 控制文件 日志文件 [root@cxdb ~]# cd /data/ [root@cxdb data]# ls -l 总用量 0 drwxrwxrwx. 3 root root 23 1月 3 19:36 oradata [root@cxdb data]# ls -l oradata/ 总用量 0 drwxr-x---. 2 oracle oinstall 179 1月 3 19:43 topicisxc [root@cxdb data]# ls -l 总用量 0 drwxrwxrwx. 3 root root 23 1月 3 19:36 oradata [root@cxdb data]# ls -l oradata/topicisxc/ 总用量 2919404 -rw-r-----. 1 oracle oinstall 9748480 1月 4 17:38 control01.ctl -rw-r-----. 1 oracle oinstall 524288512 1月 4 17:32 redo01.log -rw-r-----. 1 oracle oinstall 524288512 1月 4 17:32 redo02.log -rw-r-----. 1 oracle oinstall 524288512 1月 4 17:38 redo03.log -rw-r-----. 1 oracle oinstall 545267712 1月 4 17:38 sysaux01.dbf -rw-r-----. 1 oracle oinstall 775954432 1月 4 17:38 system01.dbf -rw-r-----. 1 oracle oinstall 30416896 1月 3 22:00 temp01.dbf -rw-r-----. 1 oracle oinstall 78651392 1月 4 17:38 undotbs01.dbf -rw-r-----. 1 oracle oinstall 5251072 1月 4 17:38 users01.dbf [root@cxdb data]# rm -rf oradata/
参考链接:Oracle数据库迁移数据文件到新路径_oracle数据文件迁移到其他目录-CSDN博客
到此这篇关于Oracle数据库迁移所有文件到新挂载磁盘路径的文章就介绍到这了,更多相关Oracle迁移到新挂载磁盘内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!