Maison base de données tutoriel mysql Oracle EXP导出报错EXP-00091分析解决

Oracle EXP导出报错EXP-00091分析解决

Jun 07, 2016 pm 04:44 PM
oracle

Oracle EXP/IMP是早期推出数据备份还原工具。因其简单易用、功能强大的特性,广泛的被行业接受。一些开发工具(如PL/SQL Develop

Oracle EXP/IMP是早期推出数据备份还原工具。因其简单易用、功能强大的特性,广泛的被行业接受。一些开发工具(如PL/SQL Developer)中甚至集成嵌入了EXP/IMP工具。一些国内开发团队默认数据部署策略中,EXP/IMP也占到了相当比例。
随着Oracle版本的推进,新特性的推出,特别是海量数据库不断出现在企业应用环境下,传统的EXP/IMP工具架构已经不能承担发展的需要。于是在10g版本中,Oracle推出了服务端运行的数据泵Data Pump工具。到11g版本中,Data Pump已经成为成熟的数据导入导出、备份解决方案。

但是在实际开发领域,Exp/Imp还是有很大的市场。虽然11g中已经不推荐使用Exp/Imp,但是很多厂商部署小数据应用还是采用Exp/Imp方法。

本次记录的是一次部署导出Exp中出现的问题,记录下来,留待需要的朋友需要。

--------------------------------------分割线 --------------------------------------

Oracle 11g 在RedHat Linux 5.8_x64平台的安装手册

Linux-6-64下安装Oracle 12C笔记

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

--------------------------------------分割线 --------------------------------------


 
1、问题综述
 
厂商上线部署系统,进行最后的数据导出导入测试。由于不是最终的环境,而且上线系统数据量初始比较少,所以推荐使用Exp/Imp或者Data Pump工具。在导出过程中,系统数据虽然成功导出,但是出现报错EXP-00091。对应截屏照片如下(安全原因,屏蔽部分信息): 
 

 
导出语法也没有什么额外的信息过程。一时间笔者也没有处理的思路。
 
2、问题分析和检索
 
留下错误信息提示和语句信息之后,笔者查询了Oracle MOS官方网站,希望找到对应的资料。在文档EXP Utility Reports EXP-91 During Export (文档 ID 730106.1)中,笔者找到了这个问题的解释。
Oracle统计量是CBO的工作基础。Oracle优化器在发展历程中,经历了从RBO到CBO的演变过程。RBO时代,优化器生成规则是以代码的方式固化在Oracle代码中的。而CBO的工作是基于数据对象统计量。统计量反映在实体上,就是一系列的元数据信息。在9i时代,CBO与RBO共同作用,而且统计量是需要人工进行收集维护的。而且,由于数据变化的原因,在一些早期CBO版本中,“实时”统计量往往还不能获得最好的执行计划。
所以,在9i的Exp/Imp工具开始,统计量导出就成为Exp工具默认行为。Exp/Imp工具是一个客户端工具,客户端的字符集设置nls_lang和数据库服务器端是存在不同的。如果nls_lang环境变量设置与数据库服务器设置不同,就会导致这个问题出现。
下面我们通过实验来试图重现错误,来证实我们的推论。
 
3、错误模拟
 
我们使用oracle 11gR2来进行测试模拟,具体版本号为11.2.0.4。客户端操作系统为Windows。
 
 
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 64-bit Windows: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 – Production
 
 
当前,服务器NLS关键参数如下。注意,查看nls信息一定是数据库层面的。
 
 
SQL> select * from nls_database_parameters;
 
PARAMETER                      VALUE
------------------------------ --------------------------------------------------------------------------------
NLS_LANGUAGE                  AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                  $
NLS_ISO_CURRENCY              AMERICA
NLS_NUMERIC_CHARACTERS        .,
NLS_CHARACTERSET              AL32UTF8
(篇幅原因,有省略……)
 
 
Nls_lang环境变量的参数格式包括nls_language、nls_territory和nls_characterset。具体格式如下:
 
NLS_LANG=_. 
 

更多详情见请继续阅读下一页的精彩内容:

linux

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier la taille de l'espace de table d'Oracle Comment vérifier la taille de l'espace de table d'Oracle Apr 11, 2025 pm 08:15 PM

Pour interroger la taille de l'espace de table Oracle, suivez les étapes suivantes: Déterminez le nom de l'espace de table en exécutant la requête: sélectionnez Tablespace_name dans dba_tablespaces; Requête la taille de l'espace de table en exécutant la requête: sélectionnez SUM (Bytes) comme total_size, sum (bytes_free) comme disponible_space, sum (bytes) - sum (bytes_free) comme used_space à partir de dba_data_files où tablespace_

Comment crypter Oracle View Comment crypter Oracle View Apr 11, 2025 pm 08:30 PM

Oracle View Encryption vous permet de crypter les données dans la vue, améliorant ainsi la sécurité des informations sensibles. Les étapes incluent: 1) la création de la clé de cryptage maître (MEK); 2) Création d'une vue cryptée, spécifiant la vue et MEK à crypter; 3) Autoriser les utilisateurs à accéder à la vue cryptée. Comment fonctionnent les vues cryptées: lorsqu'un utilisateur interroge pour une vue cryptée, Oracle utilise MEK pour décrypter les données, garantissant que seuls les utilisateurs autorisés peuvent accéder aux données lisibles.

Comment afficher le nom d'instance d'Oracle Comment afficher le nom d'instance d'Oracle Apr 11, 2025 pm 08:18 PM

Il existe trois façons d'afficher les noms d'instance dans Oracle: utilisez le "SQLPlus" et "SELECT INSTRESS_NAME FROM V $ INSTERNE;" Commandes sur la ligne de commande. Utilisez "Show instance_name;" Commande dans SQL * Plus. Vérifiez les variables d'environnement (Oracle_sid sur Linux) via le gestionnaire de tâches du système d'exploitation, Oracle Enterprise Manager ou via le système d'exploitation.

Comment désinstaller l'installation d'Oracle a échoué Comment désinstaller l'installation d'Oracle a échoué Apr 11, 2025 pm 08:24 PM

Désinstaller la méthode pour la défaillance de l'installation d'Oracle: Fermez le service Oracle, supprimez les fichiers du programme Oracle et les clés de registre, désinstallez les variables d'environnement Oracle et redémarrez l'ordinateur. Si la désinstallation échoue, vous pouvez désinstaller manuellement à l'aide de l'outil Oracle Universal Disinstal.

Comment résoudre le problème de la fermeture d'Oracle Cursor Comment résoudre le problème de la fermeture d'Oracle Cursor Apr 11, 2025 pm 10:18 PM

La méthode pour résoudre le problème de fermeture du curseur Oracle comprend: la fermeture explicite du curseur à l'aide de l'instruction Close. Déclarez le curseur dans la clause de mise à jour pour la fermeture automatiquement après la fin de la portée. Déclarez le curseur dans la clause d'utilisation afin qu'il se ferme automatiquement lorsque la variable PL / SQL associée est fermée. Utilisez la gestion des exceptions pour vous assurer que le curseur est fermé dans toute situation d'exception. Utilisez le pool de connexion pour fermer automatiquement le curseur. Désactiver la soumission automatique et le délai de fermeture du curseur.

Comment vérifier les nombres non valides d'Oracle Comment vérifier les nombres non valides d'Oracle Apr 11, 2025 pm 08:27 PM

Les erreurs numériques non valides d'Oracle peuvent être causées par un décalage du type de données, un débordement numérique, des erreurs de conversion de données ou une corruption des données. Les étapes de dépannage incluent la vérification des types de données, la détection des débordements numériques, la vérification des conversions de données, la vérification de la corruption des données et l'exploration d'autres solutions possibles telles que la configuration du paramètre NLS_NUMERIC_CHARACTERS et activer la journalisation de vérification des données.

Comment supprimer toutes les données d'Oracle Comment supprimer toutes les données d'Oracle Apr 11, 2025 pm 08:36 PM

La suppression de toutes les données dans Oracle nécessite les étapes suivantes: 1. Établir une connexion; 2. Désactiver les contraintes de clés étrangères; 3. Supprimer les données de table; 4. Soumettre les transactions; 5. Activer les contraintes de clé étrangère (facultative). Assurez-vous de sauvegarder la base de données avant l'exécution pour éviter la perte de données.

Comment créer des curseurs dans Oracle Loop Comment créer des curseurs dans Oracle Loop Apr 12, 2025 am 06:18 AM

Dans Oracle, la boucle pour la boucle pour créer des curseurs dynamiquement. Les étapes sont: 1. Définissez le type de curseur; 2. Créez la boucle; 3. Créez le curseur dynamiquement; 4. Exécuter le curseur; 5. Fermez le curseur. Exemple: un curseur peut être créé de cycle par circuit pour afficher les noms et salaires des 10 meilleurs employés.

See all articles