设为首页 收藏本站
查看: 808|回复: 0

[经验分享] ORACLE 常用操作命令

[复制链接]

尚未签到

发表于 2018-9-26 10:17:18 | 显示全部楼层 |阅读模式
  1.1导出
  1.2导出使用程序有以下常用的命令参数
  参数                           说明
  USERID           确定执行导出实用程序的用户名和口令
  BUFFER          确定导出数据时所使用的缓冲区大小,其大小用字节表示
  FILE                  指定导出的二进制文件名称,默认的扩展名是.dmp
  FULL                指定是否以全部数据库方式导出,只有授权用户才可使用此参数
  OWNER           要导出的数据库用户列表
  HELP                指定是否显示帮助消息和参数说明
  ROWS              确定是否要导出表中的数据
  TABLES           按表方式导出时,指定需导出的表和分区的名称
  PARFILE          指定传递给导出实用程序的参数文件名
  TABLESPACES      按表空间方式导出时,指定要导出的表空间名
  1.3导出实用程序
  1.3.1 按用户方式导出数据
  exp gmd/gmd@oraclefile=d:/1.dmp owner=gmd
  1.3.2 按表方式导出数据
  exp gmd/gmd@oracletables=(GRP_PROVINCE,GRP_CITY,GRP_AREA) file=d:/2.dmp
  1.3.3 按表空间方式导出数据
  exp system/oracle@oracletablespaces=(gmd) file=d:/3.dmp
  1.3.4 使用参数文件导出数据
  exp system/oracle@oracleparfile='d:\parameters.txt'
  2 导入
  2.1 导入使用程序有以下常用的命令参数
  参数                              说明
  USERID             指定执行导入的用户名和密码
  BUFFER            指定用来读取数据的缓冲区大小,以字节为单位
  COMMIT             指定是否在每个数组(其大小由BUFFER参数设置)插入后进行提交
  FILE                    指定要导入的二进制文件名
  FROMUSER      指定要从导出转储文件中导入的用户模式
  TOUSER            指定要将对象导入的用户名。FROMUSER与TOUSER可以不同
  FULL                   指定是否要导入整个导出转储文件
  TABLES              指定要导入的表的列表
  ROWS                 指定是否要导入表中的行
  PARFILE             指定传递给导入实用程序的参数文件名,此文件可以包含这里列出的所有参数
  IGNORE              导入时是否忽略遇到的错误,默认为N
  TABLESPACES       按表空间方式导入,列出要导入的表空间名
  2.2导入实用程序
  2.2.1 按整个文件导入数据库
  imp gmd/gmd@oraclefile=d:1.dmp ignore=y full=y
  2.2.2 按halibut用户的表导入到fantasy用户
  imp gmd/gmd@oraclefile=2.dmp fromuser=halibut touser=fantasy tables=(t_user,role)
  2.2.3 使用参数文件导入数据
  imp system/oracle@oracleparfile='d:\paramenters.txt'
  --------------------------
  create temporary tablespace zfmi_temp
  tempfile 'D:\oracle\oradata\zfmi\zfmi_temp.dbf'
  size 32m
  autoextend on
  next 32m maxsize 2048m
  extent management local;
  //tempfile参数必须有
  3创建数据表空间

  create tablespace zfmi logging datafile 'D:\oracle\oradata\zfmi\zfmi.dbf'>  //datafile参数必须有
  4删除用户以及用户所有的对象
  drop user zfmi cascade;
  //cascade参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数
  5删除表空间
  前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除
  drop tablespace zfmi including contents and datafiles cascade onstraints;
  //including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数
  //including datafiles 删除表空间中的数据文件
  //cascade constraints 同时删除tablespace中表的外键参照
  如果删除表空间之前删除了表空间文件,解决办法:
  如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。
  可使用如下方法恢复(此方法已经在oracle9i中验证通过):
  下面的过程中,filename是已经被删除的数据文件,如果有多个,则需要多次执行;tablespace_name是相应的表空间的名称。
  $ sqlplus /nolog
  SQL> conn / as sysdba;
  如果数据库已经启动,则需要先执行下面这行:
  SQL> shutdown abort
  SQL> startup mount

  SQL>>
  SQL>>  SQL> drop tablespace tablespace_name including contents;
  6创建用户并指定表空间

  create user zfmi>  default tablespace zfmi temporary tablespace zfmi_temp;
  //identified by 参数必须有
  7授予message用户DBA角色的所有权限
  7.1 给用户DBA 角色
  GRANT DBA TO zfmi;
  7.2给用户授予权限
  grant connect,resource to zfmi; (db2:指定所有权限)
  8导入导出命令:
  Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件, imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
  执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
  DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径,
  该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
  oracle用java编写,SQLPLUS.EXE、EXP.EXE、IMP.EXE这两个文件有可能是被包装后的类文件。
  SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类,完成导入导出功能。
  8.1 下面介绍的是导入导出的实例。
  8.1.1 数据导出:
  1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中
  exp system/manager@TESTfile=d:daochu.dmp full=y
  2 将数据库中system用户与sys用户的表导出
  exp system/manager@TESTfile=d:daochu.dmp owner=(system,sys)
  3 将数据库中的表inner_notify、notify_staff_relat导出
  exp aichannel/aichannel@TESTDB2file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
  4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
  exp system/manager@TESTfile=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"
  上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。
  也可以在上面命令后面 加上 compress=y 来实现。
  8.1.2 数据的导入
  1 将D:daochu.dmp 中的数据导入 TEST数据库中。
  imp system/manager@TESTfile=d:daochu.dmp
  imp aichannel/aichannel@HUSTfull=y file=d:datanewsmgnt.dmp ignore=y
  上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
  在后面加上 ignore=y 就可以了。
  2 将d:daochu.dmp中的表table1 导入
  imp system/manager@TESTfile=d:daochu.dmp tables=(table1)
  基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。
  注意:
  操作者要有足够的权限,权限不够它会提示。
  数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。
  9附录一:
  给用户增加导入数据权限的操作
  第一,启动sql*puls
  第二,以system/manager登陆

  第三,create user 用户名>  第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
  DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
  DBA,CONNECT,RESOURCE,CREATE SESSION TO 用户名字
  第五, 运行-cmd-进入dmp文件所在的目录,
  imp userid=system/manager full=y file=*.dmp
  或者 imp userid=system/manager full=y file=filename.dmp
  执行示例:
  F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp
  屏幕显示

  Import:>  (c) Copyright 2000 Oracle Corporation. All rights reserved.

  连接到: Oracle8i Enterprise Edition>  With the Partitioning option

  JServer>  经由常规路径导出由EXPORT:V08.01.07创建的文件
  已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
  导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)
  . 正在将AICHANNEL的对象导入到 AICHANNEL
  . . 正在导入表                  "INNER_NOTIFY"          4行被导入
  准备启用约束条件...
  成功终止导入,但出现警告。
  10附录二:
  Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
  先建立import9.par,
  然后,使用时命令如下:imp parfile=/filepath/import9.par
  例 import9.par 内容如下:
  FROMUSER=TGPMS
  TOUSER=TGPMS2     (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
  ROWS=Y
  INDEXES=Y
  GRANTS=Y
  CONSTRAINTS=Y
  BUFFER=409600
  file==/backup/ctgpc_20030623.dmp
  log==/backup/import_20030623.log


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-602232-1-1.html 上篇帖子: oracle db link使用 下篇帖子: Oracle网络1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表