Oracle数据库导入导出方法
ORACLE导入导出表数据
ORACLE导入导出表数据
1:导出——首先登录oracle,在左边的目录树上找到需要导出数据的表,右键"Export DATA",这时在右边的显示框中会显示这个数据库中的所有表,并且会自动选中需要导出数据的表,在右下角有一个"Output File",选择一个导出文件的存放地址,例如放在桌面"C:\Documents and Settings\user\桌面\mdm_prod_lob_rel_split_cfg.SQL",注意最好以"SQL"格式存在,点“Export”按钮,导出成功。
这时桌面上就有了一个名字为“mdm_prod_lob_rel_split_cfg.SQL”的文件。
2:导入——讲刚才的文件放入C盘下(主要考虑到时候路径会太长),选择文件的路径,例如"C:\wrk_mdm_ri_chk_rule_cfg.SQL",在oracle PL/SQL控制台上,FILE——NEW——Command Window,输入命令
@C:\wrk_mdm_ri_chk_rule_cfg.SQL 按Enter执行,导入即完成
命令解释: @C:\wrk_mdm_ri_chk_rule_cfg.SQL 即@+ 文件地址
3:导入数据之前,最好将原来的表备份一次
create table tmp_hbj_wrk_mdm_ri_ch_rl_c912 as select * from wrk_mdm_ri_chk_rule_cfg;。
oracle不同版本数据库中转文件导入导出详解流程
------------------------------------ 数据库导入导出详细步骤--------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- 1)--导出:(使用sysdba角色)①创建逻辑目录:create directory exp_dir as ‘E:\expdump’;②确认管理员目录select * from dba_directories;③给sunfcbp用户赋予在指定目录的操作权限:grant read,write on directory exp_dir to sunfcbp;④在cmd命令行oracle的bin目录下执行导出数据语句(version值指定目标数据库版本号):export NLS_LANG=AMERICAN_AMERICA.ZHS32GB18030expdp sunfcbp/123 schemas=sunfcbp directory=exp_dir version=11.1.0.6.0dumpfile=sunfcbpdb0821_data.dpexport NLS_LANG=AMERICAN_AMERICA.AL32UTF82)--导入前准备:(使用sysdba角色)①数据库字符集设置:SQL> shutdown immediate;SQL> startup mount;SQL> alter system enable restricted session;SQL> alter system set job_queue_processes=0;SQL> alter database open;SQL> Alter DATABASE myoracle character set INTERNAL_USE ZHS32GB18030; ----- 使用INTERNAL_USE可以跳过超集的检查SQL> STARTUP;--经过以上步骤,服务器的字符集成功被修改成为ZHS32GB18030;②--创建数据表空间create tablespace sunfcbp_datloggingdatafile 'D:\Oracle\oradata\myoracle\SUNFCBP_DA T.DBF'size 50mautoextend onnext 50m maxsize 20480mextent management local;③--创建临时表空间create temporary tablespace sunfcbp_tmptempfile 'D:\Oracle\oradata\myoracle\SUNFCBP_TMP.DBF'size 50mautoextend onnext 50m maxsize 20480mextent management local;④--创建用户sunfcbpcreate user sunfcbp identified by 123default tablespace sunfcbp_dat temporary tablespace sunfcbp_tmp;⑤--创建逻辑目录:create directory dpdata as 'E:\myoraclebeifen'⑥--确认管理员目录select * from dba_directories;⑦--授权sunfcbp用户grant connect, resource to sunfcbp;grant read,write on directory dpdata to sunfcbp;⑧—在cmd命令行环境进入数据库bin目录下:cd D:\Oracle\product\11.1.0\db_1\BINd:3)--导入(cmd命令行数据库bin目录下)①—执行导入语句(sunfcbpdb0821.dp必须放在E:\myoraclebeifen目录下面schemas=sunfcbp为转存文件中用户名):A:导入目标用户名与导出时用户名相同用以下语句:impdp sunfcbp/123 directory=dpdata dumpfile=sunfcbpdb0821.dp schemas=sunfcbpB:导入目标用户名与导出时schemas指定的值不相同时用以下语句:impdp test/123 DIRECTORY=dpdata DUMPFILE=SUNFCBPDB0821_DATA.DP REMAP_SCHEMA=sunfcbp:test---------------------------------------exp, imp命令导入导出-------------------------------------------------导出:导出自己的表:exp userid=sunfcbp/123@myoracle tables=(emp,dept,…..) file=d:\sunfcbp.dp;exp userid=sunfcbp/123@myoracle tables=(emp,dept,…..) file=d:\sunfcbpr.dp rows=n;(只导出表结构)导出其它方案的表:exp userid=system/123@myoracle tables=(sunfcbp.emp,sunfcbp.dept,……) file=d:\e2.dmp;使用直接导出的方式(速度快):exp userid=sunfcbp/123@myoracle tables=(emp,dept,…) file=e:\e3.dp direct=y;导出自己的方案:exp sunfcbp/123@myoracle owner=sunfcbp file=e:\e4.dp;导出其它方案:(system用户必须拥有dba或者exp_full_database的权限)exp system/123@myoracle owner=(system,sunfcbp,…) file=e:\e5.dp;导出数据库:(system用户必须拥有dba或者exp_full_database的权限)exp userid=system/123@myoracle full=y inctype=complete file=e:\e.dp;**************************************************************************导入:导入自己的表:imp userid=sunfcbp/123@myoracle tables=(emp) file=e:\sunfcbp.dp导入表到其它用户(要求system用户必须拥有dba或者imp_full_database的权限):imp userid=system/123@myoracle tables=(emp) file=e:\sunfcbp.dp touser=sunfcbp; 导入表的结构而不导入数据:imp userid=sunfcbp/123@myoracle tables(emp) file=e:\sunfcbp.dp rows=n;只导入表的数据:imp userid=sunfcbp/123@myoracle tables=(emp) file=e:\sunfcbp.dp ignore=y;导入自己的方案:(要求sunfcbp用户必须拥有dba或者imp_full_database的权限)imp userid=sunfcbp/123@myoracle file=e:\xxx.dp;导入其它方案:(要求system用户必须拥有dba或者imp_full_database的权限)imp userid=system/123@myoracle file=e:\xxx.dp fromuser=system touser=sunfcbp; 导入数据库:imp userid=system/123@myoracle full=y file=e:\xxx.dp;oracle dp命令的使用说明expdp命令的使用方法:expdp username/password@server_name dumpfile=xx.dp tables=table1,table2...table31、其中username/password@server_name指的是用户名、密码和服务名2、xx.dp为所导出的文件名3、table1,table2...table3指的是要导入的表的名称,中间以逗号隔开4、注意:导出的文件没有指定固定的目录,文件默认放在oracle\admin\数据库sid\dpdump 目录下。
Oracle中的导入导出表及数据
Oracle中的导入导出表及数据Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。
exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能可以构建两个相同的数据库。
1.用plsql实现1.1使用plsql连接oracle,点击工具——导出表1.2选择要导出的表1.3可执行文件在C:\oracle\product\10.2.0\db_1\bin 目录下导出是exp 导入是imp导出的为dmp文件1.4导入文件:点击工具——导入表在导入文件中选择要导入的表确认后点击导入2.用dos命令实现2.1Windows——R——cmd2.2输入dos命令:exp youngtop_us/ail@192.168.0.46/orcl10g file=F:/fileSys.dmp log=F:/fileSys.logstatistics=none tables=file_attach,file_tree,file_permissionps:exp user/password@主机地址file=存储位置log=存储位置statistics=none tables=tablename3.将数据导出到excel表中及将excel表数据导入数据库3.1选中要导出数据的表右键——查询数据3.2选中表中的数据邮件——复制到excel3.3在excel中保存3.4可以不按照数据库中的字段存放顺序,编辑形成Excel表中的数据3.5选中要导入的数据后另存一份txt文档3.6在plsql中点击工具——文本导入器进入到文本导入器的页面后,先点击“来自文本文件的数据”选项卡,然后点击打开按钮,选择数据录入.txt文件3.7在配置中进行配置如果不将标题名勾选上,则会导致字段名也当做记录被导入到数据库中,影响正确录入3.8点击导入按钮将数据导入oracle数据库中。
Oracle导入与导出(即备份与恢复)
在没有警告的情况下成功终止导出。
IMP jwd/jwd@ps D:\DD\PHARMACY.DMP FULL=Y ****************
********************************
3. 导出工具exp非交互式命令行方式的例子
$exp scott/tiger tables=emp,dept file=/directory/scott.dmp grants=y
说明:把scott用户里两个表emp,dept导出到文件/directory/scott.dmp
$exp scott/tiger tables=emp query=\"where job=\'salesman\' and sal\<1600\" file=/directory/scott2.dmp
参数文件username.par内容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改
filesize指定生成的二进制备份文件的最大字节数
(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)
4. 命令参数说明
关键字 说明(默认)
---------------------------------------------------
USERID 用户名/口令
FULL 导出整个文件 (N)
Oracle支持三种类型的输出:
oracleg数据库导入导出方法教程
oracleg数据库导入导出方法教程Oracle 11g 是一种关系型数据库管理系统,它具有很多强大的功能,包括数据导入和导出。
在本教程中,我们将介绍 Oracle 11g 数据库的导入和导出方法。
导出数据的方法有两种,一种是使用 exp 工具,另一种是使用expdp 工具。
exp 工具是在 Oracle 11g 之前版本中使用的,而 expdp工具是在 Oracle 11g 之后版本中引入的。
在这个教程中,我们将使用expdp 工具来导出数据。
导出数据的步骤如下:1. 打开终端或命令提示符,并登录到您的 Oracle 数据库。
2.使用以下命令导出整个数据库:```sql```其中,username 是数据库用户名,password 是密码,connect_string 是连接字符串,directory_name 是要导出数据的目录名称,dumpfile_name 是要导出数据的文件名称。
例如,如果要导出一个用户的数据,可以使用以下命令:```sql```这将导出 hr 用户的数据到 datapump 目录,并生成一个 hr.dmp 文件。
3.数据导出完成后,您可以在指定目录下找到生成的导出文件。
导入数据的方法也有两种,一种是使用 imp 工具,另一种是使用impdp 工具。
在这个教程中,我们将使用 impdp 工具来导入数据。
导入数据的步骤如下:1. 打开终端或命令提示符,并登录到您的 Oracle 数据库。
2.使用以下命令导入数据:```sql```其中,username 是数据库用户名,password 是密码,connect_string 是连接字符串,directory_name 是导入数据的目录名称,dumpfile_name 是要导入的数据文件的名称。
例如,如果要导入一个用户的数据,可以使用以下命令:```sql```这将导入 hr 用户的数据,该数据文件位于 datapump 目录下的hr.dmp 文件。
Oracle数据库导入导出方法汇总
Oracle数据库导入导出方法:1.使用命令行:数据导出:1.将数据库TEST完全导出,用户名system密码manager导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2.将数据库中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.dmpimp aichannel/aichannel@HUST full=y file= d:\data\newsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y 就可以了。
2.将d:\daochu.dmp中的表table1导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)3.不同名用户之间的数据导入:imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmplog=c:\orabackup\hkbimp.log;2.plsql:数据导出:TOOLS-Export user objects(用户对象)TOOLS-Export tables(表)数据的导入:TOOLS-Import tablesOracle Import(表) SQL Inserts(用户对象)也可以将用户对象的语句拷贝出来,粘贴到Command Window这样的好处是可以看到执行的过程。
Oracle导入导出数据的几种方式
Oracle导⼊导出数据的⼏种⽅式oracle导⼊导出数据1.导出dmp格式⽂件--备份某⼏张表exp smsc/smsc file=/data/oracle_bak/dmp/bakup0209_2.dmp tables=\(send_msg_his,send_msg,recv_msg_his,recv_msg\)--备份整个数据库--⽅式1exp smsc/smsc file=/data/oracle_bak/dmp/bakupsmmc0209_2.dmp full=y--⽅式2exp cop/cop@133.96.84.39:1521/coprule file=/home/oracle/cop_20160902.dmp owner=cop log=/home/oracle/cop.log--本机上exp zop/zop@orcl file= D:\zop_bak.dmp owner=zop log=D:\zop_ba.log2.导⼊dmp格式⽂件--数据的导⼊--1 将D:\daochu.dmp 中的数据导⼊ TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmpimp aichannel/aichannel@TEST full=y file=d:\datanewsmgnt.dmp ignore=y--上⾯可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进⾏导⼊。
-- 在后⾯加上 ignore=y 就可以了。
--2 将d:daochu.dmp中的表table1 导⼊imp system/manager@TEST file=d:\daochu.dmp tables=(table1)--基本上上⾯的导⼊导出够⽤了。
不少情况要先是将表彻底删除,然后导⼊。
注意:操作者要有⾜够的权限,权限不够它会提⽰。
数据库时可以连上的。
可以⽤tnsping TEST 来获得数据库TEST能否连上。
oracle数据库导入导出命令
Oracle数据导入导出imp/exp功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。
大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。
Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过来了)这样你可以把数据导出到本地,虽然可能服务器离你很远。
你同样可以把dmp文件从本地导入到远处的数据库服务器中。
利用这个功能你可以构建俩个相同的数据库,一个用来测试,一个用来正式使用。
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle 8i 中安装目录\$ora10g\BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp 中exp system/manager@TEST file=d:\daochu.dmp full=y2 将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)3 将数据库中的表table1 、table2导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 4 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
oracle数据的导入导出(两种方法三种方式)
oracle数据的导⼊导出(两种⽅法三种⽅式)⼤概了解数据库中数据的导⼊导出。
在oracle中,导⼊导出数据的⽅法有两种,⼀种是使⽤cmd命令⾏的形式导⼊导出数据,另⼀种是使⽤PL/SQL⼯具导⼊导出数据。
1,使⽤cmd命令⾏导⼊导出数据 1.1整库导出 整库导出:exp 管理员账号/密码 full=y;//参数full表⽰整库导出。
导出后会在当前⽬录下⽣成⼀个EXPDAT.DMP的⽂件,此⽂件为备份⽂件。
如果想导出数据到指定位置,并且取个名字,需要添加file参数。
例如:exp system/123456 file= C:\person.dmp full=y。
1.2整库导⼊ 整库导⼊:imp 管理员账号/密码 full=y file=C:\person.dmp。
1.3使⽤cmd命令按⽤户导出导⼊ 1.3.1 按⽤户导出:exp 管理员账号/密码 owner=⽤户名 file=C:\person.dmp。
1.3.2 按⽤户导⼊:imp 管理员账号/密码 file=C:\person.dmp fromuser=⽤户名。
1.4使⽤cmd命令按表导出导⼊ 1.4.1按表导出:exp 管理员账号/密码 file=person.dmp tables=t_person,t_student。
1.4.2按表导⼊:imp 管理员账号/密码 file =person.dmp tables=t_person,t_student。
2.)使⽤PL/SQL 开发⼯具导出导⼊数据 pl/sql⼯具包含三种⽅式导出oracle表结构和表数据,分别为:oracle export,SQL inserts,pl/sql developer。
它们的含义如下: 第⼀种oracle export:导出的是.dmp格式的⽂件,.dmp⽂件是⼆进制⽂件,可以跨平台,包含权限等。
第⼆种SQL inserts :导出的是.sql格式的⽂件,可以⽤⽂本编辑器查看,通⽤性⽐较好,效率不如第⼀种,适合⼩数据量的导⼊导出。
利用PLSQL从Oracle数据库导出和导入数据
利⽤PLSQL从Oracle数据库导出和导⼊数据
本⽂实例为⼤家分享了使⽤PL/SQL从Oracle数据库导出和导⼊数据的⽅法,供⼤家参考,具体内容如下
1.导出数据:
⽅式⼀:⼯具—>导出⽤户对象—>导出.sql⽂件
注:这种⽅式导出的是建表语句和存储过程语句
⽅式⼆:⼯具—>导出表
注:这⾥是导出表的结构和数据
第⼀种⽅式导出.dmp格式的⽂件,.dmp是⼆进制⽂件,可跨平台,还能包含权限,效率不错,⽤的最为⼴泛。
第⼆种⽅式导出.sql格式的⽂件,可⽤⽂本编辑器查看,通⽤性⽐较好,效率不如第⼀种,适合⼩数据量导⼊导出。
尤其注意的是表中不能有⼤字段(blob,clob,long),如果有,会提⽰不能导出(提⽰如下: table contains one or more LONG columns cannot export in sql format,user Pl/sql developer format instead)。
第三种⽅式导出.pde格式的⽂件,.pde为PL/SQL Developer⾃有的⽂件格式,只能⽤PL/SQL Developer⼯具导⼊导出,不能⽤⽂本编辑器查看。
2. 数据导⼊(Tools→Import Tables…)
1.导⼊.dmp类型的oracle⽂件。
2.导⼊.sql类型的oracle⽂件。
3.导⼊.pde类型的oracle⽂件。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Oracle数据库表导出和导入csv文件操作
Oracle数据库表导出和导入csv文件操作数据库是Oracle 9i1、导出csv文件这个十分简单,用pl/sql工具即可,首先选中要导出的表,右键选择Query data,在左侧出现的窗口中,选择Export Query Restls 选择要导出的文件类型即可,一般都导csv格式。
2、导入csv文件比喻数据库里有表t_province 字段1:province 字段2:cityCSV文件存放路径:f:\test.csv 列需与数据库保持一致还需要编写一个test.ctl文件,内容如下:load datainfile 'f:\城市.csv'into table "T_PROVINCE"fields terminated by ','(province,city)然后在cmd下,输入:sqlldr userid=clevergirl/clevergirl@ORCL_192.168.128.129 control=f:test.ctl 然后回车即可3、几个值得注意的地方一开始我是这样写的:sqlldr control=f:\test.ctl log=f:test.log报了:SQL*Loader-704: 内部错误: ulconnect: OCIServerAttach [0]ORA-12560: TNS: 协议适配器错误上网查了下,说是和环境变量有关,可以修改,但我觉得还是自己指定算了然后我怕权限不够,所以直接用sys用户登录:sqlldr userid=sys/sys@ORCL_192.168.128.129 control=f:test.ctl报了:SQL*Loader-128: 无法开始会话ORA-28009: connection to sys should be as sysdba or sysoper 上面这个换成正确的后,又报了一个SQL*Loader-941: 在描述表"t_province" 时出错ORA-04043: 对象"t_province" 不存在这个错误的问题出在ctl文件,里面的表名要大写才OK。
详细讲解Oracle数据库的数据迁移方法
详细讲解Oracle数据库的数据迁移方法Oracle数据库的数据迁移可以使用多种方法,包括传统的物理备份和恢复,逻辑备份和恢复,以及逻辑复制。
下面将详细介绍这些方法。
1. 物理备份和恢复(Physical Backup and Recovery):物理备份和恢复是最常用的数据迁移方法之一、它基于数据库的物理结构,通过将数据文件、控制文件和日志文件等直接复制到目标数据库来完成数据迁移。
具体步骤如下:(1)在源数据库上执行全量备份,包括数据文件、控制文件和日志文件。
(2)将备份文件传输到目标数据库主机。
(3)在目标数据库上恢复备份文件。
物理备份和恢复的优点是速度快,适用于大规模数据迁移,但缺点是需要额外的存储空间以及停机时间。
2. 逻辑备份和恢复(Logical Backup and Recovery):逻辑备份和恢复是另一种常用的数据迁移方法,它基于逻辑结构,通过导出和导入数据来完成数据迁移。
具体步骤如下:(1) 在源数据库上执行逻辑备份,例如使用expdp命令将数据导出为数据泵文件。
(2)将数据泵文件传输到目标数据库主机。
(3) 在目标数据库上执行逻辑恢复,例如使用impdp命令将数据导入。
逻辑备份和恢复的优点是可以选择性地备份和恢复数据,不需要额外的存储空间,但缺点是速度较慢,适用于小规模数据迁移。
3. 逻辑复制(Logical Replication):逻辑复制是一种将源数据库的数据变更应用到目标数据库的方法,它可以实时地将数据更新传输到目标数据库。
具体步骤如下:(1) 在源数据库上启用逻辑复制功能,例如使用Oracle GoldenGate或Oracle Streams。
(2)配置源数据库和目标数据库之间的连接。
(3)在目标数据库上创建复制进程,用于接收源数据库发送的数据变更。
(4)启动复制进程,开始数据复制。
逻辑复制的优点是实时性好,可以减少停机时间,但缺点是配置和管理复杂,需要考虑数据一致性和传输性能等问题。
Oracle数据库迁移的几种方式
Oracle数据库迁移的几种方式我们常常需要对数据进行迁移,迁移到更性能配置更高级的主机OS上、迁移到远程的机房、迁移到不同的平台下,以下介绍ORACLE的几种数据库迁移方案:一、exp/imp逻辑备份与恢复:它是最常用最简单的方法,一般是基于应用的owner级做导出导入。
操作方法为:在新库建立好owner和表空间,停老库的应用,在老库执行:$ exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.logbuffer=6000000,导入dmp文件到新库,在新库执行如下命令:$ imp user/pwdfromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.优缺点:优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上imp的时间。
二、Storage存储迁移:这种情况下,数据文件、控制文件、日志文件、spfile都在存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。
操作方法:将老库的pfile(因为里面有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码文件传到新库的对应位置。
将存储切至新机,或者用文件拷贝或dd的方式复制数据文件,启动数据库。
优缺点:优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba 只需配合即可,停机时间为停库、切存储、起库的时间;缺点是要求新老库都是同一平台,是相同的数据库版本。
三、利用data guard迁移:用dg我们不仅可以用来做容灾,物理的dg我们还可以作为迁移的方式。
操作方法:可见/study-note/dg-created-by-rman/或者/study-note/create-dg-by-rman-one-datafile-by -one-datafile/或者其他相关网文。
PLSQL导入导出Oracle数据库方法
PLSQL导入导出Oracle数据库方法在Oracle数据库中,我们可以使用PL/SQL来导入和导出数据。
下面是一些常用的方法:1. 使用SQL*Loader工具导入数据:SQL*Loader是Oracle提供的一个强大的数据导入工具。
通过创建一个控制文件和数据文件,可以将数据从外部文件导入到Oracle表中。
以下是一个简单的示例:```sqlLOADDATAINFILE 'data.txt'INTO TABLE empFIELDSTERMINATEDBY','```2. 使用Oracle Data Pump导入导出数据:Oracle Data Pump是Oracle 10g之后引入的一种高效的导入导出工具。
它提供了更快的数据加载和卸载速度,并且可以在导入导出过程中进行并行操作。
以下是一个简单的示例:```sql--导出数据EXPORT SCHEMA scott DIRECTORY=data_pump_dirDUMPFILE=scott.dmp--导入数据IMPORT SCHEMA scott DIRECTORY=data_pump_dirDUMPFILE=scott.dmp```3.使用PL/SQL脚本导入导出数据:我们可以使用PL/SQL脚本编写自定义的导入导出逻辑。
以下是一个简单的示例:```sql--导出数据DECLAREfile_handle UTL_FILE.FILE_TYPE;emp_rec emp%ROWTYPE;BEGINfile_handle := UTL_FILE.FOPEN('DATA_DIR', 'emp_data.txt', 'W');FOR emp_rec IN (SELECT * FROM emp) LOOPUTL_FILE.PUT_LINE(file_handle, emp_rec.empno , ',' ,emp_rec.ename , ',' , emp_rec.job);ENDLOOP;UTL_FILE.FCLOSE(file_handle);END;--导入数据DECLAREfile_handle UTL_FILE.FILE_TYPE;line_text VARCHAR2(200);BEGINfile_handle := UTL_FILE.FOPEN('DATA_DIR', 'emp_data.txt', 'R');LOOPUTL_FILE.GET_LINE(file_handle, line_text);--解析并插入数据ENDLOOP;UTL_FILE.FCLOSE(file_handle);END;```这是一些常用的PL/SQL导入导出Oracle数据库的方法。
数据库导入导出
(1)、“完全”增量导出(Complete)
即备份三个数据库,比如:
exp system/manager inctype=complete file=040731.dmp
(2)、“增量型”增量导出
备份上一次备份后改变的数据,比如:
exp system/manager inctype=incremental file=040731.dmp
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。
(3)、全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、 增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
优点:增量备份体积小,备份不影响正常业务。
缺点:对于备份集、日志文件和备份策略等需要有一定的维护成本和学习成本。
从数据库备份的对象来看,备份工作可以使用RMAN进行物理方式的备份,也可以使用exp/expdp工具进行逻辑方式的备份。物理备份又可以分为两种类型:1镜像复制备份:把数据文件,控制文件,归档日志文件进行操作系统复制,通过RMAN的copy命令实现
1. Oracle 数据库提供了多种数据库备份与恢复的解决方案,其中包括基于RMAN的备份、用户管理的备份、Data Pump Export、闪回技术等,这些主流的备份方式有不同的特性,请结合您的经历谈谈您对它们的理解。
oracle19c之导入、导出及脚本
oracle19c之导⼊、导出及脚本 记录⼀下oracle两种常⽤的导⼊导出⽅式:exp、imp;spool、SQL*Loader及其脚本。
⼀、exp与imp导⼊导出 1、exp导出操作exp c##sl/123456 buffer=64000 file=./full.sql full=y --导出整个数据库exp c##sl/123456 buffer=64000 file=./sl.sql owner=c##sl --导出⽤户c##sl下的对象exp c##sl/123456 buffer=64000 file=./book.sql tables=book --导出book表exp c##sl/123456 buffer=64000 file=./book.sql tables=book,book2; --导出book、book2表 2、imp导⼊操作exp c##sl/123456 buffer=64000 file=./book.sql tables=bookdrop table book;imp c##sl/123456 buffer=64000 file=./book.sql tables=book --需要先删除表,再导⼊,否则报错exp c##sl/123456 buffer=64000 file=./book.sql tables=bookimp c##sl/123456 buffer=64000 ignore=y file=./book.sql tables=book --只会导⼊主键不冲突的数据,冲突的忽略exp c##sl/123456 buffer=64000 file=./sl.sql owner=c##slimp c##sl/123456 buffer=64000 ignore=y file=./sl.sql full=y --导⼊sl.sql中的全部⽂件imp c##sl/123456 buffer=64000 ignore=y file=./sl.sql tables=book,book2 --导⼊sl.sql中的表book、与book2 说明:tables指定导⼊或导出的表;full=y表⽰导⼊或导出全部;ignore=y表⽰跳过主键冲突执⾏ ⼆、spool、SQL*Loader导⼊导出 准备表与数据CREATE TABLE book(id varchar2(10) NOT NULL,name varchar2(50) DEFAULT NULL,author varchar2(20) DEFAULT NULL,price decimal(10,0) DEFAULT NULL,update_time date DEFAULT NULL,create_time date DEFAULT NULL,is_deleted varchar2(1) DEFAULT NULL,PRIMARY KEY (id));insert into book values ('1','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1);insert into book values ('2','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1);insert into book values ('3','c##','sl',23.4,to_date('2011-11-11 11:11:11','YYYY-MM-DD HH24:MI:SS'),to_date('2011-11-11 11:11:14','YYYY-MM-DD HH24:MI:SS'),1); 1、spool导出操作 创建sql⽂件book_spoolout.sqlset echo offset heading offset feedback offset pagesize 0set linesize 1000spool book.datselect id||','||name||','||author||','||price||','||to_char(update_time,'YYYY-MM-DD hh24:mi:ss')||','||to_char(create_time,'YYYY-MM-DD hh24:mi:ss')||','||is_deleted from book;spool off 登录sqlplus,执⾏@导出⽂件[root@localhost tmp]# sqlplus c##sl/123456SQL> @book_spoolout.sql; 导出数据⽂件book.dat如下:1,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,12,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,13,c##,sl,23,2011-11-11 11:11:11,2011-11-11 11:11:14,1 说明: b、这⾥登录数据库⽬录与sql⽂件、导出⽂件⽬录⼀致; c、如果导出⽬录没有写权限,会报错“⽆法创建 SPOOL ⽂件 "book.dat"当前未假脱机”,注意赋权; d、要把控制⽂件写⼊⽂件中保存,如果直接复制到sqlplus中执⾏,导出的⽂件中⾸尾⾏含有其他命令或sql语句; 2、SQL*Loader导⼊操作 创建控制⽂件book.ctlload datainfile book.datinto table booktruncatefields terminated by ","(ID,NAME,AUTHOR,PRICE,UPDATE_TIME DATE "YYYY-MM-DD HH24:MI:SS",CREATE_TIME DATE "YYYY-MM-DD HH24:MI:SS",IS_DELETED) 执⾏导⼊命令,将上⾯的book.dat导⼊数据库sqlldr userid=c##sl/123456 control=book.ctl data=book.dat 注意: a、这⾥的控制⽂件与数据⽂件在同⼀⽬录下 b、truncate是删除原表数据,还有insert、append、replace等 c、fields terminated by是字段分隔符 三、脚本 可以看到spool、sql loader的导⼊导出还是挺复杂的,下⾯整理出通⽤性更强的脚本 1、导出 准备表与数据CREATE TABLE music(id varchar2(10) NOT NULL,name varchar2(50) DEFAULT NULL,author varchar2(20) DEFAULT NULL,price decimal(10,2) DEFAULT NULL,update_time varchar2(19) DEFAULT NULL,create_time varchar2(19) DEFAULT NULL,is_deleted varchar2(1) DEFAULT NULL,PRIMARY KEY (id));insert into music values ('1','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1');insert into music values ('2','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1');insert into music values ('3','你好你好','sl',23.4,'2011-11-11 11:11:11','2011-11-11 11:11:14','1'); 创建脚本oddpe#!/bin/shif [ $# -lt 5 ];thenecho "param error: please reference example:"echo "oddp music ./music.dat c##sl/123456 -f'|!?|' -r'@#$'"exit 1fiTABLE=${1}DATAFILE=${2}USERPASS=${3}shiftshiftshiftwhile getopts "f:r:" argdof) FIELD=${OPTARG};;r) ROW=${OPTARG};;?) ROW=1;;esacdoneDATAPATH=`dirname ${DATAFILE}`DATANAME=`basename ${DATAFILE}`SPOOLOUTSQL=${DATAPATH}/${TABLE}_spoolout.sqlTODAY=`date '+%Y%m%d'`LOGFILE=${DATAPATH}/${TABLE}_unload_${TODAY}.logsqlplus -S ${USERPASS} <<eof >>${LOGFILE}set serveroutput on verify off trimspool on timing off feedback offset numwidth 50 pagesize 0 linesize 1000spool ${SPOOLOUTSQL}declarev_colcount number :=0;begindbms_output.put_line('select');for col in (select column_namefrom user_tab_columnswhere table_name = upper('${TABLE}')order by column_id)loopif v_colcount = 0thendbms_output.put(chr(9) || col.column_name);elsedbms_output.put_line(chr(9) || '||' || '''${FIELD}''' || '||' );dbms_output.put(chr(9) || col.column_name);end if;v_colcount :=v_colcount + 1;end loop;dbms_output.put('||' || '''${ROW}''');dbms_output.new_line;dbms_output.put_line('from ' || '${TABLE};');end;/spool offexiteofecho "`date +%T`: 开始导出数据!" 2>&1|tee -a ${LOGFILE}sqlplus -S ${USERPASS} <<eofset echo off heading on feedback off pagesize 0 linesize 1000set termout off trimspool on numwidth 24 arraysize 1000 verify off newpage 0 space 0spool ${DATAFILE}.tmp@${SPOOLOUTSQL}spool offexiteofif [ $? -ne 0 ];thenecho "`date +%T`: 导出${TABLE}失败!" 2>&1|tee -a ${LOGFILE}exit -1else#去除中间空⾏grep . ${DATAFILE}.tmp>${DATAFILE}rm -f ${DATAFILE}.tmpecho "`date +%T`: 导出${TABLE}完毕!" 2>&1|tee -a ${LOGFILE}exit 0fi 执⾏⽰例,导出music表的数据到music.dat⽂件,以|!?|分隔字段,以@#$结束⼀⾏./oddpe music /usr/local/myroom/script/tmp/music.dat c##sl/123456 -f'|!?|' -r'@#$' 2、导⼊ 创建脚本oddpi#!/bin/shif [ $# -lt 5 ];thenecho "param error: please reference example:"echo "oddpi music ./music.dat c##sl/123456 -f'|!?|' -r'@#$'"exit 1fiTABLE=${1}USERPASS=${3}shiftshiftshiftwhile getopts "f:r:" argdocase ${arg} inf) FIELD=${OPTARG};;r) ROW=${OPTARG};;?) ROW=1;;esacdoneDATAPATH=`dirname ${DATAFILE}`DATANAME=`basename ${DATAFILE}`CTLFILE=${DATAPATH}/${TABLE}.ctlTODAY=`date '+%Y%m%d'`LOGFILE=${DATAPATH}/${TABLE}_load_${TODAY}.logecho "`date +%T`: 创建控制⽂件" 2>&1|tee -a ${LOGFILE}sqlplus -S ${USERPASS} <<eof >>${LOGFILE}set serveroutput on verify off trimspool on timing off feedback offset numwidth 50spool ${CTLFILE}declarev_colcount number :=0;begindbms_output.put_line('load data');dbms_output.put_line('infile ${DATANAME} '|| '"str ''${ROW}\n''" ');dbms_output.put_line('into table '||'${TABLE}');dbms_output.put_line('truncate');dbms_output.put_line('fields terminated by '|| '''${FIELD}''');dbms_output.put_line('trailing nullcols');dbms_output.put_line('(');for col in (select column_name,casewhen data_type = 'NUMBER' then column_name || ' "nvl(rtrim(:' || column_name || '),' || '0.00' || ')"' else column_name || ' "nvl(rtrim(:' || column_name || '),' || ''' ''' || ')"'end xfrom user_tab_columnswhere table_name = upper('${TABLE}')order by column_id)loopif v_colcount = 0thendbms_output.put(chr(9) || col.x);elsedbms_output.put_line(',');dbms_output.put(chr(9) || col.x);end if;v_colcount :=v_colcount + 1;end loop;dbms_output.new_line;dbms_output.put_line(')');end;/spool offset feedback oneofecho "`date +%T`: 开始导⼊数据!" 2>&1|tee -a ${LOGFILE}sqlldr userid=${USERPASS} control=${CTLFILE} log=${LOGFILE} data=${DATAFILE} direct=trueif [ $? -ne 0 ];thenecho "`date +%T`: 导⼊${TABLE}失败!" 2>&1|tee -a ${LOGFILE}exit -1elseecho "`date +%T`: 导⼊${TABLE}完毕!" 2>&1|tee -a ${LOGFILE}exit 0fi 执⾏脚本,导⼊数据./oddpi music /usr/local/myroom/script/tmp/music.dat c##sl/123456 -f'|!?|' -r'@#$' 说明:对导⼊脚本中dbms_output.put_line('infile ${DATANAME} '|| '"str ''${ROW}\n''" ');的解析 load data的str属性表⽰数据的换⾏符,⽐如3^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!!2^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!!1^^你好你好^^sl^^23.4^^2011-11-11 11:11:11^^2011-11-11 11:11:14^^1!! a、"\n"是⾃带的换⾏符,因为数据⼿动换⾏了,所以str后⾯除了指定的换⾏符"!!"还有"\n" b、有些⽂件中⼿动的换⾏符不是"\n"⽽是"\r\n",这时对应语句改为......"str '!!\r\n'"...... c、str后⾯还可以跟X+转成raw类型的字符,下⾯的语句执⾏效果相同。
Oracle10g的数据迁移方案
Oracle10g的数据迁移方案数据迁移是将数据从一个存储系统迁移到另一个存储系统的过程。
在Oracle10g中,有许多不同的数据迁移方案可供选择,每个方案都有其优势和适用场景。
以下是一些常见的Oracle10g数据迁移方案。
1. 导出/导入(exp/imp):这是Oracle10g中最常见的数据迁移方法之一、它通过使用exp将数据从源数据库导出到一个文件中,然后使用imp将数据从该文件中导入到目标数据库中。
这种方法适用于小型数据库或需要频繁迁移的数据库,但不适用于大型数据库或需要迁移大量数据的情况。
2. 数据泵(expdp/impdp):数据泵是Oracle10g中引入的新特性,它提供了更高效和更灵活的数据迁移方法。
数据泵使用expdp将数据从源数据库以二进制格式导出到一个文件中,然后使用impdp将数据以二进制格式从该文件中导入到目标数据库中。
相对于导出/导入,数据泵具有更快的速度和更小的导出/导入文件大小。
3. SQL Loader:SQL Loader是Oracle10g中的另一种数据迁移工具,它可以将大量数据从平面文件导入到数据库中。
它通过读取一个控制文件和一个或多个数据文件来工作。
控制文件指定要导入的数据的格式和目标表,而数据文件包含实际的数据。
SQL Loader适用于需要从外部系统或文件导入数据的场景。
4.数据库链接:如果源数据库和目标数据库位于不同的服务器上,可以使用数据库链接来实现数据迁移。
数据库链接允许在一个数据库中对另一个数据库进行查询和操作。
通过在目标数据库上创建一个链接对象,然后使用该链接对象在源数据库上执行查询和操作,可以将数据从源数据库迁移到目标数据库。
5. Oracle数据同步/复制:如果需要实时数据同步或定期数据复制,可以考虑使用Oracle的数据同步或复制工具。
Oracle提供了许多数据同步和复制解决方案,如Oracle Streams和Oracle GoldenGate。
oracle常用的数据库迁移方法
oracle常用的数据库迁移方法Oracle是一种常用的关系型数据库管理系统,为了满足不同需求,很多时候需要将数据库迁移到其他环境或系统中。
本文将介绍几种常用的Oracle数据库迁移方法。
一、数据泵导入导出数据泵是Oracle提供的一种高效的数据迁移工具,可以将表、视图、存储过程等数据库对象以及数据导出为二进制文件,再通过数据泵导入工具将数据导入到目标数据库中。
数据泵导出可以使用expdp命令,导出的文件可以包含完整的数据库对象和数据,也可以只导出指定的对象。
数据泵导入可以使用impdp命令,将导出的文件恢复到目标数据库中。
二、物理备份恢复物理备份恢复是一种将源数据库的物理文件备份并复制到目标数据库的方法。
这种方法适用于需要将整个数据库迁移到其他环境的情况。
在源数据库上执行备份命令,将数据库的物理文件备份到指定位置。
将备份文件复制到目标数据库服务器上。
在目标数据库上执行恢复命令,将备份文件恢复到目标数据库中。
三、逻辑备份恢复逻辑备份恢复是一种将源数据库中的逻辑数据导出为可读的文本文件,再通过导入工具将数据导入到目标数据库中的方法。
在源数据库上执行逻辑备份命令,将数据导出为文本文件。
将备份文件复制到目标数据库服务器上。
在目标数据库上执行导入命令,将备份文件导入到目标数据库中。
四、数据库链接数据库链接是一种在不同数据库之间进行数据传输和共享的方法。
可以在目标数据库中创建一个链接,链接到源数据库,然后通过SQL语句将数据从源数据库传输到目标数据库。
在目标数据库中创建一个数据库链接,链接到源数据库。
通过SQL语句查询源数据库中的数据,并将数据插入到目标数据库中。
五、GoldenGate数据复制GoldenGate是Oracle提供的一种高性能数据复制工具,可以将源数据库的数据实时复制到目标数据库中。
这种方法适用于需要实时同步数据的场景。
在源数据库和目标数据库上分别安装和配置GoldenGate软件。
在源数据库上配置数据抽取进程,将数据抽取到中间文件。
oracle数据库导入导出方法
oracle数据库导⼊导出⽅法Oracle Database 10g以后引⼊了最新的数据泵(Data Dump)技术,使DBA或开发⼈员可以将数据库元数据(对象定义)和数据快速移动到另⼀个oracle数据库中。
数据泵导出导⼊(EXPDP和IMPDP)的作⽤ 1、实现逻辑备份和逻辑恢复。
2、在数据库⽤户之间移动对象。
3、在数据库之间移动对象 4、实现表空间搬移。
数据泵导出导⼊与传统导出导⼊的区别:在10g之前,传统的导出和导⼊分别使⽤EXP⼯具和IMP⼯具,从10g开始,不仅保留了原有的EXP和IMP⼯具,还提供了数据泵导出导⼊⼯具EXPDP和IMPDP.使⽤EXPDP和IMPDP时应该注意的事项;EXP和IMP是客户段⼯具程序,它们既可以在客户端使⽤,也可以在服务器段使⽤。
EXPDP和IMPDP是服务端的⼯具程序,他们只能在ORACLE服务端使⽤,不能在客户端使⽤IMP只适⽤于EXP导出⽂件,不适⽤于EXPDP导出⽂件;IMPDP只适⽤于EXPDP导出⽂件,⽽不适⽤于EXP导出⽂件。
今天我在导⼊同事给我的数据⽂件时,总是报IMP-00038错误,提⽰,⽆法转换为环境字符集句柄,造成这种错误的原因⼀般是数据库版本不匹配,但是我们使⽤的都是oracle11g,就排除了这种可能。
最后发现原因是他是使⽤数据泵导出的数据⽂件,⽽我使⽤传统imp命令导⼊是不可以的,后续改为使⽤impdp数据泵导⼊成功。
下⾯是我使⽤数据泵导⼊数据⽂件的完整过程:1、使⽤system⽤户登录数据库,创建新⽤户usertest(新建⽤户时⽤户名最好和数据⽂件导出时的⽤户名相同),表空间可以使⽤系统默认的也可以⾃⼰新建⼀个表空间。
sql代码如下:新建⽤户使⽤oracle默认表空间:create user usertest identified by usertest;新建表空间:create tablespace user_alldatafile 'D:/dev/oracle/tablespace/user_all.dbf'size 300Mautoextend onnext 50Mmaxsize unlimited新建⽤户(设置默认表空间):create user usertest identified by usertest default tablespace user_all;2、对新建的⽤户赋权限,dba、connect、resource。
Oracle 11g的数据库导入导出
oracle 11g 数据库导入导出一、导入数据库1、新建一个表空间,表空间的名字、大小请根据具体项目进行调整。
--建立表空间sql语句create tablespace raxmdatafile 'E:\11g\oradata\orcl\raxm.dbf'size 2048mautoextend on next 32m maxsize 4096m2、新建一个用户,要注意选择默认的表空间、对角色权限、系统权限进行授权,如下图所示:3、将要导入的数据库文件拷到oracle 11 g安装目录下,我oracle 11g 的安装目录是:E:oracle11g\admin\orcl\dpdmp,我就将数据库文件拷到该目录下,并将要导入的数据库文件重命名为:expdat.dmp,这里一定要重命名为这个名字,因为第4步的导入数据库默认的路径就是E:oracle11g\admin\orcl\dpdmp,导入的数据库文件为expdat.dmp,操作如下图所示:4、打开控制台,输入impdp rays/1,这里的rays指的是你刚才建立的用户,1指的是该用户的密码。
5、为了安全起见,导入完成之后,去数据库验证下导入的数据库是否正确。
6、如果在导入数据库的过程中有出现问题,可以参考附录中的百度版oracle 11g 导入导出。
二、导出数据库导出数据库是导入数据库的逆过程,具体步骤如下:1、打开控制台,输入expdp raxm/1,其中expdp表示导出数据库,raxm 表示用户,1表示密码,如下图所示:2、控制台显示成功导出之后,可以在oracle 11 g安装目录下,我oracle 11g的安装目录是:E:oracle11g\admin\orcl\dpdmp,找到导出的数据库文件,如下图所示:3、接着你就可以根据项目的需要对导出来的数据库进行重命名。
4、如果在导出数据库的过程中有出现问题,可以参考附录中的百度版oracle 11g 导入导出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库导入导出方法:1.使用命令行:数据导出:1.将数据库TEST完全导出,用户名system密码manager导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y2.将数据库中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.dmpimp aichannel/aichannel@HUST full=y file=file= d:\data\newsmgnt.dmp ignore=y上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上ignore=y 就可以了。
2.将d:\daochu.dmp中的表table1导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)2.plsql:数据导出:TOOLS-Export user objects(用户对象)TOOLS-Export tables(表)数据的导入:TOOLS-Import tablesOracle Import(表) SQL Inserts(用户对象)也可以将用户对象的语句拷贝出来,粘贴到Command Window这样的好处是可以看到执行的过程。
Linux环境中Oracle数据导入与导出备份创建用户操作以下是开发中常用的的操作和基本命令启动监听lsnrctl start关闭监听lsnrctl stop启动数据库sqlplus as sysdbasql>startup停止数据库sql>shutdown immediate启动dbconsole服务emctl start dbconsole停止dbconsole服务emctl stop dbconsole启动或停止 iSQL*Plus:isqlplusctl start | stop数据导入导出操作过程启动Oracle:sqlplus "system/system as sysdba"startup进入sqlplus以后:以要导入、导出到test为例。
必须有 /Oracle/oradata/test 的写入权限:才可以进行如下操作.创建表空间:create tablespace spectrip(表空间名) logging datafile '/Oracle/oradata/test(和前边test 一致,/Oracle/oradata目录必须存在而且有写入权限)' size 200M autoextend on next 50M extent management local segment space management auto;创建用户和密码:create user ectrip(用户名) identified by "ectrip"(密码) default tablespace spectrip(表空间名) temporary tablespace TEMP profile default quota unlimited on users;添加用户授权:grant dba,connect,resource,aq_administrator_role,aq_user_role,authenticateduser to spectrip (表空间名);退出sqlplus,在Oracle用户登录下:(导入备份)imp ectrip/ectrip file=/home/Oracle/ectrip_08-08-08.dmp fromuser=ectrip (这个是当时导出数据时Oracle的用户名) ignore=y(导出备份)exp ectrip/ectrip file=/home/Oracle/ectrip_08-08-08.dmp owner=ectrip**导入/导出可以直接输入 imp/exp根据提示选择导入/导出表空间/用户/表等开启Oracle监听:lsnrctlstart删除表空间/用户DROP TABLESPACE spectrip(表空间名)INCLUDING CONTENTS AND DATAFILES;drop user ectrip;浅析Oracle对象和数据的导入导出对于Oracle对象和数据的导入导出,我们会用到一些小工具。
以前我们一般都是使用PL/SQL Developer来实现,但是PL/SQL Developer在导出、导入数据时有两个问题:1、要把表数据和对象(存储过程、视图)分开导出2、导出的视图如果有注释,那么在导入时常常会出错。
其实,PL/SQL的导出、导入功能使用的是Oracle自带的工具:exp和imp,这两个工具的导出导入数据时提供了很多功能,PL/SQL 只是使用其中的一些功能。
下面对它们简单介绍一下:1 exp/imp使用方法及实例exp/imp为一种数据库备份恢复工具也可以作为不同数据库之间传递数据的工具两个数据库所在的操作系统可以不同exp 可以将数据库数据导出为二进制文件imp 可以将导出的数据文件再导入到相同的数据库或不同的数据库数据库导出有四种模式full(全库导出), owner(用户导出), table(表导出), tablespace(表空间导出).full( 全库导出): 导出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 这些系统用户之外的所有用户的数据.owner( 用户导出): 导出某个或某些用户的所有权限和数据.tables( 表导出): 导出某些表(可以是不同用户的)的结构和数据.tablespace( 表空间导出):表空间导出数据.执行exp 有三种方法:交互式,命令行和参数文件交互式:直接输入exp 命令用户可以按照exp 提示的信息一步一步操作,比较简单.命令行:输入命令行exp username/password parameter=value.参数文件:输入命令行exp username/password parfile=filename exp 所需的参数从参数文件引入.参数是可以重复的优先级为命令行优于参数文件后面的参数值覆盖于前面的参数值.参数介绍详细的介绍可通过exp help=y或imp helpe=y来查看。
下面只对一些常用的参数进行说明。
buffer 缓冲区大小如果此值设为0 则一次只导入一条记录对数据量大的导出可以设置较大一般缺省值即可.file 导出的文件列表可以指定一个或多个文件名缺省扩展名为.dmp 缺省导出文件名为expdat.dmp.filesize exp 导出文件的最大字节数超出时从文件列表中获取下一个文件名,没有,则提示输入新的文件名.help 显示export 参数帮助信息inctype 增量备份的类型:complete(完全),cumulative(累积)和incremental (增量).只可以在全库导出模式下才可以做完全累积或增量导出累积导出只导出自上次累积导出或完全导出以来已经修改的表增量导出只导出自上次增量累积或完全导出以来已经修改的表完全导出将数据库中全部对象都导出不管是否以及何时被修改.log:日志文件,一般如果以命令行导入时,将log 设置上比较好可以看,到所有的导入信息,导入信息哪儿出错,导入了那些数据库对象.show(imp):只是用来显示备份数据文件的内容.full:为Y 时表示在全库方式下导出缺省为N.tables:导出的表列表可以指定一个或多个表名.fromuser(imp):可以将导出文件中的一个用户模式的数据对象导入为另一个用户模式的对象此参数表示导出文件中的用户模式.touser(imp):此参数表示导入到数据库中时使用的用户模式对象譬如使用全库或者用户模式导出caittmdba用户的所有对象到一个文件中导入时需要将用户模式名称改为caittmdba1此时fromuser 为caittmdba,touser 为caittmdba1Oracle对象和数据导出、导入实例导出数据:D:\oracle\ora92\bin\exp userid=caittmdba/cait@YSDB_192.168.1.2 owner=caittmdba file=e:\%DATE%.dmp log=e:\exp.log通过该命令可以把caittmdba这个用户所属的所有数据、对象导出到一个文件中,导出的日志写在e:\exp.log文件中,连接Oracle的本地服务名为YSDB_192.168.1.2,导出的文件为e:\%DATE%.dmp,这个文件的文件名是当前的日期。
如果把这个命令写成批处理文件,并放到计划任务中,就可以自动进行备份数据了。
导入数据:D:\oracle\ora92\bin\imp userid=caittmdba/cait@YSDB_192.168.1.2 fromuser=caittmdba touser=caittmdba file=e:\data.dmp log=e:\imp.log注意事项在导出数据时常常会出现Oracle 942 错误,这个错误往往是在对Oracle进行了升级后才会出现,这是Oracle升级程序的一个Bug(Oracle的Bug和补丁一直以来都是满天飞,而且不成体系,文档和技术支持以少,这一点和MS 比起来就差很远了。