数据库导入导出

2021年11月23日 阅读数:4
这篇文章主要向大家介绍数据库导入导出,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

Oracle数据库备份与还原命令
Oracle数据库备份与还原命令 数据导出: 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 将数据库中的表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文件能够很好的压缩。 不过在上面命令后面 加上 compress=y 就能够了 数据的导入 1 将D:\daochu.dmp 中的数据导入 TEST数据库中。 imp system/manager@TEST file=d:\daochu.dmp 上面可能有点问题,由于有的表已经存在,而后它就报错,对该表就不进行导入。 在后面加上 ignore=y 就能够了。数据库

 

rows=n在exp中就是表示只导出表结构,而不导出数据,其中rows为行的意思,n为no的意思。
exp详解:
1. 获取帮助
exp help=y服务器

2. 导出一个完整数据库
exp system/manager file=bible_db log=dible_db full=yoracle

3. 导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=napp

4. 导出一个或一组指定用户所属的所有表、索引和其余对象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经获得了这个用户的全部对象,可是仍是不能获得这些对象引用的任何同义词。解决方法是用如下的SQL*Plus命令建立一个脚本文件,运行这个脚本文件能够得到一个重建seapark所属对象的所有公共同义词的可执行脚本,而后在目标数据库上运行该脚本就可重建同义词了。
SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seapark.syn
SELECT 'Create public synonym '||synonym_name||' for'||table_owner||'.'||table_name||';'
FROM dba_synonyms
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFFui

5. 导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seapark.tank
exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)orm

6. 估计导出文件的大小
所有表总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE segment_type = 'TABLE';对象

seapark用户所属表的总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE';索引

seapark用户下的aquatic_animal表的字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE'
AND segment_name = 'AQUATIC_ANIMAL';ip

7. 导出表数据的子集(oracle8i以上)
NT系统:
exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type
file=fruit log=fruitci

UNIX系统:
exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amy.salad_type file=fruit log=fruit

8. 用多个文件分割一个导出文件
exp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4) log=paycheck, filesize=1G tables=hr.paycheck

9. 使用参数文件
exp system/manager parfile=bible_tables.par bible_tables.par参数文件:
#Export the sample tables used for the Oracle8i Database Administrator's Bible.
file=bible_tables
log=bible_tables
tables=(
amy.artist
amy.books
seapark.checkup
seapark.items
)

10. 增量导出
“彻底”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702.dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702.dmp
“累计型”增量导出(cumulative),即备份上一次“彻底”导出以后改变的数据
exp system/manager inctype=cumulative file=990702.dmp

imp nx_xds/embed@szs file='d:\nx_xds.dmp' log='d:\nx_xds.log' fromuser=nx_xds touser=nx_xds ignore=y

exp命令有个query参数

exp username/password@sid file=D:\test.dmp tables=(tablename) query=\"where cidno='1234679' and cname='张三'\"


问题记录
message 100 not found; no message file for product=rdbms, facility=imp: release 11.2.0.1.0 - production on tue oct 29 09:49:48 2013
copyright (c) 1982, 2009, orac

invalid format of import utility name
verify that oracle_home is properly set
import terminated unsuccessfully
imp-00000: message 0 not found; no message file for product=rdbms, facility=imp

上网查了一下,有人出现该问题的缘由是:
oracle安装路径\rdbms\mesg下面的文件expus.msb,expzhs.msb,impus.msb,impzhs.msb没有致使,安装问题,
从别的地方拷贝文件后,问题解决。

我这里的缘由是oracle_home 问题。
个人电脑--》环境变量--》里面的oracle_home 正常状况下应该是 d:\app\administrator\product\11.2.0\dbhome_1
而如今是安装oracle客户端简洁版的路径。
问题缘由应该是我先安装的oracle服务器,后安装的客户端,该变量被修改了。

修改为d:\app\administrator\product\11.2.0\dbhome_1,问题解决。