ホームページ データベース mysql チュートリアル データベースのリモート完全バックアップのソリューション

データベースのリモート完全バックアップのソリューション

Dec 15, 2016 pm 04:01 PM
データベースのバックアップ

リモート完全データベースバックアップのためのソリューション

--exec BackUPDatabase_MaJiatao 'pubs','\XZ154ABC$','16:50:00.000',1,'XZ154MaJiatao','MaJiatao'/***************************************************説明する:データベースのフル バックアップと増分バックアップ 作成者: Ma Jiatao 修正者: 2014-02-12: 1. ローカル パスとリモート パスを選択するためのバックアップ パスを追加しました。 2. 履歴バックアップ レコードを保存する方法を変更し、バックアップ レコードを保存する必要がなくなりました。ローカルハードディスク 記憶媒体として使用するファイル上のテキストファイル*********************************** ******* *********** /if object_id('BackUPDatabase_MaJiatao') は nulldrop PRoc BackUPDatabase_MaJiatao

GO

alter proc BackUPDatabase_MaJiatao@database_name sysname,--バックアップするデータベースの名前@physical_backup_device_name sysname,--バックアップ ファイルの格納ディレクトリ@all_backup_datetime char(17) )=' 20:00:00.000',--完全なバックアップ時間@IntDistance int=1,--完全なバックアップ時間範囲 (時間)@UserName varchar(100),--リモート サーバーのログイン名@PassWord varchar(100)= ' '--ENCRYPTION を使用したリモート サーバーのログイン パスワード as

/**********************************declare @database_name sysname,--バックアップするデータベースの名前 @physical_backup_device_name sysname ,--backup ファイル格納ディレクトリ @all_backup_datetime char(17)select @database_name='test',@physical_backup_device_name='E:バックアップファイルクエリサーバー',@all_backup_datetime='16:00:00.000'

***** ***** *****************************/

--バックアップ履歴が存在しない場合は作成します (select * from dbo.sysobjects where id = object_id(N'backup_recorder') および OBJECTPROPERTY (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) not null デフォルト 0,file_is_exists char(1) not null デフォルト 0)')elsebeginif not存在(select * from syscolumns where name='file_is_exists' and ID=object_id(N'backup_recorder'))begindrop table backup_recorderexec('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) not null デフォルト 0,file_is_exists char(1) not null デフォルト 0)')endend

declare @backup_set_full sysname,@backup_set sysname, --バックアップ ファイル名 @backup_name sysname

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

declare @physical_backup_device_name_now nvarchar(4000)

debackclare @physical_device_name backn varchar(4000)

nullの場合( @database_name,'')='' または 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_backup_device_name=reverse( substring(@physical_backup_device_name,charindex('',@physical_backup_device_name)+5,260))+'backup'end

-- パスがネットワーク パスであるか、残っている場合はローカル パスであるかを判断します(@physical_backup_device_name, 2)='\' および ltrim( rtrim(@UserName))<>'' および ltrim(rtrim(@Password))<>''beginselect @CommandText='net use '+@physical_backup_device_name+' "' +@Password+'" /user:' + @UserName exec master.. 0 -- ディレクトリが存在しません。作成開始選択 @CommandText='Mkdir '+@physical_backup_device_name+'フル バックアップ'exec @Return_Int=master..xp_cmdshell @CommandText , no_outputend

select @CommandText='dir '+@physical_backup_device_name+'差分バックアップ' exec @Return_Int=master..xp_cmdshell @CommandText, no_outputif @Return_Int<>0 --ディレクトリが存在しません。作成開始elect @CommandText=' Mkdir '+@physical_backup_device_name+'差分バックアップ'exec @Return_Int=master..xp_cmdshell @CommandText, no_outputend

select @physical_backup_device_name_now=@database_name+'_'+ltrim(rtrim(REPLACE(REPLACE(REPLACE(REPLACE(convert(char(23) ),getdate(),21),'-',''),':' ,''),'.',''),' ','')))+'.bak'

if object_id ('tempdb..#backup_recorder') は null ではありませんdrop table #backup_recorderCREATE 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) not null デフォルト 0、 file_is_exists char(1) not null デフォルト 0)

--完全バックアップが存在するかどうかを確認します select @CommandText='dir '+@physical_backup_device_name+'Full Backup*.bak'exec @Return_Int=master..xp_cmdshell @CommandText, no_output

if @Return_Int<>0 --いいえ完全バックアップ ファイルが存在します。完全バックアップを実行します。 beginselect @backup_set_full='full backup'+@database_nameselect @physical_backup_device_namebackup=@physical_backup_device_name+'full backup'+@physical_backup_device_name_now

--完全バックアップ、メディア ヘッダー BACKUP DATABASE @database_name を DISK に書き換えます=@ Physical_backup_device_namebackup WITH FORMAT ,NAME = @backup_set_fullif @@error=0--バックアップは成功しました。その日の完全バックアップが開始される前にすべての履歴バックアップ ファイルを削除します--backup_recorder にバックアップ ログを書き込みます(backup_datetime,backup_name,backup_path,is_all_backup, file_is_exists)values(getdate(),@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)selectbackup_datetime,backup_name,backup_path,is_all_backup,file_is_exists frombackup_recorderwhere バックアップ名< &g t;@physical_backup_device_name_now および is_all_backup='1' および 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,':','') ),'.','') および REPLACE(REPLACE(substring(convert(char(23),dateadd(hh,@IntDistance,@all_backup_datetime),21),12,12),':',''), '.','')--続行 完全バックアップを開始しますelect @backup_set_full='完全バックアップ'+@database_nameselect @physical_backup_device_namebackup=@physical_backup_device_name+'完全バックアップ'+@physical_backup_device_name_now--完全バックアップ、メディア ヘッダーを書き換えます BACKUP DATABASE @database_name を DISK に書き込みます=@physical_backup_device_namebackup WITH FORMAT ,NAME = @backup_set_fullif @@error=0--バックアップ成功開始--backup_recorder(backup_datetime,backup_name,backup_path,is_all_backup,file_is_exists)values(getdate(),@physical_backup_device_name_now,@physical_backup_device_namebackup にバックアップ ログを書き込みます,'1','1')- -履歴バックアップ ファイルを検索#backup_recorder(backup_datetime,backup_name,backup_path,is_all_backup,file_is_exists)selectbackup_recorderwherebackup_name<>@physical_backup_device_name_now および_バックアップ=' 1' および file_is_exists=' 1'endendelse -- 現在のバックアップ時間が指定された完全バックアップ時間未満であるため、差分バックアップを実行します

select @backup_set_full='増分バックアップ'+@database_nameselect @physical_backup_device_namebackup=@physical_backup_device_name+'差分バックアップ' +@physical_backup_device_name_now--差分バックアップ、メディアを追加します BACKUP DATABASE @database_name to DISK=@physical_backup_device_namebackup WITH NOINIT, DIFFERENTIAL,NAME = @backup_setif @@error=0--バックアップ成功の開始--backup_recorder(backup_datetime,backup_name) にバックアップ ログを書き込みます,backup_path,is_all_backup,file_is_exists)values(getdate( ),@physical_backup_device_name_now,@physical_backup_device_namebackup,'0','1') -- #backup_recorder に挿入される履歴バックアップ ファイルを検索します(backup_datetime,backup_name,backup_path,is_all_backup,file_is_exists)selectbackup_datetime ,backup_name,backup_path,is_all_backup,file_is_existsfrombackup_recorderwherebackup_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 Del FilePathNameFETCH NEXT FROM DelFilePathName into @DelFilePathNameWHILE @@ fetch_status = 0beginifが存在する(backup_recorderからbackup_path = @delfilepathname&lt;&gt; @physical_backup_device_name_now) = 0 beginupdate Backup_recorder set file_is_exists=0 where backup_path=@DelFilePathNameendendFETCH NEXT FROM DelFilePathName into @DelFilePathNameendCLOSE DelFilePathNameDEALLOCATE DelFilePathName

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

if left(@physical_backup_デバイス名,2)=' \' および ltrim(rtrim(@UserName))<>'' および ltrim(rtrim(@Password))<>''@CommandText='ネット共有 '+@physical_backup_device_name+' /delete'exec マスターの選択を開始します。 .xp_cmdshell @CommandText,no_outputend

上記はデータベース リモート完全バックアップのソリューションです。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP および PDO: データベースのバックアップおよび復元操作を実行する方法 PHP および PDO: データベースのバックアップおよび復元操作を実行する方法 Jul 29, 2023 pm 06:54 PM

PHP と PDO: データベースのバックアップと復元操作を実行する方法 Web アプリケーションを開発する場合、データベースのバックアップと復元は非常に重要なタスクです。人気のあるサーバー側スクリプト言語として、PHP は豊富なライブラリと拡張機能を提供しており、その中の PDO (PHP Data Objects) は強力なデータベース アクセス抽象化レイヤーです。この記事では、PHP と PDO を使用してデータベースのバックアップと復元の操作を実行する方法を紹介します。ステップ 1: データベースに接続する 実際の操作の前に、データベースへの接続を確立する必要があります。 PDOペアを使用する

MySQL データベースのバックアップとリカバリのパフォーマンスの最適化に関するプロジェクトの経験の分析 MySQL データベースのバックアップとリカバリのパフォーマンスの最適化に関するプロジェクトの経験の分析 Nov 02, 2023 am 08:53 AM

現在のインターネット時代では、データの重要性は自明のことです。インターネット アプリケーションの中核コンポーネントの 1 つとして、データベースのバックアップとリカバリ作業は特に重要です。しかし、データ量が増加し続け、ビジネス要件がますます複雑になるにつれて、従来のデータベースのバックアップおよびリカバリ ソリューションでは、最新のアプリケーションの高可用性と高パフォーマンスの要件を満たすことができなくなりました。したがって、MySQL データベースのバックアップおよびリカバリのパフォーマンスの最適化は、解決する必要がある緊急の問題となっています。実際に、私たちは MySQL データを効果的に改善するために一連のプロジェクトの経験を採用しました。

ThinkPHP6 を使用してデータベースのバックアップとリカバリを実装する方法 ThinkPHP6 を使用してデータベースのバックアップとリカバリを実装する方法 Jun 20, 2023 pm 07:25 PM

業務システムの開発において、データベースは非常に重要な部分となります。したがって、データベースのバックアップと復元は非常に必要な操作です。この記事では、ThinkPHP6 フレームワークの例を組み合わせて、ThinkPHP6 を使用してデータベースのバックアップとリカバリを実装する方法を紹介します。 1. データベースのバックアップ 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 などのサードパーティ パッケージを使用できます。具体的な手順は次のとおりです。 データベースに接続します。バックアップデータを保存するファイルを作成します。ダンプ機能またはエクスポーターを使用して、データベースをファイルにバックアップします。

thinkorm を使用してデータベースのバックアップと復元を実装する方法 thinkorm を使用してデータベースのバックアップと復元を実装する方法 Jul 28, 2023 pm 02:05 PM

タイトル: ThinkORM を使用してデータベースのバックアップと復元を実現する はじめに: 開発プロセスにおいて、データベースのバックアップと復元は非常に重要なタスクです。この記事では、ThinkORM フレームワークを使用してデータベースのバックアップと復元を実装する方法と、対応するコード例を紹介します。 1. 背景の紹介 開発プロセスでは、通常、データの保存と管理にデータベースを使用します。データベースのバックアップと復元の原則は、データベースの問題やデータ損失が発生した場合にデータを迅速に復元できるように、データベースのバックアップを定期的に実行することです。の助けを借りて

PHP および Memcached データベースのバックアップとリカバリ PHP および Memcached データベースのバックアップとリカバリ May 15, 2023 pm 09:12 PM

インターネットの急速な発展に伴い、大規模な MySQL データベースのバックアップとリカバリは、大手企業や Web サイトにとって不可欠なスキルの 1 つになりました。 Memcached の普及に伴い、Memcached のバックアップと復元の方法も重要な問題となっています。 Web 開発の主要な言語の 1 つである PHP には、MySQL と Memcached のバックアップとリカバリを処理する上で独自の利点とスキルがあります。この記事では、MySQL と Memcached のバックアップとリカバリを PHP で処理する実装方法を詳しく紹介します。

Pagoda パネルのデータベースのバックアップ、最適化、リカバリ Pagoda パネルのデータベースのバックアップ、最適化、リカバリ Jun 21, 2023 am 09:45 AM

今日のオンラインの世界では、Web サイトはあらゆる企業、組織、個人にとってブランド、サービス、製品などを表示するための重要な媒体となっています。Web サイトの正常な動作とセキュリティを確保するには、継続的にバックアップと最適化を行う必要があります。データベースとリカバリ。シンプルな操作、豊富な機能、美しいインターフェースを備えたサーバー管理ソフトウェアである Pagoda Panel は、データベース管理にも非常に優れており、バックアップ、最適化、回復などの重要な機能を備えています。この記事では、Pagoda パネルのデータベースのバックアップ、最適化、回復機能と、それに関連する懸念事項に焦点を当てます。

データベースのバックアップとリカバリの実践: PHP プログラミングでの応用 データベースのバックアップとリカバリの実践: PHP プログラミングでの応用 Jun 22, 2023 pm 07:10 PM

インターネットの発展に伴い、データベースのバックアップとリカバリは Web サイトの運用および開発プロセスの非常に重要な部分になりました。データベースはウェブサイトの中核であり、多くの重要な情報が含まれており、データが消失または破損すると、ウェブサイトの運営やユーザーエクスペリエンスに大きな影響を与えます。したがって、Web サイトの運営者や開発者にとって、データベースのバックアップとリカバリの重要性は自明のことです。この記事では、開発者が参照できるように、PHP プログラミングでのデータベースのバックアップとリカバリの操作に焦点を当てます。 1. 番号

See all articles