签到成功

知道了

CNDBA社区CNDBA社区

Oracle 单实例 11g 迁移到12c 示例 -- 使用数据泵

2016-09-06 01:12 7138 0 原创 Oracle 18c
作者: dave


http://www.cndba.cn/dave/article/215

1    环境说明
1.1     源库

[root@ahzhixin ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID:    OracleServer
Description:    Oracle Linux Server release 6.5
Release:    6.5
Codename:    n/a[root@ahzhixin ~]#


SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE    11.2.0.4.0    Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production




1.2     目标库

[root@Ora12c ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID:    OracleServer
Description:    Oracle Linux Server release 6.4
Release:    6.4
Codename:    n/a[root@Ora12c ~]#

SQL> select * from v$version;

BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production              0
PL/SQL Release 12.1.0.2.0 - Production                                                    0
CORE    12.1.0.2.0    Production                                                                0
TNS for Linux: Version 12.1.0.2.0 - Production                                            0
NLSRTL Version 12.1.0.2.0 - Production                                                    0

5 rows selected.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
SQL>



2    创建测试数据

数据迁移一般都是按用户来操作,所以我们这里在源库创建一个测试用户,cndba,然后导入到12c PDB的PDB1的实例中。

在源库操作:

http://www.cndba.cn/dave/article/215
http://www.cndba.cn/dave/article/215
http://www.cndba.cn/dave/article/215
http://www.cndba.cn/dave/article/215

SQL> set lin 120
SQL> col file_name for a50
SQL> l
  1* select file_name,tablespace_name from dba_data_files
SQL> /

FILE_NAME                       TABLESPACE_NAME
-------------------------------------------------- ------------------------------
/u01/app/oracle/oradata/ahzhxin/dave01.dbf       DAVE
/u01/app/oracle/oradata/ahzhxin/users01.dbf       USERS
/u01/app/oracle/oradata/ahzhxin/undotbs01.dbf       UNDOTBS1
/u01/app/oracle/oradata/ahzhxin/sysaux01.dbf       SYSAUX
/u01/app/oracle/oradata/ahzhxin/system01.dbf       SYSTEM


SQL> create tablespace cndba datafile '/u01/app/oracle/oradata/ahzhxin/cndba01.dbf' size 50m;
Tablespace created.

SQL> create user cndba identified by cndba;
User created.

SQL> grant connect,resource,dba to cndba;
Grant succeeded.

SQL> conn cndba/cndba
Connected.
SQL> create table anqing as select * from dba_objects;
Table created.

SQL> create table huaining as select * from dba_objects;
Table created.

SQL>



3    Expdp 导出数据

SQL> select * from dba_directories;

OWNER       DIRECTORY_NAME          DIRECTORY_PATH
---------- ------------------------------ --------------------------------------------------------------------------------
SYS       BACKUP              /u01/backup
SYS       XMLDIR              /u01/app/oracle/product/11.2.0/db_1/rdbms/xml
SYS       ORACLE_OCM_CONFIG_DIR      /u01/app/oracle/product/11.2.0/db_1/ccr/hosts/ahzhixin.com/state
SYS       DATA_PUMP_DIR          /u01/app/oracle/admin/ahzhxin/dpdump/
SYS       ORACLE_OCM_CONFIG_DIR2      /u01/app/oracle/product/11.2.0/db_1/ccr/state

这里直接使用backup的directory。[oracle@ahzhixin backup]$ expdp cndba/cndba directory=backup dumpfile=cndba.dmp logfile=cndba.log schemas=cndba

Export: Release 11.2.0.4.0 - Production on Thu Sep 17 13:31:12 2015

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

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "CNDBA"."SYS_EXPORT_SCHEMA_01":  cndba/******** directory=backup dumpfile=cndba.dmp logfile=cndba.log schemas=cndba
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 20 MB
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/COMMENT
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
. . exported "CNDBA"."ANQING"                            8.393 MB   86569 rows
. . exported "CNDBA"."HUAINING"                          8.393 MB   86570 rows
Master table "CNDBA"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for CNDBA.SYS_EXPORT_SCHEMA_01 is:
  /u01/backup/cndba.dmp
Job "CNDBA"."SYS_EXPORT_SCHEMA_01" successfully completed at Thu Sep 17 13:31:39 2015 elapsed 0 00:00:24[oracle@ahzhixin backup]$

把dmp 文件复制到12c的机器上:[oracle@ahzhixin .ssh]$ scp /u01/backup/cndba.dmp oracle@192.168.3.30:/home/oracle
The authenticity of host '192.168.3.30 (192.168.3.30)' can't be established.
RSA key fingerprint is 28:73:95:81:6e:52:f5:3a:17:e1:59:98:6b:f9:20:5c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.3.30' (RSA) to the list of known hosts.
oracle@192.168.3.30's password:
cndba.dmp                                                                                                                  100%   17MB  17.0MB/s   00:01    
[oracle@ahzhixin .ssh]$



4    Impdp 导入数据

根据计划,我们导入PDB中。http://www.cndba.cn/dave/article/215http://www.cndba.cn/dave/article/215

http://www.cndba.cn/dave/article/215
http://www.cndba.cn/dave/article/215

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 PDB1               READ WRITE NO
SQL>[oracle@Ora12c u01]$ mkdir -p /u01/backup[oracle@Ora12c ~]$ pwd
/home/oracle[oracle@Ora12c ~]$ cp cndba.dmp /u01/backup


创建对应的用户和表空间,如果不一直则需要进行remap。

SQL> alter session set container=pdb1;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
PDB1
SQL>

SQL> set lin 140
SQL> col FILE_NAME for a60
SQL> select file_name,tablespace_name from dba_data_files;

FILE_NAME                             TABLESPACE_NAME
------------------------------------------------------------ ------------------------------
/u01/app/oracle/oradata/dave/pdb1/system01.dbf             SYSTEM
/u01/app/oracle/oradata/dave/pdb1/sysaux01.dbf             SYSAUX
/u01/app/oracle/oradata/dave/pdb1_users02.dbf             USERS
/u01/app/oracle/oradata/dave/pdb1/ado1.dbf             ADO1
/u01/app/oracle/oradata/dave/pdb1/ado2.dbf             ADO2

SQL> create tablespace cndba datafile '/u01/app/oracle/oradata/dave/pdb1/cndba01.dbf' size 50m;
Tablespace created.

SQL> create user cndba identified by cndba;
User created.

SQL> grant resource,connect,dba to cndba;
Grant succeeded.

SQL> select file_name,tablespace_name from dba_data_files;
FILE_NAME                             TABLESPACE_NAME
------------------------------------------------------------ ------------------------------
/u01/app/oracle/oradata/dave/pdb1/system01.dbf             SYSTEM
/u01/app/oracle/oradata/dave/pdb1/sysaux01.dbf             SYSAUX
/u01/app/oracle/oradata/dave/pdb1_users02.dbf             USERS
/u01/app/oracle/oradata/dave/pdb1/ado1.dbf             ADO1
/u01/app/oracle/oradata/dave/pdb1/ado2.dbf             ADO2
/u01/app/oracle/oradata/dave/pdb1/cndba01.dbf             CNDBA

6 rows selected.



--tnsnames 文件中添加pdb的service:[oracle@Ora12c admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

CNDBA =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Ora12c)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = cndba)
    )
  )

pdb1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = Ora12c)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdb1)
    )
  )

SQL> show con_name
CON_NAME
------------------------------
PDB1
SQL>  create directory backup as '/u01/backup';

Directory created.



使用impd 导入数据:[oracle@Ora12c admin]$ impdp cndba/cndba@pdb1 directory=backup dumpfile=cndba.dmp logfile=pdb.log logtime=all table_exists_action=replace  schemas=cndba  transform=disable_archive_logging:y

Import: Release 12.1.0.2.0 - Production on Thu Apr 23 03:47:28 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
23-APR-15 03:47:33.135: Master table "CNDBA"."SYS_IMPORT_SCHEMA_01" successfully loaded/unloaded
23-APR-15 03:47:33.869: Starting "CNDBA"."SYS_IMPORT_SCHEMA_01":  cndba/********@pdb1 directory=backup dumpfile=cndba.dmp logfile=pdb.log logtime=all table_exists_action=replace schemas=cndba transform=disable_archive_logging:y
23-APR-15 03:47:34.058: Processing object type SCHEMA_EXPORT/USER
23-APR-15 03:47:34.612: ORA-31684: Object type USER:"CNDBA" already exists
23-APR-15 03:47:34.671: Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
23-APR-15 03:47:34.732: Processing object type SCHEMA_EXPORT/ROLE_GRANT
23-APR-15 03:47:34.809: Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
23-APR-15 03:47:34.857: Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
23-APR-15 03:47:35.322: Processing object type SCHEMA_EXPORT/TABLE/TABLE
23-APR-15 03:47:35.773: Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
23-APR-15 03:47:37.118: . . imported "CNDBA"."ANQING"                            8.393 MB   86569 rows
23-APR-15 03:47:38.248: . . imported "CNDBA"."HUAINING"                          8.393 MB   86570 rows
23-APR-15 03:47:38.398: Job "CNDBA"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at Thu Apr 23 03:47:38 2015 elapsed 0 00:00:09[oracle@Ora12c admin]$




5    验证http://www.cndba.cn/dave/article/215

SQL> alter session set container=pdb1;
Session altered.

SQL> show con_name
CON_NAME
------------------------------
PDB1

--连接pdb 必须加上service:
SQL> conn cndba/cndba@pdb1;
Connected.

SQL> select table_name from user_tables;

TABLE_NAME
--------------------------------------------------------------------------------------------------------------------------------
ANQING
HUAINING

导入成功。


版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2262
    原创
  • 3
    翻译
  • 579
    转载
  • 192
    评论
  • 访问:8092775次
  • 积分:4350
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ