Oracle迁移数据文件

场景如下:

[[email protected] ~]# df -h

Filesystem            容量  已用 可用 已用% 挂载点

/dev/sda2              28G   26G  585M  98% /

/dev/sda1             190M   12M  169M   7% /boot

none                  2.0G     0  2.0G   0% /dev/shm

/dev/sdb3              99G   93M   94G   1% /u02

  1. 根目录满了,
  2. /u02相对来说还有更大的空间,
  3. 现在要把根目录占用空间大的datafile,迁移到空间大的/u02上去

步骤如下:

1.  把数据文件迁移到/u02对应的目录

[[email protected] hsbop]$ mv /u01/app/oracle/oradata/orcl/acptdat.dbf  /u02/oradata/hsbop/acptdat.dbf

[[email protected] hsbop]$ mv /u01/app/oracle/oradata/orcl/acptidx.dbf /u02/oradata/hsbop/acptidx.dbf

[[email protected] hsbop]$ mv /u01/app/oracle/oradata/orcl/archdat.dbf /u02/oradata/hsbop/archdat.dbf

[[email protected] hsbop]$ mv /u01/app/oracle/oradata/orcl/archidx.dbf /u02/oradata/hsbop/archidx.dbf

2. 数据库启动到mount状态

SQL> startup mount

ORACLE instance started.

Total System Global Area  536870912 bytes

Fixed Size     1220408 bytes

Variable Size   171966664 bytes

Database Buffers   356515840 bytes

Redo Buffers     7168000 bytes

Database mounted.

3. 进行数据文件的rename

SQL> alter database rename file ‘/u01/app/oracle/oradata/orcl/acptdat.dbf‘ to ‘/u02/oradata/hsbop/acptdat.dbf‘;

Database altered.

SQL> alter database rename file ‘/u01/app/oracle/oradata/orcl/acptidx.dbf‘ to ‘/u02/oradata/hsbop/acptidx.dbf‘;

Database altered.

SQL> alter database rename file ‘/u01/app/oracle/oradata/orcl/archdat.dbf‘ to ‘/u02/oradata/hsbop/archdat.dbf‘;

Database altered.

SQL> alter database rename file ‘/u01/app/oracle/oradata/orcl/archidx.dbf‘ to ‘/u02/oradata/hsbop/archidx.dbf‘;

Database altered.

4. 打开数据库

SQL> alter database open;

Database altered.

###### 如果mv的时候 xshell断开了,又重新mv了一下,会导致数据文件不完整,

###### 测试环境可以玩一下,通过把数据文件构造到和控制文件记录的一致来骗过oracle,这个时候其实数据已经丢失了一部分

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01122: database file 19 failed verification check

ORA-01110: data file 19: ‘/u02/oradata/hsbop/ykhdat.dbf‘

ORA-01200: actual file size of 21087 is smaller than correct size of 64000

blocks

SQL> select 64000-21087 cnt from dual;

CNT

----------

42913

SQL> !dd if=/dev/zero of=/u02/oradata/hsbop/ykhdat.dbf bs=8192 count=42913 seek=21088

42913+0 records in

42913+0 records out

SQL> alter database open;

Database altered.

原文地址:https://www.cnblogs.com/dbseeker/p/8850332.html

时间: 2024-11-02 16:44:31

Oracle迁移数据文件的相关文章

迁移数据文件步骤

select file#,name,status from v$datafile; select * from v$tablespace; 1. alter tablespace AAA offline; 2. shutdown immediate; 3. copy data file  to Destination directory 4. startup mount; alter database rename file 'F:\ORACLE\ORADATA\ORCL\AAA_01.DBF'

oracle rename数据文件的两种方法

oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不得转载. 第一种 alter tablespace users rename datafile '==' to '***'; 这种方式需要数据库处于open状态,表空间在offline的状态下才能更改. [sql] view plain copy SQL> alter tablespace user

Oracle单个数据文件超过32G后扩容

Oracle单个数据文件超过32G后扩容 表空间数据文件容量与DB_BLOCK_SIZE的设置有关,而这个参数在创建数据库实例的时候就已经指定.DB_BLOCK_SIZE参数可以设置为4K.8K.16K.32K.64K等几种,Oracle的物理文件最大只允许4194304个数据块(这个参数具体由操作系统决定,一般应该是此数字),表空间数据文件的最大值对应关系就可以通过4194304×DB_BLOCK_SIZE/1024M计算得出. 4k最大表空间为:16384M 8K最大表空间为:32768M

Oracle更改数据文件位置

方法一:offline表空间 1.offline表空间:alter tablespace tablespace_name offline:2.复制数据文件到新的目录:3.rename修改表空间,并修改控制文件:4.online表空间: 1.offline表空间zeroneSQL> select name from v$datafile;NAME-----------------------------------------------------------------------------

Oracle 数据库 数据文件 表 表空间 用户的关系

这涉及到数据库的物理结构和逻辑结构. 首先,你需要明白的一点是:数据库的物理结构是由数据库的操作系统文件所决定,每一个Oracle数据库是由三种类型的文件组成:数据文件.日志文件和控制文件.数据库的文件为数据库信息提供真正的物理存储. 每一个Oracle数据库有一个或多个物理的数据文件(data file).一个数据库的数据文件包含全部数据库数据.逻辑数据库结构(如表.索引等)的数据物理地存储在数据库的数据文件中.数据文件通常为*.dbf格式,例如:userCIMS.dbf.数据文件有下列特征:

ORACLE查看数据文件包含哪些对象

在上篇ORACLE查看表空间对象中,我介绍了如何查询一个表空间有那些数据库对象,那么我们是否可以某个数据文件包含那些数据库对象呢?如下所示 SELECT  E.SEGMENT_TYPE          AS SEGMENT_TYPE       , E.SEGMENT_NAME          AS SEGMENT_NAME       , F.FILE_NAME             AS FILE_NAME       , SUM(E.BYTES)/1024/1024  AS SEGM

oracle查看数据文件, 控制文件, 及日志文件命令

一. 查看数据文件SQL> select name from v$datafile; NAME--------------------------------------------------------D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBFD:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBFD:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01

Oracle 只有数据文件的恢复

  数据库版本都为 Oracle10G   在A数据库服务器操作: 将需要转移的数据库A冷备份,冷备份,我很简单. 开始->运行: sqlplus /as sysdba //使用DBA权限登陆到数据库 sqlplus>shutdown immediate //关闭数据库实例 在提示后ORACLE 例程已经关闭后,将对应A数据库中的X:\Oracle\oradata\SourDB数据库目录全部拷贝出来. 我的数据库目录内含REDO01.LOG .REDO02.LOG. REDO03.LOG,SY

oracle(创建数据文件)

--创建数据文件 create tablespace--创建表空间同时创建数据文件 create temporary tablespace --创建临时表空间的同时创建临时数据文件 alter tablespace...add datafile --向表空间添加数据文件 alter tablespace...add tempfile--向临时表空间添加数据文件 create database --创建数据库时创建数据文件 alter database...create datefile--数据氈