oracle数据库备份脚本
Oracle数据库异地备份

Linux上实现oracle双机实时备份DataGuard更改机器名Hostname 机器名(自己启,两台机器不能一样,建议用dataguard1和dataguard2) vi /etc/sysconfig/network 文件里面的hostname 然后vi /etc/hosts 添加本地hosts安装数据库在RHEL5下安装oracle 10g1、添加组和用户# /usr/sbin/groupadd oinstall# /usr/sbin/groupadd dba# /usr/sbin/useradd -g oinstall -G dba oracle# passwd oracle2、添加以下内容到/etc/sysctl.confkernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 65536net.ipv4.ip_local_port_range = 1024 65000net.core.rmem_default = 1048576net.core.rmem_max = 1048576net.core.wmem_default = 262144net.core.wmem_max = 2621443、添加以下内容到/etc/security/limits.conforacle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 655364、添加以下内容到/etc/pam.d/loginsession required /lib/security/pam_limits.sosession required pam_limits.so5、添加以下内容到/etc/profileif [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fifi6、创建安装目录# mkdir -p /u01/app/oracle# chown -R oracle:oinstall /u01/app/oracle# chmod -R 775 /u01/app/oracle7、修改oracle环境变量,首先进入oracle用户模式,vi ~/.bash_profile ,在里面加入以下内容export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1export ORACLE_SID=DB99export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/libexport LC_CTYPE=en_US.UTF-8export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport LANG=AMERICAN_AMERICA.ZHS16GBKexport LC_ALL=C8、安装数据库# gunzip 10201_database_linux_x86_64.cpio.gz (64位)# cpio -idmv < 10201_database_linux_x86_64.cpio# vi database/install/oraparam.ini[Certified Versions]Linux=redhat-3,SuSE-9,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asi anux-2]再添加:[Linux-redhat-5.0-optional]TEMP_SPACE=80SWAP_SPACE=150MIN_DISPLAY_COLORS=256vi /etc/sysconfig/vncservers添加VNCSERVERS="1:oracle"VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -localhost" 使用oracle用户(su –oracle)启动vnc服务(vncserver) 将.vnc/.xstart中的twm &改成gnome-session &,然后用vnc viewer连接服务器运行database 目录下的runinstaller 第一个界面选择Advanced Installation 第三个界面需要在语言选项中添加中文支持在提示是否创建新库时,选择install database software only 安装结束时注意安装程序会提示用root用户执行下面两条命令: /u01/app/oracle/oraInventory/orainstRoot.sh/u01/app/oracle/product/10.2.0/db_1/root.sh 主数据库(简称dbtest1)备用数据库(简称dbtest2) 在dbtest1上安装数据库环境并创建数据库(数据库sid为DB99,安装目录为/u01/app/) 在dbtest2上只安装数据库环境,不创建数据库。
ORACLE RAC数据库RMAN 备份与恢复

rac数据库RMAN 备份与恢复一、数据库备份在主库上通过rman 每天对数据库进行备份,并且保留两份备份在主库删除归档和进行rman 备份的脚本:[oracle@rac1 arch]$ pwd/opt/app/arch[oracle@rac1 arch]$ more del_arch.shexport ORACLE_SID=orcl1export ORACLE_BASE=/opt/app/oracleexport ORACLE_TERM=xtermexport ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1source /opt/app/arch/orcl1/del_arch.listsource /opt/app/arch/orcl2/del_arch.list/opt/app/oracle/product/10.2.0/db_1/bin/rman target / log='/opt/app/arch/rman.log' <<EOFdelete obsolete recovery window of 3 days;crosscheck archivelog all;delete noprompt obsolete;delete noprompt expired archivelog all;crosscheck backup;delete noprompt expired backup;backup format='/opt/app/arch/rman/orcl_full_%U_%T' tag='orcl_full' database;backup current controlfile tag='orcl_ctlfile'format='/opt/app/arch/rman/orcl_ctlfile_%U_%T';backup spfile tag='orcl_spfile'format='/opt/app/arch/rman/orcl_spfile_%U_%T';exitEOF执行时间:[oracle@rac1 arch]$ crontab -l30 02 * * 0 /opt/app/arch/del_arch.sh30 02 * * 1 /opt/app/arch/del_arch.sh30 02 * * 2 /opt/app/arch/del_arch.sh30 02 * * 3 /opt/app/arch/del_arch.sh30 02 * * 4 /opt/app/arch/del_arch.sh30 02 * * 5 /opt/app/arch/del_arch.sh30 02 * * 6 /opt/app/arch/del_arch.sh每天的备份文件放在/opt/app/arch/rman/目录下二、数据库恢复如果数据库出现故障,可以从备份文件中恢复数据库,最早可以恢复到两天前的备份时间点RAC 下的RMAN 讲究的是备份和还原的策略要一致。
NBUoracle备份配置

NBUoracle备份配置1、建⽴连接[root@localhost ~]# su - oracle[oracle@localhost ~]$ cd /usr/openv/netbackup/bin[oracle@localhost bin]$ ./oracle_link2012年 08⽉ 25⽇星期六 09:43:28 CSTAll Oracle instances should be shutdown before running this script.Please log into the Unix system as the Oracle owner for running this scriptDo you want to continue? (y/n) [n] yLIBOBK path: /usr/openv/netbackup/binORACLE_HOME: /orcl/oracleOracle version: 10.2.0.1.0Platform type: i686Linking LIBOBK:ln -s /usr/openv/netbackup/bin/libobk.so /orcl/oracle/lib/libobk.soDonePlease check the trace file located in /tmp/make_trace.4459to make sure the linking process was successful.2、创建备份脚本[root@localhost ~]# mkdir -p /usr/openv/netbackup/script[root@localhost ~]# cd /usr/openv/netbackup/ext/db_ext/oracle/samples/rman[root@localhost rman]# lscold_database_backup.sh database_restore.sh hot_tablespace_backup.sh cold_duplex_database_backup_full.sh hot_database_backup.sh pit_database_restore.sh [root@localhost rman]# cp hot_database_backup.sh /usr/openv/netbackup/script/[root@localhost rman]# cd /usr/openv/netbackup/script/[root@localhost script]# lshot_database_backup.sh[root@localhost script]# mv hot_database_backup.sh rman.sh[root@localhost script]# chmod o+x rman.sh[root@localhost script]# vi rman.sh#!/bin/sh# $Header: hot_database_backup.sh,v 1.2 2002/08/06 23:51:42 $#bcpyrght#***************************************************************************#* $VRTScprght: Copyright 1993 - 2008 Symantec Corporation, All Rights Reserved $ * #***************************************************************************#ecpyrght## ---------------------------------------------------------------------------# hot_database_backup.sh# ---------------------------------------------------------------------------# This script uses Recovery Manager to take a hot (inconsistent) database# backup. A hot backup is inconsistent because portions of the database are# being modified and written to the disk while the backup is progressing.# You must run your database in ARCHIVELOG mode to make hot backups. It is# assumed that this script will be executed by user root. In order for RMAN# to work properly we switch user (su -) to the oracle dba account before# execution. If this script runs under a user account that has Oracle dba# privilege, it will be executed using this user's account.# ---------------------------------------------------------------------------# ---------------------------------------------------------------------------# Determine the user which is executing this script.# ---------------------------------------------------------------------------CUSER=`id |cut -d"(" -f2 | cut -d ")" -f1`# ---------------------------------------------------------------------------# Put output in <this file name>.out. Change as desired.# Note: output directory requires write permission.# ---------------------------------------------------------------------------RMAN_LOG_FILE=${0}.out# ---------------------------------------------------------------------------# You may want to delete the output file so that backup information does# not accumulate. If not, delete the following lines.# ---------------------------------------------------------------------------if [ -f "$RMAN_LOG_FILE" ]rm -f "$RMAN_LOG_FILE"fi# -----------------------------------------------------------------# Initialize the log file.# -----------------------------------------------------------------echo >> $RMAN_LOG_FILEchmod 666 $RMAN_LOG_FILE# ---------------------------------------------------------------------------# Log the start of this script.# ---------------------------------------------------------------------------echo Script $0 >> $RMAN_LOG_FILEecho ==== started on `date` ==== >> $RMAN_LOG_FILEecho >> $RMAN_LOG_FILE# ---------------------------------------------------------------------------# Replace /db/oracle/product/ora81, below, with the Oracle home path. # ---------------------------------------------------------------------------ORACLE_HOME=/u01/app/oracle/product/11.2.0/export ORACLE_HOMEOracle HOME⽬录,可通过env命令查出# ---------------------------------------------------------------------------# Replace ora81, below, with the Oracle SID of the target database. # ---------------------------------------------------------------------------ORACLE_SID=orclexport ORACLE_SIDOracle实例名# ---------------------------------------------------------------------------# Replace ora81, below, with the Oracle DBA user id (account).# ---------------------------------------------------------------------------ORACLE_USER=oracleOracle系统账户# ---------------------------------------------------------------------------# Set the target connect string.# Replace "sys/manager", below, with the target connect string.# ---------------------------------------------------------------------------TARGET_CONNECT_STR=sys/Qweasd123Sys⽤户及其密码# ---------------------------------------------------------------------------# Set the Oracle Recovery Manager name.# ---------------------------------------------------------------------------RMAN=$ORACLE_HOME/bin/rman# ---------------------------------------------------------------------------# Print out the value of the variables set by this script.# ---------------------------------------------------------------------------#中间代码不⽤更改,此处略CMD_STR="ORACLE_HOME=$ORACLE_HOMEexport ORACLE_HOMEORACLE_SID=$ORACLE_SIDexport ORACLE_SID$RMAN target $TARGET_CONNECT_STR nocatalog msglog $RMAN_LOG_FILE append << EOFRUN {ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';echo send 'NB_ORA_POLICY=your_policy, NB_ORA_SERV=your_serverí';发送备份信息给相对应的备份策略,当每⼀台Oracle只有⼀个NBU备份策略时,次句可以不写BACKUP$BACKUP_TYPESKIP INACCESSIBLETAG hot_db_bk_level0FILESPERSET 5# recommended formatFORMAT 'bk_%s_%p_%t'DATABASE;sql 'alter system archive log current';RELEASE CHANNEL ch00;RELEASE CHANNEL ch01;# backup all archive logsALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE';echo send 'NB_ORA_POLICY=your_policy, NB_ORA_SERV=your_serverí';发送备份信息给相对应的备份策略,当每⼀台Oracle只有⼀个NBU备份策略时,次句可以不写BACKUPfilesperset 20FORMAT 'al_%s_%p_%t'ARCHIVELOG ALL;RELEASE CHANNEL ch00;RELEASE CHANNEL ch01;ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; RELEASE CHANNEL ch00;原脚本备份后直接删除归档⽇志,可以如上编写,删除7天前的归档⽇志## Note: During the process of backing up the database, RMAN also backs up the# control file. This version of the control file does not contain the# information about the current backup because "nocatalog" has been specified.# To include the information about the current backup, the control file should# be backed up as the last step of the RMAN section. This step would not be# necessary if we were using a recovery catalog.#ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE';BACKUP# recommended formatFORMAT 'cntrl_%s_%p_%t'CURRENT CONTROLFILE;RELEASE CHANNEL ch00;}EOF"# Initiate the command stringif [ "$CUSER" = "root" ]thensu - $ORACLE_USER -c "$CMD_STR" >> $RMAN_LOG_FILERSTAT=$?else/usr/bin/sh -c "$CMD_STR" >> $RMAN_LOG_FILERSTAT=$?fi# ---------------------------------------------------------------------------# Log the completion of this script.# ---------------------------------------------------------------------------if [ "$RSTAT" = "0" ]thenLOGMSG="ended successfully"elseLOGMSG="ended in error"fiecho >> $RMAN_LOG_FILEecho Script $0 >> $RMAN_LOG_FILEecho ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILEecho >> $RMAN_LOG_FILEexit $RSTAT3、创建备份策略3.1 选择策略类型和存储位置3.2 创建备份策略Frequency: 备份周期 Retention: 保留周期策略时间表,默认的Default-Application-Backup不要随意更改,⼀般只更改保留周期。
Oracle数据库在linux和windows下自动备份脚本

Oracle数据库在linux和windows下自动备份脚本总结本文我们主要对Oracle数据库在Linux和Windows下自动备份的脚本进行了总结,以便于我们对于Oracle数据库在不同平台上的备份的掌握。
一.Windows平台下Windows系统下Oracle数据库自动备份脚本:expData.bat的内容:exp system/system@orcl file=c:\oracle_bak\tne%date:~4,10%.dm p owner=tneexp system/system@orcl file=c:\oracle_bak\prt%date:~4,10%.dm p owner=prtexp system/system@orcl file=c:\oracle_bak\sec%date:~4,10%.dm p owner=secexp system/system@orcl file=c:\oracle_bak\tea%date:~4,10%.dm p owner=teaexp system/system@orcl file=c:\oracle_bak\pic%date:~4,10%.dm p owner=picexp system/system@orcl file=c:\oracle_bak\system%date:~4,10% .dmp owner=systempath=D:\WinRAR3.20rar a Data%date:~4,10%.rar*%date:~4,10%.dmp del*%date:~4,10%.dmp二.Linux平台下功能:1、每天数据库exp全备份2、自动删除7天前的备份,系统只保留当前7天的备份1.系统用户一览2.Oracle环境变量3.邮件设置4.创建备份目录使用oracle创建备份文件存储目录4.创建备份脚本使用oracle用户创建自动备份脚本脚本内容如下,其中的红色部分需要根据实际情况调整当前备份设置删除1个月之前的备份文件注意:date -d "1 month ago" 命令代表获取当前1个月之前的时间date -d "1 week ago"命令代表获取当前1周之前的时间date -d "1 day ago"命令代表获取当前1天之前的时间提升权限手动测试一下5.设置脚本定时执行要检查cron服务是否开启/sbin/service crond start // 启动服务/sbin/service crond stop // 关闭服务/sbin/service crond restart // 重启服务使用root执行命令用法* * * * * :代表执行时间间隔● oracle :执行脚本的用户●/home/oracle /backup.sh:执行脚本的路径Linux系统下Oracle数据库的备份:FIELNAME=/home/oracle/dmp/`date+%Y%m%d`.dmpecho$FIELNAME>/home/oracle/dmp/filename/home/oracle/product/9.2/bin/exp ccbip/'und\=2008CN(Y|N) full=y file=$FIELNAMEbzip2$FIELNAME注:创建的文件都是Oracle用户oinstall组的。
Oracle备份与恢复案例.doc

Oracle备份与恢复案例By Piner一. 理解什么是数据库恢复当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。
因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复。
恢复过程大致可以分为复原(Restore)与恢复(Recover)过程。
数据库恢复可以分为以下两类:1.1实例故障的一致性恢复当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT语句)中止时出现实例故障,此时需要实例恢复。
实例恢复将数据库恢复到故障之前的事务一致状态。
如果在在线后备发现实例故障,则需介质恢复。
在其它情况Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。
如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:(1)为了解恢复数据文件中没有记录的数据,进行向前滚。
该数据记录在在线日志,包括对回滚段的内容恢复。
(2)回滚未提交的事务,按步1重新生成回滚段所指定的操作。
(3)释放在故障时正在处理事务所持有的资源。
(4)解决在故障时正经历一阶段提交的任何悬而未决的分布事务。
1.2介质故障或文件错误的不一致恢复介质故障是当一个文件、一个文件的部分或磁盘不能读或不能写时出现的故障。
文件错误一般指意外的错误导致文件被删除或意外事故导致文件的不一致。
这种状态下的数据库都是不一致的,需要DBA手工来进行数据库的恢复,这种恢复有两种形式,决定于数据库运行的归档方式和备份方式。
(1)完全介质恢复可恢复全部丢失的修改。
一般情况下需要有数据库的备份且数据库运行在归档状态下并且有可用归档日志时才可能。
对于不同类型的错误,有不同类型的完全恢复可使用,其决定于毁坏文件和数据库的可用性。
(2)不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。
Windows下Oracle自动异地备份方法

Windows下Oracle自动异地备份方法2012-6-27方法一(利用ORACLE客户端)一、编写脚本文件:Oracle自动导出脚本(Windows下,导出文件名自动加上日期和时间)只适用于Windows 客户端,通过exp命令完成数据库导出。
导出文件有以下特点:1.导出的文件名自动添加上日期和时间,避免了导出文件的混乱。
2.导出的文件自动通过RAR压缩,同时删除压缩前的文件(需要导出端Windows系统安装好WinRAR),通过WinRAR压缩,Oracle的dmp文件压缩比例很高。
3.支持windows的任务计划。
4.将导出的日志和dmp文件共同打包,避免忘记exp导出的内容。
导出条件:导出端Windows必须安装好Oracle客户端或exp.exe文件,并且配置好Net Manager(指定数据库连接符pcchina)。
以下是具体的脚本,命名为:oracle_bak.bat--------------------------------------------------------------------------------------------------@echo offset RAR_CMD="C:\Program Files\WinRAR\WinRAR.exe"set USERNAME=xxxset PASSWORD=yyyset ORA_SID=orclset COMMAND=%USERNAME%/%PASSWORD%@%ORA_SID%set BACKUPPATH=D:/set TIMESTYLE=%Date:~0,4%年%Date:~5,2%月%Date:~8,2%日%time:~0,2%时%time:~3,2%分set FILEPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.dmpset LOGPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.logset RARPATH=%BACKUPPATH%/%USERNAME%_%TIMESTYLE%.rarecho ============================================echo 正在备份Oracle数据库,请稍等......echo ============================================exp %COMMAND% file=%FILEPATH% full=y log=%LOGPATH%echo 任务完成!echo ============================================echo 压缩备份文件,请稍等......echo ============================================%RAR_CMD% a -df "%RARPATH%" "%FILEPATH%" "%LOGPATH%"echo 压缩完成!--------------------------------------------------------------------------------------------------脚本结束。
oracle数据库rman备份计划及恢复
oracle数据库rman备份计划及恢复1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。
2.rman备份脚本: a.RMAN 0级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset database;sql "alter system archive log current";backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} b.RMAN 1级备份命令:run{allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset database;sql 'alter system archive log current';backup filesperset 3 format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p'archivelog all delete input; #备份归档可选,可以单独定期备份release channel c1;release channel c2;release channel c3;} c.rman删除备份命令(在保留最近⼀天备份的情况下,删除其他备份):DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 1 DAYS; d.操作系统层⾯运⾏rman备份或删除命令(windows/linux):rman target sys/rf4rfvbgt56yhn@rfdb nocatalog CMDFILE 'D:\app\rman\rman_file\level_0.txt' log=E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\log\rman_level_0.log export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db1export ORACLE_SID=atestexport PATH=$ORACLE_HOME/bin:$PATHrman target sys/123456@atest nocatalog CMDFILE '/u01/rman/rman.sh' log=/u01/rman/rman.log00 02 * * 1 bash /u01/rman_file/run_rman_0.sh00 02 * * 3 bash /u01/rman_file/run_rman_0.sh00 02 * * 5 bash /u01/rman_file/run_rman_0.sh00 04 * * * bash /u01/rman_file/run_delete.sh34 11 * * * bash /u01/rman_file/run_rman_0.sh e.rman参数设置:RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;3.rman恢复a.拷贝datafile,controlfile和spfile的rman备份,以及完整的archivelog和完好的redolog⽂件到新的数据库。
Oracle ramn 备份与恢复
ORACLE数据库的备份与恢复差异增量备份就是备份往前第一个备份级别小于或等于当前备份级别开始到现在的变化。
累计增量备份就是备份往前第一个备份级别小于当前备份级别开始到现在的变化。
0级备份也就是全备份,但0级备份可以在此基础之上再进行备份,但全备份就不可以。
Oracle rman 备份一、数据库全备份方法(nocatalog)1 注意rman有两个,要执行db_1/bin下那个(可以通过修改oracle变量来达到)2 在执行ramn之前要确认当前数据库是否处理Archive Mode模式,并处于Enabled下查看方式:如果不是可以通过如下方式打开并修改:SQL>startup mountSQL>alter database archivelogSQL>alter database open3全备份数据库:A先连接数据库HERMINGB查看备份列表中是否有以前备份的文件C执行全数据库备份4备份完之后可以查看一下备份出来的文件信息:5备份文件存放路径为:二、0级数据库备份A 以nocatalog方式使用rmanB连接数据库C执行0级数据库备份注:全备份与0级备份的相同点是都是将数据库全部备份下来。
全备份与0级备份的不同点是全备份不能作为增量备份,而0级可以作为增量备份。
1级备份就在0级备份的基础上进行的。
三、1级增量备份(基于0级备份之上)总结:可以将备份出来的文件考到其他介质上进行保存,并进行删除。
如果要恢复时请将该文件放回到这文件夹下,并要保存文件名不变。
说明:口令文件因为可以重新设置,所以不用备份,重做日志文件不能在非nocatalog中备份。
四、备份archivelog(参数文件+数据文件+控制文件+归档日志文件)先备份完再删除归档备份五、备份表空间A 查看有哪些表空间B备份名为TBS1的表空间六、备份控制文件七、镜像备份说明:5为TBS1表空间的编号,及对TBS1表空间进行镜像备份。
Linux_oracle数据库的备份与恢复
Linux_oracle数据库的备份与恢复1 数据库备份和恢复(备份和恢复均已做成脚本自动运行,下列操作供参考,请不要在生产机上做测试) 1)数据库备份:◆将dbexp.parm,dbexp.sh 拷贝至/home/oracle/backup/.以oracle用户登录系统$ cd /home/oracle/backup$ dos2unix *$ chmod 755 dbexp.sh◆手工执行备份,用oracle用户登录:$ cd /home/oracle/backup$ ./dbexp.sh◆自动执行备份,用root用户登录:#crontab -e 00 01 * * * su - oracle -c "/home/oracle/backup/dbexp.sh"2)数据库恢复:以oracle用户登录系统◆删除用户:sqlplus /nolog>connect / as sysdba;>drop user center cascade;>create user center identified by center;>grant connect,resource,dba to center◆恢复数据库$imp center/center full=y grants=y INDEXES=y constraints=y LOG=/tmp/backup.log rows=y ignore=y file=xxx(xxx--为以前备份的数据文件,如checkid_20041123.dat)oracle数据库的备份与恢复原理及方法:导出(备份)exp 用户名/密码@服务名file=d:daochu.dmp (rows=no(导出空结构)) 导入(恢复)imp 用户名/密码@服务名file=d:daochu.dmp fromuser=原用户名touser=新用户名---- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。
windows-下的oracle数据库rman自动备份和恢复文档精选全文完整版
可编辑修改精选全文完整版数据库rman备份恢复文档一.Rman简介RMAN是ORACLE提供的恢复和备份工具,是随Oracle服务器软件一同安装的工具软件,它可以用来备份和恢复数据库文件、归档日志和控制文件,用来执行完全或不完全的数据库恢复。
与传统工具相比,RMAN具有独特的优势:跳过未使用的数据块。
当备份一个RMAN 备份集时,RMAN不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。
RMAN使用Oracle特有的二进制压缩模式,与传统备份的压缩方式相比,能够最大程度地压缩数据块中的一些典型数据。
二.系统规划数据库备份文件不建议与系统盘(C盘)、oracle数据文件存放盘(D 盘)存放在一起,本文单独存放于E盘。
注:在进行以下操作前要根据自己的环境建立如下目录“E:\orabackup\”,“’E:\archivelog_backup”,“E:/orabackup_script/”。
本文用到的命令中的标点均为英文字符下的标点。
三.设置oracle数据库为归档模式(ARCHIVELOG)按以下步骤操作,检查oracle数据库是否为归档模式。
1.选择“开始”→“系统”→“运行”,输入cmd,按回车。
2.输入“sqlplus”,按回车。
3.输入“system / as sysdba ”,按回车。
4.输入数据库system账号的密码,按回车。
5.查看数据库归档模式,输入“archive log list;”,按回车。
如下图所示。
如果“数据库日志模式”为“非存档模式”,则需按照如下步骤开启归档模式:1.设置数据库日志归档路径。
输入“alter system set log_archive_dest=’E:\archivelog_backup’ scope=spfile; ”,按回车。
2.关闭数据库。
输入“shutdown immediate;”,按回车。
3. 启动数据库到mount状态。