【问题标题】:Looking for working example of Oracle DBMS_WM.Export_Schemas function寻找 Oracle DBMS_WM.Export_Schemas 函数的工作示例
【发布时间】:2020-11-11 01:12:31
【问题描述】:

我正在使用 Oracle 19.6,并尝试使用 Workspace Manager 导出版本化数据。 官方文档 (https://docs.oracle.com/en/database/oracle/oracle-database/19/adwsm/DBMS_WM-reference.html#GUID-9485C70D-9CF9-4649-8785-06C7D6CF32D6) 显示了一个示例,但我无法使其工作。

使用“sys”用户,代码在“dbms_wm.export_schemas(job_name);”行返回“ORA-20283: invalid job_name parameter specified”

使用专用用户(文档说“使用 SYSDBA 权限时不应创建数据泵作业”)我收到另一个错误:

31626. 00000 -  "job does not exist"
*Cause:    An invalid reference to a job which is no longer executing,
           is not executing on the instance where the operation was
           attempted, or that does not have a valid Master Table.
           Refer to any following error messages for clarification.
*Action:   Start a new job, or attach to an existing job that has a
           valid Master Table.

另一件困扰我的事情是示例代码不像常规数据泵作业那样调用“DBMS_DATAPUMP.START_JOB”。

SR 长期以来一直向 Oracle 支持开放,因此非常感谢任何帮助。

谢谢。

编辑: 根据文档,可以使用数据泵和 FULL=Y 选项导出和导入版本化数据。这样做(并事先禁用所有 WMSYS 触发器),返回大量 ORA-39111 和 ORA-31684,因为我没有将对象删除到目标数据库中,但奇怪的是,“SPATIAL_CSW_ADMIN_USR”用户不存在于转储中导致级联错误。

在一天结束时,导入“成功”并出现 5685 错误,但 ALL_WORKSPACES 表的内容仅显示源数据库中存在 12 个时的默认条目(命名为 LIVE)。

【问题讨论】:

  • 退一步,有没有DBA可以通过Export_schemas函数或者其他方法成功导出和导入Oracle工作空间?

标签: oracle plsql datapump


【解决方案1】:

这是我使用 dbms_wm.export_schemas 成功导出版本控制表的步骤:

创建一个专用用户来运行导出:

create user sigea_exp identified by sigea_exp;
grant create session, create table, create procedure, exp_full_database, imp_full_database, DATAPUMP_EXP_FULL_DATABASE to sigea_exp;
GRANT UNLIMITED TABLESPACE TO sigea_exp;
grant read, write on directory EXPORT_AUTOMATIQUE to sigea_exp;
begin
    DBMS_WM.GRANTSYSTEMPRIV('ACCESS_ANY_WORKSPACE','sigea_exp', 'NO',TRUE);
end;

检查 WMSYS 架构不包含错误(连接为“sys”没有以下语句返回的行):

select * from ALL_OBJECTS where status = 'INVALID' and OWNER = 'WMSYS';

运行以下脚本,仔细选择 DIRECTORY 的名称(此处为“EXPORT_AUTOMATIQUE”):

DECLARE
  job_name varchar2(128) := 'EXPORT_EAU_2';
  dpj number ;
BEGIN
  dpj := dbms_datapump.open('EXPORT', 'SCHEMA', null, job_name, 'COMPATIBLE');
  dbms_datapump.add_file(dpj, 'eau_schema.dmp', 'EXPORT_AUTOMATIQUE');
  dbms_datapump.add_file(dpj, 'eau_schema.log', 'EXPORT_AUTOMATIQUE', filetype=>dbms_datapump.KU$_FILE_TYPE_LOG_FILE);
  dbms_wm.export_schemas(job_name, 'WMSYS_N', FALSE);
  DBMS_DATAPUMP.START_JOB(dpj);
END;
/

【讨论】:

    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 2022-01-20
    • 2022-11-07
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2023-03-11
    • 2012-02-25
    相关资源
    最近更新 更多