`

ORACLE数据库数据文件位置迁移

阅读更多
一.移动数据文件

移动数据文件使用的有2种办法

方法一、以数据文件为单位移动
SQL> select name from v$datafile;
------
------
2.关闭数据库

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

3.MOUNT到数据库

SQL> startup mount

ORACLE instance started.

Total System Global Area  135338868 bytes

Fixed Size                   453492 bytes

Variable Size             109051904 bytes

Database Buffers           25165824 bytes

Redo Buffers                 667648 bytes

Database mounted.
4.把要移动的数据文件剪切到目标目录,
SQL>SELECT 'host mv ' || d.FILE_NAME ||  ' /home/lc_orauser/mount/tablespace1/'||substr(d.FILE_NAME,34)||';' FROM Dba_Data_Files d;

host mv /home/lc_orauser/oradata/niutest/users01.dbf /home/lc_orauser/mount/tablespace1/users01.dbf;
host mv /home/lc_orauser/oradata/niutest/sysaux01.dbf /home/lc_orauser/mount/tablespace1/sysaux01.dbf;
.........

5.alter database方法移动数据文件
SQL>SELECT 'alter database  rename file  '''|| d.file_name ||''' to ''/home/lc_orauser/mount/tablespace1/' ||
substr(d.FILE_NAME,34)||'''' FROM dba_tablespaces t,Dba_Data_Files d WHERE t.tablespace_name=d.TABLESPACE_NAME;

alter database  rename file  '/home/lc_orauser/mount/tablespace1/users01.dbf' to
'/home/lc_orauser/mount/tablespace1/1/users01.dbf'
..............

6.移动其他数据文件同上.但是我们要注意的是TEMP数据文件.在我们上边列出数据文件的命令里没有包含这个文件.而且移动这个文件会报如下错:
*

ERROR at line 1:

ORA-01511: error in renaming log/data files

ORA-01516: nonexistent log file, datafile, or tempfile

"E:\ORACLE\ORADATA\SLUMGA\temp01.DBF"
那如何移动呢?我们需要创建一个TEMP文件,如下:
SQL> create temporary tablespace temp2 tempfile 'e:\oracle\tem2.dbf' size 20M reuse
autoextend on next 50m maxsize unlimited;
SQL> alter database default temporary tablespace temp2;
打开数据库,成功。
方法二、以表空间为单位进行移动
1.把相应表空间offline
SQL> SELECT 'alter tablespace '|| t.tablespace_name ||'  offline ;'  FROM dba_tablespaces t;
alter tablespace SYSTEM  offline ;
............................
2.操作系统级把数据文件移动到目标目录,用上面的方法就可以,这里不再多说了。
3.在ORACLE数据库中把该表空间的所有数据文件改名
SQL> SELECT 'alter tablespace '|| t.tablespace_name ||' rename datafile '''|| d.file_name ||''' to ''/home/lc_orauser/mount/tablespace1/' ||
substr(d.FILE_NAME,34)||'''' FROM dba_tablespaces t,Dba_Data_Files d WHERE t.tablespace_name=d.TABLESPACE_NAME;
!这里要注意,语法和方法一里面的不一样!
4.把表空间ONLINE
SQL>SELECT 'alter tablespace '|| t.tablespace_name ||'  online ;'  FROM dba_tablespaces t;
5.注意!
此方法对系统表空间system、undo表空间和temp表空间无法使用。
最后将数据库重启。测试一下是否成功!
二、移动控制文件
1.用SPFILE启动的数据库
SQL> alter system set control_files='E:\oracle\oradata\slumgabak\CONTROL01.CTL',
'E:\oracle\oradata\slumgabak\CONTROL02.CTL','E:\oracle\oradata\slumgabak\CONTROL03.CTL' scope=spfile;
System altered.
重启数据库。
SQL> create pfile from spfile;
File created.
2.用pfile启动的数据库
修改E:\oracle\ora92\database\init<SID>.ora 文件,修改参数CONTROL_FILES的值。重新启动数据库。如果有SPFIL重建SPFILE
SQL> create spfile from pfile;
三、移动联机重作日志文件。
1.停止数据库
2.把日志文件移动到新的目标目录
3.mount到数据库,修改日志文件的名字
SQL> alter database rename file 'E:\oracle\oradata\slumga\REDO01.LOG' to 'E:\ora
cle\oradata\slumgabak\REDO01.LOG';
Database altered.
SQL> alter database rename file 'E:\oracle\oradata\slumga\REDO02.LOG' to 'E:\ora
cle\oradata\slumgabak\REDO02.LOG';
Database altered.

SQL> alter database rename file 'E:\oracle\oradata\slumga\REDO03.LOG' to 'E:\ora
cle\oradata\slumgabak\REDO03.LOG';
Database altered.
4.OPEN数据库
SQL> alter database open;
修改完成!
分享到:
评论

相关推荐

    oracle数据库数据文件迁移的方法1

    1) 手动拷贝要转移的数据数据文件'd:\OracleData\GWTABLE42.DBF'到新的位置'E:\OracleData\GWTABLE42.DBF'

    oracle数据库迁移实例01

    windows环境下, db_name和instance_name都不相同的情况下的数据库迁移. 通过镜像文件实现.

    linux下oracle数据库自动定时备份迁移

    Linux下Oracle数据库自动备份迁移 通过linux下Crontab实现定时任务,结合oracle自动备份脚本实现oracle数据库的备份操作,结合linux下Scp服务实现备份文件的异地存储,从而减少了人为备份的繁琐工作和服务器损坏造成...

    直接拷贝数据文件实现Oracle数据迁移

    最近由于更换服务器,需要将Oracle迁移到另外一台机器,在两个服务器环境相同,以及 Oracle版本相同的前提下,通过直接拷贝数据文件到新服务器,就可以直接迁移成功。这里记录一下迁移步骤。需要的朋友可以参考。

    oracle数据导入到Mysq库

    此工具功能是将oracle数据库中的数据迁移到mysql数据库,可以直接连接到两个目标数据库进行热操作,也可以读取oracle导出文件,导入的Mysql库中。

    Oracle数据库学习指南

    30. 没有备份、只有归档日志,如何恢复数据文件 31. 哪些初始化参数最影响Oracle系统性能 32. 如何查看数据库的字符集 33. 如何启动ARCHIVELOG模式 34. 如何使‘CREATE TABLE AS SELECT’能支持ORDER BY ? 35....

    2020_Oracle19c数据迁移图文详解.docx

    本文档用于手把手教0基础的小白通过使用oracle数据泵技术来实现数据迁移。该文档非常详细,如果看了文档你还不会,记得叫人打我,一定要叫人来打我。如果对你有作用,请记得点个关注,谢谢

    Oracle数据库迁移之物理迁移

    ORACLE数据库迁移有多种,先从物理迁移实验做起。  物理迁移比较简单,但是要求两个库的版本必须一样,且必须事先记录要迁移的库的SID、归档模式、数据文件、日志文件、控制文件、参数文件和密码文件。  迁移...

    Oracle数据库管理员技术指南

    7.8.2 包含活动回退段的数据文件的丢失 7.8.3 其他数据文件的丢失 7.8.4 执行表空间恢复 7.8.5 执行数据文件恢复 7.8.6 在没有数据文件备份时怎样进行 恢复 7.8.7 恢复丢失的临时表空间 7.8.8 只读表空间丢失...

    Mysql迁移Oracle方案

    2.2.2 连接生产oracle数据库 2.3 执行迁移 2.3.1 关联移植资料档案库 2.3.2 捕获方案 2.3.3 设置数据映射 2.3.4 转换为oracle模型 2.3.5 生成数据结构执行脚本 2.3.6 迁移数据结构 2.3.7 设置“数据移动选项” 2.3.8...

    数据库优化--局部数据迁移

    压缩包主要包括如下文件: 1,迁移表的导出,生成备份文件;重命名迁移表。 2,创建准备分区所对应的表空间。 3,创建最终迁移结果的新表,将其中最大...将备份的数据重新导入数据库。 当然,还包括有相关的恢复脚本。

    Oracle数据库实验操作

    实验54:更改表空间的名称,更改数据文件的名称 113 表空间 116 实验55:建立临时表空间 117 实验56:大文件表空间和表空间的管理模式 118 数据库的逻辑结构 120 实验57:建立表,描述表的存储属性 121 实验58:...

    SQLServei迁移Oracle工具

    程序是C#写的,编译成64bit程序,只能跑在windows 64位平台,无需安装Oracle客户端,实现SQLServer2005以上数据 迁移数据到Oracle数据库 自动创建表及主键,自动迁移数据 使用方法: 1. 修改配置文件MigrationMSSQL2...

    oracle数据库迁移到MySQL的方法总结

    但是有一个问题是 Oracle 的数据库是需要收费的, 个人使用倒没什么问题, 公司使用的话就会有侵权的问题了。 而MySQL 则是完全免费的。 所以使用 ExtJS + Spring + MySQL 这样的组合应该就没什么问题了。 理论...

    表空间(数据文件)迁移.docx

    Oracle表空间数据文件过大,如何进行迁移以便扩容

    Oracle数据库日常维护手册

    3.4. 检查 ORACLE 所有数据文件状态.............................................................................. 8 3.5. 检查无效对象........................................................................

    文件批量导入数据到oracle数据库

    读取某个目录下的所有文件。2、系统读取目录下所有后缀为txt的文件并解析,结束后迁移到指定的bak目录下。3、没有在配置文件中定义bak目录和log目录,你所有执行当中执行的读取结果都要记录到日志当中

    Lotus-Notes数据库向ORACLE数据迁移

    数据迁移中,由于Domino系统使用的数据库:Lotus-Notes不是关系型数据库,而是文件型数据库,大大增加了数据迁移的难度。通过分析和实践,确定选择以数据对象映射的方式,由产品部门进行工具开发,通过实施人员对...

Global site tag (gtag.js) - Google Analytics