传输表空间迁移技术可以非常高效的完成数据任务所用时间基本等_第1页
传输表空间迁移技术可以非常高效的完成数据任务所用时间基本等_第2页
传输表空间迁移技术可以非常高效的完成数据任务所用时间基本等_第3页
传输表空间迁移技术可以非常高效的完成数据任务所用时间基本等_第4页
传输表空间迁移技术可以非常高效的完成数据任务所用时间基本等_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle 传输表空间表空间迁移技术可以非常高效的完成数据的迁移任务,所用时间基本等于物理拷贝数据文件的时间。不过有一些具体环境的限制,在真正使用之前,需要进行严格的测试。将完成表空间迁移过程中需要注意的事项列一下,如果不全,请大家补充。【注意事项一】:导入之前,目标数据库中用户必须已经存在存在。【注意事项二】:导入之前,目标数据库中不能存在同名的表空间,如迁移同名的表空间,需要对迁移之前的源数据库或待迁入数据库中的表空间改名。【注意事项三】:导出前需要将表空间置为“只读状态”【注意事项四】:需要以 SYSDBA 权限完成表空间迁移,不能搬移 system 表空间和 sys 用户对象所在的表

2、空间。源数据库和目标数据库须具有相同的数据库字符集和民族字符集(通过 nls_database_parameters 视图查看)【注意事项五】:表空间需要“自包含”,不符合“自包含”的情况如下(1)【索引】表空间 TBS_SEC_D 上存在索引,但是这个索引的基表在另外一个表空间上(后面的实验将会演示这种约束的情况);(2)【LOB】表在表空间 TBS_SEC_D 上,但是表上的 LOB 字段在其他表空间上;【约束】表的约束有的在表空间 TBS_SEC_D 上,但是其他的约束在另外的表空间上;【分区表】分区表的一些分区在表空间 TBS_SEC_D 上,但是其他的其他的分区在另外的表空间上;【

3、注 意 事 项 六 】: 通 过 查 询 动 态 性 能 视 图 select platform_name fromv$transportable_platform;显示在哪些之间可以搬移表空间。源数据库创建用户、表空间、表创建被传输的表空间:查看表空间SQL select tablespace_name from dba_tablespa;SQLcreatetablespacetbs_singledatafile /u01/app/oracle/oradata/orcl/tbs_single01.dbf size 100M extent managementlocal;查看表空间总大小,及其

4、已使用大小创建 tranp 用户,并将表空间作为默认表空间:查看用户属于哪个表空间SQL select username,default_tablespace from dba_users;SQL create user tranentified by oracle default tablespace tbs_single;删除 tablespaceDROP TABLESPACE TBS_SINGLEINCLUDING CONTENTS AND DATAFILES;SQLselect a.tablespace_name,a.bytes/1024/1024 Sum MB,(a.bytes-b.

5、bytes)/1024/1024 used MB,b.bytes/1024/1024 free MB,round(a.bytes-b.bytes)/a.bytes)*100,2) percent_usedfrom(select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name)

6、 bwhere a.tablespace_name=b.tablespace_nameorder by (a.bytes-b.bytes)/a.bytes) desc;授予 connect,resource 角色授予给 tranp 用户:查看用户的角色SQL select * fromdba_role_privs where grantee=TRANP;在该表空间创建测试用表:查看表属于哪个表空间SQL SELECT table_name,tablespace_name from dba_tables where table_name=TAB1;检查源、目标的字节序源数据库(windows s

7、erver 2003)上的字节序:SELECT des.PLATFORM_NAME, ENDIAN_FORMATFROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE desSQL create table tranp.tab1 aect * from sys.dba_objects;SQL grant connect,resource to tranp;目标数据库(OEL 5.2)上的字节序:由于源数据库和目标数据库的字节序均为Little-endian,可以省去字节序转化的步骤。检查表空间是否自包含检查 TBS_SINGLE 表空间是否自包含:没有选定行说

8、明表空间 TBS_SINGLE 为自包含:SQL SELECT * FROM TRANSPORT_SET_VIOLATIONS;SQL EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK(TBS_SINGLE,true);SELECT des.PLATFORM_NAME, ENDIAN_FORMATFROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE des WHERE tp.PLATFORM_NAME = des.PLATFORM_NAME;WHERE tp.PLATFORM_NAME = des.PLATFORM_NAME;产生传输

9、表空间集创建目录对象,并设置可读可写:oracleoracle $ mkdir /home/oracle/tranp将表空间 tbs_single 设置为只读。使用数据泵导出传输表空间的源数据:传送表空间集将表空间的数据文件和导出的DMP 文件,传送到目标数据库上。拷贝导出的 DMP 文件到目标:拷贝表空间的数据文件到目标:expdp system/oracle dumpfile= tbs_single01 directory=tranp_dir transport_tablespa=tbs_singleSQL alter tablespace tbs_single read only;SQL

10、 create DIRECTORY tranp_dir as /home/oracle/tranp;SQL grant read,write on DIRECTORY tranp_dir to public;导入表空间在目标数据库中,创建目录:授予目录读写权限:创建用户:授予 connect,resource 角色授予给 tranp 用户:使用数据库泵,导入到目标数据库中。SQL host impdp system/oracle dumpfile=tbs_single01.dmpdirectory=tranp_dirtransport_datafiles=/home/oracle/tranp/

11、tbs_single01.dbfremap_schema=tranp:tranpSQL grant connect,resource to tranp;SQL create user tranentified by oracle;SQL grant read,write on directory tranp_dir to public;SQL create directory tranp_dir as /home/oracle/tranp;将被导入的表空间设置为可读可写:测试传输结果以 sys 用户登录数据库,查看 v$tablespace 视图:从 dba_tablespa视图中查看表空间名

12、称和状态:SQL select TABLESPACE_NAME,SUS from dba_tablespa;SQL conn / as sysdbaSQL select name from v$tablespace;SQL alter tablespace TBS_SINGLE read write;TBS_SINGLE 表空间以成功传输到目标数据库。以 tranp 用户连接到数据库,查看 user_tables 视图:查看TBS_SINGLE 表空间的 tab1 表中的数目:使用数据库泵,导入到目标数据库中。impdpsystem/oracledumpfile=TBS_SINGLE01.DM

13、Pdirectory=tranp_dirtransport_datafiles=/u01/oradata/orcl/datafile/TBS_SINGLE01.DBF remap_schema=tranp:tranpSQL select count(*) from tab1;SQL conn tranp/oracleSQL select table_name from user_tables;发生错误,源数据库与目标数据库字符集不一致。补充:修改数据库的字符集将源数据库与目标数据库的字符集设置成为相同的utf81. 修改源数据库字符集:关闭数据库:开启数据库,处于mount 状态:将数据库设置

14、成受限模式:打开数据库:修改数据库字符集:关闭数据库:开启数据库,处于 mount 状态:将数据库设置成禁用受限模式:打开数据库:alter system disable restricted ses;startup mount;shutdown immediate;alter database character seternal_use utf8;alter database open;alter system enable restricted ses;startup mount;shutdown immediate;查看数据库的字符集:SQL select tab1.aa|_|tab2.bb|.|tab3.cc from(select VALUE$ aa from ps$ where name=NLS_LANGUAGE)tab1, (sele

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论