首頁 資料庫 mysql教程 資料庫遠端全備份的解決方案

資料庫遠端全備份的解決方案

Dec 15, 2016 pm 04:01 PM
資料庫備份

資料庫遠端全備份的解決方案

--exec BackUPDatabase_MaJiatao 'pubs','\XZ154ABC$','16:50:00.000',1,'XZ154MaJiatao','MaJiatao'/***************************************************描述:資料庫全備份和增量備份編寫:馬加濤修改:馬加濤:2014-02-12:1.加入了備份路徑可以選擇本機和遠端路徑2.修正了保存歷史備份記錄的方式,不在需要本機硬碟上的文字檔案來做保存媒體****************************************** ********#*******************************declare @database_name sysname,--要備份的資料庫名稱@physical_backup_device_name sysname,--備份檔案存放目錄@all_backup_datetime char(17)select @database_name='test',@physical_backup_device_name='E:備份檔案查詢伺服器',@all_backup_datetime='16:00:00.000'

********* *****************************#&M*&M /if object_id('BackUPDatabase_MaJiatao') is not nulldrop PRoc BackUPDatabase_MaJiatao

GO

alter proc BackUPDatabase_MaJiatao@database_name sysname,back_name, 選項char(17)=' 20:00:00.000',--全備份的時間@IntDistance int=1,--全備份的時間範圍(小時)@UserName varchar(100),--遠端伺服器登入名稱@PassWord varchar(100)=' '--遠端伺服器登入密碼with ENCRYPTION as

/**&*/

--建立備份歷史記錄if not exists (select * from dbo.sysobjects where id = object_id(N'backup_recorder'PRO) and OBJECTPERPER'PROTY (id, N'IsUserTable') = 1) exec('CREATE TABLE backup_recorder (backup_datetime datetime not null,backup_name varchar (500) PRIMARY KEY,backup_path varchar (500) NOT NULL ,is_all_backup char(1. 。 backup_name varchar (500) PRIMARY KEY,backup_path varchar (500) NOT NULL ,is_all_backup char(1) not null default 0,file_is_exists char(1) not null default 0)')))'))dull --備份檔案名稱@backup_name sysname

declare @Return_Int intdeclare @CommandText nvarchar(4000)declare @DelFilePathName nvarchar(4000)

declare @physical_backup_device_name_nowcfforenf; char(4000)

if isnull( @database_name,'')='' or rtrim(@database_name)=''--資料庫名稱為空set @database_name=db_name()--備份目前資料庫

if isnull(@physical_backup_device_name,'')=''或 rtrim(@physical_backup_device_name)=''--備份目錄為空,使用系統預設目錄beginSELECT @physical_backup_device_name=ltrim(rtrim(reverse(filename))) FROM master.dbo.sysdatabases where name=@database_nameset_physical_back substring(@physical_backup_device_name,charindex('',@physical_backup_device_name)+5,260))+'backup'end

--判斷路徑是網路路徑還是本機路徑if left(@physical_backup_device_name,2)='\' rtrim(@UserName))'' and ltrim(rtrim(@Password))''beginselect @CommandText='net use '+@physical_backup_device_name+' "'+@Password+'" /user:'+@UserNameexec master ..xp_cmdshell @CommandText,no_outputend

--確定目錄是否存在select @CommandText='dir '+@physical_backup_device_name+'全備份'exec @Return_Int=master..xp_cmdshell @CommandText, no_outputif @Return_Int0 --目錄不存在,建立beginselect @CommandText='Mkdir '+@physical_backup_device_name+'全備份'exec @Return_Int=master..xp_cmdshell @CommandText, no_outputend

select @CommandText='dir '+physical_backup_Intsical_backup_Int_ ..xp_cmdshell @CommandText, no_outputif @Return_Int0 --目錄不存在,建立beginselect @CommandText='Mkdir '+@physical_backup_device_name+'差異備份'exec @Return_Int=master..xp_cmdup @phy, no_nows_phy, no_ =@database_name+'_'+ltrim(rtrim(REPLACE(REPLACE(REPLACE(REPLACE(convert(char(23),getdate(),21),'-',''),':',''),' .',''),' ','')))+'.bak'

if object_id('tempdb..#backup_recorder') is not nulldrop table #backup_recorder,CREATE TABLE #backup_recorder (backup_datetime date date not null,CREATE TABLE #backup_recorder (backup_datetime date dates not (500) PRIMARY KEY,backup_path varchar (500) NOT NULL ,is_all_backup char(1) not null default 0,file_is_exists char(1) not null default 0)

--檢查是否有全備份存在select @CommandText='dir '+@physical_backup_device_name+'全備份*.bak'exec @Return_Int=master..xp_cmdshell @CommandText, no_output

if @Return_Int

if @Return_Int0 --備份檔案存在,進行全備份beginselect @backup_set_full='全備份'+@database_nameselect @physical_backup_device_namebackup=@physical_backup_device_name+'全備份'+@physical_backup_device_name_nowbid

33333333*333333*333*33333*3*3*33. _namebackup WITH FORMAT ,NAME = @backup_set_fullif @@error=0--備份成功,刪除當天全備份之前的所有歷史備份檔案begin--寫備份日誌insert into backup_recorder(backup_datetime,backup_name,backup_path,is_all_backup,file_is_exists)valueues(get (),@physical_backup_device_name_now,@physical_backup_device_namebackup,'1','1')insert into #backup_recorder(backup_datetime,backup_name,backup_path,is_all_backup,file_is_exists). recorderwhere backup_name@physical_backup_device_name_now and is_all_backup ='1' and file_is_exists='1'endendelsebegin--有全備份,驗證全備份是否為上一天得指定時間之後--select @all_backup_datetime=REPLACE(REPLACE(@all_backup_datetime,':',''),' .','')if right(left(right(@physical_backup_device_name_now,21),17),9) between REPLACE(REPLACE(@all_backup_datetime,':',''),'.','') and REPLACE( REPLACE(substring(convert(char(23),dateadd(hh,@IntDistance,@all_backup_datetime),21),12,12),':',''),'.','')--進行全備份beginselect @backup_set_full='全備份'+@database_nameselect @physical_backup_device_namebackup=@physical_backup_device_name+'全備份'+@physical_backup_device_name_now--全備備份,重寫媒體頭BACK DATAB_back_backup_device_name_now--全備份,重寫媒體頭BACK backup_set_fullif @@ error=0--備份成功begin--寫備援日誌insert into backup_recorder(backup_datetime,backup_name,backup_path,is_all_backup,file_is_exists))values(getdate(),@physical_backup_device_name_now,@physical_backup__device_backup_backup_device_name_now,@physical_backup__device_0,1000,41'歷史備份檔insert into #backup_recorder(backup_datetime,backup_name,backup_path,is_all_backup,file_is_exists)select backup_datetime,backup_name,backup_path,is_all_backup,file_is_existfrom backffre; ' and file_is_exists='1'endendelse--當前備份時間小於指定的全備份時間,進行差異備份begin

select @backup_set_full='增量備份'+@database_nameselect @physical_backup_device_namebackup=@physical_backup_device_name+'差異備份'+Qphysical_namebackup=@physical_backup_device_name+'差異備份'+Qphysical_backup_device_name_back to DISK=@physical_backup_device_namebackup WITH NOINIT , DIFFERENTIAL,NAME = @backup_setif @@error=0--備份成功begin--寫備份日誌insert into backup_recorder(backup_datetime,backup_name,back0up_exes_back_backl ( physical_backup_device_name_now,@physical_backup_device_namebackup,'0','1')--查找歷史備份檔案insert into #backup_recorder(backup_datetime,backup_name,backup_path,is_all_backup,file_is_exists), back_exists. up_recorderwhere backup_name@physical_backup_device_name_now and is_all_backup='0' and file_is_exists='1'endendend

DECLARE DelFilePathName CURSOR FORWARD_ONLY FOR select backup_path From #backup_recorder OPEN DelFilePathNameFETCH NEXT FROMgin Delupleconc​​id -xexTCH_Fidbid 4000 月_recorder where backup_path=@DelFilePathName and 。 into @DelFilePathNameendCLOSE DelFilePathNameDEALLOCATE DelFilePathName

if object_id('tempdb..#backup_recorder') is not nulldrop table #backup_recorder

if left(@physical_backup_device_name,2)=''rim and User1(Frim)( (rtrim(@Password))''beginselect @CommandText='net share '+@physical_backup_device_name+' /delete'exec master..xp_cmdshell @CommandText,no_outputend

以上就是資料庫遠端全備份的一種解決方案的內容,更多相關文章請關注PHP中文網(www.php.cn)!


🎜

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和PDO: 如何執行資料庫備份和還原作業 PHP和PDO: 如何執行資料庫備份和還原作業 Jul 29, 2023 pm 06:54 PM

PHP和PDO:如何執行資料庫備份和還原作業在開發Web應用程式時,資料庫的備份和還原是非常重要的任務。 PHP作為一門流行的伺服器端腳本語言,提供了豐富的函式庫和擴展,其中PDO(PHP資料物件)是一款強大的資料庫存取抽象層。本文將介紹如何使用PHP和PDO來執行資料庫備份和還原作業。第一步:連接資料庫在實際操作之前,我們需要建立與資料庫的連線。使用PDO對

MySQL資料庫備份與復原效能最佳化的專案經驗解析 MySQL資料庫備份與復原效能最佳化的專案經驗解析 Nov 02, 2023 am 08:53 AM

在當前網路時代,數據的重要性不言而喻。作為網路應用的核心組成部分之一,資料庫的備份與復原工作顯得格外重要。然而,隨著資料量的不斷增大和業務需求的日益複雜,傳統的資料庫備份與復原方案已無法滿足現代應用的高可用和高效能要求。因此,對MySQL資料庫備份與復原效能進行最佳化成為亟需解決的問題。在實務過程中,我們採取了一系列的專案經驗,有效提升了MySQL數據

如何使用ThinkPHP6實作資料庫備份與恢復 如何使用ThinkPHP6實作資料庫備份與恢復 Jun 20, 2023 pm 07:25 PM

在開發業務系統過程中,資料庫是非常重要的一環。因此,對資料庫進行備份和還原是非常必要的操作。本文將結合ThinkPHP6框架實例,介紹如何使用ThinkPHP6實作資料庫備份與復原。一、資料庫備份1.1環境準備在進行資料庫備份之前,需要確認以下幾點:1、需要設定好mysql資料庫的bin目錄位址,並把其路徑加入系統Path變數中;2、需要安裝好mysqld

如何在 Golang 中備份資料庫? 如何在 Golang 中備份資料庫? Jun 01, 2024 am 11:56 AM

在Golang中備份資料庫對於保護資料至關重要。可以使用標準函式庫中的database/sql包,或第三方套件如github.com/go-sql-driver/mysql。具體步驟包括:連接到資料庫。建立一個檔案來儲存備份資料。使用Dump函數或Exporter將資料庫備份到檔案中。

如何利用thinkorm實現資料庫備份和還原 如何利用thinkorm實現資料庫備份和還原 Jul 28, 2023 pm 02:05 PM

標題:利用ThinkORM實作資料庫備份和還原導語:在開發過程中,資料庫備份和還原是非常重要的任務。本文將介紹如何利用ThinkORM框架實作資料庫備份和還原的方法,並提供對應的程式碼範例。一、背景介紹在開發過程中,我們通常會使用資料庫來儲存和管理資料。而資料庫備份和還原則是對資料庫進行定期備份,以便在資料庫出現問題或資料遺失的情況下能夠快速恢復資料。借助

PHP與Memcached資料庫備份與恢復 PHP與Memcached資料庫備份與恢復 May 15, 2023 pm 09:12 PM

隨著網路的快速發展,大規模MySQL資料庫備份和復原成為各大企業和網站必備的技能之一。而隨著Memcached的廣泛應用,如何備份和還原Memcached也成為了一個重要的問題。 PHP作為Web開發的主力語言之一,在處理備份和復原MySQL和Memcached上擁有獨特的優勢和技巧。本文將詳細介紹PHP處理MySQL與Memcached備份與復原的實作方法

寶塔面板的資料庫備份、最佳化和恢復 寶塔面板的資料庫備份、最佳化和恢復 Jun 21, 2023 am 09:45 AM

如今在網路的世界中,網站已經成為了每個企業、組織或個人展示自己品牌、服務、產品等的重要載體,為了確保網站的正常運作和安全性,需要我們不斷地進行資料庫的備份、優化和恢復。而寶塔面板作為一款操作簡單、功能豐富、介面美觀的伺服器管理軟體,在資料庫管理方面也是相當優秀的,具有備份、最佳化和復原等重要功能。本文將會重點介紹寶塔面板的資料庫備份、最佳化和復原功能以及相關注

資料庫備份及復原實務:PHP程式設計中的運用 資料庫備份及復原實務:PHP程式設計中的運用 Jun 22, 2023 pm 07:10 PM

隨著網路的發展,資料庫備份和復原成為了網站運作和開發過程中十分重要的組成部分。資料庫是網站的核心,包含了許多重要的信息,如果一旦發生資料遺失或資料損壞,那麼將會對網站的運作和使用者的體驗產生很大的影響。因此,對於網站的維運人員和開發人員來說,資料庫備份和復原的重要性不言而喻。本文將著重介紹在PHP程式中的資料庫備份與復原操作,供各位開發人員參考使用。一、數

See all articles