完全不懂oracle,已经安装好oracle了,怎么把别人备份好的数据库导入

完全不懂oracle,已经安装好oracle了,怎么把别人备份好的数据库导入,第1张

===== 导出、导入 整个用户的情况。

用于导出  test  用户下的所有数据

EXP test/test@源数据库 file=testdmp owner=test

用于将前面导出的  test  用户下的所有数据   倒入到  test2 用户下

IMP test2/test2@目标数据库   file=testdmp FROMUSER=test TOUSER=test2

===== 导出、导入 单个表的情况。

导出 TEST_MAIN,TEST_SUB  这2个表

EXP test/test@源数据库 file=testdmp tables=(TEST_MAIN,TEST_SUB)

导入 TEST_MAIN,TEST_SUB  这2个表

IMP test2/test2@目标数据库 file=testdmp tables=(TEST_MAIN,TEST_SUB)

这个就看人家当初是怎么备份的了

如果是用 Oracle 10g 的 expdp  导出的话, 那么导入也相应复杂一点

Oracle 10g 开始, 新增数据泵工具 导出导入 的工具

数据泵工具导出的步骤:

1、创建DIRECTORY

create directory dir_dp as 'C:/OracleData'

2、授权

Grant read,write on directory dir_dp to obpos;

3、执行导出

expdp obpos/obpos schemas=obpos directory=dir_dp dumpfile=obposdmp logfile=obposlog

C:\>expdp obpos/obpos schemas=obpos directory=dir_dp dumpfile=obposdmp logfile=obposlog

Export: Release 102010 - Production on 星期二, 29 1月, 2013 16:52:12

Copyright (c) 2003, 2005, Oracle  All rights reserved

连接到: Oracle Database 10g Express Edition Release 102010 - Production

启动 "OBPOS""SYS_EXPORT_SCHEMA_01":  obpos/ schemas=obpos directory=dir

_dp dumpfile=obposdmp logfile=obposlog

正在使用 BLOCKS 方法进行估计

处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA

使用 BLOCKS 方法的总估计: 5375 MB

已成功加载/卸载了主表 "OBPOS""SYS_EXPORT_SCHEMA_01"

OBPOSSYS_EXPORT_SCHEMA_01 的转储文件集为:

  C:\ORACLEDATA\OBPOSDMP

作业 "OBPOS""SYS_EXPORT_SCHEMA_01" 已于 16:52:56 成功完成

EXPDP导出的各种模式:

1、 按表导出:

EXPDP obpos/obpos  tables="OBPOS""ROOM","OBPOS""ROOMBOOKD" dumpfile=expdp_Roomdmp logfile=expdp_Roomlog directory=dir_dp job_name=my_job

2、按查询条件导出:

EXPDP obpos/obpos  tables="OBPOS""ROOM" dumpfile =expdp_Room2dmp logfile=expdp_Room2log directory=dir_dp job_name=my_job query='"where rownum<5"'

3、按表空间导出:

EXPDP obpos/obpos dumpfile=expdp_tablespacedmp tablespaces=USERDBF logfile=expdp_tablespacelog directory=dir_dp job_name=my_job

4、导出方案

EXPDP obpos/obpos DIRECTORY=dir_dp DUMPFILE=schemadmp SCHEMAS=obpos

5、导出整个数据库:

EXPDP obpos/obpos dumpfile=fulldmp full=y logfile=fulllog directory=dir_dp job_name=my_job

IMPDP导入的各种模式:

授权

Grant read,write on directory dir_dp to test;

1、按表导入

impdp obpos/obpos dumpfile=obposdmp logfile=obposlog directory=dir_dp tables=MR_USER job_name=my_job

impdp obpos/obpos dumpfile=expdp_Roomdmp logfile=obposlog directory=dir_dp tables=ROOM job_name=my_job

(注: 因为导出的时候, 是用 obpos 用户,以 schemas=obpos 的机制导出的。 导入的时候, 如果用 test 用户导入, 好像表不会导入到 test 的用户下面 )

这种 A 用户导出,  B 用户导入的情况下。  需要使用  REMAP_SCHEMA  参数   REMAP_SCHEMA = 导出的用户名:导入的用户名

impdp obpos/obpos REMAP_SCHEMA=obpos:test dumpfile=expdp_Roomdmp logfile=obposlog directory=dir_dp tables=ROOM job_name=my_job

2、按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)

impdp obpos/obpos schemas=obpos dumpfile=obposdmp logfile=impdplog directory=dir_dp job_name=my_job

3、不通过expdp的步骤生成dmp文件而直接导入的方法:

--从源数据库中向目标数据库导入表 p_street_area

impdp gwm/gwm directory=dir_dp NETWORK_LINK=igisdb tables=p_street_area logfile=p_street_arealog  job_name=my_job

igisdb 是目的数据库与源数据的链接名,dir_dp 是目的数据库上的目录

4、更换表空间

  采用remap_tablespace参数

--导出gwm用户下的所有数据

expdp system/orcl directory=data_pump_dir dumpfile=gwmdmp SCHEMAS=gwm

注:如果是用sys用户导出的用户数据,包括用户创建、授权部分,用自身用户导出则不含这些内容

--以下是将gwm用户下的数据全部导入到表空间gcomm(原来为gmapdata表空间下)下

impdp system/orcl directory=data_pump_dir dumpfile=gwmdmp remap_tablespace=gmapdata:gcomm

 导出

导出具体的分为:导出表,导出方案,导出数据库三种方式。

导出使用exp命令来完成的,该命令常用的选项有:

userid: 用于指定执行导出 *** 作的用户名,口令,连接字符串

tables: 用于指定执行导出 *** 作的表

owner: 用于指定执行导出 *** 作的方案

full=y: 用于指定执行导出 *** 作的数据库

inctype: 用于指定执行导出 *** 作的增量类型

rows: 用于指定执行导出 *** 作是否要导出表中的数据

file: 用于指定导出文件名

Oracle 笔记

23

 导出表

1导出自己的表

exp userid=scott/tiger@myoral tables=(emp,dept) file=d:\e1dmp

2导出其它方案的表

如果用户要导出其它方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表

E:\oracle\ora92\bin>exp userid=system/manager@myoral tables=(scottemp) file=d:\e2emp

特别说明:在导入和导出的时候,要到oracle目录的bin目录下。

3 导出表的结构

exp userid=scott/tiger@accp tables=(emp) file=d:\e3dmp rows=n

4 使用直接导出方式

exp userid=scott/tiger@accp tables=(emp) file=d:\e4dmp direct=y

这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。

这时需要数据库的字符集要与客户端字符集完全一致,否则会报错

 导出方案

导出方案是指使用export工具导出一个方案或是多个方案中的所有对象(表,索引,约束)和数据。并存放到文件中。

1 导出自己的方案

exp userid=scott/tiger@myorcl owner=scott file=d:\scottdmp

2 导出其它方案

如果用户要导出其它方案,则需要dba的权限或是exp_full_database的权限,比如system用户就可以导出任何方案

exp userid=system/manager@myorcl owner=(system,scott) file=d:\systemdmp

 导出数据库

导出数据库是指利用export导出所有数据库中的对象及数据,要求该用户具有dba的权限或者是exp_full_database权限

增量备份(好处是第一次备份后,第二次备份就快很多了)

exp userid=system/manager@myorcl full=y inctype=complete file=d:\alldmp

导入

 介绍

导入就是使用工具import将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件。与导

出相似,导入也分为导入表,导入方案,导入数据库三种方式。

imp常用的选项有

userid: 用于指定执行导入 *** 作的用户名,口令,连接字符串

tables: 用于指定执行导入 *** 作的表

formuser: 用于指定源用户

touser: 用于指定目标用户

file: 用于指定导入文件名

full=y: 用于指定执行导入整个文件

inctype: 用于指定执行导入 *** 作的增量类型

rows: 指定是否要导入表行(数据)

ignore: 如果表存在,则只导入数据

 导入表

1 导入自己的表

imp userid=scott/tiger@myorcl tables=(emp) file=d:\xxdmp

2 导入表到其它用户

要求该用户具有dba的权限,或是imp_full_database

imp userid=system/tiger@myorcl tables=(emp) file=d:\xxdmp touser=scott

3 导入表的结构

Oracle 笔记

24

只导入表的结构而不导入数据

imp userid=scott/tiger@myorcl tables=(emp) file=d:\xxdmp rows=n

4 导入数据

如果对象(如比表)已经存在可以只导入表的数据

imp userid=scott/tiger@myorcl tables=(emp) file=d:\xxdmp ignore=y

 导入方案

导入方案是指使用import工具将文件中的对象和数据导入到一个或是多个方案中。如果要导入其它方案,要求该用户具有dba

的权限,或者imp_full_database

1. 导入自身的方案

imp userid=scott/tiger file=d:\xxxdmp

2. 导入其它方案

要求该用户具有dba的权限

imp userid=system/manager file=d:\xxxdmp fromuser=system touser=scott

 导入数据库

在默认情况下,当导入数据库时,会导入所有对象结构和数据,案例如下:

imp userid=system/manager full=y file=d:\xxxdmp

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命

令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

执行环境:可以在SQLPLUSEXE或者DOS(命令行)中执行,

DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径,

该目录下有EXPEXE与IMPEXE文件被用来执行导入导出。

oracle用java编写,SQLPLUSEXE、EXPEXE、IMPEXE这两个文件有可能是被包装后的类文件。

SQLPLUSEXE调用EXPEXE、IMPEXE所包裹的类,完成导入导出功能。

下面介绍的是导入导出的实例。

数据导出:

1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochudmp中

exp system/manager@TEST file=d:\daochudmp full=y

2 将数据库中system用户与sys用户的表导出

exp system/manager@TEST file=d:\daochudmp owner=(system,sys)

3 将数据库中的表inner_notify、notify_staff_relat导出

exp aichannel/aichannel@TESTDB2 file= d:\data\newsmgntdmp tables=(inner_notify,notify_staff_relat)

4 将数据库中的表table1中的字段filed1以"00"打头的数据导出

exp system/manager@TEST file=d:\daochudmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的导出,对于压缩,既用winzip把dmp文件可以很好的压缩。

也可以在上面命令后面 加上 compress=y 来实现。

数据的导入

1 将D:\daochudmp 中的数据导入 TEST数据库中。

imp system/manager@TEST file=d:\daochudmp

imp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgntdmp ignore=y

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上 ignore=y 就可以了。

2 将d:\daochudmp中的表table1 导入

imp system/manager@TEST file=d:\daochudmp tables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

注意:

*** 作者要有足够的权限,权限不够它会提示。

数据库时可以连上的。可以用tnsping TEST 来获得数据库TEST能否连上。

附录一:

给用户增加导入数据权限的 *** 作

第一,启动sqlpuls

第二,以system/manager登陆

第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)

第四,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=filenamedmp

执行示例:

F:\Work\Oracle_Data\backup>imp userid=test/test full=y file=inner_notifydmp

屏幕显示

Import: Release 81700 - Production on 星期四 2月 16 16:50:05 2006

(c) Copyright 2000 Oracle Corporation All rights reserved

连接到: Oracle8i Enterprise Edition Release 81700 - Production

With the Partitioning option

JServer Release 81700 - Production

经由常规路径导出由EXPORT:V080107创建的文件

已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入

导出服务器使用UTF8 NCHAR 字符集 (可能的ncharset转换)

正在将AICHANNEL的对象导入到 AICHANNEL

正在导入表 "INNER_NOTIFY" 4行被导入

准备启用约束条件

成功终止导入,但出现警告。

附录二:

Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的

先建立import9par,

然后,使用时命令如下:imp parfile=/filepath/import9par

例 import9par 内容如下:

FROMUSER=TGPMS

TOUSER=TGPMS2 (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)

ROWS=Y

INDEXES=Y

GRANTS=Y

CONSTRAINTS=Y

BUFFER=409600

file==/backup/ctgpc_20030623dmp

log==/backup/import_20030623log

exp odc/odc owner=odc rows=y indexes=n compress=n buffer=65536 feedback=100000 file=expdmp log=explog

--odc/odc 把odc用户下所有的对象导出

imp odc/odc fromuser=odc touser=odc rows=y indexes=n commit=y buffer=65536 feedback=100000 ignore=n file=expdmp log=implog

--odc/odc 把备份内容全部到如到odc用户下。

fromuser是备份内容的原所属用户 touser是把原用户下的所有数据导入到touser用户下;(就是touser=odc这个用户)

很久没用oracle了,有些生疏了,目前有项目正在使用,记录备份一下

导出时需要system的密码,通常我们可能会忘,通过以下方式可以找回

1win键+R键,输入cmd,打开命令提示符。

2输入:sqlplus /nolog

3输入conn /as sysdba

4输入alter user sytem identified by 新密码

使用标准的导入导出命令即可,例如

数据导出:

1将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochudmp中

exp system/manager@TEST file=d:\daochudmp full=y

数据的导入

将D:\daochudmp 中的数据导入 TEST数据库中。

imp system/manager@TEST file=d:\daochudmp

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上 ignore=y 就可以了。

这些是基本语句,在语句后可根据具体情况填写参数条件进行限制

我给你一些数据库常用的导入导出命令吧:

该命令在“开始菜单>>运行>>CMD”中执行

一、数据导出(expexe)

1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochudmp文件中

exp system/accp@orcl file=d:\daochudmp full=y

2、将数据库orcl中scott用户的对象导出

exp scott/accp@orcl file=d:\daochudmp owner=(scott)

3、将数据库orcl中的scott用户的表emp、dept导出

exp scott/accp@orcl file= d:\daochudmp tables=(emp,dept)

4、将数据库orcl中的表空间testSpace导出

exp system/accp@orcl file=d:\daochudmp tablespaces=(testSpace)

二、数据导入(impexe)

1、将d:\daochudmp 中的数据导入 orcl数据库中。

imp system/accp@orcl file=d:\daochudmp full=y

2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。

imp scott/accp@orcl file=d:\daochudmp full=y ignore=y

3、将d:\daochudmp中的表emp导入

imp scott/accp@orcl file=d:\daochudmp tables=(emp)

imp的方式:

1 获取帮助

imp help=y

2 导入一个完整数据库

imp system/manager file=bible_db log=dible_db full=y ignore=y

3 导入一个或一组指定用户所属的全部表、索引和其他对象

imp system/manager file=seapark log=seapark fromuser=seapark

imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)

4 将一个用户所属的数据导入另一个用户

imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy

imp system/manager file=tank log=tank fromuser=(seapark,amy)

touser=(seapark1, amy1)

5 导入一个表

imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)

6 从多个文件导入

imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)

log=paycheck, filesize=1G full=y

7 使用参数文件

imp system/manager parfile=bible_tablespar

bible_tablespar参数文件:

#Import the sample tables used for the Oracle8i Database Administrator's

Bible fromuser=seapark touser=seapark_copy file=seapark log=seapark_import

8 增量导入

imp system/manager inctype= RECTORE FULL=Y FILE=A

以上就是关于完全不懂oracle,已经安装好oracle了,怎么把别人备份好的数据库导入全部的内容,包括:完全不懂oracle,已经安装好oracle了,怎么把别人备份好的数据库导入、oracle怎样sql文件导入数据库中、如何在oracle中导入dmp数据库文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9717079.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存