分享
 
 
 

Transportable Tablespaces

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

FROM:

http://www.idevelopment.info/data/Oracle/DBA_tips/Oracle8i_New_Features/ORA8i_17.shtml

Transportable Tablespaces

by Jeff Hunter, Sr. Database Administrator

Contents

Overview

Introduction to Transportable Tablespaces

Using Transportable Tablespaces

Overview Oracle's Transportable Tablespace is one of those much awaited features that was introduced in Oracle8i (8.1.5) and is commonly used in Data Warehouses (DW). Using transportable tablespaces is much faster than using other utilities like export/import, SQL*Plus copy tables, or backup and recovery options to copy data from one database to another. This article provides a brief introduction into configuring and using transportable tablespaces. Introduction to Transportable Tablespaces Before covering the details of how to setup and use transportable tablespaces, let's first discuss some of the terminology and limitations to provide us with an introduction. The use of transportable tablespaces are much faster than using export/import, SQL*Plus copy tables, or backup and recovery options to copy data from one database to another. A transportable tablespace set is defined as two components: All of the datafiles that make up the tablespaces that will be moved. AND An export that contains the data dictionary information about those tablespaces. COMPATIBLE must be set in both the source and target database to at least 8.1. When transporting a tablespace from an OLTP system to a data warehouse using the Export/Import utility, you will most likely NOT need to transport TRIGGER and CONSTRAINT information that is associated with the tables in the tablespace you are exporting. That is, you will set the TRIGGERS and CONSTRAINTS Export utility parameters equal to "N". The data in a data warehouse is inserted and altered under very controlled circumstances and does not require the same usage of constraints and triggers as a typical operational system does. It is common and recommended though that you use the GRANTS option by setting it to Y. The TRIGGERS option is new in Oracle8i for use with the export command. It is used to control whether trigger information, associated with the tables in a tablespace, are included in the tablespace transport. Limitations of Transportable Tablespaces: The transportable set must be self-contained. Both the source and target database must be running Oracle 8.1 or higher release. The two databases do not have to be on the same release The source and target databases must be on the same type of hardware and operating-system platform. The source and target databases must have the same database block size. The source and target databases must have the same character set. A tablespace with the same name must not already exist in the target database. Materialized views, function-based indexes, scoped REFs, 8.0 compatible advanced queues with multiple-recipients, and domain indexes can't be transported in this manner. (As of Oracle8i) Users with tables in the exported tablespace should exist in the target database prior to initiating the import. Create the user reported by the error message. Explanation: The metadata exported from the target database does not contain enough information to create the user in the target database. The reason is that, if the metadata contained the user details, it might overwrite the privileges of an existing user in the target database. (i.e. If the user by the same name already exists in the target database) By not maintaining the user details, we preserve the security of the database. Using Transportable Tablespaces In this section, we finally get to see how to use transportable tablespaces. Here is an overview of the steps we will perform in this section: Verify that the set of source tablespaces are self-contained Generate a transportable tablespace set. Transport the tablespace set Import the tablespaces set into the target database. In this example, we will be transporting the tablespaces, "FACT1, FACT2, and FACT_IDX" from a database named DWDB to REPORTDB. The user that owns these tables will be "DW" and password "DW". Verify Self-Contained Status with the DBMS_TTS Package To verify that all tablespaces to transport are self-contained, we can use the TRANSPORT_SET_CHECK procedure within the DBMS_TTS PL/SQL Package. The first parameter to this procedure is a list of the tablespaces to transport. Keep in mind that all indexes for a table, partitions, and LOB column segments in the tablespace must also reside in the tablespace set. The second parameter to this procedure is a boolean value that indicates whether or not to check for referential integrity. SQL> connect sys/change_on_install@dwdb as sysdbaSQL> exec DBMS_TTS.TRANSPORT_SET_CHECK('fact1, fact2', TRUE);SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;VIOLATIONS--------------------------------------------------------------------------------Index DW.DEPT_PK in tablespace FACT_IDX enforces primary constriants of table DW.DEPT in tablespace FACT1Index DW.EMP_PK in tablespace FACT_IDX enforces primary constriants of table DW.EMP in tablespace FACT1OOOPS! As we can see from the above example, I forgot to include all tablespaces that will make this self-contained. In this example, I forgot to include the FACT_IDX tablespace. Let's correct that: SQL> exec DBMS_TTS.TRANSPORT_SET_CHECK('fact1, fact2, fact_idx', TRUE);SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;no rows selectedGenerate a Transportable Tablespace Set To generate a Transportable Tablespace Set, you will need to perform the following: Place all tablespace within the tablespace set in READ ONLY mode. Use Export to gather tablespace data-dictionary information. Copy datafiles and the export dump from the source location to the target location. Place all tablespace within the tablespace set back to READ/WRITE. % sqlplus "sys/change_on_install@dwdb as sysdba"SQL> ALTER TABLESPACE fact1 READ ONLY;SQL> ALTER TABLESPACE fact2 READ ONLY;SQL> ALTER TABLESPACE fact_idx READ ONLY;SQL> exit% exp userid=\"sys/change_on_install@dwdb as sysdba\" transport_tablespace=y tablespaces=fact1,fact2,fact_idx triggers=y constraints=y grants=y file=fact_dw.dmp% cp /u10/app/oradata/DWDB/fact1_01.dbf /u10/app/oradata/REPORTDB/fact1_01.dbf% cp /u10/app/oradata/DWDB/fact2_01.dbf /u10/app/oradata/REPORTDB/fact2_01.dbf% cp /u09/app/oradata/DWDB/fact_idx01.dbf /u09/app/oradata/REPORTDB/fact_idx01.dbf% sqlplus "sys/change_on_install@dwdb as sysdba"SQL> ALTER TABLESPACE fact1 READ WRITE;SQL> ALTER TABLESPACE fact2 READ WRITE;SQL> ALTER TABLESPACE fact_idx READ WRITE;SQL> exitTransport the Tablespace Set To actually transport the tablespace, this is nothing more than copying (or FTP'ing) all tablespace set datafiles to be put in their proper location on the target database. In the section previous to this, we did that with the cp command in UNIX. In some cases this would be necessary if the files where copied off to a staging area in the previous step. Import the Tablespace Set Before actually importing the tablespace(s) into the target database, you will need to ensure that all users that own segments in the imported tablespaces exist. For this example, the only user that owns segments in the exported tablespaces is DW. I will create this user: % sqlplus "sys/change_on_install@reportdb as sysdba"SQL> create user dw identified by dw default tablespace users;SQL> grant dba, resource, connect to dw;SQL> exitWe now use the Import utility to bring the tablespace set's data-dictionary information into the target database. The two required parameters are TRANSPORT_TABLESPACE=Y and DATAFILES='...' as in the following example: % imp userid=\"sys/change_on_install@reportdb as sysdba\" transport_tablespace=y datafiles='/u10/app/oradata/REPORTDB/fact1_01.dbf, /u10/app/oradata/REPORTDB/fact2_01.dbf, /u09/app/oradata/REPORTDB/fact_idx01.dbf' file=fact_dw.dmpFinal Cleanup When the tablespaces are successfully imported into the target database, they are in READ ONLY mode. If you intend to use the tablespaces for READ WRITE, you will need to manually alter them: % sqlplus "sys/change_on_install@reportdb as sysdba"SQL> ALTER TABLESPACE fact1 READ WRITE;SQL> ALTER TABLESPACE fact2 READ WRITE;SQL> ALTER TABLESPACE fact_idx READ WRITE;SQL> exitPage Count: 261

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有