Effective GUI for monitoring blocks, memory, cpu,io in SQL server
Hi,
Is there any GUI/ tool to monitor SQL server 2008 R2 memory, CPU, IO, blocks?
Hi,
Is there any GUI/ tool to monitor SQL server 2008 R2 memory, CPU, IO, blocks?
Simply run below query to see SQL Server memory utilization.
select
(physical_memory_in_use_kb/1024)Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024 )Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024 )Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
from sys. dm_os_process_memory
Schedule it through agent job and add database mail to send mail to you.
I use Quest spotlight it does no gives memory utilization but shows Buffer cache hit ratio.Which is important parameter to mark.SQL utilizes memory heavily so any tool can flash message like memory utilization high which actually is not correct.I have seen
it with many tools.
For others you can go for Quest tool.
Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers
Similar Messages
-
What is the best way to deal with memory leak issue in sql server 2008 R2
What is the best way to deal with memory leak issue in sql server 2008 R2.
What is the best way to deal with memory leak issue in sql server 2008 R2.
I have heard of memory leak in OS that too because of some external application or rouge drivers SQL server 2008 R2 if patched to latest SP and CU ( may be if required) does not leaks memory.
Are you in opinion that since SQL is taking lot of memory and then not releasing it is a memory leak.If so this is not a memory leak but default behavior .You need to set proper value for max server memory in sp_configure to limit buffer pool usage.However
sql can take more memory from outside buffer pool if linked server ,CLR,extended stored procs XML are heavily utilized
Any specific issue you are facing
Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers -
Max Memory Settings Not Working (SQL Server 2008 R2)
I have 12 GB ram in sql server 2008 R2 of 64 bit server (Windows 2008 R2).
I have set the Max memory setting to 12288 MB Memory setting.
Still the usage of sql server process is around 14 GB.
Is Max memory setting not working?
I have also enabled AWE after all it is 64 bit.
ThanksProblem is that: my OS is halting due to this RAM. I have 16 GB of ram and assigning 12 GB to SQL SERVER and rest is using for OS. Please guide me how to get information about actual memory usage from all sql server processes. like
all CLR etc
Hi,
Are you also running SSIS/SSAS/SSRS with database engine services. What do you mean by OS is halting ?
If you want to check whether SQL Server is facing memory crunch please have a look at perfmon counters from
this link
Sys.dm_OS_memory_clerks would be DMV helpful in tracking memory utilized by various processes
I have also enabled AWE after all it is 64 bit. Thanks
Please note AWE doe snot have any notable affect in 64 bit system.
Below will tell you memory used by SQLCLR
select single_pages_kb + multi_pages_kb + virtual_memory_committed_kb from sys.dm_os_memory_clerks where type = 'MEMORYCLERK_SQLCLR'
Below query will give you memory consumed by various clerk
SELECT type, SUM(multi_pages_kb)
FROM sys.dm_os_memory_clerks
WHERE multi_pages_kb <> 0
GROUP BY type
ORDER BY SUM(multi_pages_kb) DESC
Can you reduce max server memory to 11 G and see if it gives some relief
Please mark this reply as answer if it solved your issue or vote as helpful if it helped so that other forum members can benefit from it
My Technet Wiki Article
MVP -
High CPU utilization with SQL Server 2005
Our company recently combined our DBs into one SQL 2005 Server.
Dell Power Edge 1800 with 3.00 GHz Xeon Processor 800 FSB, 1 GB of RAM
Dell Power Edge 1600 with 2.80 GHz Xeon Processor 533 FSB, 1 GB of RAM
Combined into one:
Dell Power Edge 2950 Dual Core 1.6 GHz Xeon Woodcrest Processor, 4 GB of RAM
However, the CPU utilization on this new server is maintaining at about 90% with 3.82 GB of RAM used as well. It's a Windows Server 2003 R2 x64 edition running SQL Server 2005 SP2 x64. I have searched around Microsoft's website for any information that could be of help to me, but I was unable to locate anything. I was hoping that someone could provide some insight as to why this might be occuring. Or if this is a known issue.
Thanks,
PeterHello!
Here are some steps to take after upgrading your SQL Server from 2K to 2K5. (This quote is from BOL)
After upgrading the Database Engine to SQL Server 2005, complete the following tasks:
Register your servers - Upgrade removes registry settings for the previous SQL Server instance. After upgrading, you must reregister your servers.
Repopulate full-text catalogs - The upgrade process marks your databases as full-text disabled. Catalogs must be repopulated, but this operation is not run automatically by Setup because it can be time-consuming. As this operation enhances the performance of your SQL Server 2005 installation, administrators should plan to repopulate full-text catalogs at a convenient time.
Update statistics - To help optimize query performance, we recommend that you update statistics on all databases following upgrade. Use the sp_updatestats stored procedure to update statistics in user-defined tables in SQL Server 2005 databases.
Update usage counters - In earlier versions of SQL Server, the values for the table and index row counts and page counts can become incorrect. To correct any invalid row or page counts, we recommend that you run DBCC UPDATEUSAGE on all databases following upgrade.
Configure your new SQL Server installation - To reduce the attackable surface area of a system, SQL Server 2005 selectively installs and activates key services and features. For more information on how to activate SQL Server 2005 features, see SQL Server Surface Area Configuration.
Source:
How to: Upgrade to SQL Server 2005 (Setup)
http://msdn2.microsoft.com/en-us/library/ms144267.aspx -
SAP Best Practices for Data Migration :repositories only on MS SQL Server ?
Hi,
I'm implementing the "SAP Best Practices for Data Migration" (see https://websmp109.sap-ag.de/bp-datamigration).
As part of the installation you have to install MS SQL Server Express Edition. The installation guide contains detailed steps to do this. All repositories for Data Services should be running on SQL Server, according to the installation guide.
The customer I'm working for now does not want to use SQL Server, but DB2, as company standard.
So I use DB2 for the local and profiler repositories.
I notice however that the web application http://localhost:8080/MigrationServices does not support DB2.The only database type you can select in the configuration area is MS SQL Server.
Is this a limitation, a by design ?Hans,
The current release of SAP Best Practices for Data Migration, v1.32, supports only MS SQL Server. The intent when developing the DM content was to quickly set up a temporary, standardized data migration environment, using tools that are available to everyone. SQL Server Express was chosen to host the repositories, because it is easy to set up and can be downloaded for free. Sone users have successfully deployed the content on Oracle XE, but as you have found, the MigrationServices web application works only with SQL Server.
The next release, including the web app, will support SQL Server and Oracle, but not DB2.
Paul -
"block change tracking" equivalent in sql server
Hi All,
If someone has expertise in both oracle and sql server, pls let me know if there is " block change tracking" equivalent in sql server. I know sql server has incremental/differential backup, curious to know whether it got this equivalent feature.
Regards,
Satheesh Shanmugam
http://borndba.comMay be the below link will help you:
http://www.databasejournal.com/features/mssql/article.php/3824196/Introducing-Change-Tracking-in-SQL-Server-2008.htm -
SQL query against ConfigMgr DB causing 100% cpu usage on SQL server throughout day
Hi, I am hoping someone here may have an idea of what I can do to resolve this as I am not much of a SQL guy. Here is what I know. Throughout the day, monday-friday, my ConfigMgr SQL server sits at 98-100% processor usage.
Using the following query I have narrowed down the culprit of the high cpu usage throughout the day:
SELECT p.spid, p.status, p.hostname, p.loginame, p.cpu, r.start_time, r.command,
p.program_name, text
FROM sys.dm_exec_requests AS r,
master.dbo.sysprocesses AS p
CROSS APPLY sys.dm_exec_sql_text(p.sql_handle)
WHERE p.status NOT IN ('sleeping', 'background')
AND r.session_id = p.spid
Even though my knowledge of SQL is light, I believe the following output clearly defines the thread responsible for the high cpu usage. This "program_name" is present throughout the day and as long as its there, cpu usage remains at or near 100%:
The text output of the above culprit is as follows (sorry this is long):
-- Name : spDrsSummarizeSendHistory
-- Definition : SqlObjs
-- Scope : CAS_OR_PRIMARY_OR_SECONDARY
-- Object : P
-- Dependencies : <Detect>
-- Description : Summarize DrsSendHistory information into DrsSendHistorySummary
CREATE PROCEDURE spDrsSummarizeSendHistory
AS
BEGIN
SET NOCOUNT ON;
DECLARE @CurrentTime DateTime;
DECLARE @SiteCode nvarchar(3);
DECLARE @LastSummarizationTime DateTime;
DECLARE @NextSummarizationTime DateTime;
DECLARE @Interval INT; -- summarize interval in minutes
DECLARE @ReplicationID INT
DECLARE @iMaxID INT
DECLARE @iCurrentID INT
DECLARE @iBatchSize INT = 50
DECLARE @ReplicationPattern NVARCHAR(255)
DECLARE @TargetSite NVARCHAR(3);
DECLARE @TimeTable TABLE (TargetSite NVARCHAR(3), StartTime DATETIME, EndTime DATETIME, PRIMARY KEY (TargetSite, StartTime, EndTime))
DECLARE @TargetSites TABLE (SiteCode NVARCHAR(3) PRIMARY KEY)
DECLARE @ChildTargetSites TABLE (TargetSite NVARCHAR(3), LastSummarizationTime DATETIME, [Interval] INT, PRIMARY KEY (TargetSite))
DECLARE @ReplicationGroup TABLE (ID INT, ReplicationPattern NVARCHAR(255))
IF OBJECT_ID(N'TempDB..#DrsSendHistorySummary') IS NOT NULL
DROP TABLE #DrsSendHistorySummary
CREATE TABLE #DrsSendHistorySummary (ID BIGINT IDENTITY(1, 1) NOT NULL, SourceSite NVARCHAR(3), TargetSite NVARCHAR(3), ReplicationGroupID INT, SyncDataSize BIGINT, CompressedSize BIGINT, UnCompressedSize BIGINT, MessageCount INT, ChangeCount INT, SummarizationTime DATETIME, PRIMARY KEY (ID))
SET @CurrentTime = GETUTCDATE();
SET @SiteCode = dbo.fnGetSiteCode();
INSERT INTO @ReplicationGroup (ID, ReplicationPattern)
SELECT RD.ID, RD.ReplicationPattern
FROM ReplicationData RD
WHILE EXISTS (SELECT * FROM @ReplicationGroup)
BEGIN
SELECT TOP (1) @ReplicationID = ID, @ReplicationPattern = ReplicationPattern FROM @ReplicationGroup
TRUNCATE TABLE #DrsSendHistorySummary
IF (((@ReplicationPattern = N'global' OR @ReplicationPattern=N'site') AND dbo.fnIsPrimary() = 1)
OR (@ReplicationPattern = N'global_proxy' AND dbo.fnIsSecondary() = 1))
BEGIN -- when current site is child
SET @LastSummarizationTime = ISNULL(( SELECT MAX(SummarizationTime) FROM DrsSendHistorySummary WHERE SourceSite = @SiteCode AND ReplicationGroupID = @ReplicationID),
(SELECT MIN(EndTime) FROM DrsSendHistory WHERE ReplicationGroupID = @ReplicationID) );
SET @Interval = ISNULL((SELECT VALUE FROM RCMSQLCONTROLPROPERTY SCP, RCMSQLCONTROL SC
WHERE SCP.ControlID = SC.ID AND SCP.Name = N'Send History Summarize Interval' AND SC.TypeID = 3 and SC.SiteNumber = dbo.fnGetSiteNumber()), 15); -- default 15 minutes
DELETE @TargetSites
INSERT INTO @TargetSites (SiteCode)
SELECT DISTINCT SiteCode FROM DRS_MessageActivity_Send WHERE ReplicationID = @ReplicationID
IF @LastSummarizationTime IS NOT NULL AND EXISTS (SELECT * FROM @TargetSites)
BEGIN
SET @NextSummarizationTime = DATEADD( minute, DATEDIFF(minute, 0, @LastSummarizationTime)/@Interval *@Interval + @Interval, 0);
-- Summarized according to interval
DELETE @TimeTable
WHILE (@CurrentTime >= @NextSummarizationTime )
BEGIN
INSERT INTO @TimeTable (TargetSite, StartTime, EndTime)
SELECT SiteCode, @LastSummarizationTime, @NextSummarizationTime FROM @TargetSites
SET @LastSummarizationTime = @NextSummarizationTime;
SET @NextSummarizationTime = DATEADD(mi, @Interval, @NextSummarizationTime );
END
INSERT INTO #DrsSendHistorySummary (SourceSite, TargetSite, ReplicationGroupID, SyncDataSize, CompressedSize, UnCompressedSize, MessageCount, ChangeCount, SummarizationTime)
SELECT @SiteCode, T.TargetSite, @ReplicationID, SUM(ISNULL(D.SyncDataSize, 0)), SUM(ISNULL(D.CompressedSize, 0)), SUM(ISNULL(D.UnCompressedSize, 0)), SUM(ISNULL(D.MessageCount, 0)), SUM(ISNULL(ChangeCount, 0)), T.EndTime
FROM DrsSendHistory D RIGHT JOIN @TimeTable T ON D.EndTime >= T.StartTime AND D.EndTime < T.EndTime AND ReplicationGroupID = @ReplicationID AND T.TargetSite = D.TargetSite
GROUP BY T.TargetSite, T.StartTime, T.EndTime;
END
END
ELSE IF ((@ReplicationPattern = N'global' AND dbo.fnIsCAS() = 1)
OR (@ReplicationPattern = N'global_proxy' AND dbo.fnIsPrimary() = 1))
BEGIN -- when current site is parent
DELETE @ChildTargetSites
INSERT INTO @ChildTargetSites(TargetSite, LastSummarizationTime, [Interval])
SELECT DISTINCT(DSH.SiteCode),
ISNULL(( SELECT MAX(SummarizationTime) FROM DrsSendHistorySummary WHERE SourceSite = @SiteCode AND ReplicationGroupID = @ReplicationID AND TargetSite=DSH.SiteCode),
(SELECT MIN(EndTime) FROM DrsSendHistory WHERE ReplicationGroupID = @ReplicationID) ) AS LastSummarizeTime,
ISNULL((SELECT VALUE FROM RCMSQLCONTROLPROPERTY SCP, RCMSQLCONTROL SC WHERE SCP.ControlID = SC.ID AND SCP.Name = N'Send History Summarize Interval' AND SC.TypeID = 3 and SC.SiteNumber = dbo.fnGetSiteNumberBySiteCode(DSH.SiteCode)), 15) AS Interval
FROM DRS_MessageActivity_Send DSH WHERE DSH.ReplicationID = @ReplicationID
GROUP BY DSH.SiteCode;
DELETE @TimeTable
WHILE EXISTS (SELECT * FROM @ChildTargetSites)
BEGIN
SELECT TOP (1) @TargetSite = TargetSite, @LastSummarizationTime = LastSummarizationTime, @Interval = Interval FROM @ChildTargetSites
SET @NextSummarizationTime = DATEADD( minute, DATEDIFF(minute, 0, @LastSummarizationTime)/@Interval *@Interval + @Interval, 0);
-- Summarized according to interval
WHILE (@CurrentTime >= @NextSummarizationTime )
BEGIN
INSERT INTO @TimeTable (TargetSite, StartTime, EndTime)
SELECT @TargetSite, @LastSummarizationTime, @NextSummarizationTime
SET @LastSummarizationTime = @NextSummarizationTime;
SET @NextSummarizationTime = DATEADD(mi, @Interval, @NextSummarizationTime );
END
DELETE @ChildTargetSites WHERE TargetSite = @TargetSite
END;
INSERT INTO #DrsSendHistorySummary (SourceSite, TargetSite, ReplicationGroupID, SyncDataSize, CompressedSize, UnCompressedSize, MessageCount, ChangeCount, SummarizationTime)
SELECT @SiteCode, T.TargetSite, @ReplicationID, SUM(ISNULL(D.SyncDataSize, 0)), SUM(ISNULL(D.CompressedSize, 0)), SUM(ISNULL(D.UnCompressedSize, 0)), SUM(ISNULL(D.MessageCount, 0)), SUM(ISNULL(D.ChangeCount, 0)), @NextSummarizationTime
FROM DrsSendHistory D RIGHT JOIN @TimeTable T ON D.EndTime >= T.StartTime AND D.EndTime < T.EndTime AND ReplicationGroupID = @ReplicationID AND T.TargetSite = D.TargetSite
GROUP BY T.TargetSite, T.StartTime, T.EndTime;
END;
SELECT @iMaxID = MAX(ID), @iCurrentID = 0 FROM #DrsSendHistorySummary
-- BATCH INSERT TO REAL TABLE
WHILE (@iCurrentID < @iMaxID)
BEGIN
INSERT INTO DrsSendHistorySummary (SourceSite, TargetSite, ReplicationGroupID, SyncDataSize, MessageCount, ChangeCount, SummarizationTime)
SELECT SourceSite, TargetSite, ReplicationGroupID, SyncDataSize, MessageCount, ChangeCount, SummarizationTime
FROM #DrsSendHistorySummary WHERE ID > @iCurrentID AND ID <= (@iCurrentID + @iBatchSize)
SET @iCurrentID = @iCurrentID + @iBatchSize
END
TRUNCATE TABLE #DrsSendHistorySummary
DELETE @ReplicationGroup WHERE ID = @ReplicationID
END
END
If anyone has any experience with this issue or anything similar and might be able to point me in the right direction, any responses would be greatly appreciated. Thanks for reading!Normally, this summary job every few mins which only summarize last few mins sending history. If the job was not running for long time, the first time, this sproc will summarize a lot more data than normal. So it could fail which will make things worse and
worse over time.
If sending summary data is not a big concern here, you can manually insert a dummy row with most recent time as Summarizationtime, so that, when summary job kicks in next time, it will only summary short interval data.
DrsSendHistory is that the table records every sending on every group. This table is one of the key of replication logic. For your environment, on primary site, it could have up to 24(hrs) * 60 (mins) / 2 (sync interval) * 36(secondary sites) records per
day for Secondary_Site_Replication_Configuration group and 24 * 60 / 5 * 22 records for Secondary Site Data.
Umair Khan | http://blogs.technet.com/umairkhan
Hi Umair,
Thank you for the reply. My plan was to go ahead with your suggestions but what I tried first was to get my VM guy to give the SQL server access to more CPU resources. We had already configured it with what would have seemed to be plenty, as per Microsoft's
sizing requirements, but I figured it couldn't hurt to rule out - he gave the SQL server access to a huge portion of the host processing power and since then CPU usage on the server has NOT been an issue.
It would appear that the large amounts of secondary sites we have just simply put a lot of stress on the SQL server with out of the box replication settings. Since the entire VM host is for System Center only, and our other System Center servers are using
very little resources, this solution has ended up being valid.
Thanks again for everyone's help with this. -
How to point out high CPU Utilization in sql server 2008
Hi,
I am using sql server 2008 , where in i have 10 instances in the physical box of all sql server 2008 versions.
I can see , the CPU (12 CPUS) that is allocated to the physical box is consuming around 90% of utilization, I need your help to point out the exact sql instance that is using more CPU, Please give me the mathods , since i understand that there is no fixed
rule to derive the solution.
Thank you
hemadriThis first thing to check if CPU is at 100% is to look for parallel queries:
-- Tasks running in parallel (filtering out MARS requests below):
select * from sys.dm_os_tasks as t
where t.session_id in (
select t1.session_id
from sys.dm_os_tasks as t1
group by t1.session_id
having count(*) > 1
and min(t1.request_id) = max(t1.request_id));
-- Requests running in parallel:
select *
from sys.dm_exec_requests as r
join (
select t1.session_id, min(t1.request_id)
from sys.dm_os_tasks as t1
group by t1.session_id
having count(*) > 1
and min(t1.request_id) = max(t1.request_id)
) as t(session_id, request_id)
on r.session_id = t.session_id
and r.request_id = t.request_id;
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence -
Hi All,
Here the linked server is created between sql server 2012 64 bit and sql server 2005 32 bit. I am getting the below error when i try to access linked server from third server. I have created linked from Instance 1 to Instance 2. When i access it from
instance 3 i am getting the below error. SPN setting has been done between these 2 servers. Also the option 'Trust the delegate' is enabled for the both the service account.
'Login Failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
Appreciate your quick response.
Vikas.M.SHello,
Please read the following resources:
http://www.databasejournal.com/features/mssql/article.php/3696506/Setting-Up-Delegation-for-Linked-Servers.htm
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/ea26de43-4c6b-4991-86d7-e1578f107c92/linked-server-login-failed-for-user-nt-authorityanonymous-logon?forum=sqldataaccess
Hope this helps.
Regards,
Alberto Morillo
SQLCoffee.com -
Attunity connectors for Oracle in Import Export Wizard in SQL Server 2008 R2
Is there a way we can see the Attunity connectors drivers in the Import/Export Wizard (64 bit) for SQL Server 2008 R2?
Although I made it work for SSIS, I would need these drivers in the Import/Export wizard so as to automate it for numerous number of tables which I want to migrate.
Can the Attunity connectors for Oracle be used in the Import/Export wizard? If so please let me know.
Regards,
Ashutosh.
Ashutosh.I have 100 tables to migrate. Creating a data flow for each table is tedious and that's why I was looking out for a way to do it through import export wizard so that I don't have to create a separate data source and destination for each table in the Data
flow Task.
Is there a way to loop through all tables and transfer data in SSIS without having multiple sources and destinations created for each table? This also involves a bit of transformation as well.
Regards,
Ashutosh. -
SharePoint 2013 SQL Server Edition for BI Features - must be on SharePoint SQL Server?
I need to install SQL Server 2012 for a new SharePoint 2013 installation.
Let's say I want to use the BI features of SharePoint 2013 like PowerView.
I already have a separate SQL Server running SQL Server 2012 BI Edition that is used as the database server for our data warehouse and some apps. But this SQL Server will not be used to house the SharePoint 2013 databases.
Do I need to install SQL Server 2013 BI Edition on the SharePoint 2013 SQL Server (where the SharePoint 2013 databases will be housed) or can I used SQL Server 2013 Standard Edition on that server and utilize the BI Edition on the data warehouse server to
use the BI features of SharePoint?Yes, BI or Enterprise must be installed on the SharePoint server in order to integrate SSRS. PowerPivot can be on a separate server with just a download (http://www.microsoft.com/en-us/download/details.aspx?id=35577) for certain components residing on
the SharePoint server. This will give you PowerView, as well.
Trevor Seward
Follow or contact me at...
  
This post is my own opinion and does not necessarily reflect the opinion or view of Microsoft, its employees, or other MVPs. -
Searching for numeric values in a text field / SQL Server
Hi all,
here's a problem that I've been trying to solve for several days: I try to select rows from an MS SQL Server via JDBC that contain a certain numeric value at a certain position in a long varchar field.
I'm using queries like
select * from table where substring(field_1, 37, 7) like '1011234';Those queries always return an empty ResultSet. If I use the same queries in WinSQL, I get correct results (several rows).
The application code is working in principle; if I search for a text instead of a numeric value, for example select * from table where substring(field_1, 4, 5) like 'Paper'; , I get a complete ResultSet.
I've tried many variations (= instead of like, search in the entire field (without substring but with like '%1011234%'), with or without ', and more), but that didn't change anything.
It's also most probably not caused by the JDBC driver; I have tried JTDS first, and then the MS driver (newest versions) - no difference.
One idea was that the sort order is not correct, tried some COLLATE settings, but that didn't help so far. In this context I'd like to know how to determine the collation sequence of a certain column.
Another thing I tried was using CAST, for example SELECT * FROM table WHERE CAST(SUBSTRING(field_1, 37, 7) as bigint) = CAST('1011234' as bigint); or SELECT * FROM table WHERE CAST(SUBSTRING(field_1, 37, 7) as bigint) = CAST(1011234 as bigint);, but that didn't help either.
Some facts:
Server: Microsoft SQL Server, version 09.00.2047
Driver in WinSQL: SQLSRV32.DLL, version 03.85.1117
JDBC-Driver:
- JTDS, version 1.2
- Microsoft SQL Server 2005 JDBC Driver, Version 1.2
JVM: jre1.5.0_11
I didn't find anything on Google, or in this forum, or other forums. I really hope someone here can help me. Thanks in advance!
Best regards,
UicaYour note suggests to me that this is a coding problem, not a JDBC or SQL problem unless you are hitting a bug in the SQL Server JDBC driver. Others may have ideas from what you have written, but I think it would be helpful to see the actual code that you are executing that does not bring back the results that you are expecting (don't forgot to use code tags to format your code correctly).
It might also be helpful to execute a query (from within your Java code) to ensure that you are connecting to the right database, accessing the correct table and that your substring is using the correct offset. The query would look something like this (and then of course display the list of results):
SELECT substring(field_1, 37, 7) from table -
CDC for Oracle Continually goes to Aborted State - SQL Server 2012
I am setting up a test environment for CDC with an Oracle system. I have everything set up to the point where logs are being read and data appears to be getting added to the CDC tables in SQL Server. However, at different times during the day,
the status of the service goes to Aborted and the service is completely stopped. The first time I start the service, it will run for about 1 hour, before it aborts. After that, it only takes 2 or 3 minutes, sometimes less, before this happens again.
Below are the last entries in the log when the instance aborted. Whenever the instance aborts, the last message is always "Reading Complementary records for large log miner SQL_REDO/SQL_UNDO". I'm guessing there's a permission or setting
in Oracle that I'm missing, but I don't know what it is.
Version information:
Oracle: 10.2.0.5.0
CDC Service: SQL Server 2012 SP 1
SQL Server Database Engine: 11.0.3128
record","source","","0xDD070A00170012001C0004000043073800000000000000000626001100F8DD3A00000000061474B6B30100000100012B190000CC8E01340000000000"
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading next record","source","",""
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Enqueue transaction record","source","","0xDD070A00170012001C0004004085163800000000000000000626002F00E2DD3A00000000061474B6B40100000100012B190000CCA201C40000000000"
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading next record","source","",""
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Enqueue transaction record","source","","0xDD070A00170012001C000400C009353800000000000000000026002F00E2DD3A00000000061474B6B50100000100012B190000CCA500A00000000000"
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading next record","source","",""
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Enqueue transaction record","source","","0xDD070A00170012001C000400408E533800000000000000000026001100F8DD3A00000000061474B6B70100000100012B190000CCAF00440000000000"
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading next record","source","",""
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Enqueue transaction record","source","","0xDD070A00170012001C00040080D0623800000000000000000626002D00DBDD3A00000000061474B8780100000100012B19000108B500280000000000"
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading next record","source","",""
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Enqueue transaction record","source","","0xDD070A00170012001C0004000055813800000000000000000626001500E0DD3A00000000061474B8790100000100012B19000108C7003C0000000000"
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading next record","source","",""
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Enqueue transaction record","source","","0xDD070A00170012001C00040080D99F3800000000000000000026001500E0DD3A00000000061474B87A0100000100012B19000108C901140000000000"
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading next record","source","",""
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Enqueue transaction record","source","","0xDD070A00170012001C000400C01BAF3800000000000000000026002D00DBDD3A00000000061474B87C0100000100012B19000108D301540000000000"
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading next record","source","",""
"10/23/2013 6:28:04 PM","TRACE","ETL-BI12-01-T","RUNNING","IDLE","ORACDC000T:Reading Complementary records for large log miner SQL_REDO/SQL_UNDO","source","",""Here are the permissions we have set up on the Oracle side: (Please forgive the poor formatting. The editor wants to remove all of the spaces and add extra carriage returns.)
GRANT
EXECUTE
ON
"SYS"."DBMS_LOGMNR"
TO
"LOGREADER";
GRANT
EXECUTE
ON
"SYS"."DBMS_LOGMNR_D"
TO
"LOGREADER";
grant
select
any
transaction
to
logreader;
GRANT
"CONNECT"
TO
"LOGREADER";
GRANT
select
ON
sys.v_$database
to
"LOGREADER";
GRANT
select
ON
sys.v_$logmnr_contents
to
"LOGREADER";
GRANT
select ON
sys.v_$logmnr_dictionary
to
"LOGREADER";
GRANT
selectONsys.v_$logmnr_logfileto"LOGREADER";
GRANT
selectONsys.v_$logmnr_logsto"LOGREADER";
GRANT
selectONsys.v_$logmnr_parametersto"LOGREADER";
GRANT
selectONsys.v_$logmnr_sessionto"LOGREADER";
GRANT
selectONsys.v_$logmnr_transactionto"LOGREADER";
GRANT
selectONsys.v_$logto"LOGREADER";
GRANT
selectONsys.v_$logfileto"LOGREADER";
GRANT
selectONsys.v_$archived_logto"LOGREADER";
GRANT
select
ON
sys.dba_registry
to
"LOGREADER";
GRANT
select
ON
sys.v_$instance
to
"LOGREADER";
GRANT
select
ON
sys.v_$thread
to
"LOGREADER";
GRANT
select
ON
sys.v_$parameter
to
"LOGREADER";
For each table we want to capture changes on, select rights have been granted to this user, as well. -
Check for all the dependencies of a particular SQL Server Login in SQL Server 2008R2.
I have to alter a SQL Server Login credentials. Before altering it I have to research that where is this login is being used currently. How to determine all the places where it is being used for? Thanks in advance.
PGuptaI have to alter a SQL Server Login credentials. Before altering it I have to research that where is this login is being used currently. How to determine all the places where it is being used for? Thanks in advance.
PGupta
Find out database to which this login is mapped.If its sysadmin login I guess it won't be used in application unless you dont follow security practices.Shoot a mail to application owners,all application owners.Inform them take permission from them to change
it.
This is not a exact solution but will save you from fingers getting pointed at you.because you already informed every body.
I guess there is no perfect way to find. If somebody can point I will be happy
Edit:You can configure login auditing from using below link and can check errorlog for details.Make it for both successful and failed login.Failed logins messages in errorlog has IP associated with them as well.So enough for you to guess
http://msdn.microsoft.com/en-us/library/ms175850.aspx
Please mark this reply as the answer or vote as helpful, as appropriate, to make it useful for other readers -
Hello,
Can Cisco LMS monitor and report on ACE module probes.
Thanks.yes, as imported MIBs.
ACE appliance 3.x currently supports more SNMP OIDs for the probes than does the ACE module 2.x, but will ACE module 2.3 due by Q4CY09, they will both have same capabilities for probes monitoring.
See:
TableName:cslbxProbeCfgTable
cslbxProbeState
INDEX: slbEntity, cslbxProbeName
For Probe State per Probe Name.
cslbxProbeState can have two values ACTIVE and INACTIVE
As part of reporting probe statistics per RServer the following OIDs will be added in the cesRServerProbeTable in CISCO-ENHANCED-SLB-MIB
Table Name:cesRserverProbeTable
cesRserverProbesPassed
cesRserverProbesFailed
cesRserverProbeHealthMonState
INDEX: Probe Name, RServerProbe Statistics per RServer (configured probe).
This will display stats based on Probe Name per Rserver (Rservers are physical devices not associated with any server farm). Stats generated when probe is associated to a rserver.
Table Name: cesRealServerProbeTable
cesRealServerProbeName
cesRealServerProbeStorageType
cesRealServerProbeRowStatus
INDEX: Probe Name, Server Farm Name,Real Server Name, Real Server Port
Represents a probe associated with a real server directly. For example the following configuration adds an entry to the table.
As part of reporting probe statistics for probes that are assigned to real server/server farm the following table with the OIDs will be added in CISCO-SLB-HEALTH-MON-MIB
cshMonServerfarmRealProbeStatsTable: (New Table)
cshMonServerfarmRealPassedProbes
cshMonServerfarmRealFailedProbes
cshMonServerfarmRealProbeHealthMonState
INDEX:Probe Name, Server Farm Name,Real Server Name, Real Server Port ,Inherited Port
Statistics for probes assigned to real server/serverfarm
Maybe you are looking for
-
My iPhone, when I click on '(name)iPhone, It doesn't take me to the settings, the storage, usage music etc. it just stays on the previous tab I was on, how do I actually get to my iPhone settings, i can't find an answer anywhere! It works with my iPo
-
Transfer playlists from my ipod classic to my computer
When I bought a new computer my library got transferred but not my playlists. I cannot drag or populate a new playlist on my computer from the playlist on my ipod. How can I do this?
-
Says PM where signal bars should be?
On the main screen at the top it has PM (where the signal bars should be), the battery percentage (where the time should be) and nothing to the right... When I open safari, everything is back to normal at the top. When I go back to main screen it's t
-
Using the wish list inside the app store
The "wish list" feature in the App Store is great. It's a bookmark, when it comes down to it. The feature works today and darned if I cannot find a place to find it. My bookmarks have fallen to the cutting room floor and appear like a needle in a
-
Hopefully simple newbie question
Hi, I just started using NetBeans 5.5 and Java in general. I have a created a .jar stand alone program that works fine. I created it from a general project in NetBeans. I would now like to "deploy" this program via the web somehow so other people can