Sửa lỗi cài đặt SQL
Những hướng dẫn sửa lỗi khi cài đặt SQL SERVER 2012 gặp phải
Consistency validation for SQL Server registry keys

Mở Regedit lên tìm theo Key sau để thêm quyền.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
- Click chuột phải vào thư mục Microsoft SQL Server and go to Permission
- Chọn Advance tab và tích chọn User Everyone rồi tích full control như sau

Tích xong thì tiến hành khởi động lại máy tính, xong thì vào cài đặt lại SQL SERVER
Fusion Active Template Library (ATL)

Khi cài đặt SQL SERVER sẽ giải nén vào 1 thư mục có tên bất ký dạng ví dụ D:\343hjk43h221342342jhjedrfe0
Bạn vào đó tìm tới đường dẫn sau với SQL tương ứng
32bit: D:\343hjk43h221342342jhjedrfe0\1033_ENU_LP\x86\Setup\sqlsupport_msi\sqlsupport.msi
64bit: D:\343hjk43h221342342jhjedrfe0\1033_ENU_LP\x64\Setup\sqlsupport_msi\sqlsupport.msi
Chạy file sqlsupport.msi lên cài đặt repaird xong thì khởi động lại máy tính, rồi cài lại SQL
CANNOT CONNECT TO WMI PROVIDER SQL SERVER CONFIGURATION MANAGER

1. Vào Run gõ vào cmd nhấn phím Enter để ra cửa sổ copy lệnh sau vào và nhấn Enter để thực hiện
mofcomp "%programfiles(x86)%\Microsoft SQL Server\110\Shared\sqlmgmproviderxpsp2up.mof"
Sau khi Enter nếu thành công sẽ ra cửa sổ như sau báo DONE !

Phân loại như sau:
SQL 2008 – 100
SQL 2012 – 110
SQL 2014 – 120
SQL2016 – 130
SQL 2017 – 140
SQL 2019 – 150
Vào lại theo đường dẫn này để mở SQL Server Configuration.
C:\Windows\SysWOW64
Chạy file như hình

Chạy xong bật lên như này là được rồi

Hexadecimal Value 0x00 Is an Invalid Character

Nguyên nhân do trong máy đó có cài đặt MSDE (Microsfot Desktop Engine aka SQL 2000 Express) dẫn tới lỗi trên, cần vào control panel gỡ bỏ MSDE đi rồi mới tiếp tục cài đặt SQL 2012.

Could Not Find the Database Engine Startup handle

Cách 1:
- Gỡ SQL cài đặt lỗi ra, vào đường dẫn ổ C để xoá đi thư mục cài đặt SQL ,khởi động lại máy tính
- Chạy lại cài đặt SQL SERVER tới bước này chọn lại

Gõ vào SYSTEM rồi nhấn Check Names rồi nhấn OK

Thực hiện tiếp việc cài đặt SQL nếu thành công sẽ ko bật ra lỗi kia nữa.
Cách 2:
- Gỡ sạch sẽ SQL đã cài đặt vào máy, vào đường dẫn ổ C để xoá đi thư mục cài đặt SQL cũ trước đó. Khởi động lại máy tính.
- Thực hiện vào đường dẫn Registry tạo thêm 1 key như sau
Add Multi string key in Ragistry this path:- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device
String Name:- ForcedPhysicalSectorSizeInBytes
String Value:- * 4095



HOẶC TẢI LUÔN FILE SAU CHẠY:
The Log Scan Number Passed to Log Scan in Database ‘master’ is not Valid
Cách sửa lỗi: chạy setup của sql theo tham số để fix lại database
setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS= /SAPWD
Cách thủ công:
Khởi động SQL chế độ single user mode với tham số -m
Sửa dụng lệnh T-SQL để khôi phục database master
RESTORE DATABASE master FROM disk='C:\backup\master.bak' WITH REPLACE
Passed to log scan in database ‘Model’ is not valid

Bước 1: Vào đường dẫn sau
C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\Binn\Templates
Bước 2: Copy database model.mdf và modellog.ldf ở đường dẫn tempplates rồi Paste đè vào
C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA
Bước 3
: Khởi động lại SQL Service.
SQL SERVER Service change Pending or Stopping

Xác định tìm Process ID của ứng dụng SQL SERVER gọi là là số PID trước bằng cách click chuột phải vào Taks Bar của windows, chọn Task manager

Chuyển qua tab Detail như hình để tìm dịch vụ : sqlservr.exe và nhìn vào cột PID phía trên để lấy con số PID, ví dụ như hình kia là 18460

Sau đó vào Run, gõ vào CMD vào chạy lệnh như sau để ép thoát nóng ứng dụng đang chạy
taskkill /PID Số PID /f
sau đó Enter như hình báo thành công là được, khởi động lại dịch vụ sql đang bị stop

Attempted to perform an unauthorized operation

Nguyên nhân lỗi: Máy tính cài đặt Windows 10 version 20H2, trình duyệt Microsoft Edge phiên bản 84.x.x => 86.x.x xung đột với SQL Server từ 2012 ->2019 ( Kiểm tra version windows hãy vào Run gõ vào Winver nhấn Enter)
Cách khắc phục: Hãy để nguyên SQL đang setup ở màn hình lỗi kia, tiến hành làm theo thử 1 trong 2 hướng sau
Cách 1: Mở trình duyệt Microsoft Edge lên, chọn Setting, chọn About Edge, để check update trình duyệt web này lên version mới nhất, update xong. Quay lại màn hình lỗi SQL kia nhấn Retry để chạy tiếp.
Cách 2:
Thêm quyền Full Control permission cho User Administrators
1. Chạy chương trình Registry Editor. Vào Run gõ regedit nhấn Enter.
2. Trong trình quản lý Registry Editor:
Click chuột phải chọn:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge subkey,
Lựa chọn Permissions.
3. Trong cửa sổ Permissions mở ra chọn Advanced.
4. Trong phần trên cùng của Advanced Security Settings, Chọn vào Change next to the listed owner.
5. Trong cửa sổ User, Computer, Service Account, or Group window,
Hãy nhập tên user đang đăng nhập vào sau đó nhấn Enter để tìm tên nhấn Check Names để kiểm tra đúng tên đăng nhập.
6. NhấnOK 2 lần.
7. Trong cửa sổ Permissions, chọn vào Users group, và sau đó chọn Allow Full Control permissions.
8. Nhấn OK để trở lại cửa sổ Registry.
9. Đóng Registry lại, quay lại chỗ setup SQL, nhấn Retry để chạy tiếp.
Nguồn tham khảo: https://learn.microsoft.com/vi-vn/troubleshoot/sql/database-engine/install/windows/error-set-up-update-instances
Illegal characters in path ( Error code 0x84B10001

Cách sửa lỗi:
Như ảnh bạn vào theo đường dẫn của thư mục .NET FRAMEWORK, click vào file machine.config chọn chuột phải vào file chọn Properties, Tab Sercurity, chọn Add Everyone vào tích Full Control.
Sau đó edit file machine.config = notepad sau đó tìm thẻ <system.ServiceModel> để xoá hết nội dung trong thẻ đó đi, lưu file lại
Tiến hành khởi động lại máy tính, cài đặt lại SQL

XOÁ ĐI SERVICE SQL ĐANG LỖI
Cảnh báo: Cách này chỉ xóa service khỏi danh sách quản lý dịch vụ chứ không xóa các file cài đặt gốc. Chỉ nên dùng cách này nếu phương pháp trên thất bại hoặc bạn biết rõ mình đang làm gì.
Mở Command Prompt với quyền Admin:
Nhấn phím
Windows
, gõcmd
.Nhấp chuột phải vào Command Prompt và chọn Run as administrator.
Xác định tên chính xác của Service:
Tên hiển thị là
SQL Server (ACMEN)
.Tên service thực tế trong hệ thống thường có dạng
MSSQL$TEN_INSTANCE
. Với trường hợp của bạn, tên service rất có thể làMSSQL$ACMAN
.
Gõ lệnh xóa service: Sử dụng lệnh
sc delete
theo cú pháp sau:sc delete "Tên Service"
Áp dụng cho trường hợp của bạn, lệnh sẽ là:
sc delete "MSSQL$ACMEN"
Thực thi lệnh: Nhấn Enter. Nếu thành công, bạn sẽ nhận được thông báo
[SC] DeleteService SUCCESS
.
Sau khi thực hiện, hãy khởi động lại máy tính để thay đổi có hiệu lực hoàn toàn.
SQL Server Database Engine Services Instance Features Component error code: 0x851A001A
Lỗi 0x851A001A
khi cài đặt SQL Server, với mô tả "Wait on the Database Engine recovery handle failed", thường xảy ra do sự không tương thích về kích thước sector của ổ đĩa. Vấn đề này đặc biệt phổ biến trên các hệ điều hành mới như Windows 11 hoặc khi sử dụng các ổ cứng SSD NVMe đời mới.
Nguyên nhân chính là do SQL Server hiện tại hỗ trợ kích thước sector vật lý của ổ đĩa là 512 bytes và 4KB (4096 bytes), trong khi một số ổ đĩa mới có thể báo cáo kích thước sector lớn hơn (ví dụ: 16KB), khiến cho dịch vụ SQL Server không thể khởi động sau khi cài đặt.
Để khắc phục lỗi này, bạn có thể thực hiện theo các bước sau:
Cách khắc phục chính: Điều chỉnh Registry để giả lập kích thước sector 4KB
Đây là giải pháp được báo cáo là hiệu quả nhất trong hầu hết các trường hợp.
Kiểm tra kích thước sector của ổ đĩa: Mở Command Prompt (CMD) hoặc PowerShell với quyền Administrator và chạy lệnh sau (thay
C:
bằng ký tự ổ đĩa bạn đang cài đặt SQL Server):Bash
fsutil fsinfo sectorinfo C:
Kiểm tra giá trị của
PhysicalBytesPerSectorForAtomicity
. Nếu giá trị này lớn hơn4096
, bạn đã xác định đúng nguyên nhân.

Thêm khóa Registry: Vẫn trong cửa sổ Command Prompt (hoặc PowerShell) với quyền Administrator, chạy lệnh sau để buộc Windows giả lập kích thước sector là 4KB:
PowerShell
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f
Khởi động lại máy tính: Sau khi chạy lệnh trên, hãy khởi động lại máy tính để thay đổi có hiệu lực.
Cài đặt lại SQL Server: Sau khi máy tính khởi động lại, hãy gỡ bỏ các thành phần đã cài đặt không thành công của SQL Server và tiến hành cài đặt lại từ đầu. Lần này, quá trình cài đặt sẽ thành công.
LỆNH CMD để sửa lỗi, copy ra notepad, save as file .cmd để chạy
@echo off
setlocal
:: =================================================================
:: TEP LENH TU DONG KIEM TRA VA SUA LOI 0x851A001A KHI CAI SQL SERVER
:: PHIEN BAN 2.0 - ON DINH HON, KHONG TU DONG THOAT
:: Phai chay bang quyen Administrator!
:: =================================================================
title Sua loi cai dat SQL Server v2.0 - 0x851A001A
echo =================================================================
echo CONG CU KIEM TRA VA SUA LOI KICH THUOC SECTOR CHO SQL SERVER
echo =================================================================
echo.
:: 1. Kiem tra quyen Administrator
net session >nul 2>&1
if %errorlevel% NEQ 0 (
echo [LOI] Ban chua chay tep voi quyen Administrator.
echo.
echo Vui long dong cua so nay, chuot phai vao tep va chon "Run as administrator".
goto :end_script
)
echo [OK] Da chay voi quyen Administrator.
echo.
echo Dang kiem tra o dia he thong (%SystemDrive%), vui long doi...
echo.
:: 2. Thuc hien kiem tra kich thuoc sector
set SectorSize=0
for /f "tokens=1,2" %%a in ('fsutil fsinfo sectorinfo %SystemDrive% ^| findstr /I /C:"PhysicalBytesPerSectorForAtomicity"') do (
set SectorSize=%%b
)
:: 3. Xu ly ket qua
if %SectorSize% EQU 0 (
echo [LOI] Khong the tu dong xac dinh kich thuoc sector.
echo Nguyen nhan co the do phien ban Windows cua ban khong phai tieng Anh.
echo Vui long kiem tra thu cong theo huong dan sau:
echo 1. Mo CMD (go 'cmd' trong menu Start).
echo 2. Go lenh: fsutil fsinfo sectorinfo %SystemDrive%
echo 3. Tim dong co chu "Atomicity" va xem con so ben canh. Neu lon hon 4096 la bi loi.
goto :end_script
)
if %SectorSize% LE 4096 (
echo [THONG BAO] Kich thuoc sector cua ban la %SectorSize% bytes.
echo => Kich thuoc nay HOAN TOAN TUONG THICH voi SQL Server.
echo.
echo Ban khong can phai sua loi. Neu van gap su co khi cai dat,
echo nguyen nhan co the den tu van de khac.
goto :end_script
)
echo [CANH BAO] Phat hien van de khong tuong thich!
echo -----------------------------------------------------------------
echo - Kich thuoc sector cua o dia la: %SectorSize% bytes.
echo - Kich thuoc nay LON HON muc 4096 bytes ma SQL Server ho tro.
echo - Day la nguyen nhan chinh gay ra loi 0x851A001A.
echo.
echo => De khac phuc, cong cu se them mot khoa vao Registry de
echo Windows gia lap kich thuoc sector la 4KB.
echo.
:confirm
choice /C YN /M "Ban co muon thuc hien sua loi khong (Y/N)?"
if errorlevel 2 goto :no_fix
if errorlevel 1 goto :apply_fix
:apply_fix
echo.
echo Dang thuc hien sua loi...
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f >nul
if %errorlevel% EQU 0 (
echo.
echo [THANH CONG] Da sua loi thanh cong!
echo.
echo ** BUOC QUAN TRONG TIEP THEO: **
echo ** Ban PHAI KHOI DONG LAI MAY TINH de thay doi co hieu luc. **
echo.
echo Sau khi khoi dong lai, hay tien hanh cai dat SQL Server.
) else (
echo [THAT BAI] Khong the sua loi. Ma loi: %errorlevel%.
)
goto :end_script
:no_fix
echo.
echo Ban da chon khong sua loi. Khong co thay doi nao duoc thuc hien.
goto :end_script
:end_script
echo.
echo -----------------------------------------------------------------
pause
Last updated