Wednesday, November 15, 2017

SQL Server - Check how database recovery will take

DECLARE @DBName VARCHAR(64) = 'DCIS'

DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))

INSERT INTO @ErrorLog
EXEC master..sp_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

Thanks to http://timlaqua.com/2009/09/determining-how-long-a-database-will-be-in-recovery-sql-server-2008/

Thursday, October 26, 2017

Oracle - Create restore points in Data Guard environment

*************** On Standby


SQL> select db_unique_name, database_role, open_mode, flashback_on,dataguard_broker, guard_status, protection_mode from v$database;

SQL> alter database recover managed standby database cancel;

SQL> create restore point RP1 guarantee flashback database;

SQL> alter database recover managed standby database using current logfile disconnect;

SQL> select * from v$restore_point;


************ On Primary

SQL> select db_unique_name, database_role, open_mode, flashback_on,dataguard_broker, guard_status, protection_mode from v$database;

SQL> create restore point RP1 guarantee flashback database;

SQL> select * from v$restore_point;