{"id":22725662,"url":"https://github.com/maremare/dbbackuprestore","last_synced_at":"2025-04-13T20:46:13.851Z","repository":{"id":59269266,"uuid":"534930399","full_name":"MareMare/DbBackupRestore","owner":"MareMare","description":"Tool to perform a full backup of a SQL Server database and restore it to a new location. SQL Server データベースの完全バックアップ、および新しい場所への復元を行うツールです。","archived":false,"fork":false,"pushed_at":"2025-04-08T19:27:03.000Z","size":88,"stargazers_count":2,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-13T20:46:04.572Z","etag":null,"topics":["csharp","net6","net60","sqlserver","tool"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MareMare.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-09-10T07:53:15.000Z","updated_at":"2025-03-14T11:04:09.000Z","dependencies_parsed_at":"2023-11-23T13:46:13.398Z","dependency_job_id":"65f31bce-98d0-4c4a-851d-1c8bbfc3a281","html_url":"https://github.com/MareMare/DbBackupRestore","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MareMare%2FDbBackupRestore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MareMare%2FDbBackupRestore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MareMare%2FDbBackupRestore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MareMare%2FDbBackupRestore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MareMare","download_url":"https://codeload.github.com/MareMare/DbBackupRestore/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248782275,"owners_count":21160716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","net6","net60","sqlserver","tool"],"created_at":"2024-12-10T16:13:31.776Z","updated_at":"2025-04-13T20:46:13.825Z","avatar_url":"https://github.com/MareMare.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DbBackupRestore\n\nSQL Server データベースの完全バックアップ、および新しい場所への復元を行うツールです。\n\n## データベースの完全バックアップ\n\n[構成ファイル](#構成ファイル) に定義された各データベースの完全バックアップをバックアップファイルとして作成します。\n\n* 実行例\n    ```ps1\n    .\\BackupSqlDatabase.exe\n    ```\n* 実行されるSQL例\n  ```sql\n  BACKUP DATABASE @databaseName\n    TO DISK = @backupFilePath WITH NOFORMAT\n  , NAME = @description\n  , INIT\n  , SKIP\n  , NOREWIND\n  , NOUNLOAD\n  , STATS = 10;\n  ```\n\n## データベースの新しい場所への復元\n\n[構成ファイル](#構成ファイル) に定義された各データベースをバックアップファイルより定義された場所へ復元します。\n\n* 実行例\n    ```ps1\n    .\\RestoreSqlDatabase.exe\n    ```\n* 実行されるSQL例\n  ```sql\n  RESTORE FILELISTONLY FROM DISK = @backupFilePath;\n\n  ALTER DATABASE @databaseName SET OFFLINE WITH ROLLBACK IMMEDIATE;\n\n  RESTORE DATABASE @databaseName\n    FROM DISK = @backupFilePath WITH REPLACE\n  , NOUNLOAD\n  , STATS = 5\n  , MOVE N'{logicalName1}' TO N'{moveToFilePath1}'\n  , MOVE N'{logicalName2}' TO N'{moveToFilePath2}';\n\n  ALTER DATABASE @databaseName SET ONLINE;\n  ```\n\n## バックアップ先と復元先フォルダのアクセス権について\nバックアップ先と復元先フォルダには SQL Server に対してアクセス許可を与える必要があります。\n\n両ツールを実行するとそれぞれ対象となるフォルダ対して `NT Service\\MSSQL$インスタンス名` にフルコントロールのアクセス権を付与します。\n\n[構成ファイル](#構成ファイル) の 'SqlServerAccount' 設定値が `MSSQL$SQLEXPRESS` であれば `NT Service\\MSSQL$SQLEXPRESS` にフルコントロールを付与します。\n\n\n## 構成ファイル\n\nデータベースの完全バックアップ、およびおよび新しい場所への復元の両ツールで同一の構成ファイルを使用します。\n\n```json\n// appsettings.json\n{\n  // ...\n  \"SqlDatabaseOptions\": {\n    \"ConnectionString\": \"Data Source=localhost;Integrated Security=True\",\n    \"SqlServerAccount\": \"MSSQL$SQLEXPRESS\",\n    \"BackupDirectory\": \"C:\\\\DB\\\\BACKUP\",\n    \"RestoreDirectory\": \"C:\\\\DB\\\\RESTORE\",\n    \"ArchiveDirectory\": \"\\\\\\\\fileserver\\\\share\\\\backup\",\n    \"CommandTimeoutSeconds\": 60,\n    \"Databases\": [\n      { \"Name\": \"DB1\" },\n      { \"Name\": \"DB2\" },\n      { \"Name\": \"DB3\" }\n    ]\n  },\n  // ...\n}\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eappsettings.json の完全な例:\u003c/summary\u003e\n\u003cdiv\u003e\n\n```json\n{\n  \"SqlDatabaseOptions\": {\n    \"ConnectionString\": \"Data Source=localhost;Integrated Security=True\",\n    \"SqlServerAccount\": \"MSSQL$SQLEXPRESS\",\n    \"BackupDirectory\": \"C:\\\\DB\\\\BACKUP\",\n    \"RestoreDirectory\": \"C:\\\\DB\\\\RESTORE\",\n    \"ArchiveDirectory\": \"\\\\\\\\fileserver\\\\share\\\\backup\",\n    \"CommandTimeoutSeconds\": 60,\n    \"Databases\": [\n      { \"Name\": \"DB1\" },\n      { \"Name\": \"DB2\" },\n      { \"Name\": \"DB3\" }\n    ]\n  },\n  \"Logging\": {\n    \"LogLevel\": {\n      \"Default\": \"Information\",\n      \"Microsoft\": \"Warning\",\n      \"Microsoft.Hosting.Lifetime\": \"Information\"\n    }\n  }\n}\n```\n\n\u003c/div\u003e\n\u003c/details\u003e\n\n|要素名|説明|設定例|\n|--|--|--|\n|ConnectionString|接続文字列|`Data Source=localhost;Integrated Security=True`|\n|SqlServerAccount|SQL Server サービスアカウント|`MSSQL$SQLEXPRESS`|\n|BackupDirectory|`*.bak` の格納先フォルダ|`C:\\\\DB\\\\BACKUP`\u003cbr\u003eローカルフォルダのみ|\n|RestoreDirectory|`*.bak` の復元先フォルダ|`C:\\\\DB\\\\RESTORE`\u003cbr\u003eローカルフォルダのみ\u003cbr\u003e要アクセス権|\n|ArchiveDirectory|`*.zip` の格納先フォルダ|`\\\\\\\\fileserver\\\\share\\\\backup`|\n|CommandTimeoutSeconds|コマンドタイムアウト秒|`60`\u003cbr\u003e既定値は`60`秒|\n|Databases|データベース設定の配列|\n|Databases:Name|データベース名|`DB1`|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaremare%2Fdbbackuprestore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaremare%2Fdbbackuprestore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaremare%2Fdbbackuprestore/lists"}