导航:首页 > 程序命令 > oracle备份命令

oracle备份命令

发布时间:2022-01-14 19:13:44

❶ Oracle:怎样备份控制文件

一. 使用命令来备份

alter database backup controlfile to 'x:control.bak';

alter database backup controlfile to 'x:control.bak' reuse; reuse=就覆盖以前的了

alter database backup controlfile to trace;

alter database backup controlfile to trace resetlogs;

alter database backup controlfile to trace noresetlogs;

二. 通过拷贝来备份

shutdown 关闭数据

查看在init.ora文件中的control_file一行,找到控制文件通过控制文件的路径,然后拷贝粘贴到你备份的地方。

startup

三. 总结

第一种方法产生的是一个二进制文件,就是当前控制文件的一个一模一样的备份。

第二种方法产生的是一个跟踪文件,里面存放的是创建控制文件的脚本,可以用记事本等文本编辑器打开这个脚本可以让你重新创建控制文件,生成一个跟踪文件到init.ora中user_mp_dest所指的目录下"ORACLE_HOMEADMINORADBUDUMP"。

❷ oracle中如何用命令去备份另外一台数据库

你想怎么备份呢如果是导出的库的话使用exp命令就可以了,只要能连上就行

❸ oracle怎么用命令备份数据库

1)导出数据库命令expexpjmlsfd/jmlsfdfile=F:\jmlsfd.dmplog=F:\0709.logowner=jmlsfdjmlsfd/jmlsfd为需要导出数据库的用户名及密码jmlsfd.dmp备份数据库文件所在位置log导出数据的日志文件ower备份数据的所有者2)导入数据库命令impI

❹ oracle 备份

手工备份
单表备份(前提库的结构是一样的)
导出:
开始钮->运行->输入CMD->进入DOS界面
EXP 用户名/密码@连接字符串 GRANTS=Y TABLES=(stu) file=C:\文件名.DMP
导入:
开始钮->运行->输入CMD->进入DOS界面
IMP 用户名/密码@连接字符串 IGNORE=Y TABLES=(stu) FULL=N file=C:\文件名.DMP

其中stu是你要的表名

全库导
导出:
开始钮->运行->输入CMD->进入DOS界面
EXP 用户名/密码@连接字符串 FULL=Y file=C:\文件名.DMP
导入:
开始钮->运行->输入CMD->进入DOS界面
IMP 用户名/密码@连接字符串 FULL=Y file=C:\文件名.DMP

自动备份
建议一:
利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。:
1,批处理文件backup.bat\.
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log
将生成oracle2006-01-09.dmp文件
exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log
将生成oracle星期一.dmp文件,则每周循环保留一个备份文件,共7个备份文件循环
2,添加一个任务计划
利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行d:\oracle\backup.bat
3、以后每天将在目录中生成形如“oracle2005-08-31.dmp和oracle2005-08-31.log”的备份和日志文件。
说明:
1、%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。%date:~4,10% 是返回日期函数,~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。
2、如需要准确的时间做为文件名,请用%time%函数,参数同上。
建议二:
@echo off
set filename=e:\data_bak\%date:~8,2%日
exp userid=user/pass@esdata file=%filename%.dmp owner=user INDEXES=y grants=y constraints=y compress=y log=%filename%.log
rar a %filename%.rar %filename%.*
del %filename%.dmp
del %filename%.log
放计划任务里面定时执行,
文件名以日期的day部分来命名
备份后调用rar进行压缩
这样可以保存一个月的历史数据
注意:需要把program files/winrar目录下的rar.exe拷贝到系统system32目录下
如果是以星期命名,则需要将set filename=e:\data_bak\%date:~8,2%日修改为
set filename=e:\data_bak\%date:~0,3%
建议三:
以下为ORACLE 自动备份批处理文件内容,请配合任务计划实现

@ECHO OFF
SET BACKPATH=d:\
ECHO 准备备份数据库
REM 7天一个循环
IF EXIST %BACKPATH%\ONE GOTO ONE
IF EXIST %BACKPATH%\TWO GOTO TWO
IF EXIST %BACKPATH%\THREE GOTO THREE
IF EXIST %BACKPATH%\FOUR GOTO FOUR
IF EXIST %BACKPATH%\FIVE GOTO FIVE
IF EXIST %BACKPATH%\SIX GOTO SIX
IF EXIST %BACKPATH%\SEVEN GOTO SEVEN
ECHO E > %BACKPATH%\ONE
:ONE
SET BACKPATH_FULL=%BACKPATH%\ONE
REN %BACKPATH%\ONE TWO
GOTO BACK
:TWO
SET BACKPATH_FULL=%BACKPATH%\TWO
REN %BACKPATH%\TWO THREE
GOTO BACK
:THREE
SET BACKPATH_FULL=%BACKPATH%\THREE
REN %BACKPATH%\THREE FOUR
GOTO BACK
:FOUR
SET BACKPATH_FULL=%BACKPATH%\FOUR
REN %BACKPATH%\FOUR FIVE
GOTO BACK
:FIVE
SET BACKPATH_FULL=%BACKPATH%\FIVE
REN %BACKPATH%\FIVE SIX
GOTO BACK
:SIX
SET BACKPATH_FULL=%BACKPATH%\SIX
REN %BACKPATH%\SIX SEVEN
GOTO BACK
:SEVEN
SET BACKPATH_FULL=%BACKPATH%\SEVEN
REN %BACKPATH%\SEVEN ONE
GOTO BACK
:BACK
EXP TESTUSER/TEST FILE=%BACKPATH_FULL%.DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT
建议四:
RMAN TARGET=RMAN/RMAN@ORCL < C:\RMAN.TXT
建议五:
在文本里编辑cmd命令。然后保存成bat文件。在windows中定义任务计划,就
可以自动执行了。
例:
编辑文本文件
del c:\exp\*.dmp
exp userid=cw/cw@db file='c:\exp\*.dmp' tables=(student)
保存成bat文件
建议六:
写个简单的批处理文件备份恢复:
备份:
@echo off 不显示命令行

echo 开始备份表..... 打印信息
D: DOS切换到D: 盘
cd oracle\ora92\bin 切换到cd oracle\ora92\bin目录
exp 用户名/密码@数据库 file=d:\config_bak.dmp tables=(table1,table2) 备份表一表二到d:\config_bak.dmp
echo 备份完毕!
恢复:
@echo off

echo 开始恢复表.....
D:
cd oracle\ora92\bin
imp 用户名/密码@数据库 file=d:\config_bak.dmp tables=(table1,table2) ignore=y
sqlplus /nolog @oraStartup.sql>>oraStartup.log 调用sql文件
pause 执行完sql文件以后暂停,看信息
echo 恢复完毕!
编写oraStartup.sql
conn 用户名/密码@数据库 as sysdba
select * from table1;
quit;

执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
DOS中可以执行时由于 在oracle 8i 中 安装目录\ora81\BIN被设置为全局路径,
该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。
oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。
SQLPLUS.EXE调用EXP.EXE、IMP.EXE他们所包裹的类,完成导入导出功能。
下面介绍的是导入导出的实例,向导入导出看实例基本上就可以完成,因为导入导出很简单。
数据导出:
1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2 将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)
3 将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\chu.dmp tables=(table1,table2)
4 将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\chu.dmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面 加上 compress=y 就可以了
数据的导入
1 将D:\chu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\chu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
在后面加上 ignore=y 就可以了。
2 将d:\chu.dmp中的表table1 导入
imp system/manager@TEST file=d:\chu.dmp tables=(table1)
导入
基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。

❺ 怎样用命令备份还原Oracle数据库

Oracle中没有备份和还原的概念,应该叫导出和导入。
一、导出:
1. 获取帮助
exp help=y
2. 导出一个完整数据库
exp system/manager file=bible_db log=dible_db full=y
3. 导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=n
4. 导出一个或一组指定用户所属的全部表、索引和其他对象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQL*Plus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seapark.syn
SELECT 'Create public synonym '||synonym_name
||' for '||table_owner||'.'||table_name||';'
FROM dba_synonyms
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF
5. 导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seapark.tank
exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)
6. 估计导出文件的大小
全部表总字节数:
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';
7. 导出表数据的子集(oracle8i以上)
NT系统:
exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type
file=fruit log=fruit
UNIX系统:
exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amy.salad_type
file=fruit log=fruit
8. 用多个文件分割一个导出文件
exp system/manager
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hr.paycheck
9. 使用参数文件
exp system/manager parfile=bible_tables.par
bible_tables.par参数文件:
#Export the sample tables used for the Oracle8i Database Administrator's Bible.
file=bible_tables
log=bible_tables
tables=(
amy.artist
amy.books
seapark.checkup
seapark.items
)
10. 增量导出
“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702.dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702.dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=990702.dmp

二、导入:
1. 获取帮助
imp help=y
2. 导入一个完整数据库
imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 导入一个或一组指定用户所属的全部表、索引和其他对象
imp system/manager file=seapark log=seapark fromuser=seapark
imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4. 将一个用户所属的数据导入另一个用户
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_
imp system/manager file=tank log=tank fromuser=(seapark,amy) touser=(seapark1, amy1)
5. 导入一个表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
6. 从多个文件导入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
7. 使用参数文件
imp system/manager parfile=bible_tables.par
bible_tables.par参数文件:
#Import the sample tables used for the Oracle8i Database Administrator's
Bible. fromuser=seapark touser=seapark_ file=seapark log=seapark_import
8. 增量导入
imp system./manager inctype= RECTORE FULL=Y FILE=A

❻ oracle数据备份

份:
在SQL*PLUS中
1.NOARCHIVELOG模式的备份(冷备份)
1)关闭数据库
2)备份数据文件
A 查找数据文件的位置
SELECT * FROM V$DATAFILE
B 备份数据文件
$ C:\orajd\ora92\oradata\ora200\*.dbf d:\bak\*.*;
3)备份控制文件
A 查找控制文件
select * from v$controlfile;
B 备份控制文件
$ C:\orajd\ora92\oradata\ora200\*.ctl d:\bak\*.*;
4)备份重做日志文件
A 查找重做日志文件
select * from v$logfile;
B 备份重做日志文件
$ C:\orajd\ora92\oradata\ora200\*.log d:\bak\*.*;
2.ARCHIVELOG模式的备份(热备份)
1)查询备份的数据文件于哪一个表空间有关
SELECT V$TABLESPACE.NAME,V$DATAFILE.NAME
FROM V$TABLESPACE JOIN V$DATAFILE USING(TS#);
2)备份数据文件
alter tablespace 表空间 BEGIN BACKUP;
$ COPY 数据文件 存放路径
ALTER TABLESPACE 表空间 END BACKUP;
3)查询是否还有表空间处于备份模式
SELECT * FROM V$BACKUP; STATUS不是ACTIVE即可以
SELECT V$TABLESPACE.NAME,V$BACKUP.STATUS,V$DATAFILE.NAME
FROM V$TABLESPACE JOIN V$DATAFILE USING (TS#) JOIN V$BACKUP USING (FILE#);
4)备份控制文件
ALTER DATABASE BACKUP CONTROLFILE TO '目标路径及文件名';
3.逻辑备份
1)数据库方式(导出用户要具有exp_full_database权限)
exp system/system@ora110 full=y file="f:\full.dmp"
2)用户方式
exp system/system@ora110 owner=(czgk,scott) file="f:\user.dmp"
3)表方式
exp czgk/czgk@ora110 tables=(users,budget) file="f:\table.dmp"

恢复:
1.冷备份恢复
方案一:
1.SHUTDOWN;
2.$ COPY 存放路径 数据文件 $ COPY F:\BAK\*.DBF C:\ORADATA\*.*;
3.$ COPY 存放路径 控制文件 $ COPY F:\BAK\*.CTL C:\ORADATA\*.*;
4.$ COPY 存放路径 日志文件 $ COPY F:\BAK\*.LOG C:\ORADATA\*.*;
5.STARTUP;
方案二:
1.STARTUP MOUNT;
2.ALTER DATABASE DATAFILE 数据文件 OFFLINE DROP; ALTER DATABASE DATAFILE 'C:\ORADATA\USERS01.DBF' OFFLINE DROP;
3.ALTER DATABASE OPEN;
2.热备份恢复
方案一:
1.SHUTDOWN;
2.$ COPY 存储数据文件 数据文件;
3.startup mount;
4.recover datafile 数据文件; 价值恢复只能存档模式下
example:
recover datafile 'c:\orajd\oradata\ora200\users01.dbf';
5.ALTER DATABASE OPEN;
方案二:
1.STARTUP MOUNT;
检查是否运行在归档模式
2.ALTER DATABASE DATAFILE 数据文件 OFFLINE; //system01.dbf不能设置未OFFLINE状态
3.ALTER DATABASE OPEN;
3.逻辑恢复
1)数据库方式(导入用户要具有exp_full_database权限)
imp system/system@ora110 full=y file="f:\full.dmp"
2)用户方式
imp system/system@ora110 fromuser=aaa,bbb touser=ccc file="f:\user.dmp"
imp system/system@ora110 fromuser=aaa,bbb touser=ccc,ccc file="f:\user.dmp"
看有什么错误

3)表方式
imp system/system@ora110 fromuser=aaa touser=ccc file="f:\user.dmp"

注意:导出用户要和导入用户相同可以用上面的方法,否则用
imp czgk/czgk@ora110 full=y file="f:\table.dmp"

❼ oracle有那些备份方式

前面的很全了,但是还差一点,就是可以冗余备份。

❽ oracle导出导入数据库的命令是在哪里执行的。

exp可以在客户端执行也可以在服务器端执行,
在客户端执行需要先安装有oracle的客户端,这样才会有exp.exe存在,配制好tns,在cmd命令行下直接执行即可。
在服务器端执行也是在cmd命令行下直接执行即可。
如果是linux系统,就是以oracle用户登录,在控制台下执行。
建议在服务器端执行exp,备份速度快。

❾ 怎么从oracle数据库备份数据库

1、首先先确认oracle服务器上oracle中标红的相关的服务是否已经正常启动。

❿ Oracle 备份的方法有哪些

我们为Oracle 10g制定的夜间备份策略9步是: 1、删除旧的日志文件并重命名当前的日志2、删除所有RMAN备份文件3、执行一个0级RMAN备份4、创建克隆文件5、创建归档日志备份,包括恢复目录内务6、删除数据泵导出文件7、执行数据泵导出8、检查日志错误9、广播和/或发送简短错误描述的电子邮件1、删除旧日志文件并重命名当前的日志这是每天都要执行的,为所有的脚本创建一个日志文件是很好的实践,在步骤8中,我检查所有日志错误,因此重命名了当前日志,当它们被重命名后,就很容易参考旧的作业分辨出错误了,这些所有需要删除的最终是为了不引起空间问题。代码清单1:qgrep -l rman D:Oracleadmincommonbackuplogs* >>%LOGFILE%del /Q D:Oracleadmincommonbackuplogs*.oldlog3 >>%LOGFILE%ren D:Oracleadmincommonbackuplogs*.oldlog2 *.oldlog3 >>%LOGFILE%ren D:Oracleadmincommonbackuplogs*.oldlog1 *.oldlog2 >>%LOGFILE%ren D:Oracleadmincommonbackuplogs*.log *.oldlog1 >>%LOGFILE%提示:尽力自动清除日志文件,要记住这些命令是不容易的。2、删除所有RMAN备份文件这仅需要在0级RMAN备份之前执行一次,我们的RMAN备份在X:驱动器上执行,正确地说是X:RMAN。我们估算这个驱动器可以容纳下我们的0级备份、归档日志、归档日志备份和数据泵导出文件。每周清除一次RMAN文件基本上可以保证驱动器上有足够的空间存储下一周的备份。代码清单2:# Running these commands will show the files that will be deleted in the next step.FORFILES /p x:rman /m *.bks /d -0 /c "CMD /C echo @PATH@FILE @FDATE.@FTIME" >>%logfile%FORFILES /p x:rman /m *cfile* /d -0 /c "CMD /C echo@PATH@FILE @FDATE.@FTIME" >>%logfile%# These commands perform the actual deletion.FORFILES /p x:rman /d -0 /c "CMD /C del *.bks" >>%logfile%FORFILES /p x:rman /d-0 /c "CMD /C del *cfile*" >>%logfile%提示:一定要自动删除磁盘上的大文件。在一个不恰当的时间删除你将用光磁盘空间。X因子X:驱动器是这个备份的关键部分,我们定期在其他服务器或交替节点上克隆我们的生产数据库进行测试和开发。RMAN喜欢从它们的备份中获取它的文件,最简单的方法就是备份到磁带上,这种方法与你在服务器上执行克隆没什么区别,当你告诉RMAN你的目标数据库,它就直接为它需要的文件转到介质管理层(MML),我们使用磁带的问题是磁带不可靠或磁带驱动不可靠,我们的解决办法是备份到磁盘上,问题是它将中服务器相同的驱动器映射中来回地复制文件,我们需要做的是映射一个SAN驱动器到我们的生产服务器上,然后在启动时将我们的测试服务器映射到同一个SAN驱动器,我们可以在服务器命令行使用一个命令来完成这个任务,我们可以通过使用一个来自Windows资源套件中叫做AutoExNT的服务来解决这个问题,它允许我们在启动时运行一个批处理文件,我们可以将命令放在那里,现在生产和测试服务器都映射到同一个X:驱动器。X文件因子AutoExNT只能工作在32位服务器上,当你有64位服务器时问题就来了,不幸的是,Windows资源套件对64位服务器无效,因此无法使用AutoExNT,幸运的是,我们可以说服我们的开发人员在64位Windows上创建一个“启动”服务,让它与AutoExNT服务一样,无论怎样,我们让批处理文件在服务器启动时执行。3、执行一个0级RMAN备份这一步通常每周执行一次,我们有一些更大、更活动的数据库创建的数量巨大的归档日志,在恢复或克隆时,恢复数据库的时间将很长,在这些情况下,我们在一周内将不止执行一次0级备份,在0级RMAN备份中,我们执行非恢复目录维护,脚本叫做DBname_lvl_0_disk.rcv。代码清单3:#************* Configure controls for Recovery Manager *******************#***************** in case they have been changed ************************configure controlfile autobackup on;configure controlfile autobackup format for device type disk to 'X:rmanCFILE_%F.bks';configure channel 1 device type disk format 'X:rmanBACKUPPIECE_%d_%U_%T_%s.bks' maxpiecesize 2048M;configure retention policy to recovery window of 34 days;#************* Perform weekly RMAN level 0 Database Backup ***************backup as compressed backupset incremental level = 0 database;#************* Confirm level 0 Backup is valid ***************************restore database check logical validate;第一个命令配置RMAN让控制文件和spfile自动备份,第二个命令指定RMAN用一种特定的格式给文件命名,本例中,备份到磁盘上的文件叫做“X:rmanCFILE_F%.bks”,第三个命令创建一个磁盘通道并命名为“1”,命名备份片“X:rmanBACKUPPICE_%d_%U_%T_%s.bks”以及任何一个备份片的大小不能超过2GB,第四个命令告诉恢复目录目标数据库的备份应该保留34天,第五个命令才是真正的执行备份,它告诉RMAN创建一个压缩的备份集,它真正可以容纳更多的备份片,它还指定了仅对数据库执行一个完整备份,没有备份归档日志,因为存储是最主要的问题,压缩备份对节省空间真正的有帮助,我们发现这是RMAN最有用的特性之一,最后一行的命令执行已经完成的备份检查,它读取备份文件并确认它们没有被破坏,我强烈建议不要跳过这一步,没有什么比在需要恢复一个数据库时发现一个或更多的文件不可用更糟糕的了。提示:只有当备份文件确认有效后你才可以使用它们,是的,事情就是这样!我已经试过多次在备份完成后但检查确认未完成之前的实验了。我使用一个Windows批处理文件调用RMAN 0级备份脚本,这个批处理文件叫做DBname_lvl_0_disk.bat。代码清单4:set NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SSset NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252set CURDIR=D:Oracleadmincommonbackupcd %CURDIR%rman target ID/pword@DBname catalog rcatID/rcatpword@rcatname log=logsDBname_lvl_0_disk.log @DBname_lvl_0_disk.rcvpage_on_backup.vbs DBname_level_0_disk.log page_DBname_level_0.log Dbname最前面两行设置操作系统的环境变量,我们更喜欢详细一点的日期掩码,05-DEC-2007 23:59:59"比"05-DEC-2007"好,日期格式在恢复过程中变得更重要了,设置NLS_LANG变量,移除所有数据库正在使用的字符设置疑惑,第三和第四行对于使用计划任务而言是很重要的,Windows需要直接指定RMAN脚本的位置,因此设置好目录并将脚本移动到那里,接下来,才真正的调用RMAN,需要同时登陆到target和catalog,在当前目录下一个独立的叫做“logs”的子目录下创建一个日志文件,以及调用列表4中的脚本代码,如果出现任何错误,一个VB脚本被调用呼叫支持人员,如果不出现错误,那么只会发送一封日志文件的电子邮件,在第9小节会有更多细节信息。4、 创建克隆文件这是用RMAN备份自动“刷新”测试数据库最关键的一步,克隆文件批处理作业实际上创建了“复制数据库”语句,我们使用它克隆我们的生产数据库到我们的测试数据库上,下面是一个叫做create_TESTDB_clone_files.sql的在生产服务器上运行的SQL脚本文件。代码清单5: set echo off;set feedback off;set linesize 140;SET PAGESIZE 0;set trimspool on;ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MON-DD HH24:MI:SS';select checkpoint_change# from v$database;alter system archive log current;select sysdate from al;-- ***********************************************************************-- ***********************************************************************-- ***********************************************************************-- ******************************* TESTDBSERVER **************************-- ******************************* TESTDBSERVER **************************-- ******************************* TESTDBSERVER **************************-- ***********************************************************************-- ***********************************************************************-- ***********************************************************************--TESTDB1spool TESTDBSERVERd$Oracleadmincommoncloneclone_to_TETSTDB1.rcvselect 'plicate target database to TESTDB1 until time ' ||''''|| sysdate ||''';' from al;spool off;--TESTDB2spool TESTDBSERVERd$Oracleadmincommoncloneclone_to_TETSTDB2.rcvselect 'plicate target database to TESTDB2until time ' ||''''|| sysdate ||''';' from al;spool off;--TESTDB3spool TESTDBSERVERd$Oracleadmincommoncloneclone_to_TETSTDB3.rcvselect 'plicate target database to TESTDB23until time ' ||''''|| sysdate ||''';' from al;spool off;-- ***********************************************************************-- ***********************************************************************-- ***********************************************************************-- ********************************* THE END *****************************-- ********************************* THE END *****************************-- ***********************************************************************-- ***********************************************************************-- ***********************************************************************alter system archive log current;select sysdate from al;select checkpoint_change# from v$database;select sysdate from al;exit;这个脚本在生产服务器上运行,spool输出到测试服务器,首先你注意的是NLS_DATE_FORMAT设置,与0级备份时设置方法一样;接下来,你看到我们已经选择了系统改变序号或SCN,数据库也可以通过使用SCN克隆和/或恢复,我们不再使用SCN进行数据库复制,我们不取消这一步是因为我们想查看日志文件中的SCN,假设在一个生产恢复情景下,SCN在一个额外的位置是可用的,在接下来的语句中,我们对当前的重做日志进行归档,我们从Oracle 8i开始就已经执行过了RMAN复制,但日志方面总有问题,这是唯一可以确定的最好的方法,我们每次都这样使用;接下来,我们选择sysdate,我们想在SCN下查看它,向下移动到spool语句,你看到一个为TESTDBSERVER编写的名叫clone_to_TESTDB.rcv的RMAN脚本,只有一行:代码清单6:plicate target database to TESTDB1 until time '2007-DEC-05 19:55:00';你可以在你的测试数据库服务器上为每个测试数据库单独编写一个克隆脚本,正如你看到的,这就是我们所做的,我们有一部分生产数据库服务器不止安装有一个生产数据库,对那些我们有两个脚本,在每个生产数据库上为测试数据库创建一个克隆脚本。代码清单7:set NLS_DATE_FORMAT=DD-MON-YYYY HH24:MI:SSset NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252set CURDIR=D:Oracleadmincommonbatchcd %CURDIR%sqlplus system/pword@DBNAME @create_TESTDB_clone_files.sql >logscreate_TESTDB_clone_files.log这个脚本的批处理文件非常简单,最前面的两行设置你的环境变量,第三和第四行用于任务调度,非常重要,windows需要直接指定SQL脚本的位置,因此需要设置好目录后,将脚本移动到目录中,接下来,SQLplus才真正被调用和运行脚本以创建克隆文件,在当前目录下的一个叫做logs的子目录中单独生成了一个日志文件。

阅读全文

与oracle备份命令相关的资料

热点内容
学信网app为什么刷脸不了 浏览:871
天蝎vs程序员 浏览:991
单片机下载口叫什么 浏览:186
程序员的道 浏览:924
云服务器不实名违法吗 浏览:556
怎样查看文件夹图片是否重复 浏览:993
文件怎么导成pdf文件 浏览:805
打开sql表的命令 浏览:101
安卓手机如何面部支付 浏览:37
天元数学app为什么登录不上去 浏览:822
明日之后为什么有些服务器是四个字 浏览:102
安卓系统l1是什么意思 浏览:24
服务器一直崩应该用什么指令 浏览:922
cm202贴片机编程 浏览:729
php构造函数带参数 浏览:178
解压电波歌曲大全 浏览:345
为啥文件夹移到桌面成word了 浏览:859
命令符的安全模式是哪个键 浏览:760
编程中学 浏览:957
单片机求助 浏览:995