arÅŸiv

‘Sql Server’ kategorisi için arÅŸiv

Sql Server 2005 Kurulumunda MSXML 6 hatası..

Çarşamba, 25 Ağu 2010 yorum yok

Merhaba,
Dün başıma gelen bir problemin çözümünü sizlere anlatayım.Konu ile ilgili pek kaynak bulunmamakta.

Sql Server 2005 Express kurarken kurulum ekranında MSXML 6 ‘da hata verip kurulum iÅŸlemini gerçekleÅŸtirmiyordu.Bilgisayarda Service Pack 3 kurulu oldugundan dolayı MSXML6 üzerinde deÄŸiÅŸiklik iÅŸlemi yapılamıyor ya Service Pack 3′ü kaldırmanız ondan sonra Sql server 2005 Express’i kurmanız gerekiyor ama service pack 3 ü kaldırmak uzun iÅŸ kim uÄŸraşıcak : )

Onun yerine Windows Installer CleanUp Utility isimli tool indirip MSXML 6′yı kaldırmanız gerekiyor.Daha sonra Sql Server 2005′i rahat bir ÅŸekilde kurabiliyorsunuz.

Sql Server Standart Edition Kurdunuz ama Management Studio Yok..

Çarşamba, 28 Tem 2010 yorum yok

Bugun ÅŸirkette başıma geldi bir arkadaşım bir müşterimize Sql server Standart Edition KurmuÅŸ ama içerisinde Sql Server management studio yoktu ve dolayısıyla Agent hizmetini kullanarak maintenance plans oluÅŸturudup database yedekleme hazırlayamıyordum..  Sql server’ı tekrar kurmayı önerirler genelde ama onun yerine denetim masasında sql server 2005′i seçip kaldır diyip gelen ekrandan sadece Workstation Components seçip kaldırıyoruz.

Kaldırdıktan sonra SQL Server 2005 CD sindeki, kurduğumuz sürüme göre  SQL Server x86\Tools klasöründeki Setup çalıştırıp tekrar kuruyoruz.

SQL Server Management Studio geliyor.

Yukarıdaki bahsetmiş olduğum durum bazende Visual Studio 2008 ya da Visual Studio 2005 kurulumu yaptıktan sonra da başınıza gelebilir yine yukarıdaki işlemleri uygularsanız probleminiz kalmayacaktır.

Sql Server’daki Tüm Database’lerin YedeÄŸini Store Procedure ile Alın

PerÅŸembe, 08 Tem 2010 yorum yok
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
IF EXISTS (SELECT NAME FROM sysobjects WHERE NAME = 'BackupAllDBs' AND type = 'P')
	DROP PROCEDURE BackupAllDBs
GO
 
CREATE PROCEDURE BackupAllDBs
	@backup_location VARCHAR(256)
AS
BEGIN
 
	DECLARE @DBName VARCHAR(30)
	DECLARE @BackupFileName VARCHAR(256)
 
	IF @backup_location IS NULL OR LEN(RTRIM(@backup_location)) = 0
		SET @backup_location = 'C:/'
 
	DECLARE DBBackup_Cursor CURSOR FOR
		SELECT NAME FROM master.dbo.sysdatabases
		WHERE NAME NOT IN ('master','model','msdb','tempdb')  
 
	OPEN DBBackup_Cursor
	FETCH NEXT FROM DBBackup_Cursor INTO @DBName
 
	WHILE @@FETCH_STATUS = 0
	BEGIN
	       SET @BackupFileName = @backup_location + @DBName + '_' + CONVERT(VARCHAR(20),GETDATE(),112) + '.BAK'
	       BACKUP DATABASE @DBName TO DISK = @BackupFileName
	       FETCH NEXT FROM DBBackup_Cursor INTO @DBName
	END
 
	CLOSE DBBackup_Cursor
	DEALLOCATE DBBackup_Cursor
END
GO

Yukarıkaki Kod Blogu Sedat Salman Hocamız tarafından paylaşılmış.Bende gördüm Paylaşayım Dedim.Şimdi Ben Buradaki Olayın devamlılığını biraz daha açıklayayım..

Sql Server’a BaÄŸlanın ve New Query diyerek yukarıdaki sorguyu yazın amma öncelikle USE [DatabaseAdı] nı kullanınki O database’in altına atasın bu store Procedure’yi..

Daha sonra yapacağınız iÅŸ Yeni bir Job hazırlamak ve Job kısmında T-Sql kısmına execdbo.BackupAllDBs ‘C:\’ ÅŸeklinde bir parametre ile kullanın ve zamanlandırın bu iÅŸlemi..
İyi Çalışmalar..
Teşekkürler Sedat Hocam

MSSQL Server Jobları Hakkında

PerÅŸembe, 01 Tem 2010 yorum yok

MsSQL Server ‘da çalışan joblarla ilgili bilgi veren stored procedure’ler olduÄŸunu biliyor muydunuz?
Bu procedureler sp_help_job ve xp_sqlagent_enum_jobs olarak iki tane.

sp_help_job : Bu proceure çalıştırılınca joblarla ilgili bilgileri görebiliyorsunuz ancak bu procedure’un çıktısını herhangi bir tabloya insert edemiyorsunuz çünkü engellenmiÅŸ:)

Kullanımı oldukça basit:

  • Åžu anda çalışır durumdaki joblar için:
    exec msdb.dbo.sp_help_job @execution_status = 1
  • Tüm joblarla ilgili görüntülemek için:
    exec msdb.dbo.sp_help_job
  • Adını belirttiÄŸiniz jobla ilgili bilgiler için:
    exec msdb.dbo.sp_help_job @job_name = ‘JobAdi’

    xp_sqlagent_enum_jobs :Bu proceure çalıştırılınca joblarla ilgili bilgileri görebiliyorsunuz ve dönen result seti de bir tabloya insert edebiliyorsunuz.

    CREATE TABLE #JobBilgileri
    (
    JobID UNIQUEIDENTIFIER NOT NULL
    , LastRunDAte INT not null
    , LastRunTime INT not null
    , NextRunDate INT not null
    , NextRunTime INT not null
    , NextRunScheduleID INT not null
    , RequestedToRun INT not null
    , RequestSource INT not null
    , RequestSourceID varchar(100)
    , Running INT not null
    , CurrentStep INT not null
    , CurrentRetryAttempt INT not null
    , JobState INT not null
    )

    insert into #JobBilgileri
    exec master.dbo.xp_sqlagent_enum_jobs 1, JobSahibininAdi


    Tüm job bilgileri için
    :
    select j.* from #JobBilgileri j

    Şu anda çalışan joblar için:
    select s.name,j.* from #JobBilgileri j
    inner join msdb.dbo.sysjobs s on s.job_id = j.JobID
    where j.running = 1

    Şu anda çalışmayan joblar için:
    select s.name,j.* from #JobBilgileri j
    inner join msdb.dbo.sysjobs s on s.job_id = j.JobID
    where j.running = 0

  • SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems

    Cuma, 25 Haz 2010 yorum yok

    Az önce başıma gelen bir problemdi kendisi.. instance kurulan bir sql hizmeti çalıştırmak istediÄŸimde çalışıtırıp tekrar hizmeti durduruyordu otomatik olarak.. sebebine baktığımda Olay görüntüleyecisinden “SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems” bu tarz bir error yazmaktaydı. Hemen google amcaya durumu sorduÄŸumda bana Ekrem ÖNSOY hocamızın blogundaki yazıyı çıkarttı.inceledim orada antivirüs programının yapılandırılmasından bahsediyordu ama bende çalışan mevcut default kurulmuÅŸ instance’ı stoplayın yeni instance’ı start ettiÄŸimde problem düzeldi. Yani sanırım sorun su idi Mevcut calısan bir Sql Server hizmeti var iken Antivirüs programı ikinci hizmeti yada ikinci hizmet için atanan portu kabul etmiyordu. Karısık ama Sorunu çözdüm.. Sizlerede durumu anlatayım istedim.

    İyi Günler İyi Çalışmalar..

    Sql Azure Nedir ?

    Cumartesi, 19 Haz 2010 yorum yok

    Cloud computing kavramı ve Windows Azure platformundan sonra SQL Server ın yeni versiyonu olarak ortaya çıkan SQL Azure Database, SQL Server sisteminin Microsoft tarafından host edilen cloud based versiyonudur.

    SQL Azure sayesinde geliştiriciler herhangi bir yazılım kurmak yada güncellemek zorunda kalmazlar yada sistemi korumak için High Availability veya Disaster Recovery sistemleri oluşturmak zorunda kalmazlar.

    Şu anda Microsoft iki farklı SQL Azure versiyonu için satış yapmakta.

    • Web Edition : 1GB Database (Aylık $9.99)
    • Business Edition : 10GB Database (Aylık $99.99)

    Detaylı Bilgi İçin

    Kaynak : Sedat Salman

    Categories: Sql Server Tags: ,

    T-SQL kodları ile Database yedeğini alın..

    Çarşamba, 16 Haz 2010 yorum yok

    Evet Sql Server’da new query diyerek back’up almanızı saÄŸlayacak kodlar..

    1
    2
    
    BACKUP DATABASE [SENTEZ2] TO  DISK = N'C:\Backup\SENTEZ2.bak' WITH NOFORMAT, NOINIT,  NAME = N'SENTEZ2-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
    GO

    Misalen ben yukarıda SENTEZ2 isimli veritabanımın yedeğini C:\Backup klasörünün içine SENTEZ2.bak olarak aldım.

    Unable to open the physical file “xxx.mdf”. Operating system error 5: “5(failed to retrieve text for this error. Reason: 15105

    Salı, 15 Haz 2010 yorum yok

    “Unable to open the physical file “xxx.mdf”. Operating system error 5: “5(failed to retrieve text for this error. Reason: 15105)”. (Microsoft SQL Serv

    HATA MESAJI:
    “Unable to open the physical file “xxx.mdf”. Operating system error 5: “5(failed to retrieve text for this error. Reason: 15105)”. (Microsoft SQL Server, Error: 5120)”

    AÇIKLAMA:
    SQL Server Management Studio (SSMS) kullanarak bir veritabanını iliştirmek (attach) istediğinizde böyle bir hata mesajı ile karşılaşabilirsiniz.

    ÇÖZÜM:
    Bu hatanın, UAC (User Access Control) özelliğinin etkin olduğu Windows Vista işletim sistemlerindeyken alındığını gördüm.

    Bu hata mesajını almadan veritabanınızı SQL Server Instance’ ınıza SSMS ile eklemek için SSMS’ i açacağınız zaman SSMS simgesi üzerindeyken farenin saÄŸ tuÅŸuna tıklayıp “Yönetici olarak çalıştır” (Run as Administrator) öğesini seçerek açmanız gerekiyor.

    Ya da, UAC özelliÄŸini etkisiz (disable) hale getirirseniz, SSMS’ i yönetici olarak çalıştırmadan da bu hata mesajından sıyrılabilirsiniz.

    Kaynak : Ekrem Önsoy

    Sql Server da RAND() ile rastgele sayı olusturma

    Çarşamba, 02 Haz 2010 yorum yok
    DECLARE @MIN int ;
    DECLARE @MAX int ;
    set @MIN = 1 ;
    set @MAX = 1000;
    SELECT ROUND(((@MAX - @MIN -1) * RAND() + @MIN), 0)
     
     Bu Şekilde Sql Server da Rastgele Sayılar üretebilirsiniz..

     

    Sql Server 2008 Trial’den çıkartın

    Salı, 01 Haz 2010 yorum yok

    Buradan 

    SQL Server 2008′in 180 günlük deneme sürümünü (trial / evaluation) indirdiniz ve denemeler yapmak veya projelerinizi geliÅŸtirmek için kullandınız. Ancak 180 gün dediÄŸin çabucak geçiyor, SQL Server 2008′i kullanmaya devam etmek için tam sürüme (full / lisanslı) geçiÅŸ yapmak gerekiyor.

    Bu kadar çalışma yaptık üzerinde, belki de projemizi deneme sürümüyle yayına bile aldık. Deneme sürümünü kaldırmadan tam sürüme geçme şansımız yok mu? Yoksa aldığımız lisansla baştan kurmamız mı gerekecek?

    Neyse ki, Microsoft bu iÅŸe çözüm bulmuÅŸ ve kaldırıp tekrar kurmadan deneme sürümünden tam sürüme geçiÅŸ imkanı saÄŸlamış. Bunun için SQL Server 2008 kurulum DVD’sini takıp komut satırından aÅŸağıdaki kodu girmek yeterli :

    setup /q /ACTION=editionupgrade /INSTANCENAME=MSSQLSERVER /PID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

    MSSQLSERVER
    parametresinin yerine SQL Server’ı farklı bir instance ile kurduysanız o instance adını, PID bölümünde ise alınan lisans ile verilen lisans anahtarını yazmak gerekiyor.

    Bu komut ile aynı zamanda Standart Edition’dan Enterprise Edition’a geçiÅŸ gibi sürüm yükseltme iÅŸlemlerini de yapmak mümkün.