加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Windows平台下采用PowerShell语言重写Oracle数据库exp全备脚本,

发布时间:2020-12-15 07:10:00 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 # Author: Edward.Zhou -- [email?protected]# Purpose: Windows平台下采用PowerShell使用exp自动备份oracle并上传备份到ftp,并根据日期自动保留所需

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

# Author:  Edward.Zhou -- <[email?protected]>
# Purpose: Windows平台下采用PowerShell使用exp自动备份oracle并上传备份到ftp,并根据日期自动保留所需备份
# Created: 2015/8/8

$env:ORACLE_SID="orcl"
$env:NLS_LANG="AMERICAN_AMERICA.AL32UTF8"

$NOWDATE=Get-Date -UFormat %Y_%m_%d
$NOWTIME=Get-Date -UFormat %Y%m%d%H%M%S
$OLDDATE=((Get-Date).AddDays(-1)).ToString('yyyy_MM_dd')
$FTPOLDDATE=((Get-Date).AddDays(-7)).ToString('yyyy_MM_dd')

#建立备份目录基本环境
$BACKUPDIR="d:bakdmp"

if ((Test-Path -Path $BACKUPDIR) -eq $false) {
	New-Item -Type directory -Path $BACKUPDIR
}
if ((Test-Path -Path $BACKUPDIR$NOWDATE) -eq $false) {
	New-Item -Type directory -Path $BACKUPDIR$NOWDATE
}
if ((Test-Path -Path $BACKUPDIR$OLDDATE) -eq $true) {
	Remove-Item -Recurse -Force -Path $BACKUPDIR$OLDDATE
}

#exp备份
$USERNAME="system"
$PASSWORD="system"

exp $USERNAME/$PASSWORD file=$BACKUPDIR$NOWDATE$env:COMPUTERNAME-$env:ORACLE_SID-fullbackup_$NOWTIME.dmp log=$BACKUPDIR$NOWDATE$env:COMPUTERNAME-$env:ORACLE_SID-fullbackup_$NOWTIME.log full=y direct=y consistent=y buffer=102400

#上传备份至FTP方法一
Import-Module PSFTP
$FTP_HOST="1.1.1.1"
$FTP_USERNAME="backup"
$FTP_PASSWORD=ConvertTo-SecureString "backup" -AsPlainText -Force
$Credentials=New-Object System.Management.Automation.PSCredential($FTP_USERNAME,$FTP_PASSWORD)
Set-FTPConnection -Credentials $Credentials -Server ftp://$FTP_HOST -Session oradmpSession -UsePassive -UseBinary -KeepAlive -ignoreCert
$Session=Get-FTPConnection -Session oradmpSession

if ($Session -eq $null) {
	Set-FTPConnection -Credentials $Credentials -Server ftp://$FTP_HOST -Session oradmpSession -UsePassive -UseBinary -KeepAlive -ignoreCert
}
if ((Get-FTPChildItem -Session $Session -Path / -ErrorAction SilentlyContinue -Filter oradmp) -eq $null) {
    New-FTPItem -Session $Session -Path / -Name "oradmp"
}
if ((Get-FTPChildItem -Session $Session -Path /oradmp -ErrorAction SilentlyContinue -Filter $env:COMPUTERNAME) -eq $null) {
    New-FTPItem -Session $Session -Path /oradmp -Name $env:COMPUTERNAME
}
if ((Get-FTPChildItem -Session $Session -Path /oradmp/$env:COMPUTERNAME -ErrorAction SilentlyContinue -Filter $NOWDATE) -eq $null) {
    New-FTPItem -Session $Session -Path /oradmp/$env:COMPUTERNAME -Name $NOWDATE
}
foreach($Filename in (Get-ChildItem -Path $BACKUPDIR$NOWDATE -Recurse))
    {
        Add-FTPItem -Session $Session -Overwrite -BufferSize 102400 -Path /oradmp/$env:COMPUTERNAME/$NOWDATE -LocalPath $BACKUPDIR$NOWDATE$Filename
    }
if ((Get-FTPChildItem -Session $Session -Path /oradmp/$env:COMPUTERNAME -ErrorAction SilentlyContinue -Filter $FTPOLDDATE) -ne $null) {
    Remove-FTPItem -Path /oradmp/$Env:COMPUTERNAME/$FTPOLDDATE -Session $Session -Recurse
}

#上传备份至FTP方法二
#$FTP_HOST="1.1.1.1"
#$FTP_USERNAME="backup"
#$FTP_PASSWORD="backup"
#
#Set-Location -Path $BACKUPDIR
#
#Write-Output "open $FTP_HOST" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "user $FTP_USERNAME $FTP_PASSWORD" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "bin" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "mkdir oradmp" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "cd oradmp" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "mkdir $Env:COMPUTERNAME" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "cd $Env:COMPUTERNAME" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "mkdir $NOWDATE" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "cd $NOWDATE" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "lcd $NOWDATE" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg 
#Write-Output "mput *" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg
#Write-Output "cd ..$FTPOLDDATE" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg
#Write-Output "mdelete *" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg
#Write-Output "cd .." | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg
#Write-Output "rmdir $FTPOLDDATE" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg
#Write-Output "bye" | Out-File -Append -Force -Encoding Default -FilePath $BACKUPDIRftp.cfg
#ftp -i -n -v -s:$BACKUPDIRftp.cfg
#Remove-Item -Force -Path $BACKUPDIRftp.cfg

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读