SQL Server restore (mdf'den)
SQL Server restore (mdf'den)
Merhaba,
SQL Server 7.0 veritabanının sadece mdf ve ldf (data ve log) 2 tane dosyası var. Bunları nasıl restore edebilirim?
Benim aklımda sp_attach_db diye kalmış, akşam yardımında verdiği şekillerin hepsini denedim ama olmadı. Header bozuk hatası veriyor. Daha önce yapan oldu mu?
Kolay gelsin.
SQL Server 7.0 veritabanının sadece mdf ve ldf (data ve log) 2 tane dosyası var. Bunları nasıl restore edebilirim?
Benim aklımda sp_attach_db diye kalmış, akşam yardımında verdiği şekillerin hepsini denedim ama olmadı. Header bozuk hatası veriyor. Daha önce yapan oldu mu?
Kolay gelsin.
Selamlar,
MS-SQL Server 7'de bu işlem olmuyor ama şunu bir denesen olacak mı diye düşünüyorum.
Enterprise Manager'dan aynı isimli bir DB create edip. Daha sonra SQL Server'ı stop edip, yeni oluşturduklarının üzerine Eskilerini kopyalasan. Bir nevi Server'ı aldatmak gibi düşün. Ben bu tarz bir işlemi 2000'de yapmıştım yedi. Sonra Start ettiğinde kabul etti. Belki 7'de de yer
Kolay Gelsin.
MS-SQL Server 7'de bu işlem olmuyor ama şunu bir denesen olacak mı diye düşünüyorum.
Enterprise Manager'dan aynı isimli bir DB create edip. Daha sonra SQL Server'ı stop edip, yeni oluşturduklarının üzerine Eskilerini kopyalasan. Bir nevi Server'ı aldatmak gibi düşün. Ben bu tarz bir işlemi 2000'de yapmıştım yedi. Sonra Start ettiğinde kabul etti. Belki 7'de de yer

Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
Selam,
Tam olarak yapmak istediğinizi yazın. Aslında size tavsiyem şu olur. Ben öyle yapıyorum. MS-SQL Serverda herhangi tuhaf bir şeyin nasıl yapıldığını merak ediyorsanız (yani enterprise manager'dan yaptığınız bir şeyi) MS-SQL server nasıl yapar diye merak ettiğinizde hemen şu yönetmi izleyin.
SQL Profiler'ı açın, orda bir trace başlatın. Sonra dönüp Enterprise manager'da işleminizi manuel gerçekleştirin. Sonra profiler'daki trace'i stop edin ve tuttuğu logları inceleyin.
Orda çok şey görüp algılayacaksınız.
Kolay Gelsin
Tam olarak yapmak istediğinizi yazın. Aslında size tavsiyem şu olur. Ben öyle yapıyorum. MS-SQL Serverda herhangi tuhaf bir şeyin nasıl yapıldığını merak ediyorsanız (yani enterprise manager'dan yaptığınız bir şeyi) MS-SQL server nasıl yapar diye merak ettiğinizde hemen şu yönetmi izleyin.
SQL Profiler'ı açın, orda bir trace başlatın. Sonra dönüp Enterprise manager'da işleminizi manuel gerçekleştirin. Sonra profiler'daki trace'i stop edin ve tuttuğu logları inceleyin.
Orda çok şey görüp algılayacaksınız.
Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
http://www.experts-exchange.com/Program ... 91981.html bu işine yararayabilir
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
number one arkadaşın verdiği adrese girdim ordakiler işe yarayacak gibi gözüküyor ama ben bir türlü düzenleyemedim hep bişeyler eksik kalıyor
If you have Enterprise manager (SQL Server tools) installed on the machine, you may activate any Enterprise Manager function or menu from within your appliction using SQLNS and SQLDMO.
The good thing is it is easy to make backup as well as restore since it works exactly the same way as using the Enterprise manager. The downside is it will only work if the tools are installed on the client machine.
1) Choose project, Import typelibrary.
2) Look for "Microsoft SQLNamespace Object Library" in the list.
3) Choose install or create unit depending on if you want it as a component or just access using TLB unit as I have.
4) Include SQLNS.pas in uses of your unit.
5) Now do the same 4 steps with "Microsoft SQLDMO Object library" (SQLDMO.pas)
First operation is then to connect to the SQL server...
uses
SQLNS, SQLDMO;
var
FNameSpace:SQLNamespace; // This one needs to be global or part of class as it needs to be accessed by other functions.
var
ConString:OLEVariant;
Hnd:Integer;
FServerName, FPass, FUser: String;
// strings are to be assigned with the password, username and servername to then make part of connection string...
ConString:='Server='+FServerName+';UID='+FUser+';PWD='+FPass+';Trusted_Connection=No';
// The connect operation also requires a window handle. As I had this call within a component I used the one below. If you have a form then Hnd:=Form.Handle instead.
Hnd:=(Owner as TWinControl).Handle;
// Now make the connection...
FNameSpace:= CoSQLNamespace.Create;
FNameSpace.Initialize(FAppName,SQLNSRootType_Server,ConString,Hnd);
// Include the function below to navigate easy in the namespace...
function GetDBNameSpaceObject(
const aDBName: String): SQLNamespaceObject;
var
hServer,hDatabases,hDatabase:Integer;
begin
Result:=nil;
hServer:=FNameSpace.GetRootItem;
hDatabases:=FNameSpace.GetFirstChildItem(hServer,SQLNSOBJECTTYPE_DATABASES,'');
hDatabase:=FNameSpace.GetFirstChildItem(hDatabases,SQLNSOBJECTTYPE_DATABASE,aDBName);
Result:=FNameSpace.GetSQLNameSpaceObject(hDatabase);
end;
// Now you may use this function to activate the "database backup menu" for a particular database on the server...
procedure ShowBackupDB(const aDBName: String);
var
DB:SQLNamespaceObject;
Hnd:Integer;
begin
Hnd:=(Owner as TWinControl).Handle;
DB:=GetDBNameSpaceObject(aDBName);
DB.ExecuteCommandByID(SQLNS_CmdID_DATABASE_BACKUP,Hnd,0);
DB:=nil;
end;
baştakileri uyguladım companent şeklinde(SQLLNS ve SQLDMO) onlar tamam ama kodlarda bi yerlerde karıştırıyorum bir türlü toparlayamıyorum birisi lütfen düzenleyebilrimi yardımcı olursanız çok sevinirim
If you have Enterprise manager (SQL Server tools) installed on the machine, you may activate any Enterprise Manager function or menu from within your appliction using SQLNS and SQLDMO.
The good thing is it is easy to make backup as well as restore since it works exactly the same way as using the Enterprise manager. The downside is it will only work if the tools are installed on the client machine.
1) Choose project, Import typelibrary.
2) Look for "Microsoft SQLNamespace Object Library" in the list.
3) Choose install or create unit depending on if you want it as a component or just access using TLB unit as I have.
4) Include SQLNS.pas in uses of your unit.
5) Now do the same 4 steps with "Microsoft SQLDMO Object library" (SQLDMO.pas)
First operation is then to connect to the SQL server...
uses
SQLNS, SQLDMO;
var
FNameSpace:SQLNamespace; // This one needs to be global or part of class as it needs to be accessed by other functions.
var
ConString:OLEVariant;
Hnd:Integer;
FServerName, FPass, FUser: String;
// strings are to be assigned with the password, username and servername to then make part of connection string...
ConString:='Server='+FServerName+';UID='+FUser+';PWD='+FPass+';Trusted_Connection=No';
// The connect operation also requires a window handle. As I had this call within a component I used the one below. If you have a form then Hnd:=Form.Handle instead.
Hnd:=(Owner as TWinControl).Handle;
// Now make the connection...
FNameSpace:= CoSQLNamespace.Create;
FNameSpace.Initialize(FAppName,SQLNSRootType_Server,ConString,Hnd);
// Include the function below to navigate easy in the namespace...
function GetDBNameSpaceObject(
const aDBName: String): SQLNamespaceObject;
var
hServer,hDatabases,hDatabase:Integer;
begin
Result:=nil;
hServer:=FNameSpace.GetRootItem;
hDatabases:=FNameSpace.GetFirstChildItem(hServer,SQLNSOBJECTTYPE_DATABASES,'');
hDatabase:=FNameSpace.GetFirstChildItem(hDatabases,SQLNSOBJECTTYPE_DATABASE,aDBName);
Result:=FNameSpace.GetSQLNameSpaceObject(hDatabase);
end;
// Now you may use this function to activate the "database backup menu" for a particular database on the server...
procedure ShowBackupDB(const aDBName: String);
var
DB:SQLNamespaceObject;
Hnd:Integer;
begin
Hnd:=(Owner as TWinControl).Handle;
DB:=GetDBNameSpaceObject(aDBName);
DB.ExecuteCommandByID(SQLNS_CmdID_DATABASE_BACKUP,Hnd,0);
DB:=nil;
end;
baştakileri uyguladım companent şeklinde(SQLLNS ve SQLDMO) onlar tamam ama kodlarda bi yerlerde karıştırıyorum bir türlü toparlayamıyorum birisi lütfen düzenleyebilrimi yardımcı olursanız çok sevinirim
Allah'ım bana değiştirebileceklerimi değiştirme değiştiremeyeceklerimi kabullenme ve aradaki farkı anlayabilme yeteneği ver
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
arkadaşlar yukarıda yazdığımdan çok daha kolay bir mdf geri yükleme yöntemi tam istediğim gibi oluyor mdf leri kolayca restore yapabilrsiniz SQL server ın attachkomutunu program içinde çalıştırıyor
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
arkadaşlar yukarıda yazdığımdan çok daha kolay bir mdf geri yükleme yöntemi tam istediğim gibi oluyor mdf leri kolayca restore yapabilrsiniz SQL server ın attachkomutunu program içinde çalıştırıyor
Allah'ım bana değiştirebileceklerimi değiştirme değiştiremeyeceklerimi kabullenme ve aradaki farkı anlayabilme yeteneği ver
- emrahkaraarslan
- Üye
- Mesajlar: 243
- Kayıt: 21 Haz 2005 12:28
- Konum: Trabzon
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
arkadaşlar yukarıda yazdığımdan çok daha kolay bir mdf geri yükleme yöntemi tam istediğim gibi oluyor mdf leri kolayca restore yapabilrsiniz SQL server ın attachkomutunu program içinde çalıştırıyor
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
arkadaşlar yukarıda yazdığımdan çok daha kolay bir mdf geri yükleme yöntemi tam istediğim gibi oluyor mdf leri kolayca restore yapabilrsiniz SQL server ın attachkomutunu program içinde çalıştırıyor
Allah'ım bana değiştirebileceklerimi değiştirme değiştiremeyeceklerimi kabullenme ve aradaki farkı anlayabilme yeteneği ver
-
- Kıdemli Üye
- Mesajlar: 1026
- Kayıt: 11 Şub 2005 02:12
- Konum: İstanbul