网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Application Server明细列表.
.ORACLE在HP-UX下的系列问题处理(.
.Oracle 数据库向 MS SQL Server .
.Oracle Berkeley数据库Java版.
.Oracle 数据对象分析.
.解决Restarting死进程QMN0问题一.
.Siebel被Oracle收购CRM严冬之后将.
.用java实现ORACLE数据库的文件上.
.Oracle管理存储过程.
.在 Linux 上烧录 CD.
.使用Oracle的扩展SQL跟踪数据的方.
.世界上最大的商务数据库运行在Or.
.利用Oracle数据泵完成数据导入和.
.Linux Shadow-Password-HOWTO.
.研究生管理信息系统的开发流程.
.使用目录 2.1. 目录: 前言.
.Actualtests Oracle 1Z0-007 V04.
.FreeBSD-5.2下安装ORACLE9i手记.
.Oracle数据库中存在默认密码威胁.
.SCO unix 下定时备份 Oracle dmp.

如何移动Oracle数据库的表空间

发表日期:2008-2-9



  在使用Oracle数据库的过程中,经常会碰到将数据库中的数据从一个数据库移动到另一个数据库的情况,假如移动的数据量不是太大,我们可以使用EXPORT/IMPORT将数据进行导出/导入。但假如需要搬移的数据量非常庞大,则用这种方法进行数据移动非常缓慢。 在Oracle8i版本中,提供了可以对表空间进行移动的方法,通过搬移表空间可大大降低数据迁移的速度,提高工作效率。
  对表空间进行移动时应注重以下几点:(1)源数据库和目标数据库必须在相同硬件平台上。例如我们可以在Sun Solaris平台的Oracle数据库之间搬移表空间,也可以在windows 2000平台的Oracle数据库之间搬移表空间,但是不能在Sun Solaris/Windows 2000之间搬移表空间。(2)源数据库和目标数据库的字符集和民族字符集必须相同。(3)不能将表空间搬移到具有同名表空间的目标数据库中。(4)在Oracle8i之间搬移表空间时,源数据库和目标数据库的数据块尺寸一定要相同。
  
  下面我们以Oracle8i(8.1.5) for Windows 2000为例说明移动表空间的具体方法。
  
  一、检查要移动的表空间
  当搬移表空间时,假如被搬移表空间中的数据没有和其它表空间中的数据有参照关系,则可直接对此表空间进行搬移;假如被搬移表空间中的数据与其它表空间中的数据有参照关系,那么在移动表空间时,凡与被移动表空间有参照关的表空间也应进行搬移,否则移动到目的地的表空间中的数据是不完整的。例如表空间local包含了表A1,而表空间local2包含了表A1的索引IDX_A1,此时假如要搬移表空间local,则也应同时搬移表空间local2,此时我们称表空间local、local2为自包含的。在进行表空间搬移之前,可以用下列方法查看被搬移的表空间是否为自包含表空间。
  
  SQL>execute dbms_tts.transport_set_check(ts_list=>'local',
  incl_constraints=>TRUE);
  
  参数ts_list用于指定要搬移的表空间,incl_constraints用于指定是否检查完整性约束。
  
  执行完过程dbms_tts.transport_set_check之后,系统将违反自包含表空间的信息存入临时表transport_set_violations。查询该表时,假如没有返回任何信息,说明表空间是自包含的,否则会返回非自含表空间的原因,见下图:
  
   如何移动Oracle数据库的表空间
  
  二、导出表空间信息
  为保持数据文件的一致性,在导出自包含表空间数据字典信息之前,应首先将自包含表空间转变为只读状态,作用是使表空间信息不会发生变化。
  
  SQL>alter tablespace local read only;
  
  SQL>alter tablespace local2 read only;
  
  将表空间设置为只读关态时,会在表空间数据文件上发出检查点,并且其内容不会发生任何变化,此时就可以导出表空间信息了。导出表空间仅仅是导出与其相关的数据字典信息,而不是导出表空间的任何数据,使用如下操作系统命令可导出表空间local和local2的信息。
  
  D:\>EXP transport_tablespace=y tablespaces=local,local2 file=
  
  expdat.dmp
  
  用户名:internal/oracle@test as sysdba
  
  参数:transport_tablespace搬移表空间选项,Y表示导出表空间信息;tablespaces用于指定要导出的表空间;file用于指定存放导出信息的文件。
  
  导出表空间信息之后,使用操作系统命令将表空间数据文件和导出文件(expdat.dmp)复制到目标数据库所在机器相应的目录中。
  
  三、导入表空间
  在将表空间数据文件和导出文件复制到目标数据库所在机器之后,就可以将表空间信息导入到目标数据库中了。导入自包含表空间实际是将数据字典信息从导出文件装载到目标数据中,如表空间名称、表空间所对应数据文件以及数据对象名称等。具体的操作系统命令如下:
  
  D:\>IMP transport_tablespace=y datafiles= 'd:\localdb\local1.dbf'
  
  ,'d:\localdb\local2.dbf’
  
  用户名:internal/oracle@test as sysdba
  
  当执行完上述命令之后,会将表空间local和local2及其所包含的所有数据对象信息导入到目标数据库中。
  
  注重:在Oracle8.1.5中搬移表空间时,源表空间中存放的所有数据对象的所有者在目标数据库中必须存在,假如不存在,则应在导入表空间之前建立相应的用户,然后再导入表空间。

上一篇:Oracle数据库启动监听器不启动或打开出错 人气:1095
下一篇:多节点Oracle9i数据库的复制实现范例 人气:696
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐