目标端为rac 并行+network_link导入测试

本文记录了一次针对Oracle RAC环境的目标端进行并行导入测试的过程,包括环境配置、导入脚本、日志输出等内容,并对测试中遇到的问题进行了记录。

目标端为rac 并行+network_link导入测试

drop user DF cascade;
drop user RPORT cascade;

drop tablespace DF_TRAC  including contents and datafiles;
drop tablespace RPORT_TRAC  including contents and datafiles;

create tablespace DF_TRAC datafile '+DATA' size 3G;
create tablespace RPORT_TRAC datafile '+DATA' size 2G;

扩展闪回

ALTER SYSTEM SET db_recovery_file_dest_size=6G scope=both;

tnsname.ora
[oracle@node1 ~]$ cat /u01/app/oracle/product/11.2.4/db_1/network/admin/tnsnames.ora

    # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.4/db_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.

    RACDB =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = scan-vip)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = racdb)
        )
      )

expdp 脚本

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 
time impdp  system/oracle321 schemas=DF,RPORT remap_tablespace=DF_TBS:DF_TRAC,RPORT_TBS:RPORT_TRAC DIRECTORY=EXPDP network_link=link_imp211racdb logfile=racdb_2userimpdp_test.log EXCLUDE=STATISTICS CLUSTER=N PARALLEL=2

日志输出

Warning: VKTM detected a time drift.
Time drifts can result in an unexpected behavior such as time-outs. Please check trace file for more details.
Wed Sep 28 10:10:06 2016
ALTER SYSTEM SET service_names='SYS$SYS.KUPC$C_1_20160928100957.RACDB' SCOPE=MEMORY SID='racdb1';
ALTER SYSTEM SET service_names='SYS$SYS.KUPC$C_1_20160928100957.RACDB','SYS$SYS.KUPC$S_1_20160928100957.RACDB' SCOPE=MEMORY SID='racdb1';
Wed Sep 28 10:10:14 2016
DM00 started with pid=80, OS id=15357, job SYSTEM.SYS_IMPORT_SCHEMA_05
Wed Sep 28 10:10:31 2016
DW00 started with pid=84, OS id=15414, wid=1, job SYSTEM.SYS_IMPORT_SCHEMA_05

Wed Sep 28 10:11:01 2016
DW01 started with pid=85, OS id=16081, wid=2, job SYSTEM.SYS_IMPORT_SCHEMA_05

************************************************************************************
导出过程

[oracle@node1 ~]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 
[oracle@node1 ~]$ time impdp  system/oracle321 schemas=DF,RPORT remap_tablespace=DF_TBS:DF_TRAC,RPORT_TBS:RPORT_TRAC DIRECTORY=EXPDP network_link=link_imp211racdb logfile=racdb_2userimpdp_test.log EXCLUDE=STATISTICS CLUSTER=N PARALLEL=2
Import: Release 11.2.0.4.0 - Production on Wed Sep 28 10:09:54 2016
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, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_IMPORT_SCHEMA_05":  system/******** schemas=DF,RPORT remap_tablespace=DF_TBS:DF_TRAC,RPORT_TBS:RPORT_TRAC DIRECTORY=EXPDP network_link=link_imp211racdb logfile=racdb_2userimpdp_test_201609281.log EXCLUDE=STATISTICS CLUSTER=N PARALLEL=2 
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 1.385 GB
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/TABLESPACE_QUOTA
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/DB_LINK
Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE
Processing object type SCHEMA_EXPORT/TABLE/TABLE
. . imported "DF"."DF_WHITE_LIST"                        284993 rows
. . imported "DF"."DF_ORDERS"                            364106 rows
. . imported "DF"."DF_CARD_LIMIT"                       1375449 rows
. . imported "DF"."DF_LOG"                               745312 rows
. . imported "DF"."DF_TRXS"                              362646 rows
. . imported "DF"."DF_IDENTIFY_ACCOUNT"                  150524 rows
. . imported "RPORT"."BALANCE_CUSTOMER_ACC_CHECK"       732161 rows
. . imported "RPORT"."BALANCE_TIME_POINT"               734952 rows
. . imported "DF"."DF_BATCH"                             191342 rows
. . imported "DF"."DF_TRADE"                              97444 rows
. . imported "DF"."DF_ACCOUNT_COMMAND_SAF"                97444 rows
. . imported "DF"."DF_SETTLE"                             97444 rows
. . imported "DF"."DF_MERCHANT_CARD_LIMIT"                97444 rows
. . imported "RPORT"."STL_TRADE"                         59537 rows
. . imported "DF"."DF_ROUTE_CONFIG_LOG"                    3735 rows
. . imported "DF"."DF_WHITE_BATCH"                       184127 rows
. . imported "RPORT"."ACCOUNT_TIME_POINT"                 1808 rows
. . imported "RPORT"."FT_SRV_FOOT_SETTING"                1813 rows
. . imported "DF"."DF_SYN"                                 2739 rows
. . imported "RPORT"."FT_TRADE"                            605 rows
. . imported "RPORT"."RISK_DEPOSIT_GOLD_INFO"              731 rows
. . imported "DF"."DF_MERCHENT_CONFIG"                       17 rows
. . imported "DF"."DF_ROUTE_CONFIG"                         168 rows
. . imported "DF"."DF_RATE_CONFIG_INFO"                      16 rows
. . imported "RPORT"."BALANCE_TEMP_AMOUNT"                   9 rows
. . imported "RPORT"."BF_CCB_CHECKRPT"                       1 rows
. . imported "RPORT"."BF_CCB_RPT"                            2 rows
. . imported "RPORT"."FT_LIQUIDATE"                        106 rows
. . imported "RPORT"."MONITOR_SMS_TIMES"                    33 rows
. . imported "RPORT"."RISK_CUSTOMER"                         2 rows
. . imported "RPORT"."TAB_0_0"                              19 rows
. . imported "RPORT"."TAB_0_4"                              75 rows
. . imported "RPORT"."TAB_1_11"                              1 rows
. . imported "RPORT"."TAB_1_12"                              1 rows
. . imported "RPORT"."TAB_1_9"                               1 rows
. . imported "RPORT"."TAB_1_5"                               1 rows
. . imported "RPORT"."TAB_IN_OUT_MONEY"                     10 rows
. . imported "RPORT"."TAB_IN_OUT_MONEY_CHANNEL"              6 rows
. . imported "DF"."DF_TSTNEWATE_CONFIG_INFO"                  0 rows
. . imported "RPORT"."STL01"                                 0 rows
. . imported "RPORT"."STL02"                                 0 rows
. . imported "RPORT"."STL03"                                 0 rows
. . imported "RPORT"."STL04"                                 0 rows
. . imported "RPORT"."STL06"                                 0 rows
. . imported "RPORT"."STL07"                                 0 rows
. . imported "RPORT"."STL08"                                 0 rows
. . imported "RPORT"."TAB_0_1"                               0 rows
. . imported "RPORT"."TAB_0_2"                               0 rows
. . imported "RPORT"."TAB_0_3"                               0 rows
. . imported "RPORT"."TAB_1_1"                               0 rows
. . imported "RPORT"."TAB_1_10"                              0 rows
. . imported "RPORT"."TAB_1_2"                               0 rows
. . imported "RPORT"."TAB_1_3"                               0 rows
. . imported "RPORT"."TAB_1_4"                               0 rows
. . imported "RPORT"."TAB_1_6"                               0 rows
. . imported "RPORT"."TAB_IN_OUT_MONEY_CUST"                 0 rows
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
<think>根据用户提供的错误信息和impdp命令,出现UDI-03113、ORA-03113、UDI-03114、ORA-03114错误通常与Oracle数据泵(Data Pump)在执行过程中与数据库服务器的连接中断有关。这些错误可能由多种原因引起,包括网络问题、服务器端进程异常、资源不足(如内存或临时空间不足)等。下面我将逐步分析并提供解决方案。 ### 步骤1: 理解错误原因 - **ORA-03113**: 通信通道的文件结束(end-of-file on communication channel)。这通常表示客户端与数据库服务器之间的连接意外终止。 - **ORA-03114**: 未连接到Oracle。这通常发生在尝试执行操作时,但连接已经丢失。 - **UDI-03113**和**UDI-03114**是数据泵工具对上述ORA错误的具体封装。 ### 步骤2: 检查常见原因 1. **网络问题**: 确保客户端与数据库服务器之间的网络连接稳定。如果使用远程连接,尝试在本地执行命令以排除网络问题。 2. **资源不足**: - 检查数据库服务器的内存和临时表空间是否充足。数据泵导入操作可能消耗大量内存和临时空间。 - 检查磁盘空间,确保目标表空间和用于数据泵操作的目录有足够的空间。 3. **超时设置**: - 检查`SQLNET.INBOUND_CONNECT_TIMEOUT`和`SQLNET.SEND_TIMEOUT`等网络超时参数,适当增加这些值可能有助于解决间歇性网络问题。 4. **日志文件**: 查看导入过程中生成的日志文件(如果没有指定日志文件,数据泵会默认生成一个,位置在`DIRECTORY`参数指定的目录中)。日志中可能有更详细的错误信息。 5. **转储文件问题**: 检查转储文件是否完整,没有损坏。可以尝试用`expdp`导出一个小文件测试导入。 ### 步骤3: 具体解决措施 #### 3.1 检查磁盘空间 在服务器上执行以下命令(以Linux为例): ```bash df -h /tdms1/oracle/dump # 检查数据泵目录所在文件系统的空间 df -h # 检查整体磁盘空间 ``` 确保有足够的空间存放导入的数据和日志。 #### 3.2 检查临时表空间 在SQL*Plus中执行: ```sql SELECT tablespace_name, bytes_used, bytes_free FROM v$temp_space_header; ``` 如果临时表空间不足,考虑增加临时表空间大小: ```sql ALTER TABLESPACE temp ADD TEMPFILE '/path/to/tempfile.dbf' SIZE 2G; ``` #### 3.3 调整超时参数 在服务器端的`$ORACLE_HOME/network/admin/sqlnet.ora`文件中增加或修改以下参数(以秒为单位): ``` SQLNET.INBOUND_CONNECT_TIMEOUT=300 SQLNET.SEND_TIMEOUT=300 SQLNET.RECV_TIMEOUT=300 ``` 修改后需要重启监听器(可能还需要重启数据库): ```bash lsnrctl stop lsnrctl start ``` #### 3.4 使用更稳定的连接方式 如果使用TNS连接,尝试使用`//hostname:port/service_name`格式,确保TNS配置正确。例如,将连接字符串改为: ``` impdp ZASZ168/zasz@//exp-dev:1521/orcl ... ``` 其中`exp-dev`是主机名,`1521`是端口,`orcl`是服务名。 #### 3.5 分步导入 如果整个数据库导入失败,可以尝试只导入元数据(不导入数据),然后再导入数据: 1. 只导入元数据: ```bash impdp ZASZ168/zasz@orcl directory=DATA_PUMP_DIR dumpfile=ZASZ_data1224.dmp remap_schema=ZASZ:ZASZ168 exclude=USER table_exists_action=TRUNCATE CONTENT=METADATA_ONLY ``` 2. 如果元数据导入成功,再导入数据: ```bash impdp ZASZ168/zasz@orcl directory=DATA_PUMP_DIR dumpfile=ZASZ_data1224.dmp remap_schema=ZASZ:ZASZ168 exclude=USER table_exists_action=TRUNCATE CONTENT=DATA_ONLY ``` #### 3.6 使用`NETWORK_LINK`导入 如果转储文件在远程服务器上,且网络不稳定,可以尝试使用`NETWORK_LINK`参数直接从源数据库导入,避免使用转储文件: ```bash impdp ZASZ168/zasz@orcl directory=DATA_PUMP_DIR network_link=source_db_link remap_schema=ZASZ:ZASZ168 exclude=USER table_exists_action=TRUNCATE ``` 其中`source_db_link`是一个预先创建的数据库链接(需要配置)。 ### 步骤4: 其他建议 - **重启数据库和监听器**: 有时临时性的资源问题可以通过重启解决。 - **查看告警日志**: 在数据库服务器的`$ORACLE_BASE/diag/rdbms/<DB_NAME>/<INSTANCE_NAME>/trace/alert_<INSTANCE_NAME>.log`中查看详细的错误信息。 - **减少并行度**: 如果使用了`PARALLEL`参数,尝试将其设置为1(`PARALLEL=1`),以减少资源争用。 ### 总结 通过以上步骤,大部分由连接中断引起的ORA-03113和ORA-03114错误可以得到解决。请按照顺序逐一尝试,并关注日志文件中的错误信息以定位问题[^1][^2]。 §§相关问题§§ 1. 如何监控数据泵导入的进度? 2. 数据泵导入时如何跳过错误? 3. 如何优化数据泵导入性能? </think> ### 解决IMPDP执行中UDI-03113、ORA-03113、UDI-03114、ORA-03114错误 这些错误表明数据泵导入过程中发生了**通信通道中断**,通常由网络问题、资源不足或配置错误引起。以下是系统化的解决方案: --- ### 一、核心原因分析 | 错误代码 | 含义 | 常见触发场景 | |----------------|-------------------------------|------------------------------| | ORA-03113 | 通信通道的文件结束 | 网络中断/服务器进程崩溃 | | ORA-03114 | 未连接到Oracle | TNS配置错误/监听器故障 | | UDI-03113/14 | Data Pump对ORA错误的封装 | 导入过程意外终止 | --- ### 二、逐步解决方案 #### 1. **检查网络与监听器(关键步骤)** ```bash # 测试TNS连通性 tnsping orcl # 检查监听器状态 lsnrctl status ``` - 若`tnsping`失败,检查`tnsnames.ora`配置: ```conf ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = exp-dev)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl)) ) ``` #### 2. **验证目录权限** ```sql -- 确认目录存在且用户有权限 SELECT * FROM dba_directories WHERE directory_name='DATA_PUMP_DIR'; -- 授权示例(需DBA执行) GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO ZASZ168; ``` #### 3. **检查转储文件与磁盘空间** ```bash # 确认转储文件存在且可读 ls -l $ORACLE_BASE/oradata/DATA_PUMP_DIR/ZASZ_data1224.dmp # 检查磁盘空间(至少预留2倍dmp文件大小) df -h /u01/app/oracle ``` #### 4. **调整超时参数(解决连接中断)** 在**服务器端** `sqlnet.ora` 添加: ```conf SQLNET.INBOUND_CONNECT_TIMEOUT=300 SQLNET.SEND_TIMEOUT=300 SQLNET.RECV_TIMEOUT=300 ``` 重启监听器: ```bash lsnrctl stop lsnrctl start ``` #### 5. **分阶段导入(避免资源耗尽)** ```bash # 先导入元数据 impdp ZASZ168/zasz@orcl directory=DATA_PUMP_DIR dumpfile=ZASZ_data1224.dmp \ remap_schema=ZASZ:ZASZ168 CONTENT=METADATA_ONLY # 再导入数据 impdp ZASZ168/zasz@orcl directory=DATA_PUMP_DIR dumpfile=ZASZ_data1224.dmp \ remap_schema=ZASZ:ZASZ168 CONTENT=DATA_ONLY ``` #### 6. **使用日志诊断** 强制生成详细日志: ```bash impdp ... logfile=impdp_debug.log logtime=all ``` 检查日志尾部是否有: ```log ORA-31693: Table data object failed to load... ``` --- ### 三、高级排查 1. **服务器资源检查** ```bash # 监控内存和CPU top -p $(pgrep -f ora_pmon) # 检查Oracle进程 ps -ef | grep ora_pmon ``` 2. **尝试小规模导入** ```bash impdp ... INCLUDE=TABLE:\"IN \(\'TABLE1\',\'TABLE2\'\)\" ``` 3. **转储文件验证** ```bash impdp ... SQLFILE=validate.sql ``` --- ### 四、预防措施 1. 使用`COMPRESSION=DATA_ONLY`减小dmp文件体积 2. 设置`CLUSTER=N`禁用RAC集群分发 3. 在低峰时段执行导入操作 > **关键提示**:若问题持续,检查`$ORACLE_BASE/diag/rdbms/orcl/orcl/trace/alert_orcl.log`中的ORA-600类错误[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值