Rman hot backup script gives error in R12.
hi experts
i m facing following prob when run the backup script. 1 day before the same script runs correctily but now it gives me error at the allocatioion of channel rest of command run correctly.
[root@testerp rman_log]# cat UAT_daily_rman_hot_bkp_01-11-14_140301.log
-bash: /root/.bash_profile: Permission denied
Recovery Manager: Release 11.1.0.7.0 - Production on Sat Jan 11 14:03:01 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: UAT (DBID=2855851979)
connected to recovery catalog database
RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "end-of-file": expecting one of: "allocate, alter, advise, backup, beginline, blockrecover, catalog, change, copy, convert, crosscheck, configure, duplicate, debug, delete, execute, endinline, flashback, host, mount, open, plsql, recover, release, replicate, report, restore, resync, repair, }, set, setlimit, sql, switch, startup, shutdown, send, show, transport, validate"
RMAN-01007: at line 12 column 1 file: standard input
RMAN>
RMAN>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "identifier": expecting one of: "for"
RMAN-01008: the bad identifier was: c2
RMAN-01007: at line 1 column 18 file: standard input
RMAN>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "identifier": expecting one of: "for"
RMAN-01008: the bad identifier was: c3
RMAN-01007: at line 1 column 18 file: standard input
RMAN>
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00558: error encountered while parsing input commands
RMAN-01009: syntax error: found "identifier": expecting one of: "for"
RMAN-01008: the bad identifier was: c4
RMAN-01007: at line 1 column 18 file: standard input
RMAN>
Starting backup at 11-JAN-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=362 device type=DISK
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00021 name=/d06/UAT/proddata/a_txn_data06.dbf
input datafile file number=00392 name=/d06/UAT/db/apps_st/data/a_txn_data01.dbf
input datafile file number=00401 name=/d06/UAT/db/apps_st/data/a_txn_data02.dbf
input datafile file number=00402 name=/d06/UAT/db/apps_st/data/a_txn_data03.dbf
input datafile file number=00022 name=/d06/UAT/proddata/a_txn_data07.dbf
input datafile file number=00014 name=/d06/UAT/db/apps_st/data/a_txn_data04.dbf
input datafile file number=00020 name=/d06/UAT/proddata/a_txn_data05.dbf
input datafile file number=00011 name=/d06/UAT/db/apps_st/data/sysaux01.dbf
input datafile file number=00018 name=/d06/UAT/db/apps_st/data/sysaux02.dbf
input datafile file number=00023 name=/d06/UAT/proddata/a_txn_data08.dbf
input datafile file number=00379 name=/d06/UAT/db/apps_st/data/undo01.dbf
input datafile file number=00024 name=/d06/UAT/proddata/sysaux03.dbf
input datafile file number=00025 name=/d06/UAT/proddata/sysaux04.dbf
input datafile file number=00033 name=/d06/UAT/proddata/a_txn_ind11.dbf
input datafile file number=00029 name=/d06/UAT/proddata/a_txn_ind09.dbf
input datafile file number=00030 name=/d06/UAT/proddata/a_txn_ind10.dbf
input datafile file number=00015 name=/d06/UAT/db/apps_st/data/a_txn_ind06.dbf
input datafile file number=00026 name=/d06/UAT/db/apps_st/data/a_txn_ind07.dbf
input datafile file number=00028 name=/d06/UAT/db/apps_st/data/a_txn_ind08.dbf
input datafile file number=00393 name=/d06/UAT/db/apps_st/data/a_txn_ind01.dbf
input datafile file number=00403 name=/d06/UAT/db/apps_st/data/a_txn_ind02.dbf
input datafile file number=00404 name=/d06/UAT/db/apps_st/data/a_txn_ind03.dbf
input datafile file number=00405 name=/d06/UAT/db/apps_st/data/a_txn_ind04.dbf
input datafile file number=00406 name=/d06/UAT/db/apps_st/data/a_txn_ind05.dbf
input datafile file number=00400 name=/d06/UAT/db/apps_st/data/a_media01.dbf
input datafile file number=00353 name=/d06/UAT/db/apps_st/data/system08.dbf
input datafile file number=00013 name=/d06/UAT/db/apps_st/data/system12.dbf
input datafile file number=00352 name=/d06/UAT/db/apps_st/data/system09.dbf
input datafile file number=00394 name=/d06/UAT/db/apps_st/data/a_ref01.dbf
input datafile file number=00407 name=/d06/UAT/db/apps_st/data/a_ref02.dbf
input datafile file number=00396 name=/d06/UAT/db/apps_st/data/a_summ01.dbf
input datafile file number=00395 name=/d06/UAT/db/apps_st/data/a_int01.dbf
input datafile file number=00008 name=/d06/UAT/db/apps_st/data/a_queue02.dbf
input datafile file number=00027 name=/d06/UAT/db/apps_st/data/a_queue03.dbf
input datafile file number=00031 name=/d06/UAT/db/apps_st/data/a_queue04.dbf
input datafile file number=00399 name=/d06/UAT/db/apps_st/data/a_queue01.dbf
input datafile file number=00001 name=/d06/UAT/db/apps_st/data/system01.dbf
input datafile file number=00002 name=/d06/UAT/db/apps_st/data/system02.dbf
input datafile file number=00003 name=/d06/UAT/db/apps_st/data/system03.dbf
input datafile file number=00004 name=/d06/UAT/db/apps_st/data/system04.dbf
input datafile file number=00005 name=/d06/UAT/db/apps_st/data/system05.dbf
input datafile file number=00398 name=/d06/UAT/db/apps_st/data/a_archive01.dbf
input datafile file number=00295 name=/d06/UAT/db/apps_st/data/system06.dbf
input datafile file number=00351 name=/d06/UAT/db/apps_st/data/system07.dbf
input datafile file number=00354 name=/d06/UAT/db/apps_st/data/system11.dbf
input datafile file number=00288 name=/d06/UAT/db/apps_st/data/system10.dbf
input datafile file number=00012 name=/d06/UAT/db/apps_st/data/apps_ts_tools01.dbf
input datafile file number=00016 name=/d06/UAT/db/apps_st/data/a_ref03.dbf
input datafile file number=00019 name=/d06/UAT/db/apps_st/data/MLSEIGL01.dbf
input datafile file number=00032 name=/d06/UAT/db/apps_st/data/RMAN01.dbf
input datafile file number=00397 name=/d06/UAT/db/apps_st/data/a_nolog01.dbf
input datafile file number=00314 name=/d06/UAT/db/apps_st/data/portal01.dbf
input datafile file number=00017 name=/d06/UAT/db/apps_st/data/a_int02.dbf
input datafile file number=00006 name=/d06/UAT/db/apps_st/data/ctxd01.dbf
input datafile file number=00010 name=/d06/UAT/db/apps_st/data/olap.dbf
input datafile file number=00009 name=/d06/UAT/db/apps_st/data/odm.dbf
input datafile file number=00007 name=/d06/UAT/db/apps_st/data/owad01.dbf
channel ORA_DISK_1: starting piece 1 at 11-JAN-14
[root@testerp rman_log]#
backup script is below:
in this script it returns error only at the channel allocaition rest of all backup command i run manually or with scirpt it runs correctly.4
i m not able to know why it returns error only at challnel allocation 1 day before it runs correctly.
[orauat@testerp rman_script]$ cat rman_backup.sh
#!/bin/sh
#ORACLE_SID=UAT
#BACKUP_START_TIME='date +"%y""%m""%d"_"%H""%M""%S"'
#ORACLE_HOME=/d06/UAT/db/tech_st/11.1.0
#PATH=$PATH:${ORACLE_HOME}:${ORACLE_HOME}/bin
#export ORACLE_SID
#export ORACLE_HOME
#export PATH
/d06/UAT/db/tech_st/11.1.0/bin/rman catalog rman/rman007 target sys/sysuat <<EOF
run
allocate channel c1 device type disk format '/d06/UAT/rman_hot_backup/Daily_backup%d_Arch_%c_%U';
sql 'alter system switch logfile';
sql 'alter system switch logfile';
sql 'alter system archive log current';
delete expired archivelog all;
crosscheck archivelog all;
backup archivelog all;
delete noprompt archivelog all completed before 'sysdate-4' backed up 1 times to disk;
allocate channel c2 device type disk format '/d06/UAT/rman_hot_backup/Daily_backup%d_DB_%c_%U';
allocate channel c3 device type disk format '/d06/UAT/rman_hot_backup/Daily_backup%d_DB_%c_%U';
allocate channel c4 device type disk format '/d06/UAT/rman_hot_backup/Daily_backup%d_DB_%c_%U';
backup incremental level 1 database;
delete expired backup device type disk;
delete obsolete device type disk;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
exit
EOF
regards
pritesh ranjan
yes the script is edited
i have add some command line and edit it for take the full backup level=0 on the same directory with different formant name but location is same.
can i take full backup level 0 and incremental backup level 1 in the same directory with the different format name.
for exp:
allocate channel c2 device type disk format '/d06/UAT/rman_hot_backup/Daily_backup%d_DB_%c_%U';
allocate channel c3 device type disk format '/d06/UAT/rman_hot_backup/Daily_backup%d_DB_%c_%U';
allocate channel c4 device type disk format '/d06/UAT/rman_hot_backup/Daily_backup%d_DB_%c_%U';
i allocate these three channel for incremental level 1 backup;
the backup is done successfully without any error.
after that i have change
allocate channel c2 device type disk format '/d06/UAT/rman_hot_backup/Weekly_backup%d_DB_%c_%U';
allocate channel c3 device type disk format '/d06/UAT/rman_hot_backup/Weekly_backup%d_DB_%c_%U';
allocate channel c4 device type disk format '/d06/UAT/rman_hot_backup/Weekly_backup%d_DB_%c_%U';
backup database incremental level 0
after doing the above changes it get the error. with the channel location.
i have to schedule daily incremental backup level 1 and weekly full backup level 0.
plz suggest me i have to take incremental 1 and full incremental level 0 backup on seperate directory for different format name.
regards
pritesh ranjan
Similar Messages
-
hello
i am using rman hot backup script to take backup database everyday but the problem is it is working but not deleting old backup older than 2 days .
also i have question .. my database is in archive log mode and everyday about 6-7 .arch files generating in my archive directory.
it is not deleting the old files but generating new files everyday so adding up to the space.
SQL> show parameter archive
NAME TYPE VALUE
archive_lag_target integer 0
log_archive_config string
log_archive_dest string /u03/archive_logs/DEVL
log_archive_dest_1 string
also should i set dest_1 as archive location or just log_archive_dest
whats is the difference.?
my rman script is
RMAN Hot backup.unix script
The RMAN hot backup script rman_backup.sh:
# !/bin/bash
# Declare your environment variables
export ORACLE_SID=DEVL
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=$PATH:${ORACLE_HOME}/bin
# Start the rman commands
rman target=/ << EOF
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u03/backup/autobackup_control_file%F';
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
ALLOCATE CHANNEL RMAN_BACK_CH01 TYPE DISK;
CROSSCHECK BACKUP;
BACKUP AS COMPRESSED BACKUPSET DATABASE FORMAT '/u03/backup/databasefiles_%d_%u_%s_%T';
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL FORMAT '/u03/backup/archivelogs_%d_%u_%s_%T' DELETE INPUT;
BACKUP AS COMPRESSED BACKUPSET CURRENT CONTROLFILE FORMAT '/u03/backup/controlfile_%d_%u_%s_%T';
CROSSCHECK BACKUP;
DELETE NOPROMPT OBSOLETE;
DELETE NOPROMPT EXPIRED BACKUP;
RELEASE CHANNEL RMAN_BACK_CH01;
EXIT;
EOF
thanksAhmer Mansoor wrote:
RMAN never deletes the Backups unless there is a space pressure in the Recovery Area. Instead it marks the Backups as OBSOLETE based on Retention Policy (in your case it is 2 Days),
To confirm it SET DB_RECOVERY_FILE_DEST_SIZE to some smaller value, the RMAN will remove all the Obsolete Backups automatically to reclaim space.Be very careful with this. If you generate a LOT of archivelog files and you exceed this size, on the next archivelog switch your database will hang with "cannot continue until archiver freed". RMAN will not automatically remove anything. RMAN only removes stuff when you program it in your script.
See:
http://docs.oracle.com/cd/E14072_01/backup.112/e10642/rcmconfb.htm#insertedID4 Retention Policy (recovery window or redundancy)
things like:
set retention window and number of copies
crosscheck backup
delete obsolete <-- delete old, redundant, no longer necessary backups/archivelogs
delete expired <-- NOTE: If you manually delete files and do not execute delete expired (missing file), the DB_RECOVERY_FILE_DEST_SIZE remains the same. So, you can clean out the space and oracle will still say the location is "full".
Understand that if you also set this parameter too small and your backup recovery window/redundancy are incorrectly set, you can also exhaust the "logical" space of this location again, putting your database at risk. Your parameter could be set to 100G on a 400G file system and even though you have 300G available, Oracle will see the limit of this parameter.
My suggestion, get in a DEV/TEST environment and test to see how to best configure your environment for RMAN database backups/control file, archivelog backups also taking into consideration OS tape backup solutions. I always configure DISK for RMAN backups, then have some other tape backup utility sweep those locations to tape ensuring that I have sufficient backups to reconstitute my database - I also include a copy of the init.ora file, password file as well as the spfile backup in this location.
>
In case of Archivelogs, It is better to create and execute a Purge Job to remove Archivelogs after backup them on tape.I almost agree. I try to keep all archivelogs necessary for recovery from last full backup online. I try to keep a full backup online as well. much faster at restoring stuff instead of trying to locate it on tape. -
Automating refreshing one system with the rman hot backup copy from another
Hi Apps DBAs,
Right now we have two systems: production (OPEBSN) and production support (FINSUP).
I implemented a cronjob, which can refresh FINSUP every night from the cold backup of production. We shutdown the production system at night.
But our istore on production will go live soon and our production system will run 24*7.
The production is already hot backed up from RMAN.
Is it possible to do the following?
Automating refreshing FINSUP from the RMAN hot backup of OPEBSN?
If it is possible, would you please outline the general idea or give me a reference documentation?
If it is not possible, is there any other way to realize our purpose?
Thank you in advance!
LilyThere is some discussion about this topic in the belwo askTom thread.
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:21934468026100
Sam
http://appstech-sam.blogspot.com -
Oracle Hot Backup Script Windows Server 2003
Hello,
Does anyone here have a working Oracle 10I database hot backup script for Windows Server 2003? If so can you please post it here.
Thanks.Here is a basic batch script I have used for a hot backup of Oracle databases using RMAN
Will just need to update some locations based on you environment just check all the comments and change what you need to but this can be scheduled to run regularly through the windows scheduler for database backups.
This will take a hot backup and backup the archive logs.
Let me know if you have any quesitons.
REM #####################################################################
REM # Name: rman_hot_backup_dsk.bat
REM #
REM # Description:
REM #
REM # Generic Hot backup script that accepts the SID
REM #
REM # Parameters: Instance Name, backup level
REM #
REM #####################################################################
REM #
REM # Check if SID was Passed
if (%1)==() goto USAGE
if (%2)==() goto USAGE
REM # assign ORACLE_SID to passed SID
set ORACLE_SID=%1
REM # Set the hot backup level 0-full 1-incremental
set LEVEL=%2
REM # export the page list
set [email protected]
REM # assign a date we can use as part of the logfile
set DTE=%date:~-4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%
REM # Take the spaces out of the date string so we can use in our file name
set DTE=%DTE: =%
REM # set the script location
REM # Set location of where you will put script
set SCRIPTLOC=C:\app\oracle\scripts
cd %SCRIPTLOC%
REM # Set the Temporary command file that we will write our rman script to
set CMDFILE=%SCRIPTLOC%\%ORACLE_SID%_rman_hot_backup_dsk.cmd
REM # Remove the temporary file if it exists
del /q %CMDFILE%
REM # Set the logfile directory
REM # Change based on where you want the backup logs to go
set LOGPATH=W:\ORACLE_BACKUP\logs
set LOGFILE=%ORACLE_SID%_rman_hot_backup_dsk_%DTE%.log
set LOG=%LOGPATH%\%LOGFILE%
REM # Set the path of the backup location
REM # Change based on disk pach for you disk based backups
set BACKLOC=\\VirtualBox\ORA_ITS03P\ORACLE_BACKUP\%ORACLE_SID%
REM # Lets set the ORACLE_HOME for the host
REM # Set to your actual ORACLE_HOME location
set ORACLE_HOME=C:\app\oracle\product\10.2.0\db_1
# Set the rest of the Oracle Environment
# based on our ORACLE_HOME
set LIBPATH=%ORACLE_HOME%/lib
set LD_LIBRARY_PATH=%ORACLE_HOME%/lib
set TNS_ADMIN=%ORACLE_HOME%/network/admin
REM #set ORA_NLS10=%ORACLE_HOME%/nls/data
REM Set our PATH with the ORACLE_HOME so that we have a good
REM clean environment to work with
set PATH=%ORACLE_HOME%/bin;%ORACLE_HOME%/OPatch;%PATH%
REM # Write Temporary command file for RMAN backup
echo # configure retention policy >> %CMDFILE%
echo CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # lets start clean for our hot backup by doing full crosschecks >> %CMDFILE%
echo change archivelog all crosscheck ; >> %CMDFILE%
echo crosscheck backup of database; >> %CMDFILE%
echo crosscheck backup of controlfile; >> %CMDFILE%
echo # >> %CMDFILE%
echo # delete all expired and obsolete backups >> %CMDFILE%
echo allocate channel for maintenance type disk ; >> %CMDFILE%
echo delete noprompt expired archivelog all ; >> %CMDFILE%
echo delete noprompt expired backup ; >> %CMDFILE%
echo delete noprompt obsolete ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # Configure control file for auto backup >> %CMDFILE%
echo configure controlfile autobackup on ; >> %CMDFILE%
echo CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%BACKLOC%\%ORACLE_SID%_controlfile_%%F' ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # Configure default device type here we use disk and set parallelism to 2 >> %CMDFILE%
echo configure default device type to disk ; >> %CMDFILE%
echo configure device type disk parallelism 2 ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # Must format the default channel for the device type disk >> %CMDFILE%
echo # other wise tmp area in creating pieces will be done in >> %CMDFILE%
echo # the $ORACLE_HOME/dbs directory >> %CMDFILE%
echo CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT = '%BACKLOC%\%ORACLE_SID%_hot_%%U' ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # Configure our retention policy for this database >> %CMDFILE%
echo configure retention policy to recovery window of 14 days ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # Let configure our channels for our backup >> %CMDFILE%
echo # Channel 1 disk and we indicate where it goes not taking the default >> %CMDFILE%
echo configure channel 1 device type disk MAXPIECESIZE = 4G format '%BACKLOC%\%ORACLE_SID%_hot_%%U' ; >> %CMDFILE%
echo # Channel 2 disk and we indicate where it goes not taking the default >> %CMDFILE%
echo configure channel 2 device type disk MAXPIECESIZE = 4G format '%BACKLOC%\%ORACLE_SID%_hot_%%U' ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # Backup our database with compression on >> %CMDFILE%
echo backup as compressed backupset incremental level %LEVEL% tag hot_%LEVEL%_%DTE% DATABASE ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # Backup our archive log files that have not been backed up >> %CMDFILE%
echo backup as compressed backupset format '%BACKLOC%\%ORACLE_SID%_Archive_%%d_%%s_%%p_%%t' archivelog all not backed up 1 times ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # Backup Control file for standby in case needed >> %CMDFILE%
echo backup current controlfile for standby ; >> %CMDFILE%
echo # >> %CMDFILE%
echo # let put a controlfile to trace >> %CMDFILE%
echo sql 'ALTER DATABASE BACKUP CONTROLFILE TO TRACE' ; >> %CMDFILE%
REM # Run the RMAN backup without using the recovery catalog
%ORACLE_HOME%\bin\rman target=/ nocatalog cmdfile=%CMDFILE% msglog=%LOG%
REM # Remove our temporary command file
del /q %CMDFILE%
REM # Mail Archive backup log
REM # This relies on the free bmail utility
bmail -date -m %LOG% -f [email protected] -s <smtpserver> -t %PAGE_LIST% -a "HOT Backup results"
REM # Goto end of script as we are done
goto END
:USAGE
echo "Must Pass ORACLE_SID and hot backup level as parameters."
goto END
:END -
Win2000/NT hot backup script
Can someone provide a basci script for online(hot) backup for Oracle9i(8i) on Windows2000/NT server? we have a online application, and plan to back it up every night.
Also, Windows should have administrative tool to schedule the backup by envoking the script every night after we set it up, right?
Many THANKS for your help!!!Hope this solves ur problem
Run this script through SQLPLUS and it will ask you for the
HOT_BACK_DIR and GEN_FILE values.
HOT_BACK_DIR : defines the directory to which the hot backup is written
SCRIPT_FILE : Hot Backup Script for your environment
INT_PWD :Internal Password ( Needed for NT Only )
Give me the Credit and never use it without askin me ;)
****************************** DO NOT DELETE*********************/
define HOT_BACK_DIR = &1
define SCRIPT_FILE = &2
define INT_PWD = &3
/* Create Temporary Table with Tablespace Data */
drop table dsc_hot_stage;
create table dsc_hot_stage
tablespace_name varchar2(30),
file_name varchar2(200)
insert into dsc_hot_stage
select rtrim(tablespace_name),rtrim(file_name) from sys.dba_data_files;
/**** Set up the parameters for the spool file */
set feedback off
set heading off
set pagesize 0
set linesize 128
set verify off
set termout oN
set echo off
spool &SCRIPT_FILE
select '/* ',
'**** This is the hot backup script and has been generated',
'**** by gen_hot_dos.sql.',
'**** ' || to_char(sysdate, 'MM/DD/YYYY HH:MI:SS') ,
'**** You are Allowed to Use this script freely as long '
'**** as this title is not deleted
'**** For more Scripts Visit DBASUPPORT.COM */'
from dual;
select 'connect internal/&3' from dual;
-- Create Script to backup Control File to Trace
select 'alter database backup controlfile to trace; '
from dual;
-- Create Script to backup actual files to a directory
select 'alter tablespace '|| tablespace_name||' begin backup;' c1,
'host ocopy80 '||file_name||' &HOT_BACK_DIR' || '\' ||
substr(file_name,instr(rtrim(file_name),'\',-1,1)+1,length(rtrim(file_name)))||
'.bak' c2
from dsc_hot_stage
union
select 'alter tablespace '|| tablespace_name||' end backup;' c1,
null c2,
from dsc_hot_stage
group by tablespace_name,file_name order by 1;
select 'exit' from dual;
spool off -
DB version :10.2.0.4
Do you find anything wrong in the below mentioned RMAN cold backup script? Any enhancements, corrections required?
shutdown immediate;
startup mount;
backup database including current controlfile tag='full_bkp';
startup;
crosscheck backup;
delete noprompt obsolete device type disk;
resync catalog;
}Since you are doing a SHUTDOWN IMMEDIATE and STARTUP MOUNT before the BACKUP, there will be no ArchiveLogs generated while the backup is running --- as the database is not OPEN.
However, the PLUS ARCHIVELOG can include ArchiveLogs that had been generated from the previous STARTUP or ALTER DATABASE OPEN.
(In that case, I would suggest an SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT' before the SHUTDOWN IMMEDIATE).
Is your database running in ARCHIVELOG mode ? If not, then this discussion is moot.
If yes, the next question is, obviously : Why not take a Hot Backup while the database is running (in which case you MUST backup archivelogs !)
Hemant K Chitale -
RMAN & Hot backup cloning taking long time
Dear DBAs,
We are doing both RMAN & Hot backup cloning foe that taking more time to restore data files to TEST instance. scp taking too much time to copy to target server because of its volume of data (1.5 TB) & Mounting the RMAN backups drive on test server and restoring from that drive taking more than 8 hours.
I heard that some companies are using some device to move heavy volume Hot backup copy from source to dest faster for clone the instance easily with in minutes. What is that device name to take hot backup copies from source and restore it in target server.
Test server Specs
Processor 8 cores with 32GB Memory.
Thanks
DBAHot backup is not recommanded for the database size more than 1T.
RMAN backup and restore is the only opiton available for a DBA.
Other option is to use EMC Symmentrix/BCV's/Snapshots. EMC uses pair of disks to achive synch the produciton data with test server. read more about EMC symmentrix or ask your storage team. -
NT 의 OCOPY 를 이용한 HOT BACKUP SCRIPT
제품 : ORACLE SERVER
작성날짜 : 2002-04-25
NT 의 OCOPY 를 이용한 HOT BACKUP SCRIPT
========================================
PURPOSE
다음은 NT에서 OCOPY를 이용하여 HOT BACKUP을 하는 SCRIPT를
제공한다.
Examples
1) <Batch file 1 >
Online_backup_data 라는 batch file 은 다음처럼 이루어질 수 있다.
svrmgr23 @d:\temp\begin_user_backup.sql
ocopy73 d:\orant\database\usr1orcl.ora d:\temp\usr1orcl.bck
svrmgr23 @d:\temp\end_user_backup.sql
svrmgr23 @d:\temp\begin_SYS_backup.sql
ocopy73 d:\orant\database\SYS1orcl.ora d:\temp\SYS1orcl.bck
svrmgr23 @d:\temp\end_SYS_backup.sql
svrmgr23 @d:\temp\begin_temp_backup.sql
ocopy73 d:\orant\database\TMP1orcl.ora d:\temp\TMP1orcl.bck
svrmgr23 @d:\temp\end_temp_backup.sql
로 만들 수 있다.
이 때 begin_user_backup.sql file 내용은
connect system/manager
alter tablespace user_data begin backup;
exit; 이고 ,
또 end_user_backup.sql file 내용은
connect system/manager
alter tablespace user_data end backup;
exit;
로 구성되어야 한다.
2) 또는 BATCH FILE 을 다음처럼 구성할 수 있다.
svrmgr23 @d:\temp\backup.sql
backup.sql script 내용은 다음과 같이 작성한다.
connect system/manager
alter tablespace user_data begin backup;
host ocopy73 e:\orant\database\usr1orcl.ora d:\tmp\usr1orcl.bck
alter tablespace user_data end backup;
alter tablespace SYSTEM begin backup;
host ocopy73 e:\orant\database\SYS1orcl.ora d:\tmp\SYS1orcl.bck
alter tablespace SYSTEM end backup;
alter tablespace ROLLBACK_DATA begin backup;
host ocopy73 e:\orant\database\RBS1orcl.ora d:\tmp\RBS1orcl.bck
alter tablespace ROLLBACK_DATA end backup;
alter tablespace TEMPORARY_DATA begin backup;
host ocopy73 e:\orant\database\TMP1orcl.ora d:\tmp\TMP1orcl.bck
alter tablespace TEMPORARY_DATA end backup;
exit;
Reference Documents
-------------------- -
During user mode hot backup lots of redo gets generated as the entire block is written when any changes are made to a block which is in hot backup mode.But during Rman hot backup less redo are generated why is this so and whatz the logic invloved? and how oracle recovers the file that has been backed up through Rman.
Could you please explain me regarding this in detail it will be really helpful.
kumareshFrom Article Note:76736.1 RMAN FAQ: Recovery Manager -- Frequently Asked
To understand why RMAN does not require extra logging or backup mode,
you must first understand why those features are required for non-RMAN
online backups.
A non-RMAN online backup consists of a non-Oracle tool, such as cp or
dd, backing up a datafile at the same time that DBWR is updating the
file. We can't prevent the tool from reading a particular block at the
exact same time that DBWR is updating that block. When that happens,
the non-Oracle tool might read a block in a half-updated state, so that
the block which is copied to the backup media might only have been
updated in its first half, while the second half contains older data.
This is called a "fractured block". If this backup needs to be restored
later, and that block needs to be recovered, recovery will fail because
that block is not usable.
The 'alter tablespace begin backup' command is our solution for the
fractured block problem. When a tablespace is in backup mode, and a
change is made to a data block, instead of logging just the changed
bytes to the redo log, we also log a copy of the entire block image
before the change, so that we can reconstruct this block if media
recovery finds that this block was fractured. That block image logging
is what causes extra redo to be generated while files are in backup
mode.
The reason that RMAN does not require extra logging is that it
guarantees that it will never back up a fractured block. We can make
that guarantee because we know the format of Oracle data blocks, and we
verify that each block that we read is complete before we copy it to the
backup. If we read a fractured block, we read the block again to obtain
a complete block before backing it up. non-Oracle tools are not able to
do the same thing because they do not know how to verify the contents of
an Oracle data block.
Backup mode has another effect, which is to 'freeze' the checkpoint in
the header of the file until the file is removed from backup mode.
We do this because we cannot guarantee that the third-party backup
tool will copy the file header prior to copying the data blocks.
RMAN does not need to freeze the file header checkpoint because we
know the order in which we will read the blocks, which enables us to
capture a known good checkpoint for the file. -
How to restore RMAN hot backup to another database on another server?
I want to know how to restore RMAN hot backup from production server to another database on a testing server.
The hot backup is from a database named PROD on the production server
The database to be restored with the hot backup is TEST on the testing server. There is already a PROD database on the testing server and this PROD database must be kept.
I have read some threads about changing initTEST.ora to PROD to restore such backup but (I think) will not work in my case since I already have a PROD database on the testing server.
The version is 11gR2 on Linux but the compatible parameter is set to 10.2.0.1.0.
Thanks for any help.Hi,
Since you are on 11g, hope this helps you http://shivanandarao.wordpress.com/2012/04/28/duplicating-database-without-connecting-to-target-database-or-catalog-database-in-oracle-11g/
881656
Handle: 881656
Status Level: Newbie
Registered: Aug 25, 2011
Total Posts: 53
Total Questions: 31 (31 unresolved)
Looks like forum is of no help to you. To get better responses, consider closing your threads by providing appropriate points if you feel that they have been answered. Keep the forum clean !! -
Creating RAC database thru RMAN hot backup
Hi Guys,
I am having ERP PROD database on 2 nodes 116 and 117(RAC) server. We have a scheduled RMAN HOT backup of this database
WE also have ASM implemented.
We have another 2 servers named 36 and 37(RAC and ASM) which has ERP Test Database and the thing is that we want to refresh this
test database using ERP PROD RMAN backup.
Can someone please post the proper steps to restore the RMAN backup to ERP Test database as ASM is alos there.
As it is little urgent for us.
help will be appreciated.
Regards,
Milan Rathod1. take the backup of production database
rman connect target /
backup as compressed backupset database plus archivelog format '/u01/db/backup/%d_%I_%s_%T';
move the backup to test server (same location /u01/db/backup/ bcoz rman checks for backupset in the same location only)
add the below two lines in the test database-- initTEST.ora file
comment cluster_ parameters in initTEST.ora file
eg:-
DB_FILE_NAME_CONVERT = (+EBAOUATDATADG1/prod/,/u01/db/app/admin/test/)
LOG_FILE_NAME_CONVERT = (+EBAOUATDATADG1/prod/,/u01/db/app/admin/test/)
check the connectivity between prod and test database.
from test
$tnsping PROD
from prod machine
$tnsping TEST
in test server
startup nomount
rman target sys@proddb auxiliary /
duplicate target database to test;
after completion of duplicate/clone step convert the single instance test to rac instance by uncomment the cluster_ parameters in initTEST.ora parameter
startup mount the second node in TEST
ALTER DATABASE ENABLE PUBLIC THREAD 2 ;
alter database open;
hope, this will helps you.
Good Luck -
RMAN Hot backup Restore in new Server
Hi,
Our Current Environment:
Source: Current Production
Database: 11.1.0.7
OS: Windows server 2003 R2
Target Environemnt:
Database 11.2.0.1
OS:windows server 2008 R2
Here my scenario is need to take RMAN Hot backup in Prod Instance and need to restore in New Server with smae SID which is going to use as Prod instance.
Please suggest the detailed steps in order to achive the goal.
Waiting for your thoughts.
Thanks
ShaikRMAN can make it easy to restore a database to a new host.
Notice that: Using RMAN RESTORE and RECOVER commands to move a database permanently to another host, will keep the original database identifier (DBID) and will therefore cause a conflict in the RMAN repository, because the restored database with the same DBID will be considered the current target database.
Below you may find the steps:
Preparing the New Host
Record the DBID of the source database.
Copy the initialization parameter file from the source database to the new host.
Make sure that all source database backups are available to the new host. Do not connect to the recovery catalog.
Restoring and Recovering on the New Host
Configure environment variables on the new host.
Connect to the new target database with NOCATALOG.
Set the DBID.
Start the instance with NOMOUNT.
Restore the SPFILE from backup.
Shut down the new instance.
Edit the PFILE.
Start the instance with NOMOUNT (again).
Create an RMAN RUN block to restore the control file.
Create an RMAN RUN block to restore and recover the database.
Open the database with RESETLOGS.
Regards, -
RMAN Hot Backup Errors.
Hello Everyone
I would appreciate if someone can assist me in resolving a problem. Starting from December of last year, we were able to take daily hot backups of our ORACLE 10g database server successfully with no issues. Presently we have been experiencing a number of errors in the logs, even though the script has not been changed. The main errors are as follows:
RMAN-03009: failure of backup command on t1 channel at 05/08/2007 00:01:19
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode
In investigating the errors, it seemed to be associated to the tablespace not being put offline or backup mode cleanly, I assumed this was due to persons working later, so I scheduled the backup for a later time but I still got the same error in the log the following day. Can you assist me in resolving this problem please?Is the db running in ARCH mode?
Error: ORA 19602
Text: cannot backup or copy active file in NOARCHIVELOG mode
Cause: You tried to copy or backup a file that was not closed cleanly, and
the database was in NOARCHIVELOG mode. This is not allowed because when
restored, the file will require redo application before it is usable,
and redo is not currently being saved beyond the contents of the online
redo logs.
Action: Take the tablespace offline clean or close the database and retry the
copy or backup. Take the tablespace offline clean or close the database
and retry -
Hot Backup을 Script로 작성후 Cron으로 실행시...
안녕하세요!
건강한 가을 보내시고 계신지요?
오늘은 Hot Backup에 대해서 몇가지 궁금한게 있어서 글을 올립니다
-. HP-UNIX 11, Oracle 9.2.0.7
-. Oracle Database 파일 용량 : 약 50G
-. Script 내용중 일부 발췌
alter system switch log file; <--백업해야할 dbf 양이 많아 먼저 한번 실행시켰음
####### Tablespace Backup
alter tablespace system begin backup;
!cp /oradata/system01.dbf /BACKUP/hot/system01.dbf
alter tablespace system end backup;
...........각 테이블스페이스별로 위와 같이 정의
####### Archive Log File Backup
alter system switch log file;
alter system archive log off;
!cp /oradata/arch/*.arc /BACKUP/hot/arch/.
!rm /oracle/arch/*.arc
alter system archive log start;
####### Control File Backup
alter system checkpoint;
alter database backup controlfile '/BACKUP/hot/control.bkp';
위와 같이 Script를 작성하여, Cron을 사용하여 야간에 작업을 수행코자 합니다.
1. 위의 Script에서 수정을 가해야 하는 부분이나, 좀 더 추가되어야할 부분이 있으시면 기탄없이 지적 부탁드립니다.
2. 야간에 작업을 수행하다보니, Tablespace의 Begin backup을 했는데, 여타의 장애로 인해 End Backup이 수행이 안될경우, DBA가 강제로 End Backup을 안해줄 경우에는 어떻게 되는지요?
그리고, 이러한 위험을 해결키 위해 고수님들은 어떠한 방법을 사용하는지 알고 싶습니다.
행복한 하루 되십시요!
감사합니다.첫번째로..
백업초기에 log switch를 하는 것은 경험상 필요하기도 합니다.
트랜잭션이 거의 없는 백업본의 경우에 archive가 거의 떨어지지
않게 되고, 하루 백업하는데 백업본에 archive는 없는 이상한 사태가
벌어지죠. 차후에 cancel복구를 해야 하는 경우에도 어렵기 때문에
online backup 시 초기에 log switch 를 해주기는 합니다.
두번째로..
alter system archive log stop; 명령은 왜 하셨는지요?
이거 하면.. archiveing 이 멈추니 트랜잭션도 멈춥니다. 서비스 영향을
줄텐데요.. 백업이 서비스에 영향을 주어서는 안되겠죠.
archive log를 백업시에는 파일명에 대한 리스트를 만들고 그 리스터에
있는 파일들을 백업후 삭제하는 방법으로 변경하시는 것이 좋을 것 같습니다.
세번째로.. 컨트롤파일 백업은 tablespace backup 이후에
바로 하시는 것이 좋습니다. archive file을 백업하는 시간동안
SCN이 변경이 되겠고, 그러면 해당 컨트롤파일을 백업하고 그것을
restore하게 되면 controlfile의 scn이 틀리니 controlfile의 SCN까지
복구가 필요하다고 판단하겠죠.
순서를.. 테이블스페이스 데이터파일 백업 -> 컨트롤파일 백업 -> 아카이브백업
이런 순으로 하시면 좋을 것 같습니다.
네번째로..
begin backup을 하게 되면 테이블스페이스의 데이터파일 헤더에는 bebin
backup mode라고 쓰게 됩니다. 그리고 이렇게 begin backup mode인
테이블스페이스에서 변경된 데이터는 그 데이터를 row 단위로 redo log entry에
등록하는 것이 아니라 블록단위로 등록하게 됩니다. 즉 단 하나의 row만을
update했을 뿐인데도 해당 block전체가 redo log entry로 들어가겠죠. 당연히
archive file이 훨씬 많이 쌓이게 됩니다. 또한 DB를 abort로 내렸을 경우에는
이후에 open을 하려고 하면 system01.dbf 파일을 복구하라고 나와서
아주 당황하게 되지요.
그리고 사례를 보면..모 시청에서 DBA가 한달동안
begin backup이 된 것을 몰랐고, DB fail이 났는데..복구를 한답시고
controlfile을 재생성하였습니다. 그런데 bootstrap failure가 발생했고
게다가 아카이브도 없고 백업도 없는 것이었습니다. 결국엔 adjust scn으로
강제복구를 했지요.. begin backup mode인지는 아침에 시스템담당자가
꼭 확인해야 하는 것 중에 하나입니다. 아침 점검 스크립트 수행하지
않으시는지요?
첨부로.. 얼마전에 여기 게시판에도 올렸던 내용인데요..
백업 스크립트를 드리죠..
그리고 아침에 DB를 점검할 때 보아야 하는 사항은 제가 정리한 것이
있습니다.
아래 링크에서 다운받아서 참고하세요.
http://www.dbguide.net/servlet/com.util.DownloadServlet?file=%2F20060120%2F1137768090586.zip&filename=%C0%CF%C0%CF+DB%C1%A1%B0%CB+%BD%BA%C5%A9%B8%B3%C6%AE_%B0%F8%B0%B3%BF%EBv0.1.zip
===================================================
온라인 백업은 파라메터 파일 , 콘트롤 파일, 모든 데이터파일 , 아카이브로그를
백업후 다른 서버로 이동시키면 다른 서버로 복구할 수 있습니다.
하지만 online backup시에 datafile, controlfile만을 백업하므로 current redo log가 없으므로
until cancel 복구를 해야 합니다.(rman 백업도 마찬가지)
1) init파일,DB file, controlfile을 다른서버로 이동시킵니다.
보통 controlfile백업은 alter database backup controlfile to '~~'; 이렇게 하기 때문에
하나만 복사하므로 이것을 추가 복사해서 controlfile의 경로에 복사해줍니다.
2) init파일에 controlfile의 경로, background_dump_dest, user_dump_dest, core_dump_dest, log_archive_dest 를
경로에 맞게 지정해줍니다.
3) DB를 mount상태로 올립니다. 만약 mount하는 동안 에러가 난다면 controlfile에서
문제가 생겼으므로 controlfile의 백업을 확인합니다.
4) datafile, redolog file의 file_name을 변경합니다.
select name from v$datafile;
select member from v$logfile;
alter database rename file '현재경로' to '이동시킨 경로';
alter database rename file '현재경로' to '이동시킨 경로';
단 여기에서 tempfile은 백업대상도 아니고 rename이 안되므로 새로 생성해 주어야 합니다.
select name from v$tempfile;
select * from sys.props$;에서 default temporary tablespace를 찾거나
또는 select distiinct temporary_tablespace from dba_users 에서 찾습니다.
tempfile을 추가하는 방법은 더이상 말씀 안드립니다. NBR과정의 기본이니까요..
5) DB의 archive file을 log_archive_dest 에 설정된 곳으로 이동시키고 recovery를 수행합니다.
recover database until cancel;
마지막 archvie까지 적용후 cancel하기
alter database open resetlogs;
resetlogs open하기
# 온라인 백업 스크립트(데이터파일, 컨트롤파일만 백업)
작업 이전에 /backup , /backup/control 이라는 디렉토리 생성
- 백업 메인
vi /backup/onbackup.sh
export LANG=C
export ORACLE_HOME=/u/ora9i/product/9.2.0
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=PROD
sh -x /backup/1_onbackup.sh
sh -x /backup/2_cp_backup.sh
sh -x /backup/3_control_backup.sh
sh -x /backup/4_offbackup.sh
- 백업 모드 변경
vi /backup/1_onbackup.sh
export LANG=C
export ORACLE_HOME=/u/ora9i/product/9.2.0
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=PROD
# backup mode on
sqlplus /nolog << EOF1
conn /as sysdba
set head off
set feedback off
set time off
set timing off
set echo off
spool /tmp/backup_online.tmp
select 'alter tablespace '||tablespace_name||' begin backup;' from dba_tablespaces where status='ONLINE' and contents <>'TEMPORARY';
spool off
!cat /tmp/backup_online.tmp|grep -v spool|grep -v SQL > /tmp/backup_online.sql
@/tmp/backup_online.sql
exit
EOF1
- 데이터파일 백업할 쿼리
vi /backup/2_cp_backup.sql
select 'mkdir /backup/'||to_char(sysdate,'YYYYMMDD_HH24MI') from dual;
select 'cp '||name||' /backup/'||to_char(sysdate,'YYYYMMDD_HH24MI') from v$datafile;
- 데이터파일 copy하는 스크립트
vi /backup/2_cp_backup.sh
# cp backup, mkdir /backup/SYSDATE directory
export LANG=C
export ORACLE_HOME=/u/ora9i/product/9.2.0
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=PROD
sqlplus /nolog << EOF2
conn /as sysdba
set head off
set feedback off
set time off
set timing off
set echo off
spool /tmp/backup_script.tmp
@2_cp_backup.sql
spool off
!cat /tmp/backup_script.tmp |grep -v spool |grep -v SQL > /tmp/backup_script.sh
!chmod 755 /tmp/backup_script.sh
exit
EOF2
sh -x /tmp/backup_script.sh
- 컨트롤파일 백업
vi /backup/3_control_backup.sh
export LANG=C
export ORACLE_HOME=/u/ora9i/product/9.2.0
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=PROD
# controlfile backup
sqlplus /nolog << EOF3
conn /as sysdba
set head off
set feedback off
set time off
set timing off
set echo off
spool /tmp/control_backup.tmp
select 'alter database backup controlfile to ''/backup/control/'||to_char(sysdate,'YYYYMMDD_HH24MI')||'.ctl'';' from dual;
spool off
!cat /tmp/control_backup.tmp |grep -v spool|grep -v SQL > /tmp/control_backup.sql
@/tmp/control_backup.sql
exit
EOF3
- 백업모드 offline하기
vi /backup/4_offbackup.sh
export LANG=C
export ORACLE_HOME=/u/ora9i/product/9.2.0
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=PROD
# backup mode off
sqlplus /nolog << EOF4
conn /as sysdba
set head off
set feedback off
set time off
set timing off
set echo off
spool /tmp/backup_offline.spool
select 'alter tablespace '||tablespace_name||' end backup;' from dba_tablespaces where status='ONLINE' and contents <>'TEMPORARY';
spool off
!cat /tmp/backup_offline.spool |grep -v SQL > /tmp/backup_offline.sql
@/tmp/backup_offline.sql
exit
EOF4
그리고 만약 파일리스트만 내리고 veritas netbackup으로 백업이 가능하다면 아래와 같이 하면
됩니다. veritas netbackup에서는 file리스트만 파일로 떨구면 그 파일을 백업해줍니다.
archvie backup은 아래와 같이 하면 되는데 아래는 archive file의 backup list만 만듭니다.
수정해서 backup list에서 YYYYMMDD_HH24MI의 분단위 디렉토리를 만들고 archive file을
다른 서버로 cp복사하도록 하면 됩니다. 꼭 아래 스크립트는 테스트 후에 사용하시길
바랍니다...
# 데이터파일 백업과 archvie백업 쉘은 아래와 같습니다.
1. begin backup할 스크립트를 수행합니다.
dbbegin.sh
TBS_INFO=/tmp/tbs_info~.$$
sqlplus /nolog << EOF > $TBS_INFO 2>&1
connect / as sysdba;
select 'tablespace '||tablespace_name from dba_tablespaces;
disconnect;
exit
EOF
cat $TBS_INFO | awk ''$1 == "tablespace" { print $2 }'' | while read LINE
do
export LINE
echo "Issuing alter tablespace $LINE begin backup;"
/usr/openv/netbackup/oracle/table_begin.sh
done
\rm $TBS_INFO
2. 위에서의 table_begin.sh 는 아래와 같습니다.
table_begin.sh
sqlplus /nolog << EOF > /dev/null 2>&1
connect / as sysdba;
alter tablespace $LINE begin backup;
disconnect;
exit
EOF
3. dbbegin.sh 을 하게 되면 테이블스페이스가 backup mode가 됩니다.
4. 데이터파일 리스트를 추출합니다.
datafile_list
#!/bin/ksh
DATAFILE_INFO=/tmp/datafile_info~.$$
datafile_list=/tmp/PROD_data_list
sqlplus /nolog << EOF > $DATAFILE_INFO 2>&1
connect / as sysdba;
select ''datafile_name ''||file_name from dba_data_files;
select ''logfile_name ''||member from v\$logfile;
select ''controlfile_name ''||name from v\$controlfile;
disconnect
EOF
cat $DATAFILE_INFO | awk ''$1 == "datafile_name" {print $2}''
/tmp/PROD_dbfile_list cat $DATAFILE_INFO | awk ''$1 == "logfile_name" {print $2}''
/tmp/PROD_logfile_list cat $DATAFILE_INFO | awk ''$1 == "controlfile_name" {print $2}''
/tmp/PROD_controlfile_list cat /tmp/PROD_dbfile_list > $datafile_list
cat /tmp/PROD_logfile_list >> $datafile_list
cat /tmp/PROD_controlfile_list >> $datafile_list
\rm $DATAFILE_INFO
5. 데이터파일 리스트를 netbackup에서 tape백업을 하도록 합니다.
veritas netbackup에서 리스트만 주면 백업해줌..
6. end backup 을 만드는 스크립트를 수행
dbend.sh
#!/bin/ksh
TBS_INFO=/tmp/tbs_info~.$$
sqlplus /nolog << EOF > $TBS_INFO 2>&1
connect / as sysdba;
select ''tablespace ''||tablespace_name from dba_tablespaces;
disconnect;
exit
EOF
cat $TBS_INFO |awk ''$1 == "tablespace" { print $2 }''|while read LINE
do
export LINE
echo "Issuing alter tablespace $LINE end backup;"
/usr/openv/netbackup/oracle/table_end.sh
done
\rm $TBS_INFO
7. 위에서 table_end.sh 는 아래와 같습니다.
table_end.sh
sqlplus /nolog << EOF > /dev/null 2>&1
connect / as sysdba;
alter tablespace $LINE end backup;
disconnect;
exit
EOF
6. archive log가 없을 수 있으므로 수동으로 log switch 해줍니다.
arch_list_1
#!/bin/ksh
sqlplus /nolog << EOF > $LOG
connect / as sysdba;
alter system switch logfile;
disconnect;
exit;
EOF
7. archvie file의 리스트를 뽑아냅니다.
arch_list
#!/bin/ksh
TBS_INFO=/tmp/tbs_info~.$$
ARCHIVE_DIR=/tmp/PROD_archive_dir.txt
sqlplus /nolog << EOF > $LOG 2>&1
connect / as sysdba;
alter system switch logfile;
disconnect;
exit;
EOF
sqlplus /nolog << EOF > $TBS_INFO 2>&1
connect / as sysdba;
archive log list;
disconnect;
exit;
EOF
cat $TBS_INFO | awk ''$1 == "Archive" {print $3}'' > $ARCHIVE_DIR
ARCH_DIR=
cat $ARCHIVE_DIR
ARCH_LIST_PROD=
ls -ltr $ARCH_DIR/*.arc |wc -l
echo "ARCH_LIST_PROD : $ARCH_LIST_PROD" >> $LOG
ARCH_LIST_PROD_1=
expr$ARCH_LIST_PROD - 1
echo "ARCH_LIST_PROD_1 : $ARCH_LIST_PROD_1" >> $LOG
/usr/bin/ls -ltr $ARCH_DIR/*.arc |awk ''{print $9}'' |head -
$ARCH_LIST_PROD_1 > /tmp/PROD_arch_list
echo "Archive Log List Print.....O.k....
/usr/bin/date +%c
" >> $LOG
#\rm $TBS_INFO $ARCHIVE_DIR
8. 위에서 /tmp/PROD_arch_list에 있는 archive리스트를 veritas netbackup에서 넣어주면 tape백업이 됩니다.그리고 특이한 것은 archvie file은 archive file을 백업했으면
지우도록 설정하면 되겠지요. -
RMAN hot backup on RAC instances
10gR2 RHEL 4 AS 64 bit
Node1 - FPRCPROD1
Node2 - FPRCPROD2
Database Name - FPRCPROD
Hi All,
I am trying to do an RMAN hot back up of my 2 node RAC database. The backup script is all ready to go but I am having a problem. I have a 2 part question:
When I run my script it is getting the ORACLE_SID from the /etc/oratab file. And in that file, for both my nodes, the entry is as follows:
FPRCPROD:/opt/app/oracle/product/10.2.0/db_1:N
Isn't is suppose to have the instance name (FPRCPROD1)? and FPRCPROD2 on the second node?
Which ORACLE_SID am I suppose to have to make the script run successfully? FPRCPROD or FPRCPROD1?
Thank you.This is from documentation (9i, but also valid for 10g):
Verify the contents of the oratab file
Check the existence and contents of the oratab file on all nodes. The default location is /var/opt/oracle/oratab (or /etc/oratab on some operating systems). The contents should be:
V920:/u01/app/oracle/product/9.2.0:N
Notice that the entry should contain the database name (V920) and NOT the instance name (ORACLE_SID). This file should be the same on all nodes.
As you can see, use database name, NOT instance name.
Werner
Maybe you are looking for
-
Unable to send or receive sms from non iPhone users
I am unable to send or receive text messages from non iPhone users. I can get and send MMS but no SMS... I have an iPhone 6 +
-
Applet overwritten when second instance initialized ?
Hi When I try to initialize a second instance of an applet using IE(one instance is already running), I find that the first applet is overwritten by the second. This should not have been a problem, but my applet launches a password verification dialo
-
Cannot activate Time Machine on Iomega drive
I recently purchased an Iomega Home Media Network Hard Drive and I'm using it as a Time Machine backup. Backups happen smoothly, yet I'm not able to activate Time Machine. Whenever I click "Activate Time Machine", it'll show a message it's connecting
-
I have upgraded to bt hub 4 but my iPod picks up a full signal then when opening safari it says cannot open as there is no connection but iPod showing full connection. I have upgraded to the latest software can anyone help pleas ?
-
je n arrive pas a debloquer mon iphone on me demande de l activer avec un mot de passe que j ai oublié