Identifying who took a database offline

  • Revenant (11/1/2011)


    jared-709193 (11/1/2011)


    . . . Isn't it interesting how Microsoft developers can't design an application that effectively uses their own database engine? I would even accept one that followed at least a couple of best practices . . .

    May I humbly offer SharePoint and TFS as two examples of pretty big, sophisticated, SQL Server-based apps?

    My statement was based upon the workings of Microsoft Great Plains. I have not had experience with TFS or SharePoint, but if they are anything like Great Plains, the application may be great on the front end while the database design and implementation leaves something to be desired...

    Jared

    Jared
    CE - Microsoft

  • Revenant (11/1/2011)


    jared-709193 (11/1/2011)


    . . . Isn't it interesting how Microsoft developers can't design an application that effectively uses their own database engine? I would even accept one that followed at least a couple of best practices . . .

    May I humbly offer SharePoint and TFS as two examples of pretty big, sophisticated, SQL Server-based apps?

    Sharepoint has a terrible DB design and its abuse of SQL is horrid.

    Unlike Dynamics, it can't even be excused as a 3rd party product bought by MS.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • GilaMonster (11/1/2011)


    Revenant (11/1/2011)


    jared-709193 (11/1/2011)


    . . . Isn't it interesting how Microsoft developers can't design an application that effectively uses their own database engine? I would even accept one that followed at least a couple of best practices . . .

    May I humbly offer SharePoint and TFS as two examples of pretty big, sophisticated, SQL Server-based apps?

    Sharepoint has a terrible DB design and its abuse of SQL is horrid.

    Unlike Dynamics, it can't even be excused as a 3rd party product bought by MS.

    Well, let's then agree on TFS.

    🙂

  • jared-709193 (11/1/2011)


    Ninja's_RGR'us (10/31/2011)That being said someone's working on permissions right now and they're bloating the logs like crazy (MS dynamics Nav has lots and lots of permissions to grant).

    I hate Dynamics! Isn't it interesting how Microsoft developers can't design an application that effectively uses their own database engine? I would even accept one that followed at least a couple of best practices 🙂 Sorry, this is not really the place, but I had to put in my 2 cents...

    Jared

    Well it was bought & upgraded from Oracle :-D.

    'nough said !

  • Ninja's_RGR'us (11/1/2011)


    jared-709193 (11/1/2011)


    Ninja's_RGR'us (10/31/2011)That being said someone's working on permissions right now and they're bloating the logs like crazy (MS dynamics Nav has lots and lots of permissions to grant).

    I hate Dynamics! Isn't it interesting how Microsoft developers can't design an application that effectively uses their own database engine? I would even accept one that followed at least a couple of best practices 🙂 Sorry, this is not really the place, but I had to put in my 2 cents...

    Jared

    Well it was bought & upgraded from Oracle :-D.

    'nough said !

    I've got to give it the goods tho. When you're in NAV and have to write code in there it's about as short a code as you can write and super easy. with intellisense it would be pretty much impossible to beat.

    That being said it still writes most of its code as RBAR.

    It's ok for most day to day operation where users type the stuff in. But when you need a bigger report, you better set a couple hours aside in your schedule ;-).

  • ALZDBA (11/1/2011)


    Just a way to import your default trace and query it... see attachment

    ( this one reports auto grow events ,should be peace of cake to have it filter detach or so)

    Very cool! Thanks for sharing.

    You could combine the "fn_trace_x" functions like this:

    SELECT *

    FROM dbo.fn_trace_getinfo(1) AS INF

    CROSS APPLY dbo.fn_trace_gettable(CAST(INF.value AS NVARCHAR(500)), DEFAULT) AS TAB

    WHERE INF.property = 2;

    Best regards,

    Best regards,

    Andre Guerreiro Neto

    Database Analyst
    http://www.softplan.com.br
    MCITPx1/MCTSx2/MCSE/MCSA

  • Don Bricker - Illinois (10/31/2011)


    We have a SQL Server 2008 instance in which someone took a database offline couple of weeks ago. I have identified the SPID from the Log Viewer. Is there a way to identify the User?

    Thanks

    Well, obviously it was somebody in the sysadmin role, so call them up or copy out an email.

    You can query all domain account and groups who currently have sysmin role like so:

    select *

    from master..syslogins

    where sysadmin = 1;

    If you identify a domain group with sysadmin role, then you can list all individual domain account members like so:

    exec master..xp_logininfo '<ntgroup_name>', 'members';

    How many folks in your organization are sysadmins? Hopefully not everyone.

    "Do not seek to follow in the footsteps of the wise. Instead, seek what they sought." - Matsuo Basho

  • ALZDBA (11/1/2011)


    Just a way to import your default trace and query it... see attachment

    ( this one reports auto grow events ,should be peace of cake to have it filter detach or so)

    The attached script only loads the active default trace file. If you want to load them all you can use this script:

    SET NOCOUNT ON ;

    DECLARE @default_trace_path NVARCHAR(260) ;

    -- get the default trace file location

    SELECT @default_trace_path = [path]

    FROM sys.traces

    WHERE is_default = 1

    -- remove the # suffix from the default trace file location, e.g. E:\Trace\log_419.trc becomes E:\Trace\log.trc

    SELECT @default_trace_path = REVERSE(@default_trace_path),

    @default_trace_path = REVERSE(SUBSTRING(@default_trace_path, CHARINDEX('_', @default_trace_path) + 1, 260)) + '.trc' ;

    PRINT @default_trace_path

    IF OBJECT_ID(N'tempdb..#autogrow_events_scan', 'U') > 0

    DROP TABLE #autogrow_events_scan ;

    -- load all trace files into a temp table

    SELECT e.*

    INTO #autogrow_events_scan

    FROM sys.fn_trace_gettable(@default_trace_path, DEFAULT) e ;

    SELECT MAX(StartTime),

    MIN(starttime),

    COUNT(*)

    FROM #autogrow_events_scan

    SELECT *

    FROM #autogrow_events_scan

    ORDER BY StartTime ;

    There are no special teachers of virtue, because virtue is taught by the whole community.
    --Plato

Viewing 8 posts - 16 through 22 (of 22 total)

You must be logged in to reply to this topic. Login to reply