数据泵自动备份及删除
数据泵备份
--赋予expdp,impdp的权限
SQL> grant exp_full_database,imp_full_database to suSYSTEM
第一种方法表示将DEPT和EMP表导入到SCOTT方案中,第二种方法表示将DEPT和EMP表导入的SYSTEM
注意,如果要将表导入到其他方案中,必须指定REMAP SCHEMA选项.
2,导入方案
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
4) 导出scott下的存储过程
SQL> $expdp scott/tiger@sjzx directory=dir_dump dumpfile=scott.dmp logfile=scott.log include=procedure
5) 导出scott下以'E'开头的表
SQL> $expdp scott/tiger@sjzx directory=dir_dump dumpfile=scott.dmp logfile=scott.log INCLUDE=TABLE:"LIKE 'E%'" //可以改成NOT LIKE,就导出不以E开头的表
3,导入表空间
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01
4,导入数据库
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y
.log tables=dept,emp;
sql2008数据库自动备份历史记录清理
SQL2008数据库自动备份历史记录清理除了使用维护计划向导以外,我们还可以直接新建维护计划,也可以修改意见创建的维护计划。
我们就以修改维护计划为例。
对于前面创建好的完整备份+ 差异备份维护计划,现在我们需要每周对数据库备份进行一次清理,在完整备份完成后,要将1个月前的备份删除掉。
那么我们只需要修改一下维护计划即可,具体操作如下:(1)右击我们的维护计划,在弹出式菜单中选择“修改”选项,系统将新建一个选项卡来显示当前的维护计划。
如图:左下角是可用的维护计划组件,右下面板是维护计划的流程设置面板,其上面就是该计划的子计划列表。
(2)选中Subplan_1子计划,也就是每周完整备份的子计划,将“清除历史记录”任务从工具箱中拖拽到计划面板中,然后在面板中单击“备份数据库(完整)”组件,系统将显示一个绿色的箭头,将绿色箭头拖拽到“清除历史记录”组件上,如图:也就是说在成功完整备份了数据库后,接下来才执行清除历史记录任务。
(3)右击“清除历史记录”任务,在弹出式菜单中选择“编辑”选项,系统将弹出清除历史记录任务设置窗口,如图:这里既可以清除历史记录日志,也可以删除硬盘上的历史数据。
这里我们要删除4周前的历史备份数据,单击“确定”回到计划面板,我们可以看到原本“清除历史记录”任务上的小红叉不见了。
单击“保存”按钮,该计划便保存起来。
(说明:我在SQL2008中文版虚拟机里面做的时候一旦修改维护计划,保存的时候就报错灾难性故障,不过我本机的英文版是正常的,不知道是我虚拟机的问题还是中文版的Bug,反正在英文版里面是对的。
)这样修改后,以后我们都不用手动去删除那些很久以前的数据库备份了,系统在执行完备份后就会删除那些满足条件的备份数据。
另外如果用过SSIS的人应该知道,一个任务在完成时是绿色箭头,如果是失败时是红色箭头,我们这里也可以设置,如果上一步骤失败,那么将执行什么操作,双击绿色箭头,在弹出的对话框中选择约束选项中的值为“失败”即可。
oracle数据泵批量备份操作指南
一、oracle数据自动备份数据泵,e:\vob\dbbak指的是文件存储路径,可以修改;expdp后的avic20140825/sys指的是数据库的用户名和密码;nchr指的是数据库实例(数据库/ODBC);请根据贵单位系统实际情况修改以上字段。
二、10G的数据库直接就可以备份,11G的数据库需要做以下操作:
1、在服务器上建立一个文件名为e:\vob\dbbak的文件夹,文件夹路径和名字可以修改,但
相应地要修改sql.sql下的路径和文件夹名字。
2、在plsql中或者sqlplus中执行压缩包中sql语句。
如果数据库字符集选择的是utf8,则一
定在sqlplus下执行脚本。
该sql语句下as后的‘e:\vob\dbbak’和avic20140825根据设置的文件夹路径和数据库用户名来修改。
3、oracle数据自动备份数据泵放在windows里面做定时任务,通过控制面板-任务计划根据
向导来做定时任务。
注:文件名和路径可以任意起,但是起完之后需要对sql和bat文件进行修改。
恢复命令:
impdp user/pasword@数据库实例directory=dump_dir2 dumpfile=备份名字remap_schema=导出用户:导入用户。
数据泵备份的一些副作用
数据泵备份之外的一些“副作用”数据泵是Oracle最近几个版本中才引进的一项技术,其主要用来对数据库进行逻辑备份与恢复。
其主要包括expdp与imppd两个实用程序。
数据泵是Oracle最近几个版本中才引进的一项技术,其主要用来对数据库进行逻辑备份与恢复。
其主要包括expdp与imppd两个实用程序。
数据库传统的备份基本上都是物理备份,包括联机备份与脱机备份等等。
但是数据泵在Oracle数据库中为其实现了逻辑备份。
逻辑备份简单的说,就是将数据库中的数据导出到一个转储文件中保存。
逻辑备份比物理备份具有更大的灵活性。
如根据需要,数据库管理员可以备份一个表空间中的数据,也可以备份一个方案对象、甚至只是某些特定表中的数据。
在还原的时候,也可以针对不同的转储文件来恢复相关的数据。
可见,数据泵提供的逻辑备份要比物理备份灵活的多。
不过笔者今天要谈的不是数据泵逻辑备份的灵活性,而是要谈谈通过数据泵对数据库进行导入导出的几个很有用的“副作用”。
在这些副作用的帮助下,数据库管理员可以节省大量的工作。
副作用一:消除磁盘碎片。
在数据库使用过程中,难免为对保存在其中的数据进行删删减减。
这些操作难免会在硬盘中造成比较多的硬盘碎片。
如果在这台服务器中还部署了其他的应用服务,那么碎片会更多。
而这些硬盘碎片会在很大程度上影响数据库的运行性能。
此时尽量消除硬盘碎片也是提高数据库性能的一个很好的方法。
在Windows等操作系统中也有碎片整理工具。
但是这个操作系统提供的工具并能够有效消除数据库中的存储碎片。
因为数据库中的存储碎片是由于数据块大小、存储结构、不合理的数据类型等等多个方面所造成的。
而操作系统与数据库系统毕竟是两个不同的应用系统,为此通过操作系统提供的硬盘碎片处理程序往往很难消除数据库系统中的磁盘碎片。
那么在数据库中该如何解决这个磁盘碎片问题呢?在以前版本的数据库中,数据库管理员可能对此只能够干瞪眼。
不过在Oracle 10G以后的数据库中,借助数据泵的作用,就可以轻松的解决这个问题。
orcl数据库文件自动备份+定时自动删除备份文件+常见问题EXP-00091解决办法
ORCL数据库自动备份设置方法1.创建服务器备份目录,生成执行脚本.bat文件创建D:\BACK_MUPAY文件夹;新建BACK_MUPAY.TXT文件,根据服务器情况拷贝修改下面执行代码保存,修改文件类型为.bat,得到BACK_MUPAY.bat文件。
2.执行代码:exp mupay/mupay@orclfile='D:\BACK_MUPAY\BACK_MUPAY%date:~0,4%%date:~5,2%%date:~8,2%.dmp ' owner=(MUPAY) BUFFER=100000LOG=E:\BACK_MUPAY\BACK_MUPAY%date:~0,4%%date:~5,2%%date:~8,2%.log forfiles /p "D:\BACK_MUPAY" /s /m *.dmp /d -15 /c "cmd /c del @path"3.执行代码说明:exp命令是oracle提供的备份命令,使用帐号密码为MUPAY/MUPAY的用户在ORCL 数据库实例中表名owner=mupay的数据库,备份文件存放在D:\BACK_MUPAY;备份文件名是BACK_MUPAY+时间+.dmp;其中的%date:~0,4%%date:~5,2%%date:~8,2%是取得当天的日期,年月日;例如:C:\Users\qyy>echo %date:~0,4%%date:~5,2%%date:~8,2%得到20170419;forfiles是windows的文件查找命令,查找在E:\BACK_MUPAY中所有.dmp后缀产生超过15天的文件,找到后执行删除操作4.双击执行BACK_MUPAY.bat测试。
执行成功后,会开始备份数据库,在E:\BACK_MUPAY目录中即会生产备份数据库文件和备份日志文件。
同时会检查小于当前日期15天的数据备份文件执行删除操作。
SQL_SERVER_2005里自动备份数据库和删除旧有备份的办法
SQL SERVER 2005自动备份数据库和删除备份SQL SERVER 2005里自动备份数据库和删除旧有备份的办法打开SQL SERVER MANAGEMENT STUDIO,启动SQL SERVER代理服务(注意在“控制面板-管理工具-服务”中设置SQL SERVER AGENT的启动类型为自动)。
启动后点击“作业-新建作业”,弹出一个作业属性的窗口,在“常规”栏目打开SQL SERVER MANAGEMENT STUDIO,启动SQL SERVER代理服务(注意在“控制面板-管理工具-服务”中设置SQL SERVER AGENT的启动类型为自动)。
启动后点击“作业-新建作业”,弹出一个作业属性的窗口,在“常规”栏目里可以先给作业命名,假设为“备份数据”。
一、备份数据的第一个步骤--“备份当日数据”在“步骤”栏目里新建一个步骤名为“备份当日数据”,类型为“T-SQL”,数据库选择你要操作的数据库(假设为“TESTDB”),命令窗口里填入备份的SQL语句。
假设备份数据放在“D:\BACKUP”里,备份文件命名格式为“SQL-2009-3-26.BAK”,那么语句如下:DECLARE @filename V ARCHAR(255)DECLARE @date DATETIMESELECT @date=GETDA TE()SELECT @filename = 'D:\BACKUP\SQL-'+CAST(DATEPART(yyyy,@date) as varchar)+'-'+CAST(DATEPART(mm,@date) as varchar)+'-'+CAST(DA TEPART(dd,@date) as varchar)+'.bak'BACKUP DATABASE [TESTDB] TO DISK = @filename WITH INITGO在步骤属性的高级的“成功时要执行的操作”选择“转到下一步”即可,这样“备份当日数据”的步骤已经建立好。
oracle数据泵方式备份还原数据
oracle数据泵导入导出说明:一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory dpdata1 as 'd:\test\dump';二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)select * from dba_directories;三、给scott用户赋予在指定目录的操作权限,最好以system等管理员赋予。
grant read,write on directory dpdata1 to scott;四、导出数据1)按用户导expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;2)并行进程parallelexpdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott33)按表名导expdp scott/tiger@orcl TABLES=emp,dept dumpfile=expdp.dmp DIRECTORY=dpdata1;4)按查询条件导expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';5)按表空间导expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=temp,example;6)导整个数据库expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp FULL=y;五、还原数据1)导到指定用户下impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott;2)改变表的ownerimpdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system;3)导入表空间impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp TABLESPACES=example;4)导入数据库impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION。
数据库SQL-Server2012自动备份及自动清除
SQL2012数据库自动备份及备份文件清除
设置数据库自动备份操作步骤如下:
1、点击开始菜单,找到Microsoft SQL Server 2012\配置工具\SQL Server 配置管理器。
单击打开SQL server配置管理器(本地)栏目下的SQL Server服务
在右侧框中找到SQL Server代理(MSSQLSERVER),双击进入,修改启动模式为自动并启动后,点击确定并退出;
2、点击开始菜单,找到Microsoft SQL Server 2012\Master Data Services Master Data Services Configuration Manager,单击进入。
点击选择数据库,连接。
3、点击开始菜单,找到Microsoft SQL Server 2012\SQL Server Management Studio,单击进入。
进入数据库后,右键点击管理里的维护计划\维护计划向导;
4、填写名称点击“下一步”;
选择“整个计划统筹安排或无计划”点击更改;
修改好备份频率后,点击确定。
5、勾选“备份数据库(完整)”及"清除维护任务"后,点击“下一步”;
6、点击“下一步”;
7、选择需要备份的数据库以及备份路径点击“下一步”;
8、定义“清除维护”任务,选好上面备份用的文件夹和删除文件时间,点击下一步。
选择报告存储位置后,点击下一步。
9、点击完成即可。
在linux中数据库实现每天自动备份数据及自动删除5天前备份数据(常用
/home/databackup/backup.sh
然后再执行命令:chomd +x /home/databackup/autoftp.sh
2.4
在数据库服务器1中的crontab来定时执行shell
用oracle用户启动一个终端,输入命令进行编写:crontab –e
内容如下:
来查看.
上述的作用:每天19:30执行backup.sh文件,而backup.sh进行备份当天的数据,
并删除前第6天的数据,则保留前5天的数据。每天22:30执行autoftp.sh文件,
把当天的备份数据从数据库服务器1上传到另一服务器2。
2.5
在服务器2上创建删除前第6天的 shell文件
2.6
在服务器2上给delete.sh文件赋予权限
备份的数据是用risesoft用户上传上来的,用risesoft用户给delete.sh赋予相应
的权限,启动一个终端,执行切换用户命令:su – risesoft
,然后输入用户的密码。执行赋予权限命令:chmod +x
/home/risesoft/67OracleBackup/delete.sh
#Oracle的字符集,Oracle数据库的中文字符集为AMERICAN_AMERICA.ZHS16GBK
export ORACLE_HOME=/oracle/product/10.2.0/db_1
#Oracle数据库的根目录
/oracle/product/10.2.0/db_1/bin/exprisenet56/1@ora10gfile=risenet56`dat
e +%Y%m%d`.dmp log=risenet56`date +%Y%m%d`.log
SQL_SERVER_2005实现数据库自动备份及删除过期备份方法
SQL SERVER 2005实现数据库自动备份及删除过期备份方法1. 开启xp_cmdshell
在SQL SERVER 2005中,xp_cmdshell默认是关闭的,可以通过外围应用配置器打开,首先点击《功能的外围应用配置器》
通过点击xp_cmdshell并选中启用勾选框,点击确定。
2. 自动备份设置
以sa登陆,启动代理服务,并将代理服务设置为自动启动。
在作业上右击新建作业
填写常规信息后,新建两个步骤,分别填写删除过期数据库备份和自动备份的脚本。
--删除过期数据库脚本
declare @data_3ago nvarchar(50)
declare @cmd varchar(50)
set
@data_3ago='D:\BACKUP\WDS_YMS'+convert(varchar(10),getdate()-3,112)+'.BAK' set @cmd='del '+@data_3ago
exec xp_cmdshell @cmd
go
--自动备份数据库脚本
declare @data nvarchar(50)
set @data='D:\BACKUP\WDS_YMS'+convert(varchar(10),getdate(),112)+'.BAK'
backup database wds to DISK=@data
with init
新建调度计划,设置好自动执行的时间。
数据泵和数据库备份
expdp导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移
expdb支持三种模式:
a. 表模式: 导出用户所有表或者指定的表
SQL>exit;
[oracle@oradb ~]$ mkdir wl
[oracle@oradb ~]$ expdp FSD/FSD tables=cl_loan_acct directory=dump_test dumpfile=cl_loan_acct.dmp logfile=cl_loan_acct.log;
b. 用户模式:导出用户所有对象以及对象中的数据
c. 导出表空间:导出数据库中特定的表空间
d. 整个数据的例子
a.基于表模式的导出
SQL> create directory dump_test as '/home/oracle/wl';
directory=TEST_EXPDP job_name=hs_hisjob2 query='"where init_date between 20080501 and 20080701"';
注意:如果QUERY条件写得有问题那么下面总是会报以下的错误
ORA-39001: invalid argument value
为数据及数据对象提供更细微级别的选择性(使用exclude,include,content参数)
可以设定数据库版本号(主要是用于兼容老版本的数据库系统)
并行执行
预估导出作业所需要的磁盘空间(使用estimate_only参数)
oracle数据泵介绍及使用
oracle数据泵介绍及使⽤数据泵可以⾼效备份,复制,保护和传输⼤量得数据和元数据。
可以通过下列⽅式使⽤数据泵:1.对整个数据库或数据⾃⼰进⾏实时逻辑备份;2.为测试或开发,复制整个数据库或数据⼦集;3.快速⽣成⽤于重建对象的DDL代码;4.通过旧版本导出数据,然后像新版本导⼊数据的⽅式,升级数据库。
1.⾼效处理⼤量数据的功能,可以⾼效导出和导⼊⼤量数据。
2.交互式命令⾏使⽤程序,使⽤它可以先断开连接,然后恢复连接活动的数据泵作业。
3.在不创建数据泵⽂件的情况下,从远程数据库导出⼤量数据,并将这些数据直接导⼊本地数据库。
4.通过导⼊和导出⼯作,在运⾏时更改⽅案,表空间,数据⽂件和存储位置;5.精细过滤对象和数据;6.对⽬录对象应⽤受控安全模式(通过数据库);7.⾼级功能,如压缩和加密。
1.expdp (数据泵导出实⽤程序);2.impdp (数据泵导⼊实⽤程序);3.DMBS_DATAPUMP软件包(数据泵API);4.DBMS_METADATA软件包(数据泵元数据API);在导出和导⼊数据和元数据时,expdp 和 impdp 实⽤程序会使⽤内置的DBMS_DATAPUMP DBMS_METADATA 软件包。
DBMS_DATAPUMP软件包可以在不同的数据库环境之间移动整个数据库或数据⼦集。
DBMS_MATEDATA软件包可以导出和导⼊数据库对象的信息。
当启动数据泵导出和导⼊作业时,数据库服务器上就会初始化⼀个OS主进程。
这个主进程的名称格式为 ora_dmNN_。
在Linux和Unix系统中,可以使⽤ps命令查看进程。
ps -ef |grep ora_dm因为数据泵使⽤其内部的PL/SQL代码执⾏操作,所以需要使⽤共享池中的⼀些内存加载PL/SQL软件。
如果共享池中空间不⾜,系统会提⽰ORA-04031:unable to allocate bytes of shared memory…错误提⽰,并中断数据泵。
oracle数据库备份和过期自动删除windows脚本
color 0bmode con cols=80 lines=25echo 正在备份数据库,请稍后……echo oracle10导出数据时在exporting cluster definitions挂起echo 设置LD_LIBRARY_PATH 和LIBPATH环境变量为D:\oracle\product\10.1.0\db_3\LIB echo 重启服务echo --------------------------------------echo 指定数据库用户(在“=”后面写入你需要备份的数据库登录用户名)set dbuser=oralceuserecho 指定数据库密码(在“=”后面写入你需要备份的数据库登录密码)set dbpass=\"oralcepassword\"echo 指定数据库服务名(在“=”后面写入你需要备份的数据库服务名)set dburl=ip:1521/orclecho 指定备份目录(指定备份的文件夹,以“\”结束)set file=E:\data_backup\dbback\echo ----------------------------------------------echo 开始计算日期和时间,用于备份文件的名称(由于是自动备份,备份的文件名我们定义为数据库登录名+系统时间—精确到秒)set hh=%time:~0,2%echo 如果小时是一位的,那么在前面补零if /i %hh% LSS 10 (set hh=0%time:~1,1%)set rq=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%set sj=%hh%%TIME:~3,2%%TIME:~6,2%set wjm=%file%%rq%\%dbuser%%sj%echo ----------------------------------------------echo 请核对以下数据是否正确echo 用户名:%dbuser%echo 密码:%dbpass%echo 服务名:%dburl%echo 备份目录:%file%%rq%IF NOT EXIST %file%%rq% MD %file%%rq%echo 备份文件名:%wjm%echo ----------------------------------------------echo 开始备份数据库echo ---------------------------------------------exp %dbuser%/%dbpass%@%dburl% file=%wjm%.dmp log=%wjm%.log owner=%dbuser%echo 数据库备份完成echo ----------------------------------------------rem 使用绝对路径set SrcDir= E:\data_backup\dbback\rem 指定天数set DaysAgo=90>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)>>"%temp%/DstDate.vbs" echo wscript.echo FmtDatefor /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (set "DstDate=%%a")set DstDate=%DstDate:~0,4%%DstDate:~4,2%%DstDate:~6,2%setlocal enabledelayedexpansionfor /d %%a in ("%SrcDir%/*.*") do (set "FolderDate=%%~a"set "FolderDate=!FolderDate:~-8!"if "!FolderDate!" leq "%DstDate%" (echo "%%a"if exist "%%a" (rd /s /q "%%a")))endlocal。
Linux下的mySQL自动备份删除
让linux每天定时备份MySQL数据库并删除五天前的备份文件MYSQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。
利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
1、创建备份文件夹#cd /bak#mkdir mysqldata2、编写运行脚本#nano -w /usr/sbin/bakmysql.sh注:如使用nano编辑此代码需在每行尾添加'&&'或';'连接符,否则生成的文件名末尾字符为乱码代码:#!/bin/bash# Name:bakmysql.sh# This is a ShellScript For Auto DB Backup and Delete old Backup#backupdir=/bak/mysqlbaktime=` date +%Y%m%d%H `mysql_bin_dir/mysqldump -u user -ppassword dataname1 | gzip >$backupdir/name1$time.sql.gzmysql_bin_dir/mysqldump -u user -ppassword dataname2 | gzip >$backupdir/name2$time.sql.gz#find $backupdir -name "name_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1保存退出说明:代码中time=` date +%Y%m%d%H `也可以写为time="$(date +"%Y%m%d$H")"其中`符号是TAB键上面的符号,不是ENTER左边的'符号,还有date后要有一个空格。
SQL Server2008 数据库定时自动备份及备份文件定时删除操作步骤
SQL Server 数据库定时自动备份及备份文件定时删除操作步骤
第一步:打开对象资源管理器,点开“管理”》“维护计划”右击》点击“维护计划向导”
第二步:进入“维护计划向导界面”,点击“下一步”
第三步:进入“选择计划属性”界面,编辑计划名称,点击“更改”
第四步:进入“选择维护任务”界面,选中“备份数据库(完整)”和“清除维护任务”
第五步:进入“选择维护任务顺序”,确定顺序点击“下一步”
第六步:进入“定义备份数据库(完整)任务”
第七步:进入“定义清除维护任务”界面,选择需要删除文件的文件夹,填写文件扩展名,根据自己需求选择删除文件的时间,点击“下一步”
第八步:进入“选择报告选项”界面,选择维护计划操作报告的存放文件夹,点击“下一步”
第九步:进入“完成该向导”界面,确定定义的维护计划内容后,点击“完成”
第十步:进入“维护计划向导进度”界面,状态都显示成功后,点击关闭
第十一步:进入“对象管理资源器”界面,右击“维护计划”,点击“刷新”,即可显示新建的维护计划,到此SQL Server 数据库定时自动备份及备份文件定时删除操作步骤就全部完成。
ORACLE数据库数据泵备份与恢复
ORACLE数据库数据泵备份与恢复EXPDP和IMPDP是服务端的⼯具程序,他们只能在ORACLE服务端使⽤,不能在客户端使⽤。
IMP只适⽤于EXP导出的⽂件,不适⽤于EXPDP导出⽂件;IMPDP只适⽤于EXPDP导出的⽂件,⽽不适⽤于EXP导出⽂件。
⼀、expdp和impdp的使⽤1.创建⽬录create directory DBBAK as '/bak'; #DBBAK名称可以随便命名需要⼿⼯创建/bak,并且此⽬录oracle⽤户有读取写⼊权限2.查看所有⽬录select * from dba_directories;3.给test⽤户赋予在指定⽬录的操作权限,最好⽤root⽤户赋予。
grant read,write on directory DBBAK to test;4.导出数据1)按⽤户导expdp test/test@orcl schemas=test dumpfile=expdp.dmp DIRECTORY=DBBAK logfile=expdp.log2)并⾏进程parallelexpdp test/test@orcl directory=DBBAK dumpfile=expdp1.dmp parallel=10 job_name=test13)按表名导expdp test/test@orcl TABLES=table01,table02 dumpfile=expdp2.dmp DIRECTORY=DBBAK;4)按查询条件导expdp test/test@orcl directory=DBBAK dumpfile=expdp4.dmp Tables=table01 query='WHERE id=001';5)按表空间导expdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test,USERS;6)导整个数据库expdp system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;5、创建表空间及⽤户create tablespace test datafile '+data/test/datafile/data01.dbf' size 32000M;alter tablespace test add datafile '+data2/test/datafile/users02.dbf' size 32000M;create user test identified by test default tablespace TEST temporary tablespace TEMP;grant connect,resource,dba to test;grant read,write on directory DBBAK to test;6、还原数据1)导到指定⽤户下impdp test1/test1@orcl DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=test logfile=impdp.log2)改变表的ownerimpdp system/system DIRECTORY=DBBAK DUMPFILE=expdp2.dmp TABLES=test.table01REMAP_SCHEMA=test1:table11;3)导⼊表空间impdp system/system DIRECTORY=DBBAK DUMPFILE=tablespace.dmp TABLESPACES=test;4)导⼊数据库impdb system/system DIRECTORY=DBBAK DUMPFILE=full.dmp FULL=y;5)追加数据impdp system/system DIRECTORY=DBBAK DUMPFILE=expdp.dmp SCHEMAS=system TABLE_EXISTS_ACTION7、查看数据是否⼀致select OBJECT_TYPE,COUNT(*) from all_objects where OWNER='TEST' group by OBJECT_TYPE;⼆、expdp详细参数可以通过 expdp help=y查看1.CONTENT 指定要导出的数据其中有效关键字为:(ALL), (默认)导出结构和数据DATA_ONLY:只导出数据METADATA_ONLY:只导出结构2.DIRECTORY 供转储⽂件和⽇志⽂件使⽤的⽬录对象3.DUMPFILE ⽬标转储⽂件 (expdat.dmp) 的列表例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.d4.INCLUDE 包括特定的对象类型例如 INCLUDE=PACKAGE,FUNCTION,PROCEDURE,TABLE:"='EMP'"5.EXCLUDE 排除特定的对象类型与INCLUDE相反6.TABLES 标识要导出的表的列表7.SCHEMAS 要导出的⽅案的列表可⽀持多个schemas=(user01,user02,user03)8.TABLESPACES 标识要导出的表空间的列表9.ATTACH 连接到现有作业, 例如 ATTACH [=作业名]PRESSIONALL :对导出的元数据和表数据都进⾏压缩,得到的导出⽂件是最⼩的,耗时也是最长的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言
日常运维过程中,数据库需要定期备份,由于数据量较大,可使用数据泵的方式进行备份,利用linux/unix操作系统自带的crontab计划任务进行定期设置,以达到定期快速的数据库备份效果。
环境介绍
操作系统:aix 5.3
数据库:oracle 10g
文件系统:/backup
备份策略:
每日17:00开始对备份文件系统进行清理,17:30开始进行数据库中主业务方案进行备份。
每周日19:00开始清理备份文件系统,19:20开始备份数据库中ims相关方案。
数据库设置
在数据库中创建数据泵使用目录,并增加相应用户对该目录的读写权限。
如下图:
crontab计划任务设置
计划任务设置如下:
00 17 * * * sh /backup/clear_pmsdb.sh
30 17 * * * sh /backup/expdp_pmsdb.sh
00 19 * * 0 sh /backup/clear_pmsint.sh
20 19 * * 0 sh /backup/expdp_pmsint.sh
说明:
clear_pmsdb.sh:主业务用户2天前备份数据清理任务脚本
expdp_pmsdb.sh:主业务用户数据备份任务脚本
clear_pmsint.sh :接口用户7天前备份数据清理任务脚本
expdp_pmsint.sh:接口用户数据备份任务脚本
计划任务可用“crontab –l”查询,“crontab –e”使用默认文本编辑器进行编辑,例如vi。
相关脚本
expdp_pmsdb.sh脚本设置如下:
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/db
export ORA_CRS_HOME=$ORACLE_BASE/crs
export ORACLE_SID=orcl2
export ORACLE_TERM=xterm
export
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib :$ORA_CRS_HOME/lib:$ORA_CRS_HOME/lib32
export LIBPATH=$LD_LIBRARY_PATH
export
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib/ :$ORACLE_HOME/network/jlib
export
PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/oracle/soft/OPatch export AIXTHREAD_SCOPE=S
export ORACLE_HOSTNAME=pmsdb2
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
expdp system/pms_db@orcl2 directory=datapump schemas=geostar,jcas_djmuser,jcas_dmsuser,mw_app,mw_rtm,mw_sys dumpfile=pmsdb`date '+%Y%m%d'`_%U.dmp parallel=10 logfile=pmsdb`date '+%Y%m%d'`.log
expdp_pmsint.sh脚本设置如下:
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/db
export ORA_CRS_HOME=$ORACLE_BASE/crs
export ORACLE_SID=orcl2
export ORACLE_TERM=xterm
export
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:$ORACLE_HOME/rdbms/lib :$ORA_CRS_HOME/lib:$ORA_CRS_HOME/lib32
export LIBPATH=$LD_LIBRARY_PATH
export
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib/ :$ORACLE_HOME/network/jlib
export
PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin:/oracle/soft/OPatch export AIXTHREAD_SCOPE=S
export ORACLE_HOSTNAME=pmsdb2
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
expdp system/pms_db@orcl2 directory=datapump schemas=hdpms,idm_user,pms_monitor,sis dumpfile=pmsint`date '+%Y%m%d'`_%U.dmp parallel=5 logfile=pmsint`date '+%Y%m%d'`.log clear_pmsdb.sh脚本设置如下:
find /backup -name "pmsdb*.dmp" -ctime +2 -exec rm -f {} \;
clear_pmsint.sh脚本设置如下:
find /backup -name "pmsint*.dmp" -ctime +7 -exec rm -f {} \;。