转自
http://yangrenjun.iteye.com/blog/623839
Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库。
对于初学者来说,为了避免麻烦,可以用'Database Configuration Assistant'向导来创建数据库。
创建完数据库后,并不能立即在数据库中建表,必须先创建该数据库的用户,并且为该用户指定表空间。
下面是创建数据库用户的具体过程:
如下功能完成是在:sqlplusw 下完成的;
1.假如现在已经建好名为'news'的数据库,此时在F:\oracle\product\10.1.0\oradata\目录下已经存在news目录(注意:我的Oracle10g安装在F:\oracle下,若你的Oracle安装在别的目录,那么你新建的数据库目录就在*\product\10.1.0\oradata\目录下)。
2.在创建用户之前,先要创建表空间:
其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小;
如:
SQL> create tablespace news_tablespace datafile 'F:\oracle\product\10.1.0\oradata\news\news_data.dbf' size 500M;
其中'news_tablespace'是你自定义的表空间名称,可以任意取名;'F:\oracle\product\10.1.0\oradata\news\news_data.dbf'是数据文件的存放位置,'news_data.dbf'文件名也是任意取;'size 500M'是指定该数据文件的大小,也就是表空间的大小。
3.现在建好了名为'news_tablespace'的表空间,下面就可以创建用户了:
其格式为:格式: create user 用户名 identified by 密码 default tablespace 表空间表;
如:
SQL> create user news identified by news default tablespace news_tablespace;
默认表空间'default tablespace'使用上面创建的表空间。
注:也可以跳过创建表空间这一步,直接用名为users的默认表空间语句如下:
create user test identified by test default tablespace users;
4.接着授权给新建的用户:
SQL> grant connect,resource to news; --表示把 connect,resource权限授予news用户
SQL> grant dba to news; --表示把 dba权限授予给news用户
授权成功。
下面介绍的是导入导出的实例。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
3 将数据库中的表inner_notify、notify_staff_relat导出
exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
也可以在上面命令后面 加上 compress=y 来实现。
数据的导入
1 将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
imp dekey/dekey529@ORCL full=y file=c:\dekey.dmp ignore=y
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
注意:
操作者要有足够的权限,权限不够它会提示。
数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
总结:当拿到由拥有DBA权限的用户导出的数据时,最好问清楚其缺省表空间,如果目标数据库中存在与导出数据库同名的表空间时,这种情况需要特别注意。
我们往往在一看到“IMP-00013: 只有 DBA 才能导入由其它 DBA 导出的文件” 这个错误信息后,就立刻给导入用户授予DBA权限,但却忽略了DBA的角色是拥有对数据库中所有表空间unlimit的权限,造成花费很长时间import结束后,却发现没有导入到预期的表空间中。
简而言之,如果有同名表空间存在的话,必须将导入用户的 unlimited tablespace的权限 revoke 掉,否则数据将被直接存放到了那个同名表空间中,而不是导入用户缺省的表空间中;如果没有同名表空间,则无需进行 revoke,oracle 会自动将数据存放在导入用户的缺省表空间中。
最后一个需要注意的问题就是DBA授权问题,个人建议,一个数据库中除了system和sys用户以外,最好严格控制DBA权限的授予,尤其是不要随便赋予应用系统schema的owner以这个权限。目前国内的软件开发以及项目管理的能力还很薄弱,绝大多数项目中,不会设立专门的数据库管理角色,又为了图方便,往往赋予应用系统schema的owner以DBA权限,这样一来,在一个几十人或者上百人的团队中,其中任何一个开发人员或是运维人员一个随意的对DB的操作,对DB而言也许将会是灾难性的。因此,当导入数据后,应及时revoke掉 DBA 权限。
分享到:
相关推荐
Oracle利用传输表空间导出导入数据的步骤,对于DBA来说绝对实用!
ORACLE导入导出数据
。
。
oracle数据导入导出的简便方法,轻松掌握
oracle数据导出导入 oracle数据导出导入 oracle数据导出导入 oracle数据导出导入
oracle数据导入导出imp/exp命令使用说明
Oracle数据导入导出命令.pdf
oracle 命令导入导出命令,对于数据迁移,数据备份本地数据库和服务数据库很实用的命令
Oracle数据导入导出详解.doc Oracle数据导入导出详解.doc Oracle数据导入导出详解.doc Oracle数据导入导出详解.doc
介绍了oracle数据库中使用exp,expdp,imp,impdp导出导入数据主方法,适合刚接触oracle数据的同学了解下。共同学习。
为了确保数据的安全和可靠性,Oracle数据库提供了导入导出命令,以便用户可以轻松地备份和恢复数据库。本文将详细介绍Oracle数据库的导入导出命令,包括exp和imp命令的使用方法和参数设置。 exp命令 exp命令是...
Oracle导入导出命令执行命,是BAT执行命令,新建空间,新建用户,导出数据,导入数据,简单实用,对于需要经常需要数据库操作的人来说是个很好的工具
数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍。速度的提高源于使用了并行技术来读写导出转储文件。 expdp/impdp和exp/imp的区别 exp和imp是客户端工具程序,它们既可以在...
本文档是介绍oracle数据库的一个导出和导入工具的相关知识。Oracle数据导出常用的有exp工具,但是此工具在导出大数据量的时候效率较低,所以在10g后推出DATAPUMP(数据泵)此工具的效率币exp高很多。本文针对DATA...
Oracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp.txtOracle数据导入导出impexp....
oracle 数据导入导出 ,简单记录一下。
oracle 导入导出部分数据,很实用,不罗嗦,拷贝就用
oracle数据导入导出 /*根据SCHEMAS导出数据,VERSION去掉时导出当前oracle的版本,在dos执行,文件导出完成后会显示导出文件的存放目录*/ expdp ewin/123321@172.20.0.31/mespr
oracle导入导出DMP数据库oracle导入导出DMP数据库oracle导入导出DMP数据库oracle导入导出DMP数据库oracle导入导出DMP数据库