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

Oracle 19c 如何在容器数据库上导出和导入进程?

原创 小小亮 2022-12-19
1235

在本文中,我们将了解如何在涉及容器数据库时使用导出-导入实用程序。

在我们的测试用例中,我们有 PROD 和 TEST 服务器。两个数据库版本都是19c,操作系统是OEL 7.9

A. 第一步是准备 Prod 和 Test 数据库的导出过程。

  1. 检查将从主系统导出的模式大小

SELECT (Sum(bytes)/1024/1024) AS total_size_MB FROM dba_segments WHERE owner ='X';

–500 GB

2. 对于这两个系统检查目录路径 ve 磁盘大小。

— on PROD database

SQL> alter session set container=PROD;
SQL> SELECT * FROM dba_directories;
SQL> create directory EXP_DIR as ‘/orabck/export/’;
SQL> grant exp_full_database to helios;
SQL> grant read , write on directory EXP_DIR to helios;

–on TEST database
SQL> alter session set container=TEST;
SQL> SELECT * FROM dba_directories;
SQL> create directory EXP_DIR as ‘/orabck/export/’;
SQL> grant exp_full_database to helios;
SQL> grant read , write on directory EXP_DIR to helios;

3. 您可能需要在删除之前更改 TEST 用户的密码。

select dbms_metadata.get_ddl(‘USER’,’PPC_WEB’) from dual;

–User X on Test database

ALTER USER “X” IDENTIFIED BY VALUES ‘S:F1B891902ADD0F179EB37EBBBD75B548E81064D4691120D214A9A810B810BC87

4. 两个数据库上的表空间检查。

select distinct(TABLESPACE_NAME) from dba_extents where owner='X';

B. EXPORT 流程步骤

  1. 如果您将使用 PARALLEL 选项,请检查 CPU 计数。

–CPU:12

2. 在 Prod 数据库上启动导出过程。

–on prod
nohup expdp helios/xxx@PROD SCHEMAS=X DIRECTORY=EXP_DIR DUMPFILE=X_30032022_%U.dmp PARALLEL=6 LOGFILE=X_30032022.log compression=all EXCLUDE=STATISTICS &

— Control expdp session

SELECT B.USERNAME, A.SID, B.OPNAME, B.TARGET,
ROUND(B.SOFAR*100/B.TOTALWORK,0) || ‘%’ AS “%DONE”, B.TIME_REMAINING,
TO_CHAR(B.START_TIME,’YYYY/MM/DD HH24:MI:SS’) START_TIME
FROM V$SESSION_LONGOPS B, V$SESSION A
WHERE A.SID = B.SID
AND B.OPNAME LIKE ‘%EXPORT%’
ORDER BY 6;

3. 开始复制过程到测试服务器

nohup scp /orabck/export/*.dmp oracle@TEST_SERVER:/yedek/export &

C. 在测试服务器上让我们启动 imp 进程。

  1. 在删除用户之前(如果需要)采用模式脚本
  2. 杀死用户会话

select ‘ALTER SYSTEM KILL SESSION ”’ || SID || ‘,’ || SERIAL# ||’,’|| ‘@’ ||inst_id|| ”’ immediate;’ from gv$session where schemaname=’X’;

3. 锁定用户

ALTER USER X ACCOUNT LOCK;

4. Drop user ==> on test server!!!

DROP USER X CASCADE;

D.开始导入

  1. 检查测试服务器 CPU 计数

–CPU:8

2. 开始导入

–X
export ORACLE_PDB_SID=TEST <<< YOU NEED TO SET IT!

impdp “‘/ as sysdba'” directory=EXP_DIR dumpfile=X_30032022_%U.dmp parallel=4 logfile=imp_X_30032022.log


  1. Check import process SELECT B.USERNAME, A.SID, B.OPNAME, B.TARGET,
    ROUND(B.SOFAR*100/B.TOTALWORK,0) || ‘%’ AS “%DONE”, B.TIME_REMAINING,
    TO_CHAR(B.START_TIME,’YYYY/MM/DD HH24:MI:SS’) START_TIME
    FROM V$SESSION_LONGOPS B, V$SESSION A
    WHERE A.SID = B.SID
    AND B.OPNAME LIKE ‘%IMPORT%’
    ORDER BY 6;

E. Start start for schema after import –> Its recommended

exec dbms_stats.gather_schema_stats('X', cascade=>TRUE,degree=>4);



原文标题:How to export&import process on container database

原文作者:Helios

原文链接:https://heliosguneserol.com/2022/04/07/how-to-exportimport-process-on-container-database/


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

评论