Việc backup SQL Database hàng ngày sẽ đảm bảo dữ liệu luôn được bảo vệ. Nhưng thực hiện thủ công có thể tốn nhiều thời gian và có thể bị sai sót, nhất là trong trường hợp có quá nhiều database.
Điều kiện bắt buộc
Hãy đảm bảo bạn đã cài đặt những thứ sau:
-
Python 3.x
-
pip
-
The pyodbc package (để kết nối đến SQL databases)
-
The pandas package (cho làm việc với data)
-
Một SQL database để back up
Bước 1: Cách để kết nối đến SQL Database
Bước đầu tiên để tự động backup SQL database là phải kết nối đến database sử dụng Python. Chúng ta sẽ dùng package pyodbc để kết nối đến database và thực thi các câu lệnh SQL.
Sau đây là một đoạn code để minh họa:
import pyodbc
# Connection parameters
server = 'localhost'
database = 'mydatabase'
username = 'myusername'
password = 'mypassword'
# Create a connection object
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + server + ';DATABASE=' + database + ';UID=' + username + ';PWD=' + password)
# Create a cursor object
cursor = conn.cursor()
Trong đoạn code, Chúng ta đã tạo một connection object sử dụng phương thức pyodbc.connect() và truyền một connection parameter. Sau đó ta tạo cursor object bằng method conn.cursor() để ta có thể thực thi các câu lệnh SQL trên database.
Bước 2: Cách tạo một Backup
Ngay khi chung ta đã kết nối đến database, ta có thể dùng câu lệnh SQL BACKUP DATABASE để tạo một backup.
Sau đây là một đoạn code minh họa:
import os
# Backup directory
backup_dir = 'C:/backup'
# Backup file name
backup_file = 'mydatabase_backup_' + str(datetime.now().strftime('%Y%m%d_%H%M%S')) + '.bak'
# Backup command
backup_command = 'BACKUP DATABASE mydatabase TO DISK=\'' + os.path.join(backup_dir, backup_file) + '\''
# Execute the backup command
cursor.execute(backup_command)
Trong đoạn code, chúng ta đã chỉ rõ backup dictionary và tên file dùng os.path.join() để tạo full đường dẫn. Sau đó, ta tạo lệnh backup bằng câu lệnh SQL BACKUP DATABASE và thực thi nó bằng cursor object.
Bước 3: Cách để lưu chi tiết Backup
Sau khi tạo backup, chúng ta nên lưu các thông tin về bản sao lưu, như là tên file backup, ngày tháng tạo backup, và tên database. Ta có thể lưu vào file CSV sử dụng package pandas.
Sau đây là đoạn code ví dụ:
import pandas as pd
# Backup details
backup_details = {'database': [database], 'backup_file': [backup_file], 'backup_datetime': [datetime.now()]}
# Create a DataFrame object from the backup details
backup_df = pd.DataFrame(data=backup_details)
# Backup details file
backup_details_file = os.path.join(backup_dir, 'backup_details.csv')
# Write backup details to a CSV file
backup_df.to_csv(backup_details_file, index=False)
Trong đoạn code, chúng ta tạo một dictionary object chứa các chi tiết backup và tạo một DataFrame object từ nó bằng pd.DataFrame().
Sau đó ta định rõ the backup details file bằng os.path.join() method và viết chi tiết vào CSV file bằng to_csv().
Bước 4: Cách tự động hóa quá trình Backup
Bởi vì chúng ta đã tạo backup và lưu các chi tiết backup, ta có thể tự động hóa quá trình này sử dụng Python script. Chúng ta có thể lên lịch script để nó chạy một cách đều đặn sử dụng tính năng Windows Task Scheduler có sẵn hoặc tool bên thứ ba (for Linux) hoặc Task Scheduler (for Mac).
Sau đây là minh họa:
import pyodbc
import os
import pandas as pd
from datetime import datetime
# Connection parameters
server = 'localhost'
database = 'mydatabase'
username = 'myusername'
password = 'mypassword'
# Backup directory
backup_dir = 'C:/backup'
# Create a connection object
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=' + server + ';DATABASE=' + database + ';UID=' + username + ';PWD=' + password)
# Create a cursor object
cursor = conn.cursor()
# Backup file name
backup_file = 'mydatabase_backup_' + str(datetime.now().strftime('%Y%m%d_%H%M%S')) + '.bak'
# Backup command
backup_command = 'BACKUP DATABASE mydatabase TO DISK=\'' + os.path.join(backup_dir, backup_file) + '\''
# Execute the backup command
cursor.execute(backup_command)
# Backup details
backup_details = {'database': [database], 'backup_file': [backup_file], 'backup_datetime': [datetime.now()]}
# Create a DataFrame object from the backup details
backup_df = pd.DataFrame(data=backup_details)
# Backup details file
backup_details_file = os.path.join(backup_dir, 'backup_details.csv')
# Write backup details to a CSV file
backup_df.to_csv(backup_details_file, index=False)
Trong đoạn script, chúng ta đã gộp những đoạn code trước vào cùng một script để dễ dàng thực hiện tự động hóa backup.
Đầu tiên, chúng ta kết nối đến database, tạo backup, lưu chi tiết của backup vào file CSV, sau đó ngắt kết nối với database.
Tự động sao lưu database SQL bằng Python là một cách tuyệt vời để tiết kiệm thời gian, giảm nguy cơ xảy ra lỗi và đảm bảo rằng dữ liệu luôn được bảo vệ.
Bằng cách làm theo các bước trong bài viết này, bạn có thể dễ dàng tự động hóa các bản backup database SQL và lên lịch để chúng chạy đều đặn.
Nguồn: www.freecodecamp.org
TẠO TÀI KHOẢN MỚI: XEM FULL “1 TÁCH CODEFEE” - NHẬN SLOT TƯ VẤN CV TỪ CHUYÊN GIA - CƠ HỘI RINH VỀ VOUCHER 200K