f415al15Avatar border
TS
f415al15
Cara Mengatasi Database ‘In Recovery’ Pada SQL Server 2008
Beberapa saat yang lalu, ane pernah mengalami masalah gan di database SQL Server 2008. Ketika sedang melakukan proses restart services SQL Server, tanpa diketahui sebabnya, aplikasi yang mengarah ke database tersebut tidak bisa running emoticon-Turut Berduka. Setelah ane masuk ke SSMS (SQL Server Management Studio), ternyata status database bertuliskan “Database (In Recovery)” dan tidak bisa di akses .

Panik. Ya itu satu kata singkat yang bisa menggambarkan suasana hati ane saat itu emoticon-Bingung. Karena baru pertama kali menemui kasus tersebut. Seperti biasa, ane menggunakan senjata pamungkas yaitu mencari informasi di Google emoticon-Ngakak. Dan berikut ini adalah solusi untuk mengatasi masalah tersebut di atas :

1. Don’t Panic.
Jangan panik emoticon-Cool, karena segala sesuatu jika dilakukan dengan ceroboh pasti akan berakibat fatal.

2. Disable User Login
Masuk ke SSMS dan disable semua user login yang mengarah ke database terkait.

3. Tunggu.
Selama status database masih bertuliskan ‘In Recovery’, jangan lakukan proses apapun. Termasuk restart services SQL Server. Karena jika services SQL Server di restart, maka proses ‘In Recovery’ akan dimulai dari awal lagi. Dan tentunya akan membuang waktu cukup lama.

4. Gunakan Script
Terkadang kita belum tahu persis kapan proses ‘In Recovery’ itu selesai. Untuk mengetahui proses tersebut, maka kita perlu gunakan script di SSMS sebagai berikut emoticon-cystg :

DECLARE @DBName VARCHAR(64) = ‘NamaDatabase’
DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))
INSERT INTO @ErrorLog
EXEC sys.xp_readerrorlog 0, 1, ‘Recovery of database’, @DBName
SELECT TOP 5
[LogDate]
,SUBSTRING([TEXT], CHARINDEX(‘) is ‘, [TEXT]) + 4,CHARINDEX(‘ complete (‘, [TEXT]) – CHARINDEX(‘) is ‘, [TEXT]) – 4) AS PercentComplete
,CAST(SUBSTRING([TEXT], CHARINDEX(‘approximately’, [TEXT]) + 13,CHARINDEX(‘ seconds remain’, [TEXT]) – CHARINDEX(‘approximately’, [TEXT]) – 13) AS FLOAT)/60.0 AS MinutesRemaining
,CAST(SUBSTRING([TEXT], CHARINDEX(‘approximately’, [TEXT]) + 13,CHARINDEX(‘ seconds remain’, [TEXT]) – CHARINDEX(‘approximately’, [TEXT]) – 13) AS FLOAT)/60.0/60.0 AS HoursRemaining
,[TEXT]
FROM @ErrorLog ORDER BY [LogDate] DESC

Kemudian klik tombol Execute, maka akan tampil progress waktu ‘In Recovery’ terhadap database yang terkait. Tunggu hingga proses tersebut selesai dan refresh database terkait. Biasanya setelah statusnya sudah 99%, database yang bermasalah tadi sudah bisa di akses kembali.
Semoga bermanfaat emoticon-Toast

Untuk troubleshooting & tutorial tentang SQL Server 2008 yang lain, agan2 bisa mampir di blog ane : http://infrasolutions.wordpress.com/. Cekidot emoticon-Traveller
Diubah oleh f415al15 25-10-2013 10:10
0
3.2K
3
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Urutan
Terbaru
Terlama
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Komunitas Pilihan