Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6041
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2014-09-18 12:52
文章分类

全部博文(2)

文章存档

2014年(2)

我的朋友

分类: Oracle

2014-10-10 11:18:14

一系统表空间数据文件迁移:

SQL> conn /@study as sysdba
已连接。
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)

1 查到数据文件的位置


SQL> select file_name,tablespace_name from dba_data_files where tablespace_name=
'SYSTEM';

FILE_NAME
--------------------------------------------------------------------------------

TABLESPACE_NAME
------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\SYSTEM01.DBF
SYSTEM


2关库

 

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。



3 将文件拷走

SQL> host copy D:\oracle\product\10.2.0\oradata\study\SYSTEM01.DBF d:\oracle\stu
dy\


已复制 1 个文件。


4将库起到mount状态

 

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 1140850688 bytes
Fixed Size 2065184 bytes
Variable Size 301993184 bytes
Database Buffers 822083584 bytes
Redo Buffers 14708736 bytes
数据库装载完毕。

5重命名

SQL> alter database rename file 'D:\oracle\product\10.2.0\oradata\study\system01
.dbf' to 'D:\oracle\study\system01.dbf';

数据库已更改。

 

6开库

SQL> alter database open;

数据库已更改。

SQL> select file_name,tablespace_name from dba_data_files where tablespace_name=
'SYSTEM';

FILE_NAME
--------------------------------------------------------------------------------

TABLESPACE_NAME
------------------------------
D:\ORACLE\STUDY\SYSTEM01.DBF
SYSTEM


SQL> select file_name,tablespace_name from dba_data_files where tablespace_name=
'USERS';

FILE_NAME
--------------------------------------------------------------------------------

TABLESPACE_NAME
------------------------------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\STUDY\USERS01.DBF
USERS

 

二非系统表空间数据文件移动:

1直接脱机


SQL> alter tablespace users offline;



表空间已更改。

 

2将文件拷走


SQL> host copy D:\oracle\product\10.2.0\oradata\study\users01.dbf d:\oracle\stud
y\
已复制 1 个文件。

3重命名


SQL> alter tablespace users rename datafile 'D:\oracle\product\10.2.0\oradata\st
udy\users01.dbf' to 'd:\oracle\study\users01.dbf';

表空间已更改。

4联机


SQL> alter tablespace users online
2 ;

表空间已更改。

SQL> select file_name,tablespace_name from dba_data_files where tablespace_name=
'USERS';

FILE_NAME
--------------------------------------------------------------------------------

TABLESPACE_NAME
------------------------------
D:\ORACLE\STUDY\USERS01.DBF
USERS


SQL>

 

三日志文件迁移

1查看是否归档,最好手工切换

SQL> select * from v$logfile;

SQL> alter system switch logfile;

系统已更改。

2关库

SQL> shutdown

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

3将文件拷走

SQL> $ move C:\ora10gBase\oradata\oy\REDO01.LOG  D:\D_Oracle_DBF\REDO01.LOG

SQL> $ move C:\ora10gBase\oradata\oy\REDO02.LOG  D:\D_Oracle_DBF\REDO02.LOG

SQL> $ move C:\ora10gBase\oradata\oy\REDO03.LOG  D:\D_Oracle_DBF\REDO03.LOG

4将库起到mount状态

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area  209715200 bytes

Fixed Size                  1248140 bytes

Variable Size              92275828 bytes

Database Buffers          113246208 bytes

Redo Buffers                2945024 bytes

数据库装载完毕。

5重命名

SQL> alter database

  2  rename file

  3  'C:\ora10gBase\oradata\oy\REDO01.LOG',

  4  'C:\ora10gBase\oradata\oy\REDO02.LOG',

  5  'C:\ora10gBase\oradata\oy\REDO03.LOG'

  6  to

  7  'D:\D_Oracle_DBF\REDO01.LOG',

  8  'D:\D_Oracle_DBF\REDO02.LOG',

  9  'D:\D_Oracle_DBF\REDO03.LOG';

数据库已更改。

6开库

SQL> alter database open;

数据库已更改。

7在切换一下日志

SQL> alter system switch logfile;

系统已更改。

 

四控制文件迁移

将数据库SHUTDOWN,然后修改pfile中的控制文件的路径,以pfile文件启动数据库,

然后create spfile from pfile.最后以spfile启动数据库即可。

SQL> create spfile from pfile='D:\xxxx\pfile\init.ora.2162010162124';

 

五其他方法(未经测试)

此外,其他移动数据文件的方法(在数据库启动归档的情况下,可以开机迁移,还未测试是否正确):

 

移动Oracle数据库表空间文件

目的:把oracle表空间文件从一个地方移动到另外一个地方。

详细操作步骤:

第一、启用介质恢复模式:

A、Shutdown immdiate;

B、Startup mount;

C、Alter database archivelog;

D、Alter database open;

第二、卸载表空间:

A、Alter tablespace 表空间名字 offline;(注:如果为非归档模式后面加Drop);

第三、在操作系统下移动文件到新位置。

第四、告诉表空间数据文件已经移动:

A、Alter database rename file '原文件路径' to '新文件路径';

第五、装载表空间:

A、Alter tablespace 表空间名字 online;

第六、关闭数据库:

A、Shutdown;

第七、启动数据库:

A、Startup force;

Oracle数据库表空间文件移动成功。

 

阅读(540) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~