Oracle 常用命令(导入dmp文件)

Posted Jia_ShengJie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 常用命令(导入dmp文件)相关的知识,希望对你有一定的参考价值。

--无密码登录数据库(Dos命令)
sqlplus / as sysdba;

--查询实例名
select instance_name from v$instance;

--获取版本号  返回具体的版本号 例:11.2.0.1.0
select version from product_component_version;

--获取端口号
show parameter local_listener;

--判断用户是否存在
select username from dba_users where username=upper('xxx');

--查询表空间
select tablespace_name from dba_tablespaces;

--查询创建的目录
select * from dba_directories;

--删除表空间
drop tablespace xxx including contents and datafiles cascade constraint;

--删除用户
drop user xxx cascade;

--删除用户(提示无法删除当前连接的用户)
alter user xxx account lock;
select username,SID,SERIAL# from V$SESSION where username='xxx';
alter system kill session 'SID,SERIAL#';
drop user xxx cascade;

--IMP 方式导入dmp文件
--(1)创建表空间
create tablespace 表空间 datafile 'D:\\xxx\\xxx.dbf' size 1024M autoextend on;
--(2)创建用户
create user 用户名 identified by 密码 default tablespace 表空间;
--(3)赋予权限
grant connect,resource,imp_full_database,unlimited tablespace to 用户名;
grant dba to 用户名;
--(4)导入数据
imp 用户名/密码@实例名 file=dmp文件路径 log=要导出的日志路径 full=y;

--IMPDB 数据泵方式导入dmp文件
--(1)创建表空间
create tablespace 表空间 datafile 'D:\\xxx\\xxx.dbf' size 1024M autoextend on;
--(2)创建用户
create user 新用户名 identified by 密码 default tablespace 表空间;
--(3)赋予权限
grant connect,resource,imp_full_database,unlimited tablespace to 新用户名;
grant dba to 新用户名;
--(4)建立目录
create directory 目录名 as '目录路径';
--(5)路径手动创建
--(6)对路径授权
grant read,write on directory 目录名 to 新用户名;
--(7)导入数据(Dos命令)
impdp 新用户名/密码 directory=目录名 dumpfile=dmp文件路径 logfile=导出日志路径 TRANSFORM=segment_attributes:n full=y ignore=y REMAP_SCHEMA=旧用户名:新用户名;

 

如何判断Dmp文件要进行哪种导入方式?
(1)图示 一、imp 二、impdb数据泵
(2)如果impdb数据泵的方式,那么 "xxx"."xxxxx"的结构是固定的。
我的判断方式:读取文件的前1024个字节,获取固定结构的字符串,字符串为空说明是IMP,否则就是IMPDB;

  /// <summary>
        /// 获取原导出的用户名称
        /// </summary>
        /// <param name="errInfo"></param>
        /// <returns></returns>
        private string GetOldUser(out string errInfo)
        
            try
            
                errInfo = "";
                byte[] bbs = new byte[1024];
                using (FileStream fs = new FileStream(_bakPath, FileMode.Open,FileAccess.Read))
                
                    fs.Read(bbs, 0, bbs.Length);
                
                string name = Encoding.UTF8.GetString(bbs);
                if (!string.IsNullOrWhiteSpace(name))
                
                    int end = name.IndexOf("\\".\\"", StringComparison.Ordinal);
                    if (end < 1) return "";
                    int first = name.LastIndexOf("\\"",end-1, StringComparison.Ordinal);
                    if (first < 0 )return "";
                    name= name.Substring(first+1, end-1 - first);
                    name = name.Replace("\\\\", "").Replace(" ", "");
                    return name;
                
            
            catch (Exception ex)
            
                errInfo = ex.Message;
            
            return "";
        

 

以上是关于Oracle 常用命令(导入dmp文件)的主要内容,如果未能解决你的问题,请参考以下文章

oracle11g导入dmp文件 数据丢失

oracle怎么导入dmp文件

在oracle中导入dmp文件后怎样删除

oracle 导出文件dmp文件怎么打开

oracle 11g如何导入.dmp文件

如何在oracle中导入导出dmp文件