Oracle表数据备份

Oracle数据库备份一个表数据并恢复

使用场景:

当我们平时想要大批量替换数据的时候,在生产上往往会先备份,然后如果遇到问题再回退,那么可能涉及下面两个语句:

1.创建一个备份表并存储原始数据

CREATE TABLE 备份表 as SELECT * FROM 旧表

2.恢复原始数据

INSERT INTO 旧表 SELECT * FROM 备份表

备注:

这样的话 我们就可以把要修改的表数据大胆删除,然后插入最新的数据,当有异常的时候,回退方法就是 将备份表的数据还原回去即可

Oracle单表备份三种方案

备份方案一:

1. 备份

create table [备份名] as select * from [表名];

2. 恢复

truncate table org_group;

insert into org_group select * from [备份名] ;

3. 说明

此种情况适用于,同一个数据库,需要备份某张表。

备份方案二:

1. 备份

oracle用户终端执行:

exp [用户名]/[密码] tables=[表一],[表二] file=/home/oracle/table.dmp

2. 恢复

oracle用户终端执行:

imp [用户名]/[密码] grants=y commit=y full=y ignore=y file=/home/oracle/table.dmp

备份方案三:

1. 备份

登录sqlplus:

sqlplus / as sysdba

创建directory:

create directory dpdata as '/home/oracle/';

目录创建以后,就可以把读写权限授予特定用户:

grant read, write on directory dpdata to [用户名];

oracle用户终端执行:

expdp [用户名]/[密码] tables=[表一],[表二] directory=dpdata dumpfile=table.dmp job_name=cases_export

2. 恢复

登录sqlplus :

sqlplus / as sysdba

创建directory:

create directory dpdata as '/home/oracle/';

目录创建以后,就可以把读写权限授予特定用户:

grant read, write on directory dpdata to [用户名];

oracle用户终端执行:

impdp [用户名]/[密码] directory=dpdata dumpfile=table.dmp job_name=cases_export

3. 说明

查询dba_directories查看所有directory:

select * from dba_directories;

删除directory:

drop directory dpdata;

posted @ 2022-11-18 18:05  赤兔胭脂小吕布  阅读(11691)  评论(0)    收藏  举报