若有下面的报错,可参考此步骤解决
报错描述:Oracle数据导入导出imp/exp :未知的命令开头。。。忽略了剩余的行
注意:使用exp时,报错截图如下,原因:使用cmd执行,而非sqlplus
一、导出dmp文件
使用cmd,然后执行下面的命令
重点注意:使用cmd打开,执行exp命令
二、导入dmp文件
1、创建新的数据数据库
在需要导入的oracle中,创建新的数据库,比如bsonetest
2、拷贝dmp文件
将导出的dmp文件,放到需要导入的一个目录下
比如 e:\Work\bsone0918.dmp
3、创建表空间
待1中的新数据库建立完成,使用sys用户登录到bsonetest数据库中
运行下面的语句,创建新的表空间
-- 创建表空间 USERS create tablespace USERS datafile 'D:\ProgramData\Oracle-DB\USERS.dbf' -- 文件位置 size 500m -- size 定义数据文件的初始大小 -- autoextend on -- autoextend on 表示自动增长 -- next 20M; -- next 每次增量为20M --
若显示该表空间已存在,可以使用下面的语句,查询已存在的表空间及大小
-- 查看表空间及大小 select t.tablespace_name ,round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t,dba_data_files d where t.tablespace_name=d.tablespace_name group by t.tablespace_name;
4、创建用户
-- 创建用户,创建格式如下: CREATE USER BSDATAOWNER --用户名 IDENTIFIED BY DATAOWNER --用户密码 DEFAULT TABLESPACE USERS --表空间 TEMPORARY TABLESPACE temp; --临时表空间 -- 查询用户信息 select * from dba_users;
5、给用户授权
-- 给用户赋予权限来管理自己的表空间 GRANT CREATE SESSION,CREATE TABLE,CREATE VIEW,CREATE SEQUENCE,UNLIMITED TABLESPACE TO BSDATAOWNER; GRANT CONNECT TO BSDATAOWNER; GRANT RESOURCE TO BSDATAOWNER; GRANT DBA TO BSDATAOWNER;
简单授权语句
-- 给用户 user_name 授权 grant connect,resource,dba to user_name;
connect和resource是两个系统内置的角色,和dba是并列的关系。
DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
若要查询用户权限,使用下面的语句
-- 查询用户权限 select * from dba_role_privs where grantee='BSDATAOWNER';
6、导入dmp文件
--将dmp文件导入到原有的表空间中,导入方式 --打开cmd窗口,然后直接敲入一下命令即可,需要注意的是,要事先把dmp文件放到正确的路径中去 imp 用户名/用户密码@localhost/orcl(表示SID) file= E:\Oracle\database\xxxx.dmp(dmp文件目录) full=y -- demo imp BSDATAOWNER/DATAOWNER@127.0.0.1/BSONETEST file= E:\Work\oracledmp\bsone0918.dmp full=y;
最后,等待导入完毕即可
修改用户密码
若忘记了用户密码,则使用下面的语句
-- 修改用户密码 -- alter user 用户名 identified by 新密码; alter user BSDATAOWNER identified by DATAOWNER;
导出命令,格式如下:
a.将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
b.将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
c.将数据库中的表A、B导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(A,B)
导入命令,格式如下:
a. 将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
imp aichannel/aichannel@HUST full=y file= d:\data\newsmgnt.dmp ignore=y
b. 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
参考网址:
https://blog.51cto.com/u_15127538/3591405
https://www.cnblogs.com/ggll611928/p/15845429.html
https://www.cnblogs.com/ggll611928/p/15846558.html