Oracle移动数据文件

来源:互联网 发布:知乎 保研 换导师 编辑:程序博客网 时间:2024/05/21 22:42


作者:雨竹清风

数据文件的移动可能是因为I/O过于繁忙,这样会影响到系统的效率,为了平衡I/O会引起数据文件的移动。也可能是因为某个磁盘已经毁掉,为了使数据库顺利运行,为此会引起数据文件的移动。

移动数据文件有两种情况:一种是可以脱机的数据文件,一种是不可以脱机的数据文件。因此系统提供了两条命令。

可以脱机的数据文件,如:上面没有活动的还原数据或临时段的非系统表空间的数据文件。

命令为:

alter tablespace 表空间名rename 

datafile 数据文件名to 数据文件名;

不可以脱机的数据文件,如:系统表空间,默认表空间。

命令为:

Alter database rename file 数据文件名 to 数据文件名;

示例如下:

1.查看数据字典结构

SQL> desc dba_data_files

 名称                                      是否为空? 类型

 ------------------------------------   -------- ------------------

 FILE_NAME                                          VARCHAR2(513)

 FILE_ID                                            NUMBER

 TABLESPACE_NAME                                    VARCHAR2(30)

 BYTES                                              NUMBER

 BLOCKS                                             NUMBER

 STATUS                                             VARCHAR2(9)

 RELATIVE_FNO                                       NUMBER

 AUTOEXTENSIBLE                                     VARCHAR2(3)

 MAXBYTES                                           NUMBER

 MAXBLOCKS                                          NUMBER

 INCREMENT_BY                                       NUMBER

 USER_BYTES                                         NUMBER

 USER_BLOCKS                                        NUMBER

 ONLINE_STATUS                                      VARCHAR2(7)

2.查询具体数据文件情况。

SQL> col file_name for a51

SQL> col tablespace_name for a20

SQL> select FILE_ID, FILE_NAME, TABLESPACE_NAME from dba_data_files

  2  where file_name like '%ORADATA%'

  3  order by file_id;

 

   FILE_ID FILE_NAME                           TABLESPACE_NAME    

--------- ------------------------------------------ -------------

 1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF  SYSTEM             

 2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF UNDOTBS1    

 3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF  SYSAUX      

 4 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF   USERS    

 5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF EXAMPLE

3.查询数据文件的状态

SQL> desc dba_tablespaces;

 名称                                             是否为空? 类型

 ---------------------------------------- -------- --------------

 TABLESPACE_NAME                            NOT NULL VARCHAR2(30)

 BLOCK_SIZE                                 NOT NULL NUMBER

 INITIAL_EXTENT                                      NUMBER

 NEXT_EXTENT                                         NUMBER

 MIN_EXTENTS                                NOT NULL NUMBER

 MAX_EXTENTS                                         NUMBER

 PCT_INCREASE                                        NUMBER

 MIN_EXTLEN                                          NUMBER

 STATUS                                              VARCHAR2(9)

 CONTENTS                                            VARCHAR2(9)

 LOGGING                                             VARCHAR2(9)

 FORCE_LOGGING                                       VARCHAR2(3)

 EXTENT_MANAGEMENT                                   VARCHAR2(10)

 ALLOCATION_TYPE                                     VARCHAR2(9)

 PLUGGED_IN                                      VARCHAR2(3)

 SEGMENT_SPACE_MANAGEMENT                        VARCHAR2(6)

 DEF_TAB_COMPRESSION                             VARCHAR2(8)

 RETENTION                                       VARCHAR2(11)

 BIGFILE                                         VARCHAR2(3)

 

 

SQL> select  TABLESPACE_NAME, STATUS,CONTENTS from dba_tablespaces;

 

TABLESPACE_NAME      STATUS    CONTENTS                                                             

-------------------- --------- ---------                                                            

SYSTEM               ONLINE    PERMANENT                                                            

UNDOTBS1             ONLINE    UNDO                                                                 

SYSAUX               ONLINE    PERMANENT                                                            

TEMP                 ONLINE    TEMPORARY                                                            

USERS                ONLINE    PERMANENT                                                            

EXAMPLE              ONLINE    PERMANENT                                                            

FANLU                ONLINE    PERMANENT                                                            

LULU                 ONLINE    PERMANENT                                                            

XIXI_TEMP            ONLINE    TEMPORARY                                                            

XUANXUAN             ONLINE    PERMANENT                                                            

 

已选择10行。

4.将users数据文件进行脱机

SQL> alter tablespace users offline;

 

表空间已更改。

5.查询是否成功

SQL> select  TABLESPACE_NAME, STATUS,CONTENTS from dba_tablespaces ;

 

TABLESPACE_NAME      STATUS    CONTENTS                                                             

-------------------- --------- ---------                                                            

SYSTEM               ONLINE    PERMANENT                                                            

UNDOTBS1             ONLINE    UNDO                                                                 

SYSAUX               ONLINE    PERMANENT                                                            

TEMP                 ONLINE    TEMPORARY                                                            

USERS                OFFLINE   PERMANENT                                                            

EXAMPLE              ONLINE    PERMANENT                                                            

FANLU                ONLINE    PERMANENT                                                            

LULU                 ONLINE    PERMANENT                                                            

XIXI_TEMP            ONLINE    TEMPORARY                                                            

XUANXUAN             ONLINE    PERMANENT                                                            

 

已选择10行。

5.将物理文件进行复制

SQL> host copy   D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF  C:\disk1\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL

6.使用命令进行数据文件的移动/重命名

SQL> alter tablespace users rename

  2  datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF'

  3  to 'C:\disk1\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF';

 

表空间已更改。

7.将数据文件进行联机

SQL> alter tablespace users online;

 

表空间已更改。

8.查询是否成功

SQL> select  TABLESPACE_NAME, STATUS,CONTENTS from dba_tablespaces ;

 

TABLESPACE_NAME      STATUS    CONTENTS                                                             

-------------------- --------- ---------                                                            

SYSTEM               ONLINE    PERMANENT                                                            

UNDOTBS1             ONLINE    UNDO                                                                 

SYSAUX               ONLINE    PERMANENT                                                            

TEMP                 ONLINE    TEMPORARY                                                            

USERS                ONLINE    PERMANENT                                                            

EXAMPLE              ONLINE    PERMANENT                                                            

FANLU                ONLINE    PERMANENT                                                            

LULU                 ONLINE    PERMANENT                                                            

XIXI_TEMP            ONLINE    TEMPORARY                                                            

XUANXUAN             ONLINE    PERMANENT                                                            

 

已选择10行。

 

 

SQL> col file_name for a51

SQL> col tablespace_name for a19

SQL> select FILE_ID, FILE_NAME, TABLESPACE_NAME from dba_data_files

  2  where file_name like '%ORADATA%'

  3  order by file_id;

 

   FILE_ID FILE_NAME                        TABLESPACE_NAME              

---------- ----------------------------------- -------------------  

1 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF  SYSTEM                               

2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF UNDOTBS1                             

3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF  SYSAUX                               

C:\DISK1\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01 USERS.DBF                                                                                     

5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF EXAMPLE                              

9.删除物理文件

10.关闭数据库,准备对系统数据文件进行移动

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount;

ORACLE 例程已经启动。

 

Total System Global Area  167772160 bytes                                                           

Fixed Size                  1247900 bytes                                                           

Variable Size              75498852 bytes                                                           

Database Buffers           88080384 bytes                                                           

Redo Buffers                2945024 bytes                                                           

数据库装载完毕。

11.复制文件

SQL> host copy D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF C:\disk2\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL

 

12.使用命令进行移动数据文件

SQL> alter database rename

  2  file 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'

  3  to 'C:\disk2\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF';

 

数据库已更改。

13.打开数据库

SQL> alter database open;

 

数据库已更改。

14.查询数据文件情况

SQL> col file_name for a51

SQL> col tablespace_name for a18

SQL> select FILE_ID, FILE_NAME, TABLESPACE_NAME from dba_data_files

  2  where file_name like '%ORADATA%'

  3  order by file_id;

 

   FILE_ID FILE_NAME                          TABLESPACE_NAME          

---------- ----------------------------------- ------------------                   

1 C:\DISK2\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM0 SYSTEM.DBF                                                                                    

2 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF UNDOTBS1                             

3 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF  SYSAUX                               

4 C:\DISK1\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01 USERS.DBF                                                                                     

5 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF EXAMPLE                              

 

 

 

0 0
原创粉丝点击