Oracle的备份——EXP
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相关推荐
- windows10 oracle自动备份,Windows系统下oracle 自动备份数据库
Windows系统下oracle 自动备份数据库 1.创建批处理文件(.bat) 2.建立windows 定时任务 2.1创建任务 2.2 常规处 ->填写任务名称 2.3触发器 2.4 操作 ...
- linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)
有个童鞋问rman的自动备份脚本程序,我之前有写过exp备份指定方案自动备份案例(Linux平台下的Oracle自动备份案例(使用exp工具) http://www.linuxidc.com/Lin ...
- oracle 手动批处理,Oracle 简单备份 批处理(BAT)
Oracle的简单备份批处理,有以下两个版本: (需要将代码复制到空的txt文件中,并另存为**.bat文件) 1.基本版:按照配置将数据库备份到指定的目录下 基本版本需要设置一下4个参数(加粗部分) ...
- 使用Oracle 的 imp ,exp 命令实现数据的导入导出
本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其相应的参数进行了说明,然后通过一些示例进行演练,加深理解. 文章最后对运用这两个命令可能出现的问题(如权限不够,不同or ...
- oracle存档模式,Oracle的备份和存档模式
Oracle的备份和存档模式 在做硬件升级前必须要将数据库做一次全备份,以便在出现不可预料的情况下进行恢复,全备份的方法有多种,以下列举两种简单高效的逻辑备份和冷备份,在数据库可以宕机的条件下,推荐使 ...
- oracle 怎么备份sqlserver数据库,Oracle和sqlserver数据库的备份与恢复
Oracle 数据库的备份与恢复 当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(包括机器故障.介质故障.误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据 ...
- 记录——oracle数据库备份
oracle数据库备份 Oracle数据库的三种标准的备份方法: 1.导出/导入(EXP/IMP). 2.热备份. 3.冷备份. 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一.导出/导 ...
- Oracle RMAN备份与还原 - 脱机备份讲解
Oracle RMAN备份与还原 - 脱机备份讲解 RMAN在数据库服务器的帮助下实现数据库文件.控制文件.数据库文件与控制文件的映像副本.归档日志文件.数据库服务器参数文件的备份. RMAN的特点: ...
- Java实现Oracle数据库备份
今天将很早就实现的一个Oracle数据库备份功能粘贴出来,这个功能是在大学做阶段设计时写的: [java] view plaincopy import java.io.File; import jav ...
最新文章
- 58一面:Redis数据更新,是先更新数据库还是先更新缓存?
- Redis之父退出开源项目维护:人生苦短不想上班
- xcode 7.2 怎么在Playground 中加载图片
- Asp.Net Core部署:早知道,还是docker!以及一点碎碎念
- python使用rabbitmq阻塞_python – Celery/RabbitMQ unacked消息阻塞队列?
- 一只青蛙跳向三个台阶_青蛙跳台阶问题的三种解法
- mysql的数据备份问题_mysql数据库备份的问题
- 微信回应“取消两分钟内删除功能”;甲骨文裁撤北京中心;Redis 6.0.6 发布| 极客头条
- 更改linux主机名称
- yolov5数据集标注txt2xml和xml2txt
- 【转载】svn代码回滚命令
- 常见黑客渗透测试工具
- python选择结构练习(一)
- 【文献翻译神器推荐】DeepL
- Yocto系列讲解[理论篇]25 - BitBake全过程(3)
- 人工智能的前世今生(二)
- 小程序 朋友圈,点赞 ,评论,发布动态,功能,上传图片 -----发布动态
- 高等代数 线性映射(第9章)3 不变子空间与最小多项式
- 【SQL Server】让你的数据来去自如——批处理
- SFX Silhouette for mac功能介绍(影视后期特效软件)