
实现的方法和详细的 *** 作步骤如下:
1、第一步,如果要从Oracle实例orcl导出多个dmp文件表,则在打开cmd窗口后,首先设置环境变量以将Oracle实例切换为orcl(设置ORACLE_SID
= orcl),然后登录到sqlplus
,如下图所示,然后进入下一步。
2、其次,完成上述步骤后,可以使用sql语句“select from dba_directories”以查看当前实例下可用的dmp导出目录。
导出dmp文件时,可以选择其中之一,如下图所示,然后进入下一步。
3、接着,完成上述步骤后,退出sqlplus并使用命令“expdp”导出需要的数据库表dmp文件,如下图所示,然后进入下一步。
4、最后,完成上述步骤后,就可以将该文件导入实例orcl中的另一个用户,如下图所示。这样,问题就解决了。
导出导出具体的分为:导出表,导出方案,导出数据库三种方式。
导出使用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:\xxxdmpOracle中怎么将一个用户上面的表结构导入到另一个用户上面
1导出
可用命令exp,类似于如下
da1/da1@ORCL file=E:\da1dmp log=E:\da1log
da1为用户名,斜线后为密码,@后为数据库实例名,file后是导出文件的地址,log是导出时的日志,如果有错误,能够有据可查。
2导入
imp da2/da2@ORCL buffer=50000000 full=n file=E:\da1dmp ignore=y rows=y commit=y compile=n fromuser=da1 touser=da2 log=E:\da2log
导入的命令与exp相似。假设要将SQL Server中的Northwind数据库中的Products表导出到Oracle的Scott用户 首先需要有安装SQL Server企业版 1.打开工具: 开始->程序-> 导入和SQL Server数据导出数据 2.下一步,选择数据源 [数据源]选择“用于SQL Server的Microsoft OLE DB提供程序”,这应该是缺省值。 [服务器]选择要导出数据的服务器,如果是本机,选择(local) [数据库]选择要导出的数据所在的库,这里选择Northwind 3.下一步,选择目的 [目的]选择Microsoft ODBC for Oracle [DSN]选择用户/系统DSN一项,然后在下拉列表框中找一个已经连接到了Scott用户的DSN名称。 如果下拉列表中没有,点下拉列表框右侧的[新建],出现创建新数据源界面。 接下来选择系统数据源,下一步,在驱动程序列表中选择Microsoft ODBC for Oracle 下一步,完成,出现Microsoft ODBC for Oracle安装界面 [数据源名称]随便输入,比如sss [说明]可以不填 [用户名称]填入要SQL Server数据导出到的Oracle用户名称,这里是scott [服务器]填入要连接到Oracle服务器所使用的服务名,比方说使用sqlplus scott/tiger@server1可以连接到数据库,那么这里就填入server1。如果本机就是服务器,使用sqlplus scott/tiger即可连接到数据库,这里空着不填即可。 这样就创建好了一个数据源sss,保证下拉列表框中选择了sss一项。 [用户名]填入SQL Server数据导出到的Oracle用户名称,这里是scott [密码]填入SQL Server数据导出到的Oracle用户使用的密码,这里是tiger 4.下一步,指定表复制或查询 如果要导出的内容是整个表,选择[从源数据库复制表和视图] 如果要导出的内容是表的一部分列,行,可以选择[用一条查询指定要传输的数据],这时需要写出一个查询语句 这里选择第一项[从源数据库复制表和视图] 5.下一步,选择源表和视图 点中要导出的表Products一行的复选框,目的、转换两栏就会出现内容。 目的可以用来选择表名。转换可以用来修改列的数据类型或是整个建表的SQL语句 6.下一步,保存、调度和复制包 选中立即运行 7.下一步,正在完成DTS导入/导出向导 8.完成 提示“成功地将n个表从Microsoft SQLServer复制到了Oracle” 9.完成,关闭导入导出程序 注意:因为oracle的表名都是大写的,而SQL的表可能是大小混写的,所以导入后在oracle里查不到该表,比如这个Products表在oracle里查询就应该写成select from scott."Products";为了方便查询可以通过批量修改表名为大写以便后面导数据的工作。你的意思是要用管理员用户新建普通用户,然后将相应的dmp数据文件导入到这个用户下,是吗?
新建脚本语句:
-----------------SYS创建用户
CREATE USER dandeliondshtest PROFILE "DEFAULT" IDENTIFIED BY dandeliondshtest DEFAULT
TABLESPACE "USERS" TEMPORARY
TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT SELECT ON "SYS""V_$SESSION" TO dandeliondshtest;
GRANT "CONNECT" TO dandeliondshtest;
GRANT "DBA" TO dandeliondshtest;
GRANT "RESOURCE" TO dandeliondshtest;
GRANT CREATE ANY sequence TO dandeliondshtest;
CREATE USER dandelionids IDENTIFIED BY dandelionids
grant create session to dandelionids;--授予zhangsan用户创建session的权限,即登陆权限
grant unlimited tablespace to dandelionids;--授予zhangsan用户使用表空间的权限
grant create table to dandelionids;--授予创建表的权限
grant drop table to dandelionids;--授予删除表的权限
导入dmp文件是在dos命令窗口中来执行的,impdp 用户名/密码@IP/pdborcl dumpfile=bak_dir:文件名DMP nologfile=Y (单击回车)Oracle数据导入导出imp/exp命令 10g以上expdp/impdp命令
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUSEXE或者DOS(命令行)中执行,
当使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象所对应的OS目录中,面不能直接指定转储文件所在的OS目录。因此,当使用EXPDP工具时,必须首先建立DIRECTORY对象,并且需要为数据库用户授予使用DIRECTORY对象的权限。
例:SQL>conn sys/manager
SQL>CREATE DIRECTORY dump_dir AS '/u01/app/dump';
SQL>GRANT READ,WRITE ON DIRECTORY dump_dir to scott;
确认备份泵出文件的位置
========================
SQL> set linesize 180
SQL> col directory_path format a60
SQL> select from dba_directories
下面介绍的是exp/imp导入导出的实例。
数据导出:
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:\datanewsmgntdmp 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@TEST full=y file=d:\datanewsmgntdmp ignore=y
五、还原数据
1)导到指定用户下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdpdmp SCHEMAS=scott;
2)改变表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdpdmp TABLES=scottdept REMAP_SCHEMA=scott:system;
3)导入表空间
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespacedmp TABLESPACES=example;
4)导入数据库
impdb system/manager DIRECTORY=dump_dir DUMPFILE=fulldmp FULL=y;
5)追加数据
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdpdmp SCHEMAS=system TABLE_EXISTS_ACTION=append;从服务器将ORACLE数据库导出和导入本地oracle数据库中的方法
一:将服务器上的ORACLE数据库导入到本地机子上;
具体方法:
在CMD模式下执行以下命令
exp username/password@服务器端数据库ID file=c:/文件名dmp
例如下面:
exp djyy/djyy@zhwx file=c:/djyy20090921dmp
exp wxzd/wxzd@zhwx file=c:/wxzd20090921dmp
二:建立本地oracle数据库
具体方法:
点击开始->程序->Oracle - OraDb10g_home1->配置和移植工具->Database Configuration Assistant
运行后点击下一步,选择创建数据库->next->选择一般用途->填写自己的数据库名->next-->填写口令,选择同一口令吧,当然你也可以为每个用户填写不同的口令,以后基本上默认安装吧。安装完成后退出即可。
三:建立用户,并赋予DBA权限
具体方法:
在刚建立的本地数据库中,用DBA的权限账户进入,然后建立自己的用户,并赋予DBA等权限;
具体实例代码:
1 SQL> conn sys/change_on_install as sysdba;
2 已连接。
3 SQL> create user username identified by password;
4 users;
5
6 用户已创建。
7 SQL> grant create session,create table,create view to username
8 授权成功。
9 SQL>grant DBA to uername;
10 授权成功。
四:导入oracle数据库
具体方法:
在CMD模式下执行以下命令
imp 用户/密码 file=dmp commit=y full=y
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)