otomatik yedekleme belli saatlerde

Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Benim ağda deneme yapma şansım yok.. O nedenle hata hakkında yorum yapamıyorum; üzgünüm..

.... sizin uygulama da dosyanın kabuğunu alıyor ancak içeriğini bire bir yedeklemiyor
Şimdi dolu bir veritabanında test ettim, dosyanın tüm elemanlarını (tablo, sorgu; form vs.) verilerle birlikte aynen kopyalıyor.. Bahsettiğiniz durum ilginç..

İyi akşamlar..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Arkadaşlar.. Ağ üzerindeki dosyanın yolunun \\ şeklinde tanımlama ile ilgili sorun oluşuyorsa bir alternatif fikir olarak benim kullandığım bir yöntemi önerebilrim. O da şöyle:

1- Programın ana formu açılırken bir bat dosyasını Uygula çalıştır makrosu ile çalıştırıyorum. Bat dosyasının içeriği şöyle:

net use x: \\server\servis /user:accounts\kullaniciadi password

Bu yöntemle windows server mantığıyla çalışan makineye bağlanıyorum. (Neden kullanıcı adı ve şifre: Çünkü makine server ve kullanıcıları ve yetkileri tanımlanmış bir NT güvenlik sistemi kullanıyor)

2- Böylece bilgisayarım simgeleri içinde bir de x adlı ağ diskim oldu. Artık tüm komutlarımda
\\server\servis

yerine x: kullanacağım. Program her çalıştığında bu bağlantı yeniden yapılacak. Ama zaten bağlıysa o zaman hata vermeden "bağlantı zaten var" deyip geçecek. Bu uyarı ve bağlantılar ms-dos penceresinde yapılacağı için bu pencere simge durumunda çalıştırılırsa hiç bir uyarı da görülmüyor.
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
sayın demiral, bu yöntemi kullanarak programın yedeklemesini yapabildiniz mi?
(Denemek için ağ bağlantı yapacağım ortam yok şuan o yüzden soruyorum)

teşekkürler :)

NOT= Oluşturduğunuz bat dosyası ve bu başlık altında yüklü bir örneğe söylediklerinizi gömerseniz örnek uygulama açısından ve konunun takibi bakımından iyi olur ....
 
Katılım
25 Kasım 2004
Mesajlar
1
Private Sub Form_Timer()
Belirli saatlerde yedek yapması ile ilgili kodu nereye koyacağız. Ben beceremedim Modül1'in altına mı Form1'in altına mı. Anlayan arkadaşlar zamanlama eklenmiş ve çalışan bir örnek koyabilir mi
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Merhaba..

Formun, Özellikler/Olay/Zaman Dolduğunda (Timer) bölümüne kodu yazmalısınız..
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhabalar;
Bence yedeklemeleri harici bir yöntemle yapmalısınız. En güvenli ve kabul görmüş mantık budur.
Bu iş için ise ROBOCOPY önerilebilir, aklınıza gelebilecek birçok yedekleme parametresi koyabilirsiniz. Robocopy local ve network üzerinde güvenli yedekleme için çok uygundur. Resource Kit Tools'un içinde gelir ve ücretsizdir.
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
sayın beab05, bu konuda sanırım yine forum içinde akınsoftun geliştirmiş olduğu bir yedekleme programı örneği yada linki verilmiş idi
http://www.tamindir.com/program/7656/AKINSOFT_Yedek_Servisi_____.htm
, ancak -eğer yanlış anlamaz iseniz- bu işlemin access ile yapılmasıdır esas olan niye? çünki; kullanıcılara şu prg.kur şu ayarları yap(ki ben bile bilmiyorum henüz) demek ne kadar profesyonelce olabilir ki


ve yine yanlış anlamaz iseniz; mevcut konunun devamı için ağ üzerindeki bir vt. nasıl yedekleriz soru ve sorun burada kalmış idi buradan devam edebilirmiyiz...

çok teşekkür ederim..
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın karaayhan,
Bahsettiğim yöntemi ben kullanıyorum. Ama sizin bahsettiğiniz gibi zamanlamalı yedekleme için değil.. Siz beni herhalde yanlış anladınız. Ben geldiğiniz aşamada network üzerinden veri almada yaşadığınız problem için öneride bulunmuştum. Yoksa ben yedekleme için access içinde yedekleme kodları yazılmış bir modül kullanıyorum. Yine bu formun sayesinde edindiğim bir modül. Ben sadece kendi ihtiyaçlarıma göre düzenledim ve aynı anda birden çok dosyayı yedeklemekteyim. Bu işlemi timer özelliğine bağlayarak da yapabilirim. Ama illa dışarıdan yapmanız gerekiyorsa onu da benim yöntemimle bat dosyası ile yapabilrisiniz. Bir ara kullanmıştım. Access kapanırken o bat dosyasını çalıştırıyor ve yedekleme yaptırıyordum. Çok basit kodlarla.. İsterseniz dos tabanlı rar.exe dosyasını windows klasörüne koyup bat dostasına parametrelerle bu yedekleme işlemini rar olarak da yaptırabilirsiniz. Yeter ki isteyin alternatif bol :))
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
sayın demiral konu çok uzadı bir yerer kadar iyi geldik belli saatlerde otomatik yedek olma konu başlığımızda bu dikkat ederseniz, ancak veritabını bölünmüş ve ağ kullanıcıları için tablolalar data dosyası adı altında server mantığıyla bir makinada duruyor bu makinanın adı diyelim ki (A) bu makinaya tabloları bağlı ağdan (B)-(C)-(Ç)-(D) kullanıcıları ulaşıyorlar ve bu kullanıcılar kendi pc lerinin D:\ sindeki D:\Yedek\ klasörüne yedekleme yapıyorlar neyi? (A) makinasındaki data dosyasının tümünü biz ne istiyoruz?
(B)-(C)-(Ç)-(D) kullanıcıları (A) makinasındaki data dosyasını manuel yedekleme yapmadan (form aracılığı ile vs.) kendisi otomatik olarak her kullanıcının -ki birini yapsak hepsi aynı olur zaten:) - kendi pc sindeki D:\Yedek\ klasörüne yedeklemeyi yapması
konu bundan ibaret burda sorun çıktı ağ altındaki yani (A) bilgisayarındaki data dosyasını yol olarak tanımıyor olay bu burada çözümsüz kaldı konu .....

teşekkürler kolay gelsin:)
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın karaayhan,

Bir de aşağıdaki kodları deneyin ;)


Kod:
Option Explicit
Dim objJetEngine 'Holds the jet database engine object
Dim objFSO 'Holds the FSO object
Dim strCompactDB 'Holds the destination of the compacted database
Dim strDbPathAndName
Dim strCon
 
strDbPathAndName = "Veri tabanınızın yolu\database.mdb"
strCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strDbPathAndName
 
'Create an intence of the FSO object
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
 
'Back up the database
objFSO.CopyFile strDbPathAndName, Replace(strDbPathAndName, ".mdb", "-backup.mdb", 1, -1, 1)
MsgBox "Veri tabanının yedeklendiği yer: " & Replace(strDbPathAndName, ".mdb", "-backup.mdb", 1, -1, 1) 
 
'Get the destination and name of the compacted database
strCompactDB = Replace(strDbPathAndName, ".mdb", "-tmp.mdb", 1, -1, 1)
 
'Compact database
objJetEngine.CompactDatabase strCon, "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strCompactDB
MsgBox "Sıkıştırılmış ve onarılmış yeni veritabanı: " & strCompactDB
Set objJetEngine = Nothing
 
'Delete old database
objFSO.DeleteFile strDbPathAndName
MsgBox "Silinmiş olan eski veritabanı: " & strDbPathAndName
 
'Rename temporary database to old name
objFSO.MoveFile strCompactDB, strDbPathAndName
MsgBox "Sıkıştırılmış ve onarılmış yeni veritabanı :" & strCompactDB 
 
'Release FSO object
Set objFSO = Nothing
Biraz uğraşmayla olacak. Siz hala tüm yedekleri saklayacağım diyorsanız, ilgili kodları çalıştırmayın.

İyi çalışmalar:) :)
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın karaayhan
Bununla ilgili olarak ben de farklı birşey anlatmıyorum. Tek amacım da sizin işinize yarayan bilgileri size ulaştırmak. Siz nasıl düşünüyorsunuz hakkımda ama ben böyle bir amaç taşıyorum :))

Şimdi sizin durumunuzla ilgili çalışan uygulamam var. Örnek eklemek için yarın çalışacağım işyerinde.. Bu arada bir projeyle uğraştım ve bitirdim o yüzden pek bakamadım foruma.. Bir de sevgili Ersen İbiş isimli bir arkadaş

"Ayrıca network ortamında data dosyaları açık vaziyette iken yedekleme yapıp yapmadığı konusunda net bir cevabınızı göremedim. Sözgelimi ağda başka bir kullanıcı veritabanına bağlanmış durumdayken kodların ne tür bir tepki verdiğini öğrenmek istiyorum. Daha önceki kodlarda veritabanının açık olduğu mesajı verilerek yedekleme yapılmıyordu.
Benim programımdaki vt hemen hemen 24 saat çalışacağı için bu çok önemli. Sanıyorum siz bu sorunu aştınız. Daha fazla uzatmadan, peşin teşekkürler ve saygılar sunarım.

demişti. Ben de "örneğini gönder" demiştim. O da bana örneğini maille gönderdi. Ben de yapıp geri gönderdim ve teşekkür yazıp ağ üzerinden de yedekleme yaptığını söyledi. Onun örneğini ekliyorum buraya.
Şimdi burası çok önemli. Mantık şu: Sonuçta access altında bağlı olan bu tablolar access tarafından kullanıldığına göre yedeklemede neden kullanılmasın?.. Bunun için ağ üzerinde olması değil, bağlı tablolar olması yeterlidir. Ağ üzerinde olmasını abartmamak gerekir bence.

Arkadaşın programını örnek olarak ekleyeceğim. (Sevgili Ersen İbiş'in hoşgörüsüne sığınıyorum.) Onun bana gönderdiği, benim de yedekleme yapacak şekilde düzenlediğim bir çalışma. Belki size faydası olur.

Dizin durumları:

Çalışan programın bulunduğu dizin C:\nakliye\nakliye.mde (Paylaşılan klasör değil)
Datalar klasörünün bulunduğu dizin D:\Recognized\Datalar (Paylaşılan Klasör)


Zamanlama konusu çözümlenirse bu örnek sizin işinizi görür bence.. Modüller ve kodlar sevgili modalı'nın önersisnden alınmıştı. Eminim sizde de vardır. Ama çalışan uygulama olarak göndermiş oldum. İçindeki zaman formatına bir de time verisi eklenmesini artık siz yaparsınız.

Bu arada sayın Modalı yedeklemelerin zamanla gereksiz yere hdd'i şişireceğini söylemiş. Aslında belli bir tarihten -mesela 1 hafta- eskilerin silinmesi sağlanabilir. NAsıl olsa dosyaların adları tarih verisini içeriyor.:)))
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
sayın modalı ve sayın mehmetdemiral,
çok teşekkür ederim ...öncelikle ilginizden ötürü,
arkadaşlar ağ kurulu pc de deneyip sonucu yazacağım..
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
çalışsın artık lütfen..

Sayın karaayhan,

Bir de aşağıdaki kodları deneyin ;)


Kod:
Option Explicit
Dim objJetEngine 'Holds the jet database engine object
Dim objFSO 'Holds the FSO object
Dim strCompactDB 'Holds the destination of the compacted database
Dim strDbPathAndName
Dim strCon
 
strDbPathAndName = "Veri tabanınızın yolu\database.mdb"
strCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strDbPathAndName
 
'Create an intence of the FSO object
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
 
'Back up the database
objFSO.CopyFile strDbPathAndName, Replace(strDbPathAndName, ".mdb", "-backup.mdb", 1, -1, 1)
MsgBox "Veri tabanının yedeklendiği yer: " & Replace(strDbPathAndName, ".mdb", "-backup.mdb", 1, -1, 1) 
 
'Get the destination and name of the compacted database
strCompactDB = Replace(strDbPathAndName, ".mdb", "-tmp.mdb", 1, -1, 1)
 
'Compact database
objJetEngine.CompactDatabase strCon, "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strCompactDB
MsgBox "Sıkıştırılmış ve onarılmış yeni veritabanı: " & strCompactDB
Set objJetEngine = Nothing
 
'Delete old database
objFSO.DeleteFile strDbPathAndName
MsgBox "Silinmiş olan eski veritabanı: " & strDbPathAndName
 
'Rename temporary database to old name
objFSO.MoveFile strCompactDB, strDbPathAndName
MsgBox "Sıkıştırılmış ve onarılmış yeni veritabanı :" & strCompactDB 
 
'Release FSO object
Set objFSO = Nothing
Biraz uğraşmayla olacak. Siz hala tüm yedekleri saklayacağım diyorsanız, ilgili kodları çalıştırmayın.

İyi çalışmalar:) :)

sayın modalı hocam bu kodların vt üzerinde kullanım şeklini yapamadım size zahmet eklermisiniz yani çağıracak bir public falan bulamadım :(
örnek bir dosya ekliyorum size zahmet kodlarınızın nasıl çalıştırılacağı konusunda düzenleme yaparmısınız ,, teşekkürler.
 
Katılım
7 Ekim 2005
Mesajlar
180
Excel Vers. ve Dili
2002 Pro, Türkçe
Sayın Karaayhan;
İki saat arayla yedekleme ısrarınızı anlayamadım doğrusu,bilfiil ağ üzerindeki datalardan sorumlu olan birisi olarak her kullanıcının bilgisayarına iki saat arayla dataların yedeklenmesi eminim o bilgisayarı kullanılmaz hale getirdiğini bizzat gördüm ve yaşadım. Mehmet Demiralin foruma gönderdiği örneği ben bilfiil uyguluyorum ancak biraz değişiklik yapmış durumdayım. Bütün kullanıcılar yerine, data yedeklerini kendi bilgisayarıma program her kapatılışında yedekleme yaptırmak suretiyle alıyorum. Böyle daha sağlam oluyor. Tarih dosya adına eklendiğinden aynı gün içinde belki 10 kez belki 100 kez program açılıp kapanıyor iki saatten daha az bir zaman diliminde yedeklenmiş oluyor program bu şekilde hemde önceki yedek siliniyor yerine son yedek atılıyor.
Bu bir tavsiye tabii sizin gerçekte ihtiyaç duyduğunuz birşey olmayabilir buna birşey diyemem.

Ancak şurasını söylemeden geçemeyeceğim benim datalarımın boyutu yaklaşık 70 mb civarında şu an, izne ayrılıp döndüğümde yedeklerin boyutu 12 gün içinde 1,5 GB seviyesine gelmişti. Bu günlük durumda, bir de saatlik durumda olursa hesaba gelmiyor. Ayrıca kullanıcılara her gün eski dataları sildirmek, yada silmek için de ayrıca kodla uğraşmak gerekecek.

Bence yalnızca bir bilgisayara yedeklemek daha makul.
 
Katılım
16 Kasım 2005
Mesajlar
1,090
Excel Vers. ve Dili
Access 2002
sayın ersen açıklama için öncelikle teşekkür ederim kardeşim,
birşey itiraf etmeliyim ki yedekleme konusu hala muamma yani kullanamıyorum bile sizden ricam elinizde kullanmış olduğunuz sağlam bir yedekleme yapabilen prg. var ise onu lütfen gönderin olmazsa özelden

ayhankara38@hotmail.com

teşekkür ederim.
 
Katılım
7 Ekim 2005
Mesajlar
180
Excel Vers. ve Dili
2002 Pro, Türkçe
İncelemeniz için talep ettiğiniz mail adresinize gönderilmiştir. Örnek sn. mehmetdemiral'in bahsettiği kodların sadeleştirilmesine rağmen aynısı olduğundan tekrar eklenmeye gerek görülmemiştir.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Arkadaşlar.O kodlar aslında modalı'ya aittir. Sadece ben Sayın Ersen Bey'in talebine göre düzenlemiştim. Zaten o da bazı değişiklikler yaptığını belirtti. Bu kodları ben de kullanıyorum. Süper iş görüyor. Neden karaayhan çalıştıramadı anlamadım. Bence ADO referansı ile ilgili bir sıkıntısı olabilir. O zaman çalışmıyor gerçekten..
 
Üst