• Oracle 12c pdb的数据泵导入导出


    12c推出了可插拔数据库,在一个容器cdb中以多租户的形式同时存在多个数据库pdb。在为pdb做数据泵导入导出时和传统的数据库有少许不同。

              1,需要为pdb添加tansnames

              2,导入导出时需要在userid参数内指定其tansnames的值,比如 userid=user/pwd@tnsname

     

    数据泵导入导出例子

    1、查看当前的SID,查看pdb并切换到容器数据库,这里的pluggable数据库是pdborcl
    [oracle@xqzt admin]$ echo $ORACLE_SID
    orcl

    登录cdb,查看pdb,

    SQL> show con_name
    
    CON_NAME
    ------------------------------
    CDB$ROOT
    
    SQL> show pdbs
    
        CON_ID CON_NAME              OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
         2 PDB$SEED                      READ ONLY    NO
        3 PDBORCL                    MOUNTED
    
    SQL> alter pluggable database all open;
    
    Pluggable database altered.
    
    SQL> show pdbs
    
        CON_ID CON_NAME              OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
         2 PDB$SEED                      READ ONLY  NO
        3 PDBORCL                       READ WRITE NO

    切换到pdborcl

    SQL> alter salter session set container=pdborcl ;
    
    Session altered.
    
    SQL>
    2、查看示例用户scott,以后的schema级别导入导出就使用该用户的数据。

        参考:Oracle 12c 添加scott用户

    SQL> col tabselect owner, table_name from dba_tables where owner='SCOTT';
    
    OWNER                   TABLE_NAME
    ------------------------------ ----------------------------------------
    SCOTT                   SALGRADE
    SCOTT                   BONUS
    SCOTT                   EMP
    SCOTT                   DEPT
    3、单独创建一个dba权限的数据泵用户
    SQL> grant dba to dp identified by dp;
    
    Grant succeeded.
    4、创建一个数据泵目录dp_dir,路径为oracle家目录
    SQL> create or replace directory dp_dir as  '/home/oracle';
    
    Directory created.
    
    SQL> exit
    5、授予dp用户在数据泵路径有读写权限

    (如果是dba权限的这一步可以省略,为了试验的完整性这里保留)

    SQL> grant read,write on directory dp_dir to dp;
    
    Grant succeeded.
    6、设置tnsnames.ora,增加pdborocl。SERVICE_NAME为pdb的实例名,这里为pdborcl
    [oracle@xqzt admin]$ pwd
    /data/app/oracle/product/12.1.0/dbhome_1/network/admin
    [oracle@xqzt admin]$ cat tnsnames.ora 
    # tnsnames.ora Network Configuration File: /data/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    
    
    PDBORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME =pdborcl)
        )
      )
    7、测试tnsnames.ora的有效性,如果返回OK (0 msec)表示配置成功
    [oracle@xqzt admin]$ tnsping pdborcl
    
    TNS Ping Utility for Linux: Version 12.1.0.2.0 - Production on 10-DEC-2015 09:10:34
    
    Copyright (c) 1997, 2014, Oracle.  All rights reserved.
    
    Used parameter files:
    /data/app/oracle/product/12.1.0/dbhome_1/network/admin/sqlnet.ora
    
    
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xqzt)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =pdborcl)))
    OK (0 msec)
    8、数据泵导出
      • 用户名密码为dp/dp,并且通过tnsnames指向pdborcl

      • 数据泵目录为:dp_dir, OS路径是/home/oracle

      • 导出文件为:/home/oracle/scott_pdborcl.dmp

      • 导出日志为:/home/oracle/scott_pdborcl.log

      • 导出模式为scheme,也可以理解为用户:scott

    [oracle@xqzt ~]$ expdp dp/dp@pdborcl directory=dp_dir dumpfile=scott_pdborcl.dmp logfile=scott_pdborcl.log schemas=scott
    
    Export: Release 12.1.0.2.0 - Production on Thu Dec 10 09:32:05 2015
    
    Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.
    
    Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
    Starting "DP"."SYS_EXPORT_SCHEMA_01":  dp/********@pdborcl directory=dp_dir dumpfile=scott_pdborcl.dmp logfile=scott_pdborcl.log schemas=scott 
    Estimate in progress using BLOCKS method...
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    Total estimation using BLOCKS method: 192 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
    Processing object type SCHEMA_EXPORT/TABLE/TABLE
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
    Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
    . . exported "SCOTT"."DEPT"                              6.023 KB       4 rows
    . . exported "SCOTT"."EMP"                               8.773 KB      14 rows
    . . exported "SCOTT"."SALGRADE"                          6.023 KB      10 rows
    . . exported "SCOTT"."BONUS"                                 0 KB       0 rows
    Master table "DP"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
    ******************************************************************************
    Dump file set for DP.SYS_EXPORT_SCHEMA_01 is:
      /home/oracle/scott_pdborcl.dmp
    Job "DP"."SYS_EXPORT_SCHEMA_01" successfully completed at Thu Dec 10 09:32:29 2015 elapsed 0 00:00:21
    
    [oracle@xqzt ~]$
    10、查看导出文件
    [oracle@xqzt ~]$ ls  -l scott_pdborcl.dmp  scott_pdborcl.log
    -rw-r----- 1 oracle oinstall 356352 12月 10 09:32 scott_pdborcl.dmp
    -rw-r--r-- 1 oracle oinstall   1960 12月 10 09:32 scott_pdborcl.log
    11、为了测试导出文件是否能够正常导入,我们先删除pdborcl的scott用户
    SQL> select count(*) from scott.DEPT;
    
      COUNT(*)
    ----------
         4
    
    SQL> drop user scott cascade  ;
    
    User dropped.
    
    SQL>

    此时访问该用户的表已经不存在了

    SQL> select count(*) from scott.DEPT;
    select count(*) from scott.DEPT
                               *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    12、 导入scott用户
    [oracle@xqzt ~]$ impdp dp/dp@pdborcl directory=dp_dir dumpfile=scott_pdborcl.dmp logfile=scott_pdborcl_imp.log schemas=scott
    
    Import: Release 12.1.0.2.0 - Production on Thu Dec 10 09:39:02 2015
    
    Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.
    
    Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
    Master table "DP"."SYS_IMPORT_SCHEMA_01" successfully loaded/unloaded
    Starting "DP"."SYS_IMPORT_SCHEMA_01":  dp/********@pdborcl directory=dp_dir dumpfile=scott_pdborcl.dmp logfile=scott_pdborcl_imp.log schemas=scott 
    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
    Processing object type SCHEMA_EXPORT/TABLE/TABLE
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    . . imported "SCOTT"."DEPT"                              6.023 KB       4 rows
    . . imported "SCOTT"."EMP"                               8.773 KB      14 rows
    . . imported "SCOTT"."SALGRADE"                          6.023 KB      10 rows
    . . imported "SCOTT"."BONUS"                                 0 KB       0 rows
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
    Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
    Job "DP"."SYS_IMPORT_SCHEMA_01" successfully completed at Thu Dec 10 09:39:06 2015 elapsed 0 00:00:04
    
    [oracle@xqzt ~]$

    13、 测试导入结果

    SQL> select count(*) from scott.DEPT  ;
    
      COUNT(*)
    ----------
         4

    导入成功!

  • 相关阅读:
    python环境搭建以及jupyter notebook的安装和启动
    Python base(三)
    Python base(二)
    Python base(一)
    python之装饰器
    python 内置函数 (二)
    函数的简单写法
    python中set的用法
    python在终端运行时增加一些效果
    序列化写到类里
  • 原文地址:https://www.cnblogs.com/xqzt/p/5034261.html
Copyright © 2020-2023  润新知