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 "";
        }

 

  • 10
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值