- 浏览: 175373 次
- 性别:
- 来自: 邯郸
-
文章分类
最新评论
-
eyexhy:
楼主,你这种方方式创建在IE8下post不起作用啊,有没有更好 ...
jquery脚本,动态创建表单并进行POST提交 -
paloalto1987:
正确的和错误的有什么区别?
MySQL 修改多个列的值 -
yangpanwww:
lishirong 写道据说是Hibernate和Spring ...
Spring问题java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit -
lishirong:
据说是Hibernate和Spring的asm包的版本冲突,所 ...
Spring问题java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit -
永远永远:
怎么给Queue中的元素排序?
queue
你数据库对应的用户是不同的吧,根据用户导出就行了!
当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7为例,来讲述一下数据库的备份和恢复。ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份。
---- 一、 导出/导入(Export/Import)
---- 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。
---- 1. 简单导出数据(Export)和导入数据(Import)
---- Oracle支持三种类型的输出:
---- (1)表方式(T方式),将指定表的数据导出。
---- (2)用户方式(U方式),将指定用户的所有对象及数据导出。
---- (3)全库方式(Full方式),将数据库中的所有对象导出。
---- 数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。
---- 2. 增量导出/导入
---- 增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
---- 增量导出包括三个类型:
---- (1)“完全”增量导出(Complete)
---- 即备份整个数据库,比如:
---- $exp system/manager inctype=complete file=990702.dmp
---- (2) “增量型”增量导出
---- 备份上一次备份后改变的数据。比如:
---- $exp system/manager inctype=incremental file=990702.dmp
---- (3) “累计型”增量导出(Cumulative)
---- 累计型导出方式只是导出自上次“完全” 导出之后数据库中变化了的信息。比如:
---- $exp system/manager inctype=cumulative file=990702.dmp
---- 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。
---- 比如数据库的备份任务可作如下安排:
---- 星期一:完全导出(A)
---- 星期二:增量导出(B)
---- 星期三:增量导出(C)
---- 星期四:增量导出(D)
---- 星期五:累计导出(E)
---- 星期六:增量导出(F)
---- 星期日:增量导出(G)
---- 如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:
---- 第一步:用命令CREATE DATABASE重新生成数据库结构;
---- 第二步:创建一个足够大的附加回段。
---- 第三步:完全增量导入A:
---- $imp system./manager inctype= RECTORE FULL=Y FILE=A
---- 第四步:累计增量导入E:
---- $imp system/manager inctype= RECTORE FULL=Y FILE =E
---- 第五步:最近增量导入F:
---- $imp system/manager inctype=RESTORE FULL=Y FILE=F
二、 冷备份
---- 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:
---- 1.是非常快速的备份方法(只需拷贝文件)
---- 2.容易归档(简单拷贝即可)
---- 3.容易恢复到某个时间点上(只需将文件再拷贝回去)
---- 4.能与归档方法相结合,作数据库“最新状态”的恢复。
---- 5.低度维护,高度安全。
---- 但冷备份也有如下不足:
---- 1.单独使用时,只能提供到“某一时间点上”的恢复。
---- 2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
---- 3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
---- 4.不能按表或按用户恢复。
---- 如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:
---- 1.所有数据文件
---- 2.所有控制文件
---- 3.所有联机REDO LOG文件
---- 4.Init.ora文件(可选)。
---- 值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的
---- 下面是做冷备份的完整例子:
---- (1) 关闭数据库$sqldba lmode=y
---- SQLDBA >connect internal;
---- SQLDBA >shutdown normal;
---- (2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件
---- SQLDBA >! cp < file > <; backup directory >
---- (3) 重启Oracle数据库
---- $sqldba lmode=y
---- SQLDBA >connect internal;
---- SQLDBA >startup;
exp/imp导出导入工具的使用
2004-02 余枫
一. 导出工具 exp
1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
exp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移
它有三种模式:
a. 用户模式: 导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
2. 导出工具exp交互式命令行方式的使用的例子
$exp test/test123@appdb
Enter array fetch buffer size: 4096 > 回车
Export file: expdat.dmp > m.dmp 生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回车
Compress extents (yes/no): yes > 回车
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set
About to export specified tables via Conventional Path ...
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > cmamenu 要导出的表名
. . exporting table CMAMENU 4336 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) >要导出的表名n
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > 回车
Export terminated successfully without warnings.
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
说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600
(但我个人很少这样用,还是把满足条件的记录生成临时表后,再exp会方便一些)
$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000M log=/directory2/username_exp.log
参数文件username.par内容
userid=username/userpassword
buffer=8192000
compress=n
grants=y
说明:username.par为导出工具exp用的参数文件,里面具体参数可以根据需要去修改
filesize指定生成的二进制备份文件的最大字节数
(可用来解决某些OS下2G物理文件的限制及加快压缩速度和方便刻历史数据光盘等)
二.导入工具 imp
1. 它是操作系统下一个可执行的文件 存放目录/ORACLE_HOME/bin
imp导入工具将EXP形成的二进制系统文件导入到数据库中.
它有三种模式:
a. 用户模式: 导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象。
只有拥有IMP_FULL_DATABASE和DBA权限的用户才能做整个数据库导入
imp步骤:
(1) create table (2) insert data (3) create index (4) create triggers,constraints
2.导入工具imp交互式命令行方式的例子
$ imp
Import: Release 8.1.6.0.0 - Production on 星期五 12月 7 17:01:08 2001
(c) Copyright 1999 Oracle Corporation. All rights reserved.
用户名: test
口令:****
连接到: Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
导入文件: expdat.dmp> /tmp/m.dmp
输入插入缓冲区大小(最小为 8192 ) 30720>
经由常规路径导出由EXPORT:V08.01.06创建的文件
警告: 此对象由 TEST 导出, 而不是当前用户
已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导入
只列出导入文件的内容(yes/no):no>
由于对象已存在, 忽略创建错误(yes/no):no> yes
导入权限(yes/no):yes>
导入表数据(yes/no):yes>
导入整个导出文件(yes/no):no> yes
. 正在将TEST的对象导入到 SCOTT
. . 正在导入表 "CMAMENU" 4336行被导入
成功终止导入,但出现警告。
3.导入工具imp非交互式命令行方式的例子
$ imp system/manager fromuser=jones tables=(accts)
$ imp system/manager fromuser=scott tables=(emp,dept)
$ imp system/manager fromuser=scott touser=joe tables=emp
$ imp scott/tiger file = expdat.dmp full=y
$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log
$ imp system/manager parfile=params.dat
params.dat 内容
file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp)
4.导入工具imp可能出现的问题
(1) 数据库对象已经存在
一般情况, 导入数据前应该彻底删除目标数据下的表, 序列, 函数/过程,触发器等;
数据库对象已经存在, 按缺省的imp参数, 则会导入失败
如果用了参数ignore=y, 会把exp文件内的数据内容导入
如果表有唯一关键字的约束条件, 不合条件将不被导入
如果表没有唯一关键字的约束条件, 将引起记录重复
(2) 数据库对象有主外键约束
不符合主外键约束时, 数据会导入失败
解决办法: 先导入主表, 再导入依存表
disable目标导入对象的主外键约束, 导入数据后, 再enable它们
(3) 权限不够
如果要把A用户的数据导入B用户下, A用户需要有imp_full_database权限
(4) 导入大表( 大于80M ) 时, 存储分配失败
默认的EXP时, compress = Y, 也就是把所有的数据压缩在一个数据块上.
导入时, 如果不存在连续一个大数据块, 则会导入失败.
导出80M以上的大表时, 记得compress= N, 则不会引起这种错误.
(5) imp和exp使用的字符集不同
如果字符集不同, 导入会失败, 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.
导入完成后再改回来.
(6) imp和exp版本不能往上兼容
imp可以成功导入低版本exp生成的文件, 不能导入高版本exp生成的文件
根据情况我们可以用
$ imp username/password@connect_string
说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora
定义的本地或者远端数据库的名称
注意事项:
UNIX: /etc/hosts 要定义本地或者远端数据库服务器的主机名
win98: windows\hosts 和IP地址的对应关系
win2000: winnt\system32\drivers\etc\hosts
---------------------------------------------------------------------------------------------------------------------------
上面的太乱没怎么整理,今天看到一个导入导出的帖子 重新发一次
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:
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 就可以了。
2 将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)
转自http://bbs.51cto.com/thread-7272-1.html中youtaoup的回帖
发表评论
-
Oracle sql语句执行顺序
2013-03-26 17:05 907sql语法的分析是从右到左 一、sql语句的执行步骤 ... -
oracle JOB常见的执行时间
2012-11-07 16:58 13281、每分钟执行TRUNC(sysdat ... -
【转】PRAGMA AUTONOMOUS_TRANSACTION oracle 自治事务
2011-06-09 11:11 1879原文地址:http://blog.sina.com.cn/ ... -
sql语句优化
2011-01-06 09:18 8641)选择最有效率的表名顺序(只在基于规则的优化器中有效): ... -
触发器 当表中一个字段的值改变时,另一个字段也发生改变
2010-10-20 10:59 6108表table1 字段a,b a,b 一一对应 表table ... -
sequence
2010-09-29 09:12 815CREATE TABLE example( ID Numbe ... -
Oracle 连接查询和sql语句中的条件判断
2010-09-28 11:39 1415SELECT 1 UPLOAD, 0 SHENGJ ... -
定时自动操作数据库——Oracle JOB 用法小结
2010-09-21 13:52 1302一、设置初始化参数 job_queue_processes ... -
触发器(转)
2010-09-20 10:06 889触发器 是特定事件出现的时候,自动执行的代码块。类似于存储过 ... -
查询距现在时间大于九十天数据记录的sql语句
2010-09-19 20:22 1597select * from adpm_migrate_oper ... -
Oracle数据字典基本命令(二)
2010-08-04 18:38 1556一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭 ... -
Oracle数据字典基本命令(一)
2010-08-04 18:34 1094对于一个有着许多用户的数据库系统,我们可以通过下述方法来了解数 ... -
入门基础:浅析Oracle监听器安装与配置
2009-09-22 22:20 3662本地服务名(Tnsname) ... -
Oracle安装指南
2009-09-22 17:27 1787刚刚接触ORACLE的人来说,从那里学,如何学,有那些工具可以 ...
相关推荐
windows环境下,使用bat批处理,自动进行数据库备份到别的机器,且限定备份时间在30天内。
Oracle 数据导入导出是数据库管理中的重要操作,Oracle 9i 提供了通过 Oracle Management Server (OMS) 来简化这一过程。Oracle Management Server 是 Oracle 企业级管理工具的一部分,它允许管理员对数据库进行集中...
exp 命令用于将数据库导出到一个文件中,而 imp 命令用于将数据库从文件中导入。 1. 全数据库完全导出 使用 exp 命令可以将整个数据库导出到一个文件中。例如: exp system/system@ORACLE file=/tmp/rmanbak/...
这意味着你可以在一台机器上启动导出任务,然后在另一台机器上监控任务的进度。这种特性对于分布式环境和远程管理非常有用。为了实现这一点,你需要在数据库中创建一个DIRECTORY对象来指定输出路径,比如: ```sql ...
由于Oracle 9i与Oracle 10g之间存在版本差异,这可能涉及到一些兼容性问题,特别是当导出的数据包含BLOB、CLOB等大数据类型字段时。本文旨在提供一种解决方案来解决这一问题。 #### 问题描述 Oracle 9.2.0.5之前的...
完成后,导出的文件通常是一个.dmp或其它格式的文件,可以用于在另一台装有Oracle数据库的机器上进行导入。 对于那些希望在没有完整Oracle客户端环境的计算机上工作的人来说,"oracle11g 导出" 解决方案是一个非常...
本篇文章将详细介绍如何将SQL Server 2000中的数据导入到Oracle 9i。以下是一步步的指导,帮助你完成这个过程。 首先,你需要在SQL Server 2000中选择要导出的数据库。这可以通过在SQL Server Management Studio中...
在导入过程中,还可以使用`fromuser`和`touser`参数来改变对象的所有权,将数据从一个用户迁移到另一个用户。 此外,使用Oracle的Toad工具,可以提供图形化的界面,简化数据库的导入导出操作,使得数据库的管理和...
- 另一种方案是使用DBCA工具建立19c与源库相同字符集中间库,通过hot clone迁移到19c AL32UTF8字符集的最终库,也可以直接使用exp/imp工具升级至19c,保留原有字符集。 2. **11.2.0.4 到 19c**: - 对于AIX平台上...
exp pmshn/pmshn@proj_50 file=d:\a.dmp tables=(CPN_INTERFACE_CSMS_MMU) 说明: proj_50:自己机器上的PL/SQL中建立的连接的那个别名,不是数据库名
3. 在PC1机器修改ORACLE的两个服务OracleTNSListener和OracleServiceORAFA为帐户式登录。 知识点四:RMAN备份脚本 编写rman批处理文件,实现每天夜间1点执行、数据库全备、备份控制文件及归档日志文件、备份文件...
Oracle 数据仓库解决方案是基于 Oracle 9i/10g 数据库管理系统的数据仓库解决方案,它提供了一个集成的数据仓库解决方案,包括数据获取、数据管理和数据使用三个层次。 数据获取层是数据仓库系统的基础层,负责从...
要将 Access 表中的数据导入到 ORACLE 中,首先需要在 Access 数据库驻留的机器上安装 ORACLE 客户端。然后,使用 NetManager 配置 ORACLE 服务名。接下来,在 Access 数据库驻留的机器上创建 DSN,连接 ORACLE ...
"ORACLE快速导数据工具"正是一款针对这一需求设计的实用软件,它能显著提高在Oracle数据库中导入和导出数据的速度。 该工具的主要目标是优化数据迁移过程,对于数据库管理员和开发人员来说,它是一个不可或缺的助手...
- **Oracle数据仓库的实力**:Oracle数据仓库被广泛认为是一种可靠且成熟的商务解决方案,能够帮助企业应对上述挑战。 #### 二、Oracle数据仓库的体系结构 - **平台概述**:Oracle数据仓库基于Oracle数据库和一...
在Oracle数据库中,为了确保客户端能够成功地连接到服务器,Oracle提供了一系列的连接机制。这些机制不仅包括了本地命名、简易连接命名等常见方式,还有外部命名以及目录命名等较为特殊的连接方式。 ##### 1.1 本地...
Oracle 9i 提供了一种通过管理服务器(Oracle Management Server, OMS)进行数据导入导出的便捷方式。本文将详细介绍如何利用 OMS 实现这一功能。 首先,要使用 OMS 进行数据导入导出,必须确保已经安装了 Oracle ...
在IT行业中,数据库之间的数据迁移是一项常见的任务,特别是在企业级应用中,可能需要将数据从一个数据库系统迁移到另一个。本篇文章将详细讲解如何使用Sql Server企业管理器中的“数据转换服务”(Data ...
在本文中,我们将学习如何使用 PowerDesigner 将 Oracle 数据库结构导出到 PowerDesigner 中,从而生成 ER 图。 一、PowerDesigner 逆向工程导出 Oracle 表图 要将 Oracle 数据库结构导出到 PowerDesigner 中,...