none
SQL SERVER 2005 如何將日期作為備份檔名稱 RRS feed

  • 問題

  • 一般使用手動或排程都只能寫成同一個 *.bak file (如 : DB1.bak) , 請問如何將每天的備份寫成 *_yyyymmdd.bak ( 如 :DB1_20090929.bak) ?

    又若如此做 "備份裝置" 可能愈來愈多 , 請問如何才能每天均維持一個 ?

    謝謝
    2009年9月29日 上午 09:26

解答

  • Not true, default file name is dbname_backup_full(or diff)_yyyymmddhhmm.bak.
    • 已標示為解答 MIS110 2009年10月1日 上午 04:01
    2009年9月30日 上午 03:06
  • MIS110, 您不需要指定檔名. 在下面還有一個選項是只要備分到指定資料夾, 這樣維護計畫就會自動產生如dbname_backup_full(or diff)_yyyymmddhhmm.bak的格式.
    • 已標示為解答 MIS110 2009年10月1日 上午 04:01
    2009年9月30日 上午 03:09
  • 2008維護計畫預設
    dbname_backup_yyyy_MM_dd_hhmmss_*******.bak
    你想要有自己的格式
    只能自己寫script
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已標示為解答 MIS110 2009年10月1日 上午 04:01
    2009年9月30日 上午 03:12
    版主

所有回覆

  • hi
    每天排成
    Declare @Path Nvarchar(2000)
    Set @Path ='E:\Backup\product_Full_'+Convert(Nvarchar,Getdate(),120)+'.bak'
    Backup Database [PRODB] To disk=@Path
    加入時分秒讓檔名不重複

    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年9月29日 上午 09:31
    版主
  • 謝謝 , 想再請教一下

    1. 是將以上寫成 stored procedure 並排程去執行嗎 ? 還是.. ?

    2.  "product_Full" 有何特殊意義嗎 ? 還是只是一個 backup file 的 name , 可以自己取名 ?

    3. [PRODB] 是指 資料庫名稱嗎 ? 需要用中括號括起來 , 還是引號括起來嗎 ?

        例如 : 我要備的資料庫名稱若是 DB_TEST , 是否要寫成  Backup Database DB_TEST To disk=@Path

                 還是  Backup Database [DB_TEST]  To disk=@Path

    4. 以上方式是否要先建備份裝置 ?

    麻煩您了
    2009年9月29日 上午 10:23
  • hi
    1.可以,方法很多(sqlcmd我常用)
    2.只是一個file name,  product_full=>正式環境DB的完整備份檔案
    3.別用引號,  BACKUP DATABASE <database_name> TO <backup_device>
    4.
    基本上路徑確定要存在並且有足夠的硬碟空間

    可以參考
    備份概觀 (SQL Server)

    http://technet.microsoft.com/zh-tw/library/ms175477.aspx
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年9月29日 上午 10:35
    版主
  • 一般使用手動或排程都只能寫成同一個 *.bak file (如 : DB1.bak) , 請問如何將每天的備份寫成 *_yyyymmdd.bak ( 如 :DB1_20090929.bak) ?

    又若如此做 "備份裝置" 可能愈來愈多 , 請問如何才能每天均維持一個 ?

    謝謝
    Take look at maintenance plan, it handles those issues for you.
    2009年9月29日 下午 01:28
  • 不好意思, 再請問一下

    1. sqlcmd 是指在 SSMS 中在新增查詢輸入 cmd 嗎 ?

    3. 因為您提到 <backup_device> , 所以要建備份裝置 ?

    5. 您是說用 maintenance plan 可以讓 "備份裝置" 每天均維持一個 ? 可是我找不到這樣的設定 , 請問要如何設定 ?

    謝謝
    2009年9月30日 上午 01:08
  • hi
    1.C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe
    sample
    sqlcmd -S server_name\instance -U sa -P yourpassword -i C:\backup.sql

    3.backup_device=>硬碟,磁帶,.........總該有足夠空間吧,路徑在確認即可

    建議先下載SQL SERVER線上叢書(記得要更新)
    http://www.microsoft.com/downloads/details.aspx?FamilyID=765433F7-0983-4D7A-B628-0A98145BCB97&displaylang=zh-tw


    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年9月30日 上午 01:16
    版主
  • MIS110您好,
    SQL 2005的維護計畫裡有提供備份資料庫的工作, 您可以指定要備份的目的地資料夾.所產生的檔案名稱會產生為*_backup_yyyy_mm_hhmmss的格式.

    建立維護計畫的步驟請參考:
    如何:建立維護計畫
    http://msdn.microsoft.com/zh-tw/library/ms189953(SQL.90).aspx
    2009年9月30日 上午 02:08
  • 謝謝 ricoisme 詳細的說明 , 再確認一下

    是將以下
    Declare @Path Nvarchar(2000)
    Set @Path ='E:\Backup\product_Full_'+Convert(Nvarchar,Getdate(),120)+'.bak'
    Backup Database [PRODB] To disk=@Path

    寫入 backup.sql  ? 但如何讓此 sqlcmd 定時執行 ?

    謝謝

    另 , maintenance plan 的問題應該是要請教 rmiao 的
    2009年9月30日 上午 02:09
  • 不好意思, 再請問一下

    1. sqlcmd 是指在 SSMS 中在新增查詢輸入 cmd 嗎 ?

    3. 因為您提到 <backup_device> , 所以要建備份裝置 ?

    5. 您是說用 maintenance plan 可以讓 "備份裝置" 每天均維持一個 ? 可是我找不到這樣的設定 , 請問要如何設定 ?

    謝謝
    There's plan cleanup task that deletes old backup files based on retention days you set.
    2009年9月30日 上午 02:10
  • hi
    backup.bat
    sqlcmd -S server_name\instance -U sa -P yourpassword -i C:\backup.sql
    windows排成backup.bat

    用維護計畫(UI)你就不用這麼麻煩了,依照說明操作
    看個人習慣


    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年9月30日 上午 02:36
    版主
  • 謝謝您 , 其實我比較困擾的是 , 我想用維護計畫 , 可是維護計畫沒辦法將檔案名稱與日期結合 , 只能是在做維護計畫時所輸入的檔名

    還是說維護計畫可以結合您上述提供的方式達成可以排程又可以以日期為檔名的功能 , how ?
    2009年9月30日 上午 02:59
  • Not true, default file name is dbname_backup_full(or diff)_yyyymmddhhmm.bak.
    • 已標示為解答 MIS110 2009年10月1日 上午 04:01
    2009年9月30日 上午 03:06
  • MIS110, 您不需要指定檔名. 在下面還有一個選項是只要備分到指定資料夾, 這樣維護計畫就會自動產生如dbname_backup_full(or diff)_yyyymmddhhmm.bak的格式.
    • 已標示為解答 MIS110 2009年10月1日 上午 04:01
    2009年9月30日 上午 03:09
  • 2008維護計畫預設
    dbname_backup_yyyy_MM_dd_hhmmss_*******.bak
    你想要有自己的格式
    只能自己寫script
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已標示為解答 MIS110 2009年10月1日 上午 04:01
    2009年9月30日 上午 03:12
    版主
  • ok 了 ,就像 vera說的 ,  我不輸入名稱就會出現 rmiao 與 ricoisme 所說的 default name , 就是我要的了

    非常謝謝各位 , 老實說覺得自己有點 "肉腳" , 謝謝各位的耐心 ! 
    2009年10月1日 上午 04:00