gen
10
2007

Copia di un db sql 2000 su un nuovo server

Mi è capitato di dover migrare un db sql 2000 su una macchina diversa a causa di un upgrade generazionale. Riporto la procedura utilizzata:

1. Se possibile mettere il db offline (bisogna assicurarsi che non vi siano connessioni aperte), ovvero eseguire
  USE master EXEC sp_dboption 'dbname', 'offline', 'true' (false lo riporta online)

2. fare la copia dei file MDF dei dati e LDF del log delle transizioni sul server sql dove si vuole migrare la base dati

3. recuperare ID e password crittografata relative agli utenti da migrare ovvero eseguire 
  USE dbname select sid from sysusers where name = 'dbusername'
  USE master select convert( varbinary(32), password ) from syslogins where name = 'dbusername'
si ottengono due valori simili a questi riportati a titolo di esempio:
  0x25C6094E9D2FB44E833414C4EC8997F9
  0x01009466105F269966DDE90E6202EB376778EC61643339B7F2880F8AB2088597


4. creare i nuovi utenti sul nuovo server dati il SID e la PWD crittografa ottenuta al passo precedente ovvero eseguire:
  USE master exec sp_addlogin @loginame = 'userdbname' , @passwd = 0x01009466105F269966DDE90E6202EB376778EC61643339B7F2880F8AB2088597, @sid = 0x25C6094E9D2FB44E833414C4EC8997F9, @encryptopt = 'skip_encryption'

5. eseguire l'attach del db (senza creazione preventiva del db) sul nuovo server ovvero eseguire 
  sp_attach_db @dbname = 'dbname', @filename1 = '<path_su_disco\<nome_file_dati.mdf', @filename2 = '<path_su_disco\<nome_file_log.ldf'

6. se necessario modificare il db di default per gli utenti migrati ovvero eseguire 
  sp_defaultdb @loginame = 'dbusername', @defdb = 'dbname'

Add comment

biuquote
  • Comment
  • Preview
Loading

Recent Tweets

Note: For Customization and Configuration, CheckOut Recent Tweets Documentation