Oracle数据库迁移所有文件到新挂载磁盘路径

 更新时间:2024年01月05日 08:34:32   作者:福娃筱欢  
根据实际须要,有时安装了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迁移到新挂载磁盘内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Windows10系统中Oracle完全卸载正确步骤

    Windows10系统中Oracle完全卸载正确步骤

    自己刚到公司就是熟悉数据库的安装卸载,所以分享一下学到的,下面这篇文章主要给大家介绍了关于Windows10系统中Oracle完全卸载正确步骤的相关资料,文章通过图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • PLSQL14下载与安装使用教程

    PLSQL14下载与安装使用教程

    PL/SQL Developer 14是allround automations最新推出的一款PL/SQL数据库管理软件,但是是收费的,今天小编给大家带来了PLSQL14下载与安装使用教程,一起看看吧
    2021-09-09
  • 45个非常有用的 Oracle 查询语句小结

    45个非常有用的 Oracle 查询语句小结

    这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询。这些是所有 Oracle 开发者都必备的技能,所以快快收藏吧
    2014-04-04
  • [Oracle] 如何使用触发器实现IP限制用户登录

    [Oracle] 如何使用触发器实现IP限制用户登录

    在Oracle里,不像MySQL那样方便,可以直接在用户上进行IP限制,Oracle要实现用户级别的IP限制,可以使用触发器来迂回实现,以下就是示例,需要的朋友可以参考下
    2013-07-07
  • 处理Oracle监听程序当前无法识别连接描述符中请求的服务异常(ORA-12514)

    处理Oracle监听程序当前无法识别连接描述符中请求的服务异常(ORA-12514)

    这篇文章介绍了处理Oracle监听程序当前无法识别连接描述符中请求的服务异常(ORA-12514),对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • centos 6.5下安装oracle 11gR2与Oracle自动启动的配置

    centos 6.5下安装oracle 11gR2与Oracle自动启动的配置

    CentOS 下安装 Oracle 是一件比较麻烦的事情,下面这篇文章主要介绍了在 centos 6.5下安装oracle 11gR2的前的配置步骤,以及安装完成后,如何设置为随系统自动启动。配置完成后,启动图形化安装,没有什么可说的,本文就没有一一截图。需要的朋友可以参考借鉴。
    2017-01-01
  • Oracle中实现删除重复数据只保留一条

    Oracle中实现删除重复数据只保留一条

    这篇文章主要介绍了Oracle中实现删除重复数据只保留一条,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Oracle数据库中的LISTAGG函数使用示例及注意事项

    Oracle数据库中的LISTAGG函数使用示例及注意事项

    这篇文章主要给大家介绍了关于Oracle数据库中LISTAGG函数使用示例及注意事项的相关资料,listagg函数是Oracle 11.2推出的新特性,其主要功能类似于wmsys.wm_concat函数,即将数据分组后把指定列的数据再通过指定符号合并,需要的朋友可以参考下
    2024-08-08
  • 教你怎样用Oracle方便地查看报警日志错误

    教你怎样用Oracle方便地查看报警日志错误

    由于报警日志文件很大,而每天都应该查看报警日志(查看有无“ORA-”,Error”,“Failed”等出错信息),故想找到一种比较便捷的方法,查看当天报警日志都有哪些错误。
    2014-08-08
  • Oracle date如何比较大小分析

    Oracle date如何比较大小分析

    本文将详细介绍Oracle date如何比较大小,需要了解更多的朋友可以参考下
    2012-11-11

最新评论