https://github.com/msalali/sql-server-advanced-backup
Advanced Backup DataBase Using PowerShell Script
https://github.com/msalali/sql-server-advanced-backup
backup database database-management dba logfile management powershell script sql sql-server tools utility
Last synced: 7 months ago
JSON representation
Advanced Backup DataBase Using PowerShell Script
- Host: GitHub
- URL: https://github.com/msalali/sql-server-advanced-backup
- Owner: Msalali
- License: other
- Created: 2025-06-01T11:17:14.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-06-23T21:13:52.000Z (7 months ago)
- Last Synced: 2025-06-26T14:05:09.360Z (7 months ago)
- Topics: backup, database, database-management, dba, logfile, management, powershell, script, sql, sql-server, tools, utility
- Language: PowerShell
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: ReadME.MD
Awesome Lists containing this project
README
# SQL Server Backup & LogFile Script
PowerShell script to **backup a SQL Server database**, generate a **LogFile of database size and objects**, verify the backup, and export a **log file** with detailed information.
## 📋 Features
- Connects to SQL Server using **Windows Authentication** or **SQL Server Login**.
- Executes the stored procedure `ReportBackup` to collect database object sizes.
- Creates a `.bak` backup file of the specified database.
- Verifies backup integrity using `RESTORE VERIFYONLY`.
- Generates a log file (`.txt`) containing:
- SQL Server version, edition, and level
- Object size LogFile (tables, indexes, total size, etc.)
- Backup status, size, and verification result
- Automatically installs the `SqlServer` PowerShell module if it's not already available.
---
## 🛠️ How to Use
### 1. Open PowerShell as Administrator
(Optional but recommended for module installation)
Set execution policy for the session:
```powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
```
### 2. Run the Script
Execute the script:
```powershell
CD Path dirctory script
.\BackupScript.ps1
```
You will be prompted to enter the following:
- **Server Name** (e.g., `localhost`, `127.0.0.1`, or `ServerName\Instance`)
- **Database Name** to back up
- **Backup Folder Path** (where `.bak` and `.txt` files will be saved)
- **Authentication Method**: Press `Y` for Windows Authentication or `N` for SQL Login (will prompt for credentials)
---
## 📄 Output
Two files will be generated in the specified directory:
1. **Database Backup File**
Format: `YourDatabase_Backup_yyyyMMdd_HHmmss.bak`
2. **Log LogFile File**
Format: `LogFileBackup_YourDatabase_yyyyMMdd_HHmmss.txt`
Includes:
- SQL Server details
- Table/index/object sizes
- Backup file size and verification status
- Timestamp and execution notes
---
## 📌 Requirements
- PowerShell 5.1 or newer
- `SqlServer` module (installed automatically if missing)
- Stored Procedure `ReportBackup` must exist in the target database
---
## ✅ Example Output in Log File
```text
SQL Server Info:-
- Version : 15.0.2000.5
- Edition : Developer Edition
- Product Level : RTM
--------------------------------------------
Objects Include:-
Database_Name Date_Report Object_Name Object_Type Count_Rows Size (MB)
------------- ------------ ------------ ------------ ----------- ----------
MyDB 2025-05-18 Customers Table 100000 25.3
MyDB 2025-05-18 Orders Table 250000 47.9
MyDB 2025-05-18 DB Total DB Total N/A 73.2
--------------------------------------------
Backup Info:-
- Backup Date : 2025-05-18 15:30:21
- Backup Size : 75.65 MB
- Status : Completed
- Verify Status : Passed
--------------------------------------------
Dev Script By Meshary alali (:
--------------------------------------------
```
---
## 👨💻 Devloper
****
[Meshary Alali](https://github.com/msalali)
---
# سكربت النسخ الاحتياطي المتقدم لقاعدة بيانات SQL Server
سكريبت PowerShell يقوم بعمل **نسخة احتياطية لقاعدة بيانات SQL Server**، ويولّد **تقريرًا بحجم الكائنات داخل القاعدة**، ويتحقق من صحة النسخة، ويولّد **ملف سجل** يحتوي على كافة التفاصيل.
## 📋 الميزات
- الاتصال بـ SQL Server باستخدام **مصادقة ويندوز** أو **تسجيل دخول SQL Server**.
- تنفيذ الإجراء المخزن `ReportBackup` لاستخراج أحجام الكائنات.
- إنشاء ملف نسخة احتياطية بامتداد `.bak`.
- التحقق من صحة النسخة الاحتياطية باستخدام `RESTORE VERIFYONLY`.
- توليد ملف سجل (`.txt`) يحتوي على:
- إصدار SQL Server والمستوى والنوع
- تقرير تفصيلي عن الكائنات (جداول، فهارس، الحجم الإجمالي، ...)
- حالة النسخ وحجم الملف ونتيجة التحقق
- تثبيت وحدة PowerShell `SqlServer` تلقائيًا في حال عدم توفرها.
---
## 🛠️ طريقة الاستخدام
### 1. افتح PowerShell كمسؤول
(اختياري لكن يُفضل لتفادي مشاكل التصاريح)
قم بتعيين سياسة التنفيذ للجلسة:
```powershell
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
```
### 2. تشغيل السكربت
قم بتشغيل السكربت:
```powershell
CD Path dirctory script
.\BackupScript.ps1
```
سيُطلب منك إدخال ما يلي:
- **اسم الخادم** (مثل: `localhost` أو `127.0.0.1` أو `ServerName\Instance`)
- **اسم قاعدة البيانات** التي ترغب بعمل نسخة احتياطية لها
- **مسار حفظ النسخة** (حيث سيتم حفظ ملفات `.bak` و`.txt`)
- **طريقة المصادقة**: اضغط `Y` لاستخدام مصادقة ويندوز أو `N` لاستخدام تسجيل دخول SQL (وسيطلب منك بيانات الدخول)
---
## 📄 الملفات الناتجة
يتم إنشاء ملفين في المسار الذي حددته:
1. **ملف النسخة الاحتياطية**
الصيغة: `YourDatabase_Backup_yyyyMMdd_HHmmss.bak`
2. **ملف السجل النصي**
الصيغة: `LogFileBackup_YourDatabase_yyyyMMdd_HHmmss.txt`
يحتوي على:
- تفاصيل SQL Server
- تقرير حجم الكائنات
- حجم النسخة وحالة التحقق
- الوقت وتفاصيل التشغيل
---
## 📌 المتطلبات
- PowerShell 5.1 أو أحدث
- وحدة `SqlServer` (يتم تثبيتها تلقائيًا إن لم تكن متوفرة)
- الإجراء المخزن `ReportBackup` يجب أن يكون موجودًا داخل قاعدة البيانات
---
## ✅ مثال على الإخراج داخل ملف السجل
```text
SQL Server Info:-
- Version : 15.0.2000.5
- Edition : Developer Edition
- Product Level : RTM
--------------------------------------------
Objects Include:-
Database_Name Date_Report Object_Name Object_Type Count_Rows Size (MB)
------------- ------------ ------------ ------------ ----------- ----------
MyDB 2025-05-18 Customers Table 100000 25.3
MyDB 2025-05-18 Orders Table 250000 47.9
MyDB 2025-05-18 DB Total DB Total N/A 73.2
--------------------------------------------
Backup Info:-
- Backup Date : 2025-05-18 15:30:21
- Backup Size : 75.65 MB
- Status : Completed
- Verify Status : Passed
--------------------------------------------
Dev Script By Meshary alali (:
--------------------------------------------
```
---
## 👨💻 المطور
[مشاري العلي](https://github.com/msalali)
---