当前位置: 首页 > news >正文

windows 下 oracle 数据库的备份与还原

1、备份

        创建备份出来的文件存放的位置。

 

        创建目录对象,在数据库中创建一个目录对象,该对象指向文件系统中用于存储导出文件的实际目录( sql 命令,可以在 plsql 中执行)。

-- 创建目录对象,'\D:\Oracle19c\backup' 需替换为你实际的导出目录
CREATE OR REPLACE DIRECTORY dump_dir AS 'D:\Oracle19c\backup';

 dump_dir:就是数据库中的一个对象,代表这个目录,这个可以自定义。

        导出数据库之 “全库导出”(命令行执行)。

expdp ZERO_ECOLOGICAL_CHAIN/1231@orcl DIRECTORY=dump_dir DUMPFILE=ZERO_ECOLOGICAL_CHAIN.dmp LOGFILE=full_export.log FULL=Y

ZERO_ECOLOGICAL_CHAIN:用户名。

1231:密码。

orcl:数据库实例名(一般是orcl)。

ZERO_ECOLOGICAL_CHAIN.dmp:导出后的文件名。

执行如图:

...

         这样就导出了,并且在刚才的目录下能看到一个 .dmp文件。

         导出数据库之 “按表导出”(命令行执行,后面的 table1、table2 就是表名)。

expdp ZERO_ECOLOGICAL_CHAIN/1231@orcl DIRECTORY=dump_dir DUMPFILE=ZERO_ECOLOGICAL_CHAIN.dmp LOGFILE=table_export.log TABLES=table1,table2

 2、还原

         还原数据,跟刚才一样,先创建目(我这里因为是本地,刚已经建立好了,就不重复建了,就直接用刚才的目录了)。

-- 以具有 DBA 权限的用户登录到数据库,例如 SYSTEM
-- 创建目录对象,'D:\oracle_dump' 需替换为实际存储 DMP 文件的目录
CREATE OR REPLACE DIRECTORY dump_dir AS 'D:\Oracle19c\backup';

        建还原用的用户,并赋予角色,再给用户对这个文件目录的读写权限,创建表空间,把表空间和用户绑定起来(创建表空间的时候,要确保 D:\Oracle19c\TABLESPACE_RESTORE\ 文件目录是存在的)。

-- 新建用户
CREATE USER RESTORE_ZERO_ECOLOGICAL_CHAIN IDENTIFIED BY 1231;-- 给用户 用户名 赋予角色(这里直接是系统角色,如果想要其他角色也可以自己加)
GRANT DBA TO RESTORE_ZERO_ECOLOGICAL_CHAIN;-- 授予用户对目录对象读取权限
GRANT READ, WRITE ON DIRECTORY dump_dir TO RESTORE_ZERO_ECOLOGICAL_CHAIN;-- 创建表空间和表空间里的数据文件
CREATE TABLESPACE RESTORE_ZERO_ECOLOGICAL_CHAIN -- 表空间名字 表空间名字
DATAFILE 'D:\Oracle19c\TABLESPACE_RESTORE\RESTORE_ZERO_ECOLOGICAL_CHAIN.DBF' SIZE 1024M --如D:\Oracle19c\表空间名字\用户名.DBF 1024M 数据文件的初始大小
AUTOEXTEND ON NEXT 1024M -- 启用自动扩展特性 1024M 数据文件在需要扩展时增加的大小
MAXSIZE 20480M -- 20,480M 数据文件可以自动扩展到的最大尺寸
LOGGING; -- 日志记录选项,用于决定是否在数据库的重做日志中记录对表空间中数据的更改。-- 给用户指定默认表空间(就是以后数据就存储在这里面)
ALTER USER RESTORE_ZERO_ECOLOGICAL_CHAIN DEFAULT TABLESPACE RESTORE_ZERO_ECOLOGICAL_CHAIN;

        建用户之后,可以查看一下当前用户有哪些表。

-- 查看当前用户有哪些表
SELECT table_name
FROM all_tables
WHERE owner = 'RESTORE_ZERO_ECOLOGICAL_CHAIN';

         可以看到刚建完的用户是没有表的。

         还原数据之 “全库还原”(命令行执行,因为这个是扫描整个数据库,而不是特定的用户,如果其他用户下有相同的表,就会跳过,所以不建议全库导入)。

impdp RESTORE_ZERO_ECOLOGICAL_CHAIN/1231@orcl DIRECTORY=dump_dir DUMPFILE=ZERO_ECOLOGICAL_CHAIN.DMP LOGFILE=full_import.log FULL=Y

         特定用户导入(建议)。

impdp RESTORE_ZERO_ECOLOGICAL_CHAIN/1231@orcl DIRECTORY=dump_dir DUMPFILE=ZERO_ECOLOGICAL_CHAIN.DMP LOGFILE=import.log SCHEMAS=ZERO_ECOLOGICAL_CHAIN REMAP_SCHEMA=ZERO_ECOLOGICAL_CHAIN:RESTORE_ZERO_ECOLOGICAL_CHAIN REMAP_TABLESPACE=ZERO_ECOLOGICAL_CHAIN:RESTORE_ZERO_ECOLOGICAL_CHAIN

SCHEMAS=ZERO_ECOLOGICAL_CHAIN:

        ZERO_ECOLOGICAL_CHAIN:在数据库中,只检索该用户下的表。

        指定只从导出文件中导入ZERO_ECOLOGICAL_CHAIN 用户的对象。这样,导入操作就不会去检查数据库中其他用户的同名表,而是聚焦在指定的这个用户的对象上,就能避免其他用户有相同的表的时候,导入不全的问题。

REMAP_SCHEMA=ZERO_ECOLOGICAL_CHAIN:RESTORE_ZERO_ECOLOGICAL_CHAIN:

        ZERO_ECOLOGICAL_CHAIN:指定查找备份文件中具体的用户下的表。

        RESTORE_ZERO_ECOLOGICAL_CHAIN:需要导入的用户。

        此参数用于将导出文件中原本属于 ZERO_ECOLOGICAL_CHAIN 用户的对象,在导入时重新映射到 RESTORE_ZERO_ECOLOGICAL_CHAIN 用户下,实现指定导入某个用户下面的表到指定用户(看情况使用)。

REMAP_TABLESPACE=ZERO_ECOLOGICAL_CHAIN:RESTORE_ZERO_ECOLOGICAL_CHAIN:

        ZERO_ECOLOGICAL_CHAIN:原表空间的名字。

        RESTORE_ZERO_ECOLOGICAL_CHAIN:导入的用户所在的表空间。

        因为数据仍存储在源用户的表空间,导入的时候,如果不指定表空间,不管导入的用户是哪个表空间,都会导入到源表空间,如果源表空间又不存在,就会尝试导入到导入用户的表空间,如果没有足够的权限,可能导致报错,但是如果有源表空间,但是不是该用户下的,后期还要移动比较麻烦,就可以指定一下(看情况使用)。

执行如图:

        这样就完成导入了,然后再去查一下用户下的表,表都导入进来了就没问题了。

相关文章:

  • 多线程系列一:认识线程
  • 【计算机网络】​TCP(传输控制协议)套接字,多线程远程执行命令编程​
  • 2025年真实面试问题汇总(一)
  • 【Python学习路线】零基础到项目实战
  • RFID光触发标签工业级分拣难题的深度解决方案
  • Vue3笔记摘录
  • 读论文笔记-CoOp:对CLIP的handcrafted改进
  • 兰亭妙微:全流程交互设计和设计前后对比
  • 如何加速机器学习模型训练:深入探讨与实用技巧
  • Vue2 vs Vue2.7 深度对比
  • 【Java】打印运行环境中某个类引用的jar版本路径
  • Nginx核心
  • 深入探索ChatClient:简化AI模型交互的强大工具
  • Compose笔记(二十一)--AnimationVisibility
  • 深度学习论文: Describe Anything: Detailed Localized Image and Video Captioning
  • 柔性生产是什么?怎样能实现柔性生产?
  • PC端实现微信扫码登录
  • 图数据库榜单网站
  • Doris索引机制全解析,如何用高效索引加速数据分析
  • ESP32开发-作为TCP服务端接收数据
  • 马克思主义理论研究教学名师系列访谈|丁晓强:马克思主义学者要更关注社会现实的需要
  • 5月起,这些新规将施行
  • 五部门:开展新就业形态劳动者劳动权益保障水平提升专项行动
  • “女乘客遭顺风车深夜丢高速服务区”续:滴滴永久封禁两名涉事司机账号
  • 今年一季度全国社会物流总额达91万亿元,工业品比重超八成
  • 五万吨级半潜船在沪完成装备装载