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.
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.
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 ‘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
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..
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
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.
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..
Â
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.