Forum

SQL 2000 den SQL 20...
 
Bildirimler
Hepsini Temizle

SQL 2000 den SQL 2005 upgrade

8 Yazılar
5 Üyeler
0 Likes
429 Görüntüleme
(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

Sql 2000 üzerinde micro ve web database'leri barındırıyoruz.SQL 2005 upgrade etmeden önce 

1 - Master database restore edersem kullanıcı yetkileri ve database'ler gelirmi?

2 - 2000  'den 2005 yukseltme yaparken 2000SE ise 2005 temi SE olmalı.

3 - 2000 'den 2005 'e upgrade'ye sorun yaşayan varmı?

4 - Upgrade yöntemi hakkında fikir verebilirmisiniz? 

 
Gönderildi : 04/01/2010 12:24

(@sinankahraman)
Gönderiler: 5225
Illustrious Member
 

Micro naslı kuruldu bilemiyorum ama normalde SQL 2000 ni kaldırın 2005 kurun. Daha sonra Micronun çalıştığı ana dizindeki dataları SQL 2005 e attach edin. Kullanıcıları yaratın ve gerekli izinleri verin. Bu kadar. Hatta datalarınızın boyutu 4 GB tı geçmiyorsa SQL 2005 Express bile kullanabilirisiniz.

 
Gönderildi : 04/01/2010 12:52

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

sinan bey cevap için teşekkür ederim.

2000 üzerindeki master database'i backup tan 2005 'e geri dönersem izinler ve kullanıcılar gelirmi peki

çünkü sql 2000 deki kullanıcıları ve izinleri ben açmadım yetkilendirmede sıkıntı olmasından çekiniyorum.Ayrıca sql üzerinde çalışan web site database'de mevcut.

Teşekkürler. 

 
Gönderildi : 04/01/2010 15:30

(@orhanakdogan)
Gönderiler: 311
Reputable Member
 

Merhaba, taşıdığınız db de aşağıdaki sorguyu çalıştırarak kullanıcılarla çalışmaya devam edebilirsiniz.

if exists(select * from tempdb..sysobjects where id =
object_id('tempdb..#fixlenecek_userlar'))
drop table #fixlenecek_userlar

CREATE TABLE #fixlenecek_userlar ( [name] sysname)

INSERT #fixlenecek_userlar ( [name] )
SELECT [name] from sysusers where status = 2 and name <> 'dbo' order by name

declare @lc_name sysname

SET @lc_name = (SELECT MIN([name]) FROM #fixlenecek_userlar)
WHILE @lc_name IS NOT NULL
BEGIN
IF exists(select * FROM master..syslogins WHERE [name] = @lc_name)
EXEC sp_change_users_login 'AUTO_FIX', @lc_name
else
PRINT @lc_name+' fix olmadıı..'

SET @lc_name = (SELECT MIN([name]) FROM #fixlenecek_userlar WHERE [name] >
@lc_name )
END

 
Gönderildi : 05/01/2010 05:36

(@orhanakdogan)
Gönderiler: 311
Reputable Member
 

yada eski SQL server ayakta ise hala;

Kullanıcıları taşımak amacıyla
( http://support.microsoft.com/kb/246133 sayfasında anlatılan )
aşağıdaki işlemleri yapıyoruz sırayla,

--------sp_hexadecimal ismindeki sp eğer yoksa yaratılıyor(Eski SQL sunucusunda çalıştırılacak)-------------------

USE master
GO
IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
  DROP PROCEDURE sp_hexadecimal
GO
CREATE PROCEDURE sp_hexadecimal
    @binvalue varbinary(256),
    @hexvalue varchar(256) OUTPUT
AS
DECLARE @charvalue varchar(256)
DECLARE @i int
DECLARE @length int
DECLARE @hexstring char(16)
SELECT @charvalue = '0x'
SELECT @i = 1
SELECT @length = DATALENGTH (@binvalue)
SELECT @hexstring = '0123456789ABCDEF'
WHILE (@i <= @length)
BEGIN
  DECLARE @tempint int
  DECLARE @firstint int
  DECLARE @secondint int
  SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
  SELECT @firstint = FLOOR(@tempint/16)
  SELECT @secondint = @tempint - (@firstint*16)
  SELECT @charvalue = @charvalue +
    SUBSTRING(@hexstring, @firstint+1, 1) +
    SUBSTRING(@hexstring, @secondint+1, 1)
  SELECT @i = @i + 1
END
SELECT @hexvalue = @charvalue
GO

--------sp_help_revlogin ismindeki sp eğer yoksa yaratılıyor(Eski SQL sunucusunda çalıştırılacak)-------------------

IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
  DROP PROCEDURE sp_help_revlogin
GO
CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
DECLARE @name    sysname
DECLARE @xstatus int
DECLARE @binpwd  varbinary (256)
DECLARE @txtpwd  sysname
DECLARE @tmpstr  varchar (256)
DECLARE @SID_varbinary varbinary(85)
DECLARE @SID_string varchar(256)

IF (@login_name IS NULL)
  DECLARE login_curs CURSOR FOR
    SELECT sid, name, xstatus, password FROM master..sysxlogins
    WHERE srvid IS NULL AND name <> 'sa'
ELSE
  DECLARE login_curs CURSOR FOR
    SELECT sid, name, xstatus, password FROM master..sysxlogins
    WHERE srvid IS NULL AND name = @login_name
OPEN login_curs
FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
IF (@@fetch_status = -1)
BEGIN
  PRINT 'No login(s) found.'
  CLOSE login_curs
  DEALLOCATE login_curs
  RETURN -1
END
SET @tmpstr = '/* sp_help_revlogin script '
PRINT @tmpstr
SET @tmpstr = '** Generated '
  + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
PRINT @tmpstr
PRINT ''
PRINT 'DECLARE @pwd sysname'
WHILE (@@fetch_status <> -1)
BEGIN
  IF (@@fetch_status <> -2)
  BEGIN
    PRINT ''
    SET @tmpstr = '-- Login: ' + @name
    PRINT @tmpstr
    IF (@xstatus & 4) = 4
    BEGIN -- NT authenticated account/group
      IF (@xstatus & 1) = 1
      BEGIN -- NT login is denied access
        SET @tmpstr = 'EXEC master..sp_denylogin ''' + @name + ''''
        PRINT @tmpstr
      END
      ELSE BEGIN -- NT login has access
        SET @tmpstr = 'EXEC master..sp_grantlogin ''' + @name + ''''
        PRINT @tmpstr
      END
    END
    ELSE BEGIN -- SQL Server authentication
      IF (@binpwd IS NOT NULL)
      BEGIN -- Non-null password
        EXEC sp_hexadecimal @binpwd, @txtpwd OUT
        IF (@xstatus & 2048) = 2048
          SET @tmpstr = 'SET @pwd = CONVERT (varchar(256), ' + @txtpwd + ')'
        ELSE
          SET @tmpstr = 'SET @pwd = CONVERT (varbinary(256), ' + @txtpwd + ')'
        PRINT @tmpstr
    EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
        SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
          + ''', @pwd, @sid = ' + @SID_string + ', @encryptopt = '
      END
      ELSE BEGIN
        -- Null password
    EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
        SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name
          + ''', NULL, @sid = ' + @SID_string + ', @encryptopt = '
      END
      IF (@xstatus & 2048) = 2048
        -- login upgraded from 6.5
        SET @tmpstr = @tmpstr + '''skip_encryption_old'''
      ELSE
        SET @tmpstr = @tmpstr + '''skip_encryption'''
      PRINT @tmpstr
    END
  END
  FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
  END
CLOSE login_curs
DEALLOCATE login_curs
RETURN 0
GO

--Aşağıdaki sorgunun sonucunu bir dosyaya kaydediyoruz, (Eski SQL sunucusunda çalıştırılacak)----
--User yaratma sql cümleciğini oluşturma sql i.---------

EXEC master..sp_help_revlogin

Evet son olarak kaydettiğimiz dosyadaki user yaratma sql ini çalıştırıyoruz.
(Yeni SQL sunucusunda çalıştırılacak)

 
Gönderildi : 05/01/2010 05:51

(@Anonim)
Gönderiler: 0
Konu başlatıcı
 

bilgi için teşekkürler.

 
Gönderildi : 05/01/2010 11:02

(@canserce)
Gönderiler: 67
Estimable Member
 

http://www.netsis.com.tr/Dokumanlar/7_Destek/2_dokumanlar/SQL2005_UPGRADE.pdf


burda resimli ve ayrıntılı olarak upgrade işlemi anlatılıyor gayet kolay

 
Gönderildi : 12/02/2010 02:21

(@miracatmis)
Gönderiler: 317
Honorable Member
 

Bu probleme benzer benimde bir sorum olacak Win Server 2008 Standart kurulu server üzerine SQL 2005 Standard kurulumu yapıp 

Winxp pro makine üzerindeki logo shop manager programını server 2008 üzerine taşımak istiyorum  bu durumda veri kabı yaşarmıyım alanlarda sorun olurmu 

 
Gönderildi : 17/02/2010 14:38

Paylaş: