数据库的导入导出
1. 新建表空间
create tablespace BDCSXK
logging
datafile 'D:\app\oradata\orcl\BDCSXK.dbf'
size 50m
autoextend on
extent management local;
这里需要说明的是,需要建立的表空间是需要导入数据库中存在的表空间,需要一一对应,不能缺少导入数据库中任何一个表空间和用户
2. 新建用户并赋予权限(主要是连接和数据操作的权限)
create user BDCSXK identified by BDCSXK
default tablespace BDCSXK;
grant connect,resource,dba to BDCSXK;
3. 使用imp命令进行导入数据
imp BDCSXK/BDSXK/ORCL file=dmp文件地址 FULL=Y
其中full=y代表全部数据导入]
数据库的导出操作
使用exp命令进行导出的操作 ,不仅能本机导入本机,还能把本机的dmp导出到远程服务器;所以,利用这种功能,可以把正式的库备份成测试库使用;
其中.exp命令的三种导出方式:
方式一:
1. 完全导出(一般不用这种形式)
exp hdfs/123456@orcl file=d:\database.dmp log=d:\database.logfull=y
将数据库orcl完全导出(登录用户名是hdfs、密码是123456),导出到d:\database.dmp中;
2. 导出用户: (常用)
exp hdfs/123456@orcl file=d:\database.dmp log=d:\database.logowner=hdfs
将数据库orcl中的用户hdfs导出,导出到d:\database.dmp中;
注意:full方式可以备份所有用户的数据库对象,包括表空间、用户信息等,owner=XX只能备份指定用户的对象,其他用户下的就不备份了,
exp中full=y和owner=XX是不能同时使用的。
3. 导出表
exp hdfs/123456@orcl file=d:\database.dmp log=d:\database.logtables=(b_role,b_users)
将数据库orcl 中用户hdfs的b_role、b_users表导出,导出到d:\database.dmp中;
注意:tables=XX 表示备份相关表,不能同时和owner、full使用(否则会抛出EXP-00026:指定了冲突模式)。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST来获得数据库TEST能否连上。
附录一:
给用户增加导入数据权限的操作
第一,启动sql*puls
第二,以system/manager登陆
第三,createuser用户名IDENTIFIED BY密码(如果已经创建过用户,这步
可以省略)
第四,GRANTCREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
总结 导入导出对比:
exp system/accp@orcl file=d:\daochu.dmp full=y
exp scott/accp@orcl file=d:\daochu.dmp owner=(scott)exp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)exp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)imp system/accp@orcl file=d:\daochu.dmp full=yimp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y(忽略重复表 如果存在 不用导入)imp scott/accp@orcl file=d:\daochu.dmp tables=(emp)