Added database scripts used for htobackup, standby, log shipping, etc.
git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@4804 248e525c-4dfb-0310-94bc-949c084e9493
This commit is contained in:
22
WebServer/DatabaseScripts/Copy of advwb1_logship.vbs
Normal file
22
WebServer/DatabaseScripts/Copy of advwb1_logship.vbs
Normal file
@@ -0,0 +1,22 @@
|
||||
REM $Id: logship.vbs 3443 2008-02-01 15:56:18Z hardya $
|
||||
const archive_source = "\\advweb\archivelogs"
|
||||
const archive_dest = "\\advwb2.opcs-online.info\archivelogs"
|
||||
|
||||
CopyArchives archive_source,archive_dest
|
||||
|
||||
Sub CopyArchives(strSource, strDest)
|
||||
Dim fileSystem
|
||||
Dim fldrSource
|
||||
Dim fldrDest
|
||||
|
||||
set fileSystem = createobject("Scripting.FileSystemObject")
|
||||
set fldrSource = fileSystem.GetFolder(strSource)
|
||||
set fldrDest = fileSystem.GetFolder(strDest)
|
||||
|
||||
for each file in fldrSource.Files
|
||||
WScript.Echo "Looking at " & file.Name
|
||||
if not filesystem.FileExists(strDest & "\" & file.Name) then
|
||||
file.Copy (strDest & "\" & file.Name)
|
||||
end if
|
||||
next
|
||||
End Sub
|
||||
10
WebServer/DatabaseScripts/activatestandby.sql
Normal file
10
WebServer/DatabaseScripts/activatestandby.sql
Normal file
@@ -0,0 +1,10 @@
|
||||
REM $Id: applylog.sql 3443 2008-02-01 15:56:18Z hardya $
|
||||
set echo on
|
||||
spool activatestandby.log
|
||||
connect &&user/&&password as sysdba
|
||||
alter database activate standby;
|
||||
shutdown immediate;
|
||||
startup mount;
|
||||
alter database open;
|
||||
spool off;
|
||||
exit
|
||||
132
WebServer/DatabaseScripts/advwb1_logship.vbs
Normal file
132
WebServer/DatabaseScripts/advwb1_logship.vbs
Normal file
@@ -0,0 +1,132 @@
|
||||
REM $Id: logship.vbs 3443 2008-02-01 15:56:18Z hardya $
|
||||
const archive_source = "\\advweb\archivelogs"
|
||||
const logship_user = "advweb\logship"
|
||||
const logship_pwd = "logship"
|
||||
const archive_dest = "\\advwb2.opcs-online.info\archivelogs"
|
||||
const strFrom = "webmip@AdvanticaGroup.com"
|
||||
const strTo = "Andrew.Hardy@AdvanticaGroup.com"
|
||||
const strSub = "MIP: Logship"
|
||||
const strSubError = "MIP: Logship Error"
|
||||
strBody = "Logship Completed Successfully"
|
||||
const strSMTP = "relay01.sleek.net"
|
||||
|
||||
|
||||
CopyArchives archive_source,archive_dest, logship_user, logship_pwd
|
||||
|
||||
Sub CopyArchives(strSource, strDest, strUser, strPwd)
|
||||
Dim strLocalDrive
|
||||
strLocalDrive = "L:"
|
||||
|
||||
Dim strRemoteDrive
|
||||
strRemoteDrive = "R:"
|
||||
|
||||
'error handling
|
||||
On Error Resume Next
|
||||
|
||||
Set objNetwork = CreateObject("WScript.Network")
|
||||
|
||||
objNetwork.MapNetworkDrive strLocalDrive, strSource, false, strUser, strPwd
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Mapping " & strSource & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
objNetwork.MapNetworkDrive strRemoteDrive, strDest, false, strUser, strPwd
|
||||
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Mapping " & strDest & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
set fileSystem = createobject("Scripting.FileSystemObject")
|
||||
|
||||
WScript.Echo "Getting fldrSource"
|
||||
set fldrSource = fileSystem.GetFolder(strLocalDrive)
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Getting Local Folder " & strLocalDrive & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
|
||||
WScript.Echo "Getting fldrDest"
|
||||
set fldrDest = fileSystem.GetFolder(strRemoteDrive)
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Getting Remote Folder " & strRemoteDrive & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
|
||||
WScript.Echo "Looking at directory " & strSource
|
||||
for each file in fldrSource.Files
|
||||
if not filesystem.FileExists(strDest & "\" & file.Name) then
|
||||
WScript.Echo "Copying " & file.Name & " to " & strDest & "\" & file.Name
|
||||
file.Copy (strDest & "\" & file.Name)
|
||||
end if
|
||||
next
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error During File Copy:" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
objNetwork.RemoveNetworkDrive strRemoteDrive
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Removing Remote Folder " & strRemoteDrive & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
objNetwork.RemoveNetworkDrive strLocalDrive
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Removing Local Folder " & strLocalDrive & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
SendEmail strFrom, StrTo, strSub, strBody, StrSMTP
|
||||
|
||||
End Sub
|
||||
|
||||
' From the book "Windows Server Cookbook" by Robbie Allen
|
||||
' ISBN: 0-596-00633-0
|
||||
|
||||
Sub SendEmail(strFrom, StrTo, strSub, strBody, StrSMTP)
|
||||
set objEmail = CreateObject("CDO.Message")
|
||||
objEmail.From = strFrom
|
||||
objEmail.To = strTo
|
||||
objEmail.Subject = strSub
|
||||
objEmail.Textbody = strBody
|
||||
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
|
||||
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP
|
||||
objEmail.Configuration.Fields.Update
|
||||
objEmail.Send
|
||||
If Err.Number <> 0 Then
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
WScript.Echo "Email sent"
|
||||
End Sub
|
||||
132
WebServer/DatabaseScripts/advwb2_logship.vbs
Normal file
132
WebServer/DatabaseScripts/advwb2_logship.vbs
Normal file
@@ -0,0 +1,132 @@
|
||||
REM $Id: logship.vbs 3443 2008-02-01 15:56:18Z hardya $
|
||||
const archive_dest = "\\advwb1.opcs-online.info\archivelogs"
|
||||
const logship_user = "logship"
|
||||
const logship_pwd = "logship"
|
||||
const archive_source = "\\advwb2.opcs-online.info\archivelogs"
|
||||
const strFrom = "webmip@AdvanticaGroup.com"
|
||||
const strTo = "Andrew.Hardy@AdvanticaGroup.com"
|
||||
const strSub = "MIP: Logship"
|
||||
const strSubError = "MIP: Logship Error"
|
||||
strBody = "Logship Completed Successfully"
|
||||
const strSMTP = "relay01.sleek.net"
|
||||
|
||||
|
||||
CopyArchives archive_source,archive_dest, logship_user, logship_pwd
|
||||
|
||||
Sub CopyArchives(strSource, strDest, strUser, strPwd)
|
||||
Dim strLocalDrive
|
||||
strLocalDrive = "L:"
|
||||
|
||||
Dim strRemoteDrive
|
||||
strRemoteDrive = "R:"
|
||||
|
||||
'error handling
|
||||
On Error Resume Next
|
||||
|
||||
Set objNetwork = CreateObject("WScript.Network")
|
||||
|
||||
objNetwork.MapNetworkDrive strLocalDrive, strSource, false, strUser, strPwd
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Mapping " & strSource & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
objNetwork.MapNetworkDrive strRemoteDrive, strDest, false, strUser, strPwd
|
||||
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Mapping " & strDest & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
set fileSystem = createobject("Scripting.FileSystemObject")
|
||||
|
||||
WScript.Echo "Getting fldrSource"
|
||||
set fldrSource = fileSystem.GetFolder(strLocalDrive)
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Getting Local Folder " & strLocalDrive & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
|
||||
WScript.Echo "Getting fldrDest"
|
||||
set fldrDest = fileSystem.GetFolder(strRemoteDrive)
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Getting Remote Folder " & strRemoteDrive & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
|
||||
WScript.Echo "Looking at directory " & strSource
|
||||
for each file in fldrSource.Files
|
||||
if not filesystem.FileExists(strDest & "\" & file.Name) then
|
||||
WScript.Echo "Copying " & file.Name & " to " & strDest & "\" & file.Name
|
||||
file.Copy (strDest & "\" & file.Name)
|
||||
end if
|
||||
next
|
||||
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error During File Copy:" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
objNetwork.RemoveNetworkDrive strRemoteDrive
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Removing Remote Folder " & strRemoteDrive & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
objNetwork.RemoveNetworkDrive strLocalDrive
|
||||
'handle error
|
||||
If Err.Number <> 0 Then
|
||||
SendEmail strFrom, StrTo, strSubError, "Error Removing Local Folder " & strLocalDrive & ":" & Err.Description, StrSMTP
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
|
||||
SendEmail strFrom, StrTo, strSub, strBody, StrSMTP
|
||||
|
||||
End Sub
|
||||
|
||||
' From the book "Windows Server Cookbook" by Robbie Allen
|
||||
' ISBN: 0-596-00633-0
|
||||
|
||||
Sub SendEmail(strFrom, StrTo, strSub, strBody, StrSMTP)
|
||||
set objEmail = CreateObject("CDO.Message")
|
||||
objEmail.From = strFrom
|
||||
objEmail.To = strTo
|
||||
objEmail.Subject = strSub
|
||||
objEmail.Textbody = strBody
|
||||
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
|
||||
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strSMTP
|
||||
objEmail.Configuration.Fields.Update
|
||||
objEmail.Send
|
||||
If Err.Number <> 0 Then
|
||||
Wscript.Echo "Error number " & Err.Number & " occured: " & Err.Description
|
||||
Wscript.Echo ""
|
||||
Wscript.Quit Err.Number
|
||||
End If
|
||||
WScript.Echo "Email sent"
|
||||
End Sub
|
||||
3
WebServer/DatabaseScripts/applylog.cmd
Normal file
3
WebServer/DatabaseScripts/applylog.cmd
Normal file
@@ -0,0 +1,3 @@
|
||||
REM $Id: applylog.cmd 3443 2008-02-01 15:56:18Z hardya $
|
||||
set ORACLE_SID=webmip
|
||||
sqlplus /nolog @applylog
|
||||
8
WebServer/DatabaseScripts/applylog.sql
Normal file
8
WebServer/DatabaseScripts/applylog.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
REM $Id: applylog.sql 3443 2008-02-01 15:56:18Z hardya $
|
||||
set echo on
|
||||
spool s:\orabackup\webmip\scripts\applylog.log
|
||||
connect sys/fmdidgad as sysdba
|
||||
alter database recover automatic standby database until cancel;
|
||||
alter database recover cancel;
|
||||
spool off;
|
||||
exit
|
||||
4
WebServer/DatabaseScripts/applylog_status.sql
Normal file
4
WebServer/DatabaseScripts/applylog_status.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS'
|
||||
/
|
||||
SELECT FIRST_TIME, FIRST_CHANGE#, NEXT_CHANGE#, SEQUENCE# FROM V$LOG_HISTORY
|
||||
/
|
||||
14
WebServer/DatabaseScripts/archivelog.sql
Normal file
14
WebServer/DatabaseScripts/archivelog.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
REM $Id: archivelog.sql 3441 2008-02-01 11:39:10Z hardya $
|
||||
conn &&user/&&password as sysdba;
|
||||
shutdown immediate;
|
||||
conn &&user/&&password as sysdba;
|
||||
startup mount;
|
||||
alter database force logging;
|
||||
alter system set log_archive_dest_1='location=s:\orabackup\webmip\archivelogs\' scope=both;
|
||||
/*
|
||||
set the time by which archive logs
|
||||
should lag the redo in seconds
|
||||
*/
|
||||
alter system set archive_lag_target=2700;
|
||||
alter database archivelog;
|
||||
alter database open;
|
||||
83
WebServer/DatabaseScripts/hotbackup.sql
Normal file
83
WebServer/DatabaseScripts/hotbackup.sql
Normal file
@@ -0,0 +1,83 @@
|
||||
REM $Id: hotbackup.sql 3457 2008-02-04 15:43:50Z hardya $
|
||||
SET SERVEROUTPUT ON
|
||||
store set set_settings.sql
|
||||
set feedback off pagesize 0 heading off verify off
|
||||
set linesize 100 trimspool on
|
||||
DEFINE backup_dir = 's:\orabackup\webmip\files\'
|
||||
REM Determine the oldest archive log to be backed up
|
||||
archive log list;
|
||||
alter system switch logfile;
|
||||
REM
|
||||
REM produce a SQL script that:
|
||||
REM places each tablespace into 'backup' mode,
|
||||
REM copies the contents of the tablespace to the
|
||||
REM backup directory,
|
||||
REM returns each tablespace from 'backup' mode
|
||||
REM
|
||||
PROMPT *** SPOOLING
|
||||
spool do_backup.sql
|
||||
WITH tsp_df AS (
|
||||
SELECT tsp.tablespace_name
|
||||
,df.file_name
|
||||
,rownum AS current_row
|
||||
,first_value(rownum) over(PARTITION BY tsp.tablespace_name) AS first_row
|
||||
,last_value(rownum) over(PARTITION BY tsp.tablespace_name) AS last_row
|
||||
FROM dba_tablespaces tsp
|
||||
,dba_data_files df
|
||||
WHERE tsp.contents <> 'TEMPORARY'
|
||||
AND tsp.tablespace_name = df.tablespace_name
|
||||
)
|
||||
SELECT cmd
|
||||
FROM (SELECT 'alter tablespace ' || tablespace_name || ' begin backup;' AS cmd
|
||||
,tablespace_name
|
||||
,1 AS seq
|
||||
FROM tsp_df
|
||||
WHERE current_row = first_row
|
||||
UNION
|
||||
SELECT 'host ocopy ' || file_name || ' &&backup_dir' AS cmd
|
||||
,tablespace_name
|
||||
,2 AS seq
|
||||
FROM tsp_df
|
||||
WHERE (current_row = first_row)
|
||||
OR (current_row <> first_row AND current_row <> last_row)
|
||||
OR (current_row = last_row AND last_row <> first_row)
|
||||
UNION
|
||||
SELECT 'alter tablespace ' || tablespace_name || ' end backup;' AS cmd
|
||||
,tablespace_name
|
||||
,3 AS seq
|
||||
FROM tsp_df
|
||||
WHERE current_row = last_row)
|
||||
ORDER BY tablespace_name
|
||||
,seq
|
||||
/
|
||||
spool off;
|
||||
PROMPT *** SPOOLING COMPLETE
|
||||
@set_settings
|
||||
@@do_backup
|
||||
REM
|
||||
REM Create SQL script to add temporary files to temporary tablespaces
|
||||
REM
|
||||
set feedback off pagesize 0 heading off verify off
|
||||
set linesize 100 trimspool on
|
||||
spool create_tempfile$.sql
|
||||
select 'alter tablespace '||ts.name||' add tempfile '''||df.name||''' size '|| df.bytes||' reuse;' from v$tempfile df, v$tablespace ts
|
||||
where ts.ts# = df.ts#
|
||||
/
|
||||
spool off
|
||||
host move create_tempfile$.sql &&backupdir\create_tempfiles.sql
|
||||
@set_settings
|
||||
REM
|
||||
REM create control file for the standby database
|
||||
REM create backup control file for the primary database
|
||||
REM
|
||||
alter database create standby controlfile as 's:\orabackup\webmip\files\standby.ctl';
|
||||
alter database backup controlfile to 's:\orabackup\webmip\files\backup.ctl';
|
||||
REM
|
||||
REM create a database initialization script for
|
||||
REM the standby database
|
||||
REM
|
||||
create pfile='s:\orabackup\webmip\files\initstandby.ora' from spfile;
|
||||
REM
|
||||
REM Determine the current archive log to be backed up
|
||||
archive log list;
|
||||
alter system switch logfile;
|
||||
1
WebServer/DatabaseScripts/oradim_inst.cmd
Normal file
1
WebServer/DatabaseScripts/oradim_inst.cmd
Normal file
@@ -0,0 +1 @@
|
||||
oradim -NEW -SID webmip -STARTMODE manual
|
||||
2
WebServer/DatabaseScripts/oradim_start.cmd
Normal file
2
WebServer/DatabaseScripts/oradim_start.cmd
Normal file
@@ -0,0 +1,2 @@
|
||||
REM $Id: oradim_start.cmd 3441 2008-02-01 11:39:10Z hardya $
|
||||
oradim -STARTUP -SID webmip -STARTTYPE srvc
|
||||
Reference in New Issue
Block a user