Oracle的备份

  • Oracle备份
    • 注意事项
    • Oracle备份命令——exp
  • Oracle的备份脚本
    • 注意事项
    • Windows
    • Linux
  • 定时备份
    • 注意事项
    • Windows下的定时备份
    • Linux下的定时备份
  • 常见问题
    • 有些表导着导着就没了

Oracle备份

注意事项

  • 命令执行位置

    • Oracle服务端
    • Oracle客户端
  • 备份数据库编码格式
    • Oracle客户端与Oracle服务端的编码格式
  • 是否支持exp命令
    • 是否安装Oracle客户端或Oracle服务端
  • 是否拥有读写权限
    • Window下的系统盘
    • Linux的用户读写权限

Oracle备份命令——exp

  • Oracle服务端下运行
-- 备份指定用户
--exp 用户名/用户密码 buffer=数据缓冲区大小 file=备份文件存储路径 log=备份日志存储路径
--例如:
--Windows
exp scott/pwd buffer=409600 file=D:\Oracle\Backup\scott.dmp log=D:\Oracle\Backup\scott.log
--Linux
exp scott/pwd buffer=409600 file=/home/dev/oracle/backup/scott.dmp log=/home/dev/oracle/backup/scott.log
  • Oracle客户端下运行
-- 备份指定用户
--exp 用户名/用户密码@连接名 buffer=数据缓冲区大小 file=备份文件存储路径 log=备份日志存储路径
--例如:
--Windows
exp scott/pwd@dev_001 buffer=409600 file=D:\Oracle\Backup\scott.dmp log=D:\Oracle\Backup\scott.log
连接名为:tnsnames.ora下配置的名称
dev_001 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))

Oracle的备份脚本

注意事项

  • 脚本执行位置

    • Windows
    • Linux
  • 脚本执行权限
  • 查询Oracle服务端编码
    • select userenv('language') from dual;
  • 脚本的格式
    • Windows:一般为GB2312
    • Linux:一般为UTF-8

Windows

@echo off
title 数据库备份脚本
color 07:: 设置Oracle编码
:: 如果设置的Oracle编码的与Oracle服务端编码不一致,可能会导致乱码
:: 为减少不必要的麻烦,建议与Oracle服务端编码保持一致
set NLS_LANG="AMERICAN_AMERICA.ZHS16GBK":: 获取日期时间
set currentTime=%time:~0,2%%time:~3,2%%time:~6,2%
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%set basePath="D:\backup\dmp"
set baseRecoveryPath="D:\backup\recovery"set oneLevelPath=%basePath%\%year%
set secondLevelPath=%oneLevelPath%\%month%
set threeLevelPath=%secondLevelPath%\%day%:: 一级路径
if not exist "%oneLevelPath%"  mkdir %oneLevelPath%  :: 二级路径
if not exist "%secondLevelPath%"  mkdir %secondLevelPath%  :: 三级路径
if not exist "%threeLevelPath%"  mkdir %threeLevelPath%  :: echo "导出指定用户下的数据文件";
::  导出scott数据库文件
echo "Export scott..."
exp scott/pwd buffer=409600 file=%threeLevelPath%\scott_%currentTime%.dmp log=%threeLevelPath%\scott_%currentTime%.log
echo "已完成数据库备份工作"echo "开始复制备份文件到恢复文件夹..."
:: scott
copy %threeLevelPath%\scott_%currentTime%.dmp %baseRecoveryPath%\scott.dmp
echo "已完成文件复制工作"

Linux

#! /bin/bash
# Oracle数据库备份# 设置Oracle备份所需的环境变量
# 如需设置Linxu定时任务自动运行脚本,必须设置环境变量
export ORACLE_HOME="/u01/app/oracle/product/11.2.0/EE";
export ORACLE_SID=EE;
export PATH="$PATH:/u01/app/oracle/product/11.2.0/EE/bin";# 容器内执行,本地文件备份
# 设置Oracle编码
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK";
# 获取日期
# dateTime=$(date +%Y-%m-%d-%H%M%S);# 获取当前日期
currentTime=$(date +%H%M%S);
year=$(date +%Y);
month=$(date +%m);
date=$(date +%d);
# 基础路径
basePath="/u01/app/oracle/backup/dmp";
baseRecoveryPath="/u01/app/oracle/backup/recovery";
oneLevelPath="$basePath/$year";
secondLevelPath="$basePath/$year/$month";
threeLevelPath="$basePath/$year/$month/$date";# 判断一级路径是否存在————年份
if [ ! -d "$oneLevelPath" ]; thenmkdir "$oneLevelPath"
fi# 判断二级路径是否存在————月份
if [ ! -d "$secondLevelPath" ]; thenmkdir "$secondLevelPath"
fi# 判断三级路径是否存在————日
if [ ! -d "$threeLevelPath" ]; thenmkdir "$threeLevelPath"
fi# echo "导出指定用户下的数据文件";
# scott导出数据库文件
echo "Export scott...";
exp scott/pwd buffer=409600 file=$threeLevelPath/scott$currentTime.dmp log=$threeLevelPath/scott$currentTime.log;
echo "已完成数据库备份工作";echo "开始复制备份文件到恢复文件夹..."
# scott
cp $threeLevelPath/scott$currentTime.dmp $baseRecoveryPath/scott.dmp;
echo "已完成文件复制工作";echo "所有事项已完成,结束备份工作";

定时备份

注意事项

  • 权限

    • 读、写、可执行权限
  • 不含有中断指令
    • 例如:pause及其他可能导致脚本暂停的指令

Windows下的定时备份

  • 找到并打开“任务计划程序”

    • 位于:控制面板\系统和安全\管理工具 下选中 “任务计划程序”
    • Win10可以直接通过小娜搜索
  • 为了便于管理,可以在任务计划程序库中新建文件夹
  • 接下来 创建任务
  • 输入具有描述性的名称、描述
  • 新增触发器,设置合适的执行周期
  • 新建操作,选中启动程序,在设置中选择需要执行的脚本文件
  • 保存即可

Linux下的定时备份

  • 查看是否具有crontab命令
  • 设置定时任务
    • crontab -e
  • 基于vi的编辑方式
    # crontab命令解释
    # *   *  *  *  *  command
    # 分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令
    # 例如:每天01:00执行数据库备份脚本——backup.sh0 1 * * * /u01/app/oracle/backup.sh > /u01/app/oracle/cron.log 2>&1
    
  • 在命令模式下,输入wq!保存即可
  • 引用:crontab命令参考地址
    //重新载入配置
    /sbin/service crond reload
    //重启服务
    /sbin/service crond restart
    

常见问题

有些表导着导着就没了

> 引用:11g默认创建一个表时不分配segment,只有在插入数据时才会产生(当然也可以强制分配),以节省磁盘空间。

参考地址1
参考地址2

  • 解决方案1

    --查询空表,并生成修改空表导出规则语句
    select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;
    

Oracle的备份——EXP相关推荐

  1. windows10 oracle自动备份,Windows系统下oracle 自动备份数据库

    Windows系统下oracle 自动备份数据库 1.创建批处理文件(.bat) 2.建立windows 定时任务 2.1创建任务 2.2 常规处 ->填写任务名称 2.3触发器 2.4 操作 ...

  2. linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)

    有个童鞋问rman的自动备份脚本程序,我之前有写过exp备份指定方案自动备份案例(Linux平台下的Oracle自动备份案例(使用exp工具)  http://www.linuxidc.com/Lin ...

  3. oracle 手动批处理,Oracle 简单备份 批处理(BAT)

    Oracle的简单备份批处理,有以下两个版本: (需要将代码复制到空的txt文件中,并另存为**.bat文件) 1.基本版:按照配置将数据库备份到指定的目录下 基本版本需要设置一下4个参数(加粗部分) ...

  4. 使用Oracle 的 imp ,exp 命令实现数据的导入导出

    本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其相应的参数进行了说明,然后通过一些示例进行演练,加深理解. 文章最后对运用这两个命令可能出现的问题(如权限不够,不同or ...

  5. oracle存档模式,Oracle的备份和存档模式

    Oracle的备份和存档模式 在做硬件升级前必须要将数据库做一次全备份,以便在出现不可预料的情况下进行恢复,全备份的方法有多种,以下列举两种简单高效的逻辑备份和冷备份,在数据库可以宕机的条件下,推荐使 ...

  6. oracle 怎么备份sqlserver数据库,Oracle和sqlserver数据库的备份与恢复

    Oracle 数据库的备份与恢复 当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(包括机器故障.介质故障.误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据 ...

  7. 记录——oracle数据库备份

    oracle数据库备份 Oracle数据库的三种标准的备份方法: 1.导出/导入(EXP/IMP). 2.热备份. 3.冷备份. 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一.导出/导 ...

  8. Oracle RMAN备份与还原 - 脱机备份讲解

    Oracle RMAN备份与还原 - 脱机备份讲解 RMAN在数据库服务器的帮助下实现数据库文件.控制文件.数据库文件与控制文件的映像副本.归档日志文件.数据库服务器参数文件的备份. RMAN的特点: ...

  9. Java实现Oracle数据库备份

    今天将很早就实现的一个Oracle数据库备份功能粘贴出来,这个功能是在大学做阶段设计时写的: [java] view plaincopy import java.io.File; import jav ...

最新文章

  1. 58一面:Redis数据更新,是先更新数据库还是先更新缓存?
  2. Redis之父退出开源项目维护:人生苦短不想上班
  3. xcode 7.2 怎么在Playground 中加载图片
  4. Asp.Net Core部署:早知道,还是docker!以及一点碎碎念
  5. python使用rabbitmq阻塞_python – Celery/RabbitMQ unacked消息阻塞队列?
  6. 一只青蛙跳向三个台阶_青蛙跳台阶问题的三种解法
  7. mysql的数据备份问题_mysql数据库备份的问题
  8. 微信回应“取消两分钟内删除功能”;甲骨文裁撤北京中心;Redis 6.0.6 发布| 极客头条
  9. 更改linux主机名称
  10. yolov5数据集标注txt2xml和xml2txt
  11. 【转载】svn代码回滚命令
  12. 常见黑客渗透测试工具
  13. python选择结构练习(一)
  14. 【文献翻译神器推荐】DeepL
  15. Yocto系列讲解[理论篇]25 - BitBake全过程(3)
  16. 人工智能的前世今生(二)
  17. 小程序 朋友圈,点赞 ,评论,发布动态,功能,上传图片 -----发布动态
  18. 高等代数 线性映射(第9章)3 不变子空间与最小多项式
  19. 【SQL Server】让你的数据来去自如——批处理
  20. SFX Silhouette for mac功能介绍(影视后期特效软件)

热门文章

  1. 打印机设置默认为黑白
  2. 对IEEE 802.15.4中Slotted CSMA-CA的理解
  3. Vue3 实用特性总结
  4. java获取当前时间离一天结束剩余秒数
  5. ios如何介入苹果广告_苹果公司的iOS 14广告股票面临新的重大挑战
  6. html语言div图片垂直居中,图文详解图片水平垂直居中的五种方法
  7. UI设计适合女生学吗?会不会很难?
  8. webbench安装过程
  9. 2023南开大学计算机考研信息汇总
  10. AMOS实验——方差估计与假设检验