oracle数据备份和还原

简介: oracle数据备份和还原

前言

  • 用户:userzs
  • 密码:passzs
  • IP和端口:192.168.0.10:1521/orcl
  • oracle版本:11和12

oracle自带expexpdp程序用于数据导出备份,impimpdp程序用于数据导入还原。使用exp导出的数据文件,不能使用impdp进行还原;同理,使用expdp导出的数据文件也不能使用imp进行还原。

建议使用expdpimpdp

备份导出

注意,在oracle 11,exp默认不会导出空表,除非改一些参数;否则尽量使用expdp

  • expdp示例。注意directory名。生成的dmg文件在directory_name对应的directory_path目录下。
./expdp userzs/passzs@192.168.0.10:1521/orcl \
directory=DATA_DUMP_DIR \
dumpfile=backup20220426.dmp \
logfile=export20220426.log
  • 导出整个数据库
./expdp userzs/passzs@192.168.0.10:1521/orcl \
directory=DATA_DUMP_DIR \
dumpfile=backup20220426.dmp \
logfile=export20220426.log \
full=y

还原导入

  • impdp示例
./impdp userzs/passzs@192.168.0.10:1521/orcl \
directory=DATA_DUMP_DIR \
dumpfile=backup20220426.dmp \
logfile=import20220426.log
  • 覆盖导入
./impdp userzs/passzs@192.168.0.10:1521/orcl \
directory=DATA_DUMP_DIR \
dumpfile=backup20220426.dmp \
logfile=import20220426.log \
table_exists_action=replace

问题记录

windows下找不到expdp和impdp命令

windows命令行下如果没有expdpimpdp命令,但是有expimp命令,可以在cmd(注意不是powershell)下执行where exp,在输出结果的目录下找找expdpimpdp

导入时提示unable to extend table

这个是因为表空间不足,如果开了自动扩增但还是满了,就要增加表空间数据文件。

  1. 假设名为SYSAUX的表空间满了。
  2. 查看SYSAUX表空间的使用情况。数据文件,表空间名,已使用空间,最大空间
SELECT file_name, tablespace_name, bytes / 1024 / 1024 "bytes MB", maxbytes / 1024 / 1024 "maxbytes MB" FROM dba_data_files WHERE tablespace_name = 'SYSAUX';
-- 查看表空间数据文件是否已开启自动扩增
SELECT file_id, file_name, tablespace_name, autoextensible, increment_by FROM dba_data_files WHERE tablespace_name = 'SYSAUX' ORDER BY file_id desc;
  1. 假设表空间SYSAUX下只有一个数据文件为/home/oracle/oradata/ORCL/datafile/o1_mf_sysaux_qwerty_.dbf
  2. 扩增数据文件的大小。一般情况下,最大只能扩增到32g
alter database datafile '/home/oracle/oradata/ORCL/datafile/o1_mf_sysaux_qwerty_.dbf' resize 32g;
  1. 如果数据文件已经到了32g,那么就要使用dba权限为SYSAUX表空间添加一个数据文件
-- 添加数据文件 /home/oracle/oradata/ORCL/datafile/sysaux_002.dbf 到 SYSAUX
-- 数据文件大小为 1024MB,可以自动扩增到16GB
alter tablespace SYSAUX add datafile '/home/oracle/oradata/ORCL/datafile/sysaux_002.dbf' size 1024M autoextend on maxsize 16G;
  1. 使用第2步的SQL,查看SYSAUX表空间的数据文件,查看是否添加成功。

补充

  • oracle查看所有directory的命令,(需要在控制台执行)
select * from all_directories;
相关文章
|
Oracle 关系型数据库 数据库
Oracle 12c PDB的数据备份恢复
今天测试了一下12c中的PDB还原恢复,里面还是有不少的差别。 我就简单模拟了一个破坏场景,是在一个未打开的PDB tcymob0从中删除了数据文件usres01.dbf,然后尝试备份恢复。
1468 0
|
Oracle 关系型数据库 数据库
oracle中导入导出数据备份数据库
原文:oracle中导入导出数据备份数据库                            数据库所在位置                         将数据导出到的文件名                    用户名  备份数据库 :exp csm/csm@127.
913 0
|
3月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
221 64
|
26天前
|
存储 Oracle 关系型数据库
数据库数据恢复—ORACLE常见故障的数据恢复方案
Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、ORACLE数据文件部分损坏。 5、ORACLE DUMP文件损坏。
84 11
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
2月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
1月前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。

推荐镜像

更多