การ backup ข้อมูลและการ Restore ข้อมูล
กระทู้เก่าบอร์ด อ.Yeadram

 8,265   24
URL.หัวข้อ / URL
การ backup ข้อมูลและการ Restore ข้อมูล

ช่วยแนะนำเครื่องมือ และการออกแบบการเก็บประวัติข้อมูล แล้วสามารถนำมาแก้ไขได้ โดยผมต้องการ backup ข้อมูล programe Access ทั้งหมดเก็บไปไว้ข้างนอก แล้วเมื่อถึงวันหนึ่งเกิดต้องการข้อมูลเก่าที่ backup ไว้ จึงทำการ restore ข้อมูลมาแกไข้
.......เช่น ผมมี program ชื่อ cost01 ซึ่งเป็นขอ้มูลปัจจุบัน แล้วได้สร้าง programe ชื่อ cost02 ไว้อีกตัวหนึ่ง ที่มี ตาราง ทุกอย่างเหมือนกัน แต่ program ชื่อ cost01 จะใช้ทำข้อมูลของปัจจุบัน แล้วทำการ backup cost01 ชื่อ backcost01-13-05-2009, backcost01-14-05-2009 และ backcost01- 15-05-2009 มาวันผมต้องการนำข้อมูลชื่อ backcost01-13-05-2009 มาทำการแก้ไขโดยใช้การ Restore มาทับข้อมูลที่สร้างไว้ที่ Program ชื่อ cost02 ซึ่งเป็นการแค่ดูข้อมูลเ?ื่อเปลี่ยนเทียบ แก้ไข เปลี่ยบกับปัจจุบัน เราสามารถทำได้หรือเปล่าครับ หรือมีวิธีไหนบ้างครับ

ผมได้ส่งรูปภาพตัวอย่างโปรแกรม ไปที่เมล์ accboard@gmail.com ชื่อ ตัวอย่างโปรแกรม ครับ

ขอบคุณมากครับผม

24 Reply in this Topic. Dispaly 2 pages and you are on page number 1

1 @R02199
copy C:\xxxx.mdb c:\xxxx_%date:~-4,4%%date:~-7,2%%date:~-10,2%.mdb

ผม สร้างเป็น bat file แล้วไปเก็ยใว้ที่ Scheduled task กำหนดเวลาการทำงานใว้
2 @R02202
ขอบคุณ Gerald ที่ให้คำแนะนำครับ แต่ผมยังไม่เข้าใจเท่าไรครับ ต้องศึกษาอีกนาน แล้วเขาเอาไปใส่ไว้ทีไหนครับ ใช้ที่ โมดูล หรือเปล่าครับ ขั้นตอนการทำช่วยบอกเป็น step by step ให้ผมหน่อยครับ คือผมไม่เก่งถ้าแบบว่าลึก ๆ

ยกตัวอย่างครับ
...เช่น ผมมีโปรแกรมชื่อ cost01 มีตาราง ITEM_NAME และ ITEM_QTY ซึ่งโปรแกรม อยู่ DRIVE C:\cost01.mdb   แล้วจะ backup ข้อมูลไปที่ DRIVE D:\ProgrameDate\        ซึ่งผมต้องทำอย่างไรครับ


ขอบคุณมากครับผม

3 @R02206
ที่ผมแนะนำไม่ได้ทำในตัว access ครับ แต่ผมทำที่ตัว OS คือ วินโดวส์ ในส่วนของคำสั่ง ดอส
การสร้าง Bat file ก็ใช้ Notepadแล้วเปลี่ยนจาก .txt ไปเป็น .bat
แล้วนำไฟล์นี้ไปเก็บใว้ที่
Start>Accessories>system tools>Scheduled task

ซึ่งเราสามารถกำหนดหนดเวลาการทำงานได้ อาจวางใว้ที่ตัว Server ก็สะดวกดีเพราะกำหนดให้ทำงานตอนที่ไม่มีคนใช้งานได้
วิธีสร้าง ก็เปิด Notepad > new

copy C:\cost01.mdb D:\ProgrameDate\cost01_%date:~-4,4%%date:~-7,2%%date:~-10,2%.mdb

แล้ว save as to >cost01bk.bat

** Dos ชื่อไฟล์ ไม่เกิน 8ตัว นามสกุล 3ตัว
ลองศึกษาจาก google ต่อได้ครับ ท่านอาจใส่คำสังมากกว่านี้ได้
echo off
...
ทดสอบการทำงานได้โดย
Start>run> CMD กด enter
copy คำสังไปวาง โดย คลิกขวาที่ตัว Title bar ขอบบนของหน้าต่าง เลือ Edit>paste พอคำสั่งมาแล้วกด Enter เมื่อมันทำงานเสร็จจะขึ้น 1 file copy
แล้วไปผล ดูที่ D:\ProgrameDate
ลองดูนะครับ


4 @R02207
เพิ่มเติมนะครับ

ในระบบจริง ควรวาง mde บน network drive แล้วเราจะใช้ Backup from Windows ก็ได้แต่ ผมจะใช้ทั้ง สองอย่างเพื่อความปลอดภัย สะดวก เร็วกว่า

ถ้าจะเขียนเป็น module ต่างหากใน access ก็ได้เรียก dos shell มาใช้ กดปุ่ม copy แต่การทำแบบนี้แบบ manual คนชอบลืม backup บ่อย ๆ เหมือนการสร้าง from ให้ user ต้องกรอกเยอะๆ เขียนดัก error จนเซ็ง สู้ใช้ค่า default หรือเลือกจาก combo box จะตัดปัญหาได้มากครับ   
5 @R02209
คือผมลองทำแล้วไม่แน่ใจว่าจะถูกต้องหรือเปล่าครับ เดี่ยวจะอธิบายแบบละเอียดให้คุณดูอีกรอบ ช่วยดูว่าผมทำถูกหรือเปล่า

    1. cost01.mdb =อยู่ที่ drive C:

    2. ProgrameDate = คือ folder สำหรับเก็บไฟล์ที่ backup อยู่ที่ drive D:

    3. สร้างไฟล์ cost01bk.bat ด้วย ์Notepad โดย copy คำสั่งไปวาง C:\cost01.mdb D:\ProgrameDate\cost01_%date:~-4,4%%date:~-7,2%%date:~-10,2%.mdb   แล้ว sale as to ไว้ที่หน้า Desktop

    4. เข้าไปที่ Start>Accessories>system tools >Scheduled task เลือก Add scheduled Task >next >Browse ไปที่หน้า Desktop แล้วเลือก ไฟล์ cost01bk.bat ทำสร้างไว้ > เลือกเป็น Monthly >Next
>เลือก Day 1 >Next >ตรง Enter the user name ผมไม่ได้เลือกอะไร เอาชื่อตาม default >Next >Open advanced Prepetiex for thsis task ผมไม่ได้เลือก > Finish
    
    5 ทดสอบการทำงานโดย   Start>run> CMD กด enter นำคำสั่งไปวาง C:\cost01.mdb D:\ProgrameDate\cost01_%date:~-4,4%%date:~-7,2%%date:~-10,2%.mdb แต่พอนำคำสั่งไปวาง   โปรแกรม cost01 ก็เปิดขึ้นมาเองจาก Drive C:cost01 เองครับ

.......ไม่รู้ว่าที่ทำเป็นขั้นตอนแบบนี้ถูกหรือเปล่า หรือว่ายังขาดตรงไหนไปครับ ช่วยแนะนำเพิ่มให้ผมอีกหน่อยครับ

ขอบคุณคุณมากครับผม

paitoon

6 @R02210
ถูกต้องครับ แต่...

ตรงข้อ 5 ของคุณ ไม่ตรงกับที่ผมแนะนำใว้
***ของผม***
ทดสอบการทำงานได้โดย
Start>run> CMD กด enter
copy คำสังไปวาง โดย คลิกขวาที่ตัว Title bar ขอบบนของหน้าต่าง เลือ Edit>paste พอคำสั่งมาแล้วกด Enter เมื่อมันทำงานเสร็จจะขึ้น 1 file copy
แล้วไปผล ดูที่ D:\ProgrameDate

***ของท่าน***
5 ทดสอบการทำงานโดย   Start>run> CMD กด enter นำคำสั่งไปวาง C:\cost01.mdb D:\ProgrameDate\cost01_%date:~-4,4%%date:~-7,2%%date:~-10,2%.mdb แต่พอนำคำสั่งไปวาง   โปรแกรม cost01 ก็เปิดขึ้นมาเองจาก Drive C:cost01 เองครับ

ผมให้ไปดูไฟล์ที่ ไดร์ฟ D:\ProgrameDate ว่ามีไฟล์ที่เรา ก็อปปี้มาหรือไม่ ไม่ใช่ทดสอบโดยการ Run ตัวจริง(C:cost01)

การ BackUp เป็นการสำรองข้อมูล ดังนั้นถ้า C:cost01 เสียหาย เราสามารถมารถ ก็อปปี้ ไฟล์จาก D:\ProgrameDate เลือตามวันที่เราต้องการ แล้ว Rename ครับ ซึ่งใช้เวลาไม่เกิน 5 นาที

**อีกนิดนึง
การตั้งชื่อไฟล์ หรือโฟลเดอร์ ควรมีความหมายใกล้เคียงกับสิ่งที่เราทำ (บักสีดา บ่นผมจนฝังหัว) D:\ProgrameDate ไม่ค่อย...นะ แนะนำครับ
7 @R02212
ยังทำไม่ได้เลยครับ

/*** ตรงข้อ 4 ของผม ก่อนจะเลือก Finish มันฟ้อง ( The new task has been created, but may not run because the account information could not be set.
The specific error is:
0x80070005: Access is denied
Try using the Task page Browse button to locate the application. )

/ *** ตรง 5 ที่ให้ copy คำสังไปวาง โดย คลิกขวาที่ตัว Title bar คำสั่งก็คือตัวนี้( C:\cost01.mdb D:\ProgrameDate\cost01_%date:~-4,4%%date:~-7,2%%date:~-10,2%.mdb ) ทั้งหมดเลยใช้ไหมครับ

/*** ส่วนที่ให้ผมไปดูไฟล์ที่ ไดร์ฟ D:\ProgrameDate ว่ามีไฟล์ที่เรา ก็อปปี้มาหรือไม่ คือไฟล์ที่เราทำการ Backup ใช้หรือเปล่าครับ ผมเข้าไปดูไม่มีไฟล์อะไรครับ

/*** ส่วนคำสั่งนี้มันแปลว่าอะไรกันบ้างครับ C:\cost01.mdb D:\ProgrameDate\cost01_%date:~-4,4%%date:~-7,2%%date:~-10,2%.mdb


ขอบคุณครับ
paitoon
8 @R02213
คำสั่ง
copy C:\cost01.mdb D:\ProgrameDate\cost01_%date:~-4,4%%date:~-7,2%%date:~-10,2%.mdb

ให้ copy ไฟล์ cost01.mdb จาก c:\

ให้ไปใว้ที่ D:\ProgrameDate แล้วเปลี่่ยนชื่อเป็น cost01_20090518.mdb
*-----------------------------*

copy C:\cost01.mdb D:\ProgrameDate\cost01__%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.mdb

ก็จะได้ cost01_2009-05-18_103948.mdb
คือชื่อไฟล์+วันที่+เวลา


9 @R02214
เพิ่มเติมครับ ผมเริ่มทำงาน 8:00 น. ลองตั้งเวลาเมื่อเช้านี้ ตั้ง Schedule Task เป็น daily /Start time10:50 Every 1 Day(s) พอถึงเวลา 10:50 โปรแกรมที่อยู่ก็เปิดขึ้นเอง อย่างนี้ถือว่าถูกหรือเปล่า พอผมได้ดูข้อมูลที่ Drive D:\ProgrameDate ไม่มีไฟล์อะไรเลย

ขอบคุณครับ
paitoon
10 @R02215
Schedule Task ทำงานแล้ว แต่ส่วน ไฟล์.bat ไม่ทำงาน

ลองส่ง bat file ของไปที่

accboard@gmail.com

www.gmail.com
userName : accboard
password : accgmail

ผมขอดูหน่อย
11 @R02216
ผมส่ง bat file ไปให้ดูแล้วครับ

ขอบคุณครับ
paitoon
12 @R02219
แก้ไขให้แล้ว ส่งไปที่ Gmail และhotmail ของคุณ
13 @R02221
คุณ Gerald รู้สึกว่าไม่ได้แนบไฟล์มาครับ ขอใหม่อีกรอบครับผม


ขอบคุณครับ
paitoon
14 @R02222
ส่งไปใหม่แล้ว

ถ้าไม่ได้ ไปที่ accboard@gmail.com
ดู จดหมายที่ส่งแล้ว ดึงไฟล์แนบจากที่นั่นก็ได้

15 @R02223
ขอบคุณมากครับ .....ทำได้แล้วครับ ผมเข้าไป Start>run> CMD กด enter มีไฟล์ที่ copy มาแล้วที่ D:\ProgrameDate ขอบคุณมากครับ

...ขอคำแนะนำเพิ่ม แบบต่อเนื่องเลยครับ
1. คือต้องการเอาไฟล์ไปไว้ที่ server ซึ่งเป็น windows 2003 คงจะทำได้น่ะครับ

2. คือผมจะให้ backup ทุกวัน เวลา 19.00 น ต้องกำหนดแบบไหนครับ

3. ผมจะมีผู้ใช้ทั้งหมด 3 คน ในวง lan เดียวกัน ซึ่งผมจะทำ Shortcut ที่หน้า Desktop ของ USER แต่ละคน ผมต้องกำหนดอย่างไรดีครับ
***** คือโปรแกรมที่ผมทำ ผมได้กำหนดที่หน้าฟอร์มให้มี username และ password ก่อนเข้าโปรแกรม โดยสร้างตารางไว้เพื่อรับค่า ทั้ง 3 คน แต่พอจะเข้าไปทำงานเข้าได้แค่คนเดียวเท่านั้น ถ้าจะเข้าอีกก็จะฟ้อง ไม่รู้ว่าผมทำผิดตรงไหนครับ

ขอบคุณมากครับผม
paitoon
16 @R02225
ต้องทำแบบ File server
Ms access > tools >data base utility> database splitter
จะได้ไฟล์ สอง ไฟล์
-cost01_Fe มีเฉพาะตาราง
-cost01_be form,report,query

เอา cost01_Fe ใว้ที่ server ete. Z:\CostDB\cost01_Fe.mdb
cost01_be compile จะได้ cost01_be.mde ใว้ที่ client

ใน บอร์ดมีลองค้นดูครับ


** ไม่ละเอียดนัก อยากให้ออกแรงบ้าง แล้วจะเก่ง (ผมขี้เกียจพิมพ์)
17 @R02231
ขอโทษอย่างแรง... เขียนสลับกัน

แก้เป็น
-cost01_Fe หรือ front end    form,report,query
-cost01_be หรือ back end    มีเฉพาะตาราง

เอา cost01_be (table) ใว้ที่ server ete. Z:\CostDB\cost01_be.mdb
cost01_Fe ควร compile จะได้ cost01_be.mde ใว้ที่ client

**ขออภัยอย่างแรง

18 @R02235
ขอบคุณครับสำหรับคำแนะนำ แต่ผมคงต้องไปศึกษาหามูลจากหนักสือเพิ่มก่อนเพราะดูหน้าจะงง ๆ อยู่

.*** แต่ตอนนี้ผมติดปัญหาอยู่ครับ ช่วยดูให้หน่อยครับ เรื่องการ backup พอผมตั้งเวลา backup แต่พอถึงเวลา มันไม่ copy ไฟล์ให้ แต่ตอนเรา run ใน cmd ก็ copy ให้ แต่พอตั้งเวลาจริง กลับไม่ทำงาน ไม่รู้เป็นไร

ผมได้ส่งเป็นไฟล์ที่ทำ screen ที่ผมทำให้ดูประกอบครับ ว่าขาดอะไรตรงไหน
ที่ accboard@gmail.com   

ขอบคุณ
19 @R02240
เพิ่มเติมครับ ใน Scheduled Tasks ตรง Status มันฟ้อง Could not start ผมเลยไปหาข้อมูลใน google เข้าให้เข้าไปที่ SchedlgU.Txt ที่อยู่ใน c:\windows ให้ดูว่ามันฟ้องอะไรแต่ก็ไม่เข้าใจ ช่วยดูให้หน่อยครับ

     0x8004130f: No account information could be found in the Task Scheduler security database for the task indicated.
"cost01bk.job" (cost01bk.bat) 5/19/2009 9:45:00 PM ** ERROR **
     The attempt to retrieve account information for the specified task failed; therefore, the task did not run. Either an error occurred, or no account information existed for the task.
     The specific error is:
     0x8004130f: No account information could be found in the Task Scheduler security database for the task indicated.
"cost01bk.job" (cost01bk.bat) 5/19/2009 9:47:00 PM ** ERROR **
     The attempt to retrieve account information for the specified task failed; therefore, the task did not run. Either an error occurred, or no account information existed for the task.
     The specific error is:
     0x8004130f: No account information could be found in the Task Scheduler security database for the task indicated.

ขอบคุณครับ
paitoon
20 @R02243
fix problem here
http://support.microsoft.com/kb/328773

*** บางครั้งปัญหา อาจเกิดขึ้นมาทางหลาย ๆ สาเหตุ หากค้นหาจากทางเวป ควรเลือกแก้จากคำแนะนำ เจ้าของผลิตภัณฑ์

ท่าน ใช้ Windows อะไร SP อะไร
Office อะไร SP อะไร
Microsoft Jet 4.0 Database Engine ด้วย
http://support.microsoft.com/kb/239114
มีผลด้วยนะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.2287s