十二、oracle 数据库(表)的逻辑备份与恢复

一、介绍
逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程。
逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程。
物理备份即可在数据库open的状态下进行也可在关闭数据库后进行,但是逻辑备份和恢复只能在open的状态下进行。

二、备份(导出)
导出分为导出表、导出方案、导出数据库三种方式。
导出使用exp命令来完成的,该命令常用的选项有:
userid:用于指定执行导出操作的用户名,口令,连接字符串
tables:用于指定执行导出操作的表
owner:用于指定执行导出操作的方案
full=y:用于指定执行导出操作的数据库
inctype:用于指定执行导出操作的增量类型
rows:用于指定执行导出操作是否要导出表中的数据
file:用于指定导出文件名

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

1)、导出表
1.导出自己的表
exp userid=scott/[email protected] tables=(emp) file=d:\emp.dmp --导出单个表
exp userid=scott/[email protected] tables=(emp,dept) file=d:\emp.dmp --导出多个表
eg、
C:\Users\jiqinlin>cd D:\dev\oracle\product\10.2.0\db_1\bin
C:\Users\jiqinlin>d:
D:\dev\oracle\product\10.2.0\db_1\bin>exp userid=scott/[email protected] tables=(emp) file=d:\emp.dmp

2.导出其它方案的表
如果用户要导出其它方案的表,则需要dba的权限或是exp_full_database的权限,比如system就可以导出scott的表
D:\dev\oracle\product\10.2.0\db_1\bin>exp userid=system/[email protected] tables=(scott.emp) file=d:\emp.emp
D:\dev\oracle\product\10.2.0\db_1\bin>exp userid=system/[email protected] tables=(scott.emp,scott.dept) file=d:\emp.emp

3. 导出表的结构
exp userid=scott/[email protected] tables=(emp) file=d:\emp.dmp rows=n

4. 使用直接导出方式
exp userid=scott/[email protected] tables=(emp) file=d:\emp.dmp direct=y
这种方式比默认的常规方式速度要快,当数据量大时,可以考虑使用这样的方法。
这时需要数据库的字符集要与客户端字符集完全一致,否则会报错...
                    
2)、导出方案
导出方案是指使用export工具导出一个方案或是多个方案中的所有对象(表,索引,约束...)和数据,并存放到文件中。
1. 导出自己的方案
exp userid=scott/[email protected] owner=scott file=d:\scott.dmp
2. 导出其它方案
如果用户要导出其它方案,则需要dba的权限或是exp_full_database的权限,
比如system 用户就可以导出任何方案
exp userid=system/[email protected] owner=(system,scott) file=d:\system.dmp
                
3)、导出数据库
导出数据库是指利用export导出所有数据库中的对象及数据,要求该用户具有dba的权限或者是exp_full_database权限
增量备份(好处是第一次备份后,第二次备份就快很多了)
exp userid=system/[email protected] full=y inctype=complete file=d:\all.dmp

三、恢复(导入)
导入就是使用工具import将文件中的对象和数据导入到数据库中,但是导入要使用的文件必须是export所导出的文件。与导出相似,导入也分为导入表,导入方案,导入数据库三种方式。
imp常用的选项有
userid:用于指定执行导入操作的用户名,口令,连接字符串
tables:用于指定执行导入操作的表
formuser:用于指定源用户
touser:用于指定目标用户
file 用于指定导入文件名
full=y:用于指定执行导入整个文件
inctype:用于指定执行导入操作的增量类型
rows:指定是否要导入表行(数据)
ignore:如果表存在,则只导入数据

1)导入表
1. 导入自己的表
imp userid=scott/[email protected] tables=(emp) file=d:\xx.dmp
2. 导入表到其它用户
要求该用户具有dba的权限,或是imp_full_database
imp userid=system/[email protected] tables=(emp) file=d:\xx.dmp touser=scott
3. 导入表的结构
只导入表的结构而不导入数据
imp userid=scott/[email protected] tables=(emp) file=d:\xx.dmp rows=n
4. 导入数据
如果对象(如比表)已经存在可以只导入表的数据
imp userid=scott/[email protected] tables=(emp) file=d:\xx.dmp ignore=y

2)导入方案
导入方案是指使用import工具将文件中的对象和数据导入到一个或是多个方案中。如果要导入其它方案,要求该用户具有dba 的权限,或者imp_full_database
1.导入自身的方案
imp userid=scott/[email protected] file=d:\xxx.dmp
2.导入其它方案
要求该用户具有dba的权限
imp userid=system/[email protected] file=d:\xxx.dmp fromuser=system touser=scott

3)导入数据库(相当于数据库迁移)
在默认情况下,当导入数据库时,会导入所有对象结构和数据,案例如下:
imp userid=system/[email protected] full=y file=d:\xxx.dmp

时间: 2024-08-02 14:04:17

十二、oracle 数据库(表)的逻辑备份与恢复的相关文章

Oracle数据库用户数据完整备份与恢复

使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1   PL/SQL->工具->导出用户对象,选项如图 常用的用户对象包括: TABLE,SEQUENCE,VIEW,PACKAGE,TYPE,FUNCTION,PROCEDURE,PACKAGE BODY,TREGGER 选择需要导入的用户对象,导出.sql文件,此步骤导出的是建表语句,包括存储过程.触发器.视图等 . 1.2  PL/SQ

oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号?

Oracle 语句中"||"代表什么啊? oracle数据库表中,插入数据的时候如何产生一个 字母+数字 编号? 排序的话,用order by来处理即可.比如:cola123a234b999b335select * from tablename order by col; 结果就是 cola123a234b335b999 如果按倒序排列:select * from tablename order by col desc; 结果就是 colb999b335a234a123 其他回答 先创

Oracle 数据库表中已有重复数据添加唯一键(唯一约束)

Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID CODE 1 code1 2 code2 3 code2 4 code2 5 code3 通过以上表中数据可以看出 code 是有重复数据的,此时如果我们直接添加唯一键,会报错. 通过 PL/SQL 可视化操作,或者通过 SQL 语句添加(ENABLE NOVALIDATE 的作用是约束新增数据但不会

基于Cordys C3版平台应用系统维护经验一则——Oracle数据库表空间满了

某日中午,有用户陆续反映系统问题,说流程送出异常.待办不消失.待办打不开等等.维护工程师开始分析问题,后台较为清晰的现象是流转日志记录插入数据失败,人工测试表插入成功,其它现象五花八门,没有规律,经过多位维护工程师的努力,终于由Oracle数据库管理工程师在16:01排除故障,系统基本恢复"正常". 故障原因是"应用系统Oracle数据库中Cordys用户所对应的表空间"满了,导致应用无法正常向数据库写入数据,造成业务数据不完整. 第二日,维护人员根据用户反馈,逐个

如何查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

要查看Oracle数据库表空间大小,是否需要增加表空间的数据文件,在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见. --1.查看表空间已经使用的百分比 Sql代码 select   a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024   "used MB",b.bytes/1024/1024 "free MB",round(((a.by

第三十二章——数据库打包和三大范式

package程序包和程序体 package---包头 package body---包体 dbms_output.put_line(); 上面的输出语句就是一个程序包加存储过程 dbms_output是包的名字, 调用里面的某个方法 包头的语法: create or replace package 包头名 as 变量的说明... 存储过程或者函数的声明(不需要写实现的代码块) end; 声明了一个包头, 就要有一个包体与之对应, 去实现包头中写明的存储过程或者函数 包体的语法: create

oracle数据库-表空间基础语法及举例

数据库的存储结构 数据库主要用于存储和检索相关的信息,Oracle数据库包含逻辑结构和物理结构. 物理结构是指现实存储单元,由一组文件组成如数据文件.日志文件.控制文件. 数据文件:用于存储数据的文件.如表,索引和数据等都存储在数据文件中. 日志文件:用于记录对数据库的修改信息. 控制文件:用于存储 Oracle实例信息.数据文件信息和日志文件信息的二进制文件.由于存储了数据文件和日志文件的信息,所以 Oracle启动时必须访问呢控制文件. 逻辑结构式是指数据概念性的组织.包括  表空间.表.行

Oracle数据库导入导出逻辑备份方法总结

[EXP常用参数] USERID  即用户名/密码该参数就必须且为第一个: FILE    指定数据输出文件路径: LOG     指定日志输出文件路径: TABLES  导出指定表数据: FULL    完全导出整个文件(N): ROWS    导出数据行(Y): QUERY   用于导出表的子集的 select 子句: [示例] 1.[全库模式]将数据库orcl完全导出,用户名scott密码scott数据文件导出到D:/orcl/scott.dmp,日志文件到出到D:/orcl/scott.

oracle数据库表的导入导出cmd命令大全

在实际的项目开发中经常会遇到导入导出oracle数据库中的表,以下是常用的一些cmd命令: 一.数据表的导出 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp  file=d:daochu.dmp full=y  或者(exp RRS/[email protected] file=daochu.dmp full=y )这是将表全部导出,如果只想导出RRS表则: exp RRS/[email protected] file=daochu