ORACLE中移动数据库文件 _MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1805 | 回复: 0   主题: ORACLE中移动数据库文件         下一篇 
ab19890824
注册用户
等级:少尉
经验:351
发帖:92
精华:0
注册:2011-11-21
状态:离线
发送短消息息给ab19890824 加好友    发送短消息息给ab19890824 发消息
发表于: IP:您无权察看 2015-8-7 15:22:44 | [全部帖] [楼主帖] 楼主

在ORACLE中移动数据库文件

a.shutdown immediate关闭数据库

b.在os下拷贝数据文件到新的地点

c.Startup mount 启动到mount下

d.Alter database rename datafile '老文件' to '新文件';

e.Alter database open; 打开数据库

2、利用Rman联机操作

RMAN> sql "alter database datafile ''file name'' offline";

RMAN> run {

2> copy datafile 'old file location'

3> to 'new file location';

4> switch datafile ' old file location'

5> to datafilecopy ' new file location';

6> }

RMAN> sql "alter database datafile ''file name'' online";

说明:利用OS拷贝也可以联机操作,不关闭数据库,与rman的步骤一样,利用rman与利用os拷贝的原理一样,在rman中copy是拷贝数据文件,相当于OS的cp,而switch则相当于alter database rename,用来更新控制文件。



--ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。

--由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,

--我們可能会考虑移动数据库文件。

--下面以LUNIX平台为例,分别讨论三种数据库文件的移动方法。



一.移动数据文件:

-- 可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。



1. ALTER DATABASE方法;

-- 用此方法,可以移动任何表空间的数据文件。



STEP 1. 下数据库:

$ sqlplus /nolog

SQL> conn / as sysdba

SQL> SHUTDOWN;

SQL> EXIT;



STEP 2.用操作系统命令移动数据文件:

-- 将数据文件 'test.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:

$ mv /ora/oracle/data1/test.ora /ora/oracle/data2



STEP 3. Mount数据库,用ALTER DATABASE命令将数据文件改名:

$ sqlplus /nolog

SQL> conn / as sysdba;

SQL> STARTUP MOUNT;

SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/test.ora' TO '/ora/oracle/data2/test.ora';



STEP 4. 打开数据库:.

SQL> ALTER DATABASE OPEN;

SQL>SELECT NAME,STATUS FROM V$DATAFILE;



2. ALTER TABLESPACE方法:

-- 用此方法,要求此数据文件既不属于SYSTEM表空间,也不属于含有ACTIVE回滚段或临时段的表空间。



STEP1. 将此数据文件所在的表空间OFFLINE:

$ sqlplus /nolog

SQL> conn / as sysdba;

SQL> ALTER TABLESPACE test OFFLINE;

SQL> EXIT;



STEP2. 用操作系统命令移动数据文件:

将数据文件 'test.ora' 从/ora/oracle/

data1目录移动到/ora/oracle/data2目录下:

$ mv /ora/oracle/data1/test.ora /ora/oracle/data2



STEP3. 用ALTER TABLESPACE命令改数据文件名:

$ sqlplus /nolog

SQL> conn / as sysdba;

SQL> ALTER TABLESPACE test RENAME DATAFILE '/ora/oracle/data1/test.ora' TO '/ora/oracle/data2/test.ora';



STEP4. 将此数据文件所在的表空间ONLINE:

SQL> ALTER TABLESPACE test ONLINE;

SQL> SELECT NAME,STATUS FROM V$DATAFILE;



二. 移动控制文件:



-- 控制文件 在 INIT.ORA文件中指定。移动控制文件相对比较简单,下数据库,

-- 编辑INIT.ORA,移动控制文件,重启动数据库。



STEP 1. 下数据库:

$ sqlplus /nolog

SQL> conn / as sysdba;

SQL> SHUTDOWN;

SQL> EXIT;



STEP 2.用操作系统命令 移动控制文件:

--将控制文件'ctl3orcl.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:

$ mv /ora/oracle/data1/ctrlorcl3.ora /ora/oracle/data2



STEP 3. 编辑INIT.ORA文件:

INIT.ORA文件的在$ORACLE_HOME/dbs目录下,

修改参数 "control_files",其中指定移动后的控制文件:

control_files = (/ora/oracle/data1/ctrlorcl1.ora,/ora/oracle/data1/ctrlorcl2.ora,/ora/oracle/data2/ctrlorcl3.ora)



STEP 4. 重启动数据库:

$ sqlplus /nolog

SQL> conn / as sysdba;

SQL> STARTUP;

SQL>SELECT name FROM V$CONTROLFILE;

SQL> EXIT;



三. 移动联机日志文件:

STEP 1. 停数据库:

$ sqlplus /nolog

SQL> conn / as sysdba;

SQL> SHUTDOWN;

SQL> EXIT;



STEP 2. 用操作系统命令移动联机日志文件:

--将联机日志文件'redolog1.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:

$ mv /ora/oracle/data1/redolog1.ora /ora/oracle/data2



STEP 3. Mount数据库,用ALTER DATABASE 命令改联机日志文件名:.

$ sqlplus /nolog

SQL> conn / as sysdba;

SQL> STARTUP MOUNT ;

SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/redolog1.ora' TO '/ora/oracle/data2/redolog1.ora';



STEP 4.重启动数据库: .

SQL> ALTER DATABASE OPEN;

SQL>SELECT MEMBER FROM V$LOGFILE



--转自北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论