联奕科技工程体系

 找回密码
 立即注册
查看: 329|回复: 0

【数据库】oracle数据库导入注意事项

[复制链接]

35

主题

52

帖子

5338

积分

版主

Rank: 7Rank: 7Rank: 7

积分
5338
发表于 2019-3-20 11:18:46 | 显示全部楼层 |阅读模式
本帖最后由 gaotao 于 2019-3-20 11:20 编辑

1.Linux下导入需要配置语音环境变量再执行导入imp命令
(1)查询服务器的编码
SELECT * FROM v$nls_parameters;    --AMERICAN_AMERICA.ZHS16GBK   NLS_LANGUAGE.NLS_CHARACTERSET


(2)在Linux上设置语言环境
export NLS_LANG=’ AMERICAN_AMERICA.ZHS16GBK‘
重新使用imp导入数据,存储过程中乱码问题完美解决!


2.版本问题导入文件过高的情况,可以使用expdp导出指定版本的数据库文件,在用impdp导入
(1)expdb和impdp是需要oracle目录,查询目录和创建目录需要相关权限,dba或者授权目录的权限
select * from dba_directories; --查询目录
create directory EXPDB_DATA as '/opt/data/'; --创建目录
(2)导入语句如下
expdp LY_IS/LY_IS@192.168.6.232:1521/orcl directory=EXPDB_DATA dumpfile=ly_is.expdp logfile=ly_is.log schemas=LY_IS version=11.1.0.6.0
impdp LY_IS/LY_IS@LOCALHOST:1521/orcl DIRECTORY=EXPDB_DATA DUMPFILE=ly_is.expdp SCHEMAS=LY_IS;


3.导入失败后需要重新导入,可以通过执行一下脚本删除所有对象,进行重新导入create or replace PROCEDURE P_CLEANDB AS
/**  
* 过程名:P_CLEANDB  
* 版权: Copyright 2017 LianYi Tech. Co. Ltd. All Rights Reserved.  
* 描述: 清空数据库所有对象------------调用要慎重--!!!!!!!!!!!!!  
* 修改人: gaotao
* 创建时间:2017-06-05  
*/  
-- 删除表
CURSOR L1 IS  select 'drop table '||table_name  from cat where table_type='TABLE'  and table_name not like 'BIN%';  
         L101 VARCHAR2(1000);
  -- 删除视图
  CURSOR L2 IS  select 'drop view '||object_name from user_objects where object_type='VIEW';  
         L201 VARCHAR2(1000);
  -- 删除函数
  CURSOR L3 IS select 'drop function '||object_name  from user_objects where object_type='FUNCTION';
   L301 VARCHAR2(1000);
  -- 删除索引
  CURSOR L4 IS select 'drop index '||object_name  from user_objects where object_type='INDEX' AND OBJECT_NAME not like '%$%';
   L401 VARCHAR2(1000);
  --删除 过程 不包含自己
  CURSOR L5 IS select 'drop procedure '||object_name  from user_objects where object_type='PROCEDURE' AND OBJECT_NAME<>'P_CLEANDB';
  L501 VARCHAR2(1000);
  --删除序列
    CURSOR L6 IS select 'drop sequence '||SEQUENCE_NAME  from USER_SEQUENCES ;
   L601 VARCHAR2(1000);
  --删除dblink
   CURSOR L7 IS select 'drop database link  '||object_name from user_objects where object_type='DATABASE LINK';
   L701 VARCHAR2(1000);

   --删除约束
   CURSOR L8 IS select 'alter table '||table_name||' drop constraint   '||CONSTRAINT_NAME from USER_CONSTRAINTS where constraint_type='R' AND CONSTRAINT_NAME not like '%$%';
   L801 VARCHAR2(1000);

   CURSOR L10 IS select 'alter table '||table_name||' drop constraint   '||CONSTRAINT_NAME from USER_CONSTRAINTS where  CONSTRAINT_NAME not like '%$%';
   L1001 VARCHAR2(1000);

   CURSOR L9 IS SELECT 'DROP  MATERIALIZED VIEW  '||MVIEW_NAME  FROM   USER_MVIEWS;
   L901 VARCHAR2(1000);
BEGIN  

OPEN L9;  
        LOOP  
            FETCH L9 INTO L901;  
            EXIT WHEN L9%NOTFOUND;                  
                EXECUTE IMMEDIATE L901;  
                COMMIT;  
        END LOOP;  
      CLOSE L9;


  OPEN L8;  
        LOOP  
            FETCH L8 INTO L801;  
            EXIT WHEN L8%NOTFOUND;                  
                EXECUTE IMMEDIATE L801;  
                COMMIT;  
        END LOOP;  
      CLOSE L8;


       OPEN L10;  
        LOOP  
            FETCH L10 INTO L1001;  
            EXIT WHEN L10%NOTFOUND;
                --dbms_output.put_line(L1001);
                EXECUTE IMMEDIATE L1001;  
                COMMIT;  
        END LOOP;  
      CLOSE L10;



   OPEN L4;  
        LOOP  
            FETCH L4 INTO L401;  
            EXIT WHEN L4%NOTFOUND;  
                --DBMS_OUTPUT.PUT_LINE(L401);
                EXECUTE IMMEDIATE L401;  
                COMMIT;  
        END LOOP;  
      CLOSE L4;




       OPEN L3;  
        LOOP  
            FETCH L3 INTO L301;  
            EXIT WHEN L3%NOTFOUND;  
                EXECUTE IMMEDIATE L301;  
                COMMIT;  
        END LOOP;  
      CLOSE L3;      

       OPEN L5;  
        LOOP  
            FETCH L5 INTO L501;  
            EXIT WHEN L5%NOTFOUND;  
                EXECUTE IMMEDIATE L501;  
                COMMIT;  
        END LOOP;  
      CLOSE L5;

       OPEN L6;  
        LOOP  
            FETCH L6 INTO L601;  
            EXIT WHEN L6%NOTFOUND;  
                EXECUTE IMMEDIATE L601;  
                COMMIT;  
        END LOOP;  
      CLOSE L6;




      OPEN L2;  
        LOOP  
            FETCH L2 INTO L201;  
            EXIT WHEN L2%NOTFOUND;  
                EXECUTE IMMEDIATE L201;  
                COMMIT;  
        END LOOP;  
      CLOSE L2;


   OPEN L1;  
        LOOP  
            FETCH L1 INTO L101;  
            EXIT WHEN L1%NOTFOUND;  
                EXECUTE IMMEDIATE L101;  
                COMMIT;  
        END LOOP;  
      CLOSE L1;




END P_CLEANDB;






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|ly-sky.com

GMT+8, 2025-12-18 01:27 , Processed in 0.087221 second(s), 20 queries .

快速回复 返回顶部 返回列表