echo 开始备份数据库
if not exist F:\db_bak\files md F:\db_bak\files
if not exist F:\db_bak\logs md F:\db_bak\logs
set var=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
exp ora_user/ora_pwd@ora_conn file=F:\db_bak\files\xxxx_%var%dmp log=F:\db_bak\logs\xxxx_%var%log owner=(user1,user2)
echo 删除过久的备份记录
forfiles /p "F:\db_bak" /s /m dmp /d -60 /c "cmd /c del @path"
forfiles /p "F:\db_bak" /s /m log /d -60 /c "cmd /c del @path"
exit
把文本文档后缀名修改成bat。
bat文件在windows下为可执行文件。
找到windows系统下的“任务计划程序”。
在WIN7下的位置是:开始--所有程序--附件--系统工具--任务计划程序
使用任务计划程序“创建基本任务”。,下一步:
选择任务何时开始执行,(选择每天),下一步:
设置任务开始执行的具体时间,(设置成零晨3点),下一步:
选择任务执行的具体 *** 作,(启动程序),下一步:
选择程序或脚本,通过“浏览”按钮把我们在第1、2步骤编写好的bat文件指定好。,下一步:
任务创建好了。点击完成即可。至此,定时备份oracle数据库的 *** 作已经完成
步骤如下:一、编写备份数据库的shell
1、创建保存shell文件的文件夹,
2、文件内容为:
#!/bin/sh
PATH=$PATH:$HOME/bin
export PATH
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/1020/db_1
export ORACLE_HOME
ORACLE_SID=HRDB
export ORACLE_SID
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
exp fact/fact file=/backup/fact`date +%y%m%d`dmp
log=/backup/factlog`date +%y%m%d`log
shell文件编写完毕
一、运行以上的shell文件
看是否能生成备份的dmp文件,如果能则表示shell文件编写成功
二、然后在此shell
文件的所在终端输入命令,将此文件授权让root用户可以执行:
三、命令为:chmod +x backupsh
四、然后到root终端编写定时备份的语句
五、语句为:crontab –e
六、输入i
七、输入10 17 ,,,/home/backupscript/backupsh
八、按下esc建,输入:wq 退出并保存即可。1、按照你所说的思路,你可以写个shell脚本:设个定时任务
第一步,先生成个dmp文件,规定命名格式
第二步,调用ftp,scp之类工具,将该dmp文件上传到你指定的远程服务器上面。
2、根据你的需求,你可以考虑使用expdp的一个特性。
expdp/impdp有个network_link选项。
比如expdp,使用该选项可以直接在本地进行远程库的备份,并且将备份文件放在在本地。
也就是,在你的b服务器上面直接对a服务器上的数据库进行expdp *** 作,会在b服务器上面生成dmp文件。
具体关于network_link的用法,还需你自己加以学习。1、EXP 备份:也称 Oracle 逻辑备份,恢复时需要的停机时间较长,因 IMP 导入恢复后不能应用归档日志,所损失的数据量较大; 对于大型数据库,EXP 会显得力不从心。
2、冷备份:也称 OS 备份,冷备份虽然恢复起来比较容易,但需要数据库停下来进行备份,备份造成停机时间的较长。而对于商业应用的数据库而言,这段时间恰恰是用来进行数据处理的。
3、RMAN(热备份):可以像冷备份一样实现数据库的全备份,而且不会影响到数据库的运行。但数据库必须在归档模式下运行;且备份文件必须存放在数据库所在服务器的磁盘上,或者数据库服务器可以直接访问的外部设备上,如磁盘柜、磁带机等。
4、StandBy 备份:在生产数据库(主数据库)的基础上,创建一个备用数据库(StandBy数据库),备用数据库实时自动与生产数据库同步。但处于只读和空闲状态,不接收用户连接和业务处理。如果生产数据库出现故障,可以立即以主数据库的模式启动 StandBy数据库,接替生产数据库的工作。采用这种备份方式,故障修复时间最短,数据丢失最少。但缺点是,必须单独提供 StandBy 数据库服务器,成本比较高。一般在金融和电信等实时性要求较高的行业广泛采用。严格的说双机热备并不是数据库备份,它属于服务器设备和服务软件高可用性的一种实施方案。而真正的Oracle数据库备份通常有两种方式,一种是热备份,另外一种是冷备份。
所谓热备份指的是在数据库没有终端服务的情况下对数据库进行备份。Oracle采用exp命令将数据库中的各种对象导出到一个dmp文件中,这个dmp可直接用于数据还原。
冷备份是指在数据库停止服务时,直接复制数据库的控制文件、参数文件、数据文件和重做日志文件,这些文件可直接用于数据还原。用exp命令即可完成,但要看具体的备份方式。
1 导出一个完整数据库
exp system/manager file=bible_db log=dible_db full=y
2 导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=n
3 导出一个或一组指定用户所属的全部表、索引和其他对象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQLPlus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seaparksyn
SELECT 'Create public synonym '||synonym_name
||' for '||table_owner||''||table_name||';'
FROM dba_synonyms
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF
4 导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seaparktank
exp system/manager file=tank log=tank tables=(seaparktank,amyartist)
5 估计导出文件的大小
全部表总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE segment_type = 'TABLE';
seapark用户所属表的总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE';
seapark用户下的aquatic_animal表的字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE'
AND segment_name = 'AQUATIC_ANIMAL';
6 导出表数据的子集(oracle8i以上)
NT系统:
exp system/manager query='Where salad_type='FRUIT'' tables=amysalad_type
file=fruit log=fruit
UNIX系统:
exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amysalad_type
file=fruit log=fruit
7 用多个文件分割一个导出文件
exp system/manager
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hrpaycheck
8 使用参数文件
exp system/manager parfile=bible_tablespar
bible_tablespar参数文件:
#Export the sample tables used for the Oracle8i Database Administrator's Bible
file=bible_tables
log=bible_tables
tables=(
amyartist
amybooks
seaparkcheckup
seaparkitems
)
9 增量导出
“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=990702dmp
用exp命令即可。
1、win键+R键,输入cmd,打开命令提示符。
2、先进入到备份的路径,如c盘data目录。
3、执行以下语句:
4、敲击回车键,等待备份完成。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)