Клониране на схема
Без категория
фев. 102009
Най-простия начин:
expdp system@db schemas=abc directory=data_pump_dir dumpfile=abc.dp logfile=exp_abc.log
impdp system@db schemas=abc directory=data_pump_dir dumpfile=abc.dp logfile=imp_abc.log REMAP_SCHEMA=abc:def
После трябва да се оправят само грантовете от други към тази схема.
Не че е кой-знае какво, ама ми писна всеки път да се чудя какъв беше синтаксиса за нещо толкова елементарно. За това го пиша тук. Ако не те интересува – just ignore.
3 Responses to “Клониране на схема”
Sorry, the comment form is closed at this time.
Дори няма нужда от export. Ако искате да клонирате ABC схема в база данни XYZ така, че новата схема да е също в XYZ, но да се казва ABC2, то тогава:
1. Създавате схема ABC2 и то празна, без специалните грантове даже, те ще се създадат при импорта.
2. В tnsnames.ora на сървъра слагате abc2 entry за същата база данни (това с цел да направим dummy db link към същата база). Това е възможно, въпреки че в Intenet много твърдят че не ставало в Oracle такова нещо.
3. Правите database link abc2:
create database link abc2 connect to system identified by manager using 'abc';
4.
impdp system/manager network_link=abc2 remap_schema=abc:abc2 job_name=ot_abac_v_abc2 nologfile=Y parallel=4
5. Даже и remap_tablespace слагаме в 4 за да не фрагментираме tablespace-овете. Нека всяка схема да си има собствени tablespaces.
Това е особено полезно ако схемата е голяма над 10G например, тогава няма нужда от extra space за export dumpa. И става по-бързо.
Много приятна идея! Няколко уточнения:
– трябва да зададем и schemas=abc, иначе май ще преточим цялата база (не съм пробвал)
– не е нужно да създаваме потребителя, impdp се грижи за това
– защо да не използваме съществуващия implicit loopback database link? Така цялата процедура ще стане супер проста, само с една стъпка:
impdp system/manager@XYZ schemas=ABC network_link=XYZ remap_schema=ABC:ABC2 job_name=ot_abc_v_abc2 nologfile=Y parallel=4
Така е разбира се най-лесно, ама не го бях пробвал до сега. Разбира се, че си прав и става:
impdp \"/ as sysdba\" schemas=ico network_link=RTVQ remap_schema=ico:ico2 job_name=ot_abc_v_abc2 nologfile=Y
Import: Release 10.2.0.4.0 - 64bit Production on Wednesday, 11 February, 2009 15:31:16
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYS"."OT_ABC_V_ABC2": "/******** AS SYSDBA" schemas=ico network_link=RTVQ remap_schema=ico:ico2 job_name=ot_abc_v_abc2 nologfile=Y
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 0 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Job "SYS"."OT_ABC_V_ABC2" successfully completed at 15:31:54