一. 导入/导出命令参数(imp/exp)
1.userid 指定执行导入导出操作的数据库用户,这个参数名称可以省略。例:userid=scott/tiger
2.file 指定导出所产生的文件,导入时要读这个文件。例:(file= d:/myoracle/dept.exp)
3.tables 指定要导入导出的表 例:tables=(dept,emp)
4.owner 指定要导出的用户 例:owner=(system,sys)
5.full 指定是否要对整个数据库进行导入导出。例:full=y
6.grants 指定是否导出表上的权限。例:grants=y
7.rows 指定是否只导入导出表的结构和表上的对象,而不导入导出表中的数据。例:rows=y
8.log 导入导出时日志要写入的文件的名字
9.indexes 是否要导入导出表上的索引 例:indexes=y
10.compress
导出是否应该压缩有碎片的段成一个范围,这将会影响storage子句.导入大表(大于80m)时, 存储分配失败,
默认的exp时,compress = y,也就是把所有的数据压缩在一个数据块上.导入时, 如果不存在连续一个大数据块,
则会导入失败.导出80m以上的大表时, 记得compress= n, 则不会引起这种错误.
以下为imp命令自有的参数
1.show 规定文件内容是否被显示,而不是被执行,可以查看文件中包含的sql语句 例:show=y
2.ignore 标明在执行‘create’命令时,是否忽略遇到的错误。如果正在导入的对象已经存在时,
应使用这个参数 例:ignore=y
3.fromuser
在full=n的情况下,才有参数。它是一系列的数据库帐号,其对象应从导出转储文件中读取。
例:fromuser=system
4.touser 一系列数据库帐号,导出转储文件中的对象将要导入这些帐号 例:touser=system
5.注意点:imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件
6.导入:imp '目标dbUser'/'password'@目标数据库 fromuser='元数据库导出的用户' touser='你新建的用户' file='刚才导出的文件'
二. 用户表的导入导出
1.导出表(多个表加上括号用逗号隔开)
exp clq/clq file=d:/myoracle/dept.exp tables=dept
2.导入表(从自己导出中导入)
imp clq/clq file=d:/myoracle/dept.exp tables=dept
3.导入表(从其它用户导出的进行导入)
imp system/manage file=d:/myoracle/dept.exp tables=dept fromuser=clq
三.用户模式的导入导出(含所有对象,表,索引,存储过程)
1.导出用户
exp system/manager@orcl file=d:/myoracle/clq.exp owner=clq grants=y rows=y
2.导入用户
imp system/manager@orcl file=d:/myoracle/clq.exp fromuser=clq touser=clq
四、数据库的导入导出
1.数据库的导出,将除sys用户所拥有的对象之外的其他数据库对象全部导出
exp system/manage@orcl full=y file=d:/myoracle/database.exp grants=y rows=y
2.数据库的导入(主要用于不同版本,不同操作系统下的数据库之间移植数据)
imp system/manage@orcl full=y file=d:/myoracle/database.exp ignore=y
五.表空间的导入导出
1表空间的导出
(1)将表空间置为只读
alter tablespace myspace read only;
(2)利用exp导出表空间的结构信息到元数据文件中,不导出表数据,
transport_tablespace参数设置是否导出表空间的元数据
exp 'system/manage as sysdba' file=d:/myoracle/tablespace.exp
transport_tablespace=y tablespaces=myspace
(3)将表空间置为可写
alter tablespace myspace read write;
(4)将表空间的数据文件和元数据文件复制到目标数据库所在的系统中。
2.表空间的导入,导入时要求数据库具有相同的字符集,在目标数据库中不能有同名的表空间
(1)利用imp命令将表空间导入到目标数据库(datafiles 指定表空间的数据文件)
imp 'system/manage as sysdba' file=d:/myoracle/tablespace.exp
transport_tablespace=y datafiles=(/home/oracle/mytablespace.dbf)
六.表空间的创建与删除
1.表空间的创建
create tablespace myspace
datafile 'c:\app\clq\oradata\orcl\myspace.dbf' size 100 m
autoextend on next 10 m maxsize unlimited
minimum extent 512 k
default storage(
initial 512 k
next 512 k
minextents 1
maxextents unlimited
pctincrease 0
)
online
permanent;
(1)tablespace 指出表空间的名称
(2)datafile: 表空间数据文件存放路径
(3)size: 起初设置为100m
(4)autoextend表明是否自动扩展. off | on 表示自动扩展是否被关闭.
next 表示数据文件满了以后,扩展的大小.
(5)mininum extent integer [k|m]
指出在表空间中范围的最小值。这个参数可以减小空间碎片,保证在表空间的范围是这个数值的整数倍。
(6)default storage_clause
声明缺省的存储子句。
(7)online|offline
改变表空间的状态。online使表空间创建后立即有效.这是缺省值.
offline使表空间创建后无效,这个值,可以从dba_tablespace中得到。
(8)permanent|temporary
指出表空间的属性,是永久表空间还是临时表空间。永久表空间存放的是永久对象,
临时表空间存放的是session生命期中存在的临时对象
2.临时表空间的创建
临时表空间用于存储临时数据,当用户执行排序,创建索引这样的操作时,将产生大量的中间结果,
这些临时数据首先存储在pga的排序区中。当排序区的大小不足以容纳这些数据时,将用到临时表空间。
如果没有为用户指定临时表空间,那么用户在执行排序操作时将把
system表空间作为临时表空间,并在system表空间中创建临时段,以存储临时数据。
这样在system表空间中将产生大量的存储空间碎片,从而降低数据库性能。
create temporary tablespace mytempspace
tempfile 'c:\app\clq\oradata\orcl \mytempspace.dbf'
size 200m
autoextend on
next 50m maxsize 1024m
extent management local;
3.表空间的删除
drop tablespace mysapce including contents and datafiles
七.用户的创建与删除
1.用户的创建
create user clq identified by clq
default tablespace myspace
temporary tablespace mytempspace
quota unlimited on myspace;
(1)user指定用户名,identified by指定口令。
(2)default tablespace,为用户指定默认表空间
(3)temporary tablespace为用户指定默认临时表空间
(4)quota为用户在表空间上指定空间配额,unlimited 为无限制。
2.为用户赋予权限,用户刚创建完没有任何权限,需给用户赋于相关权限
grant connect to clq;
grant exp_full_database to clq;
grant imp_full_database to clq;
grant resource to clq;
3.撤消权限,基本语法同grant,关键字为revoke
4.查看权限
select * from user_sys_privs;//查看当前用户所有权限
select * from user_tab_privs;//查看所用用户对表的权限
5.删除用户,如果一个用户的模式中包含一些数据库对象,那么这个用户不能被直接删除,
如果要强制删除该用户,可以在命令中加上cascade选项。
drop user clq;
drop user clq cascade;