暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 更改架构和架构对象名称

askTom 2017-06-15
516

问题描述

我们有一个项目,我们计划更改架构名称和架构中的对象
假设表名是Schemaname _ 有新的架构后缀同样适用于包


示例当前架构名称-SCOTT
Schema - SCOTT _ 中的对象

我们正计划将SCOTT schema分解并替换为其他schema名称-VALUEREPORTER,因为SCOTT在SCHEMA中没有任何商业意义和对象作为vr_

我想确保在进行此更改时不会错过任何内容,

这是为了标准化所有的模式。

您能否让我知道作为开发人员的所有步骤,我应该小心。

谢谢你的帮助

专家解答

要更改 * schema *,您必须卸载/重新加载对象。DataPump可以协助 * 部分 * 工作,但不是全部,例如

SQL> create user demo identified by demo;

User created.

SQL>
SQL> grant resource, connect to demo;

Grant succeeded.

SQL> alter user demo quota 100m on users;

User altered.

SQL>
SQL> grant read, write on directory TEMP to demo;

Grant succeeded.

SQL>
SQL> connect demo/demo
Connected.

SQL>
SQL> create table demo.demo_t1 ( x int );

Table created.

SQL> create table demo.demo_t2 ( x int );

Table created.

SQL> create procedure demo.demo_proc1 is begin null; end;
  2  /

Procedure created.

SQL>
SQL> create or replace trigger demo.demo_t1_trg
  2  before insert or update on demo.demo_t1
  3  begin
  4    null;
  5  end;
  6  /

Trigger created.

SQL>
SQL>
SQL> create or replace trigger demo.demo_t2_trg
  2  before insert or update on demo_t2
  3  begin
  4    null;
  5  end;
  6  /

Trigger created.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
C:\Users\hamcdc>
C:\Users\hamcdc>expdp userid=demo/demo directory=TEMP dumpfile=my_schema

Export: Release 12.2.0.1.0 - Production on Wed Jul 5 09:57:17 2017

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Starting "DEMO"."SYS_EXPORT_SCHEMA_01":  userid=demo/******** directory=TEMP dumpfile=my_schema
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
. . exported "DEMO"."DEMO_T1"                                0 KB       0 rows
. . exported "DEMO"."DEMO_T2"                                0 KB       0 rows
Master table "DEMO"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for DEMO.SYS_EXPORT_SCHEMA_01 is:
  C:\TEMP\MY_SCHEMA.DMP
Job "DEMO"."SYS_EXPORT_SCHEMA_01" successfully completed at Wed Jul 5 09:57:45 2017 elapsed 0 00:00:27



SQL> drop user vr cascade;

User dropped.

SQL>
SQL> create user vr identified by vr;

User created.

SQL>
SQL> grant resource, connect to vr;

Grant succeeded.

SQL> alter user vr quota 100m on users;

User altered.

SQL>
SQL> grant read, write on directory TEMP to vr;

Grant succeeded.

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
C:\Users\hamcdc>
C:\Users\hamcdc>impdp userid=vr/vr directory=TEMP dumpfile=my_schema remap_table=demo_t1:vr_t1 remap_table=demo_t2:vr_t2 remap_schema=demo:vr

Import: Release 12.2.0.1.0 - Production on Wed Jul 5 10:06:06 2017

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Master table "VR"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "VR"."SYS_IMPORT_FULL_01":  userid=vr/******** directory=TEMP dumpfile=my_schema remap_table=demo_t1:vr_t1 remap_table=demo_t2:vr_t2 remap_schema=demo:vr
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "VR"."VR_T1"                                    0 KB       0 rows
. . imported "VR"."VR_T2"                                    0 KB       0 rows
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
ORA-39083: Object type TRIGGER:"VR"."DEMO_T1_TRG" failed to create with error:
ORA-00942: table or view does not exist

Failing sql is:
CREATE EDITIONABLE TRIGGER "VR"."DEMO_T1_TRG"
before insert or update on demo.demo_t1
begin
  null;
end;

ORA-39083: Object type TRIGGER:"VR"."DEMO_T2_TRG" failed to create with error:
ORA-00942: table or view does not exist

Failing sql is:
CREATE EDITIONABLE TRIGGER "VR"."DEMO_T2_TRG"
before insert or update on demo_t2
begin
  null;
end;

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "VR"."SYS_IMPORT_FULL_01" completed with 2 error(s) at Wed Jul 5 10:06:08 2017 elapsed 0 00:00:01

SQL> conn vr/vr
Connected.

SQL> select object_name from obj;

OBJECT_NAME
--------------------------------------
DEMO_PROC1
VR_T1
VR_T2


但是您可以看到仍然需要管理触发器,过程等内容。

在这里看看增量而不是 “大爆炸” 的方法

https://asktom.oracle.com/pls/asktom/f?p=100:11::P11_QUESTION_ID:30020192108317
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论