Oracle数据库文件路径变更

环境:RHEL 6.4 + Oracle 11.2.0.3

情景一:只是部分普通数据文件迁移,可以在线操作。

1.将对应表空间offline,移动数据文件到新路径

2.数据文件alter database rename file '' to '';

3.再将表空间online

情景二:所有数据文件迁移。

本文是针对情景二的实验,需求:主机/oradata挂节点变更为/usr2.在/usr2建立oradata文件夹来存放之前/oradata的所有文件。

操作步骤:

1.查看当前数据库的数据文件,临时文件,日志文件,控制文件,参数文件等信息。

2.根据当前spfile创建pfile文件,正常关闭数据库,移动源数据库文件到新的存储路径。

3.修改数据库参数文件,更改控制文件路径为新的存储路径,用改好的pfile文件启动数据库到mount状态。

4.重定向数据库的所有数据文件、日志文件路径,然后正常打开数据库。

5.核查各文件路径没有问题,根据当前pfile创建spfile,重启数据库实例。

1.查看当前数据库的数据文件,临时文件,日志文件,控制文件,参数文件等信息。

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oradata/sysdata/jingyu/system01.dbf
/oradata/sysdata/jingyu/sysaux01.dbf
/oradata/sysdata/jingyu/undotbs01.dbf
/oradata/sysdata/jingyu/users01.dbf

SQL> select name from v$tempfile; 

NAME
--------------------------------------------------------------------------------
/oradata/sysdata/jingyu/temp01.dbf

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/oradata/sysdata/jingyu/redo03.log
/oradata/sysdata/jingyu/redo02.log
/oradata/sysdata/jingyu/redo01.log

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/oradata/sysdata/jingyu/control01.ctl
/opt/app/oracle/fast_recovery_area/jingyu/control02.ctl

SQL> show parameter pfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /opt/app/oracle/product/11.2.0
                                                 /dbhome_1/dbs/spfilejingyu.ora

2.根据当前spfile创建pfile文件,正常关闭数据库,移动源数据库文件到新的存储路径。

SQL> create pfile from spfile;

File created.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

--移动源数据库文件到新的存储路径:
a.建立/usr2。 
b./etc/fstab配置,更改/oradata为/usr2。
c.mount /usr2 
d./usr2下建立oradata文件夹。 
e./usr2下文件移动到/usr2/oradata下。 
f.处理相关目录权限。
g.umount -l /oradata

3.修改数据库参数文件,更改控制文件路径为新的存储路径,用改好的pfile文件启动数据库到mount状态。

[oracle@JY-DB /]$ cd $ORACLE_HOME/dbs
[oracle@JY-DB dbs]$ more initjingyu.ora 
jingyu.__db_cache_size=6677331968
jingyu.__java_pool_size=33554432
jingyu.__large_pool_size=33554432
jingyu.__oracle_base='/opt/app/oracle'#ORACLE_BASE set from environment
jingyu.__pga_aggregate_target=5402263552
jingyu.__sga_target=8086618112
jingyu.__shared_io_pool_size=0
jingyu.__shared_pool_size=1275068416
jingyu.__streams_pool_size=0
*.audit_file_dest='/opt/app/oracle/admin/jingyu/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/oradata/sysdata/jingyu/control01.ctl','/opt/app/oracle/fast_recovery_area/jingyu/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='jingyu'
*.db_recovery_file_dest='/opt/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=10737418240
*.diagnostic_dest='/opt/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=jingyuXDB)'
*.memory_target=13459521536
*.open_cursors=1000
*.processes=1500
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=1655
*.undo_tablespace='UNDOTBS1'

SQL> startup pfile='$ORACLE_HOME/dbs/initjingyu.ora' nomount
ORACLE instance started.

Total System Global Area 1.3429E+10 bytes
Fixed Size                  2241064 bytes
Variable Size            6744444376 bytes
Database Buffers         6677331968 bytes
Redo Buffers                4636672 bytes
SQL> alter database mount;

Database altered.

4.重定向数据库的所有数据文件、日志文件路径,然后正常打开数据库。

SQL> alter database rename file '/oradata/sysdata/jingyu/system01.dbf' to '/usr2/oradata/sysdata/jingyu/system01.dbf';

Database altered.

SQL> alter database rename file '/oradata/sysdata/jingyu/sysaux01.dbf' to '/usr2/oradata/sysdata/jingyu/sysaux01.dbf';

Database altered.

SQL> alter database rename file '/oradata/sysdata/jingyu/undotbs01.dbf' to '/usr2/oradata/sysdata/jingyu/undotbs01.dbf';   

Database altered.

SQL> alter database rename file '/oradata/sysdata/jingyu/temp01.dbf' to '/usr2/oradata/sysdata/jingyu/temp01.dbf';

Database altered.

SQL> alter database rename file '/oradata/sysdata/jingyu/users01.dbf' to '/usr2/oradata/sysdata/jingyu/users01.dbf';

Database altered.

SQL> alter database rename file '/oradata/sysdata/jingyu/redo01.log' to '/usr2/oradata/sysdata/jingyu/redo01.log';

Database altered.

SQL> alter database rename file '/oradata/sysdata/jingyu/redo02.log' to '/usr2/oradata/sysdata/jingyu/redo02.log';

Database altered.

SQL> alter database rename file '/oradata/sysdata/jingyu/redo03.log' to '/usr2/oradata/sysdata/jingyu/redo03.log';

Database altered.

SQL> alter database open;

Database altered.

5.核查各文件路径没有问题,根据当前pfile创建spfile,重启数据库实例。

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/usr2/oradata/sysdata/jingyu/system01.dbf
/usr2/oradata/sysdata/jingyu/sysaux01.dbf
/usr2/oradata/sysdata/jingyu/undotbs01.dbf
/usr2/oradata/sysdata/jingyu/users01.dbf

SQL> select name from v$tempfile; 

NAME
--------------------------------------------------------------------------------
/usr2/oradata/sysdata/jingyu/temp01.dbf

SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/usr2/oradata/sysdata/jingyu/redo03.log
/usr2/oradata/sysdata/jingyu/redo02.log
/usr2/oradata/sysdata/jingyu/redo01.log

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/usr2/oradata/sysdata/jingyu/control01.ctl
/opt/app/oracle/fast_recovery_area/jingyu/control02.ctl

SQL> show parameter pfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string
SQL> create spfile from pfile;

File created.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Total System Global Area 1.3429E+10 bytes
Fixed Size                  2241064 bytes
Variable Size            6744444376 bytes
Database Buffers         6677331968 bytes
Redo Buffers                4636672 bytes
Database mounted.
Database opened.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沃趣科技

如何构建企业的业务永续解决方案-架构篇

上篇文章《真正的双活产品,不仅仅是实现7×24小时》中,我们介绍了沃趣的同城双活性能,从性能指标来看,已经能够满足企业中对性能要求较高的核心业务。

13420
来自专栏沃趣科技

沃趣科技携手某省交警总队,为智慧交通系统建设保驾护航

“堵堵堵,怎么又堵上了”,当大家还在诟病城市化过程中发生的道路拥堵时,某省交警总队积极响应民生要求,已经开始了对交通管理系统进行效能提升,对交通警务 “六合一”...

14710
来自专栏dotnet & java

[SpingBoot guides系列翻译]通过JDBC和Spring访问关系数据库

build的时候用到了spring-boot-maven-plugin插件。他提供了很多便捷的特性。

11650
来自专栏编程坑太多

「实战篇」开源项目docker化运维部署-开篇(一)

PS:除了高级篇之前的docker几个系列还比较接地气,如何将docker和实际的开发中串联起来。让docker真正的接地气。找个项目就开始干!

15320
来自专栏Linyb极客之路

分布式全局唯一ID生成策略

在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据库的分库分表后需要...

32220
来自专栏猿天地

通用数据权限的思考与设计

数据权限是指对系统用户进行数据资源可见性的控制,通俗的解释就是:符合某条件的用户只能看到该条件下对应的数据资源。那么最简单的数据权限大概就是:用户只能看到自己的...

14110
来自专栏sci666

GEPIA:点点鼠标就能分析TCGA数据

随着公共数据库的建立和开放,越来越多的研究者可以接触到测序数据,非常适合我们这种“三无”研究者(无课题,无经费,无文章)运用公共数据找点事情干,可以是另辟蹊径从...

30800
来自专栏Linyb极客之路

面试常问,缓存三大问题及解决方案!

随着互联网系统发展的逐步完善,提高系统的qps,目前的绝大部分系统都增加了缓存机制从而避免请求过多的直接与数据库操作从而造成系统瓶颈,极大的提升了用户体验和系统...

12120
来自专栏Java技术栈

解决并发问题,数据库常用的两把锁!

在写入数据库的时候需要有锁,比如同时写入数据库的时候会出现丢数据,那么就需要锁机制。

13520
来自专栏Jackson0714

架构取经之路3 - 悟空聊无事务

悟空和师父一行人正在前往西天取经的路上,师父在线上买了一个福袋,订单状态显示订单已支付,但是电子福袋状态为未发送。

10420

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励