當前位置:首頁 » 操作系統 » 縮小資料庫

縮小資料庫

發布時間: 2025-02-19 17:32:58

❶ SQL Server資料庫的收縮一直在執行

刪除表給資料庫縮小空間時:執行如下操作老是存在執行了5,6個小時,還是一直沒有執行完成。
在開啟自動收縮選項的情況下,SQLServer定期會檢查文件使用情況。如果空閑空間大於25%,SQLServer就會自動運行自動收縮資料庫文件的動作。

❷ SQL Server 2000資料庫的事務日誌文件過大,如何將其縮小

拷獯穡涸贇QL Server中,所有對資料庫執行的更新操作都會記錄在資料庫的事務日誌文件中,除非將資料庫設為可自動收縮的或手動 的對資料庫進行了收縮,否則事務日誌文件將一直增長,直到達到事先設定的日誌文件增長上限或用盡所有可用的磁碟空間。如果當前的資料庫文件或日誌文件過大,可以使用以下兩個命令對其進行收縮:DBCC SHRINKDATABASE:收縮指定資料庫的所有數據和日誌文件的大小DBCC SHRINKFILE: 收縮資料庫的某個指定數據或日誌文件的大小 這兩個命令可以釋放資料庫中的空閑空間,並將資料庫或指定的資料庫文件收縮到指定的大小,但收縮後的數據文件或日誌文件的大小不會小於檔中現存的有效數據所佔空間的大小。 關於這兩個命令的具體使用方法,可以參考SQL Server 2000聯機叢書中的相應主題。另外,也可在SQL Server企業管理器中執行資料庫收縮,同樣是調用的以上兩個命令,效果類似。 在使用以上命令收縮日誌文件的時候需要注意,已寫入資料庫但未被截斷的事務日誌記錄是不會被收縮的,因為雖然這部分日誌記錄的信息已經寫入資料庫文件,但在使用事務日誌備份進行資料庫還原的時候,還將用到其中的信息。 對於使用簡單恢復模型的資料庫,事務日誌會在每次處理檢查點(CheckPoint)時自動被截斷。對於使用完全恢復模型或大容量日誌記錄恢復模型的資料庫,事務日誌只有在執行日誌備份(BACKUP LOG)時才會被截斷,這時事務日誌中記錄的信息被寫入事務日誌備份文件,而它們所佔用的這部分空間被標記為可用(即被截斷)。 截斷事務日誌並不會使日誌文件變小,但可以將其中的部分空間釋放供以後寫入新的日誌記錄使用。若要減少日誌文件的物理大小,則要使用上面提到的DBCC SHRINKDATABASE和DBCC SHRINKFILE命令。 在執行BACKUP LOG語句的時候,還可以使用WITH NO_LOG(或WITH TRUNCATE_ONLY,含義相同)參數,這時並不真正備份事務日誌,而只是截斷事務日誌中的非活動部分(這和普通的BACKUP LOG語句作用相同)。這適合於剩餘磁碟空間不夠進行事務日誌備份或不打算保留事務日誌中的非活動部分用於資料庫恢復的情況。 為避免事務日誌文件增長過快以致用盡所有磁碟空間的現象發生,一種辦法是將資料庫設為使用簡單恢復模型,這樣可以使SQL Server周期性的自動截斷事務日誌的非活動部分,並回收其佔用的空間供以後寫入事務日誌記錄使用。但這將使資料庫無法利用事務日誌備份還原到實時點,降低了資料庫的可靠性,因此一般不應用於生產型資料庫。 對於生產型資料庫,推薦的做法是使用完全恢復模型,並定期進行資料庫的完全備份和事務日誌備份。例如每周執行一次完全備份,每天執行一次事務日誌備份,這可以通過SQL Server企業管理器中的資料庫維護計劃向導很方便的實現(一般可以設為在每天夜裡業務不繁忙的某個時刻自動執行備份)。 通過定期執行資料庫的事務日誌備份,可以避免日誌文件的迅速增大,而使其保持一個比較穩定的大小。雖然資料庫備份文件也會佔用很多磁碟空間,但隨時可以將這些文件移到其他磁碟上或在不需要它們的時候將其刪除,而且可以在出現故障或誤操作的時候方便的進行資料庫的還原。 由於數據文件的大小是隨資料庫中數據量的增長而增長的,資料庫中已刪除的數據所佔的空間可以供新插入的資料使用;而在定期執行了事務日誌的備份後,我們可以將日誌文件的大小控制在一個比較合理的范圍。因此,一般不需要對資料庫進行收縮,也不推薦將資料庫設為自動收縮模式。建議僅在以下情況下執行資料庫的收縮:1、磁碟空間不足2、數據文件很大,但其中只包含較少量的數據(可能是以前有大量數據,但後來刪除了很多),並且預期今後資料庫中的數據量也不會很大。3、由於長期未進行事務日誌備份,導致事務日誌文件過大。減小事務日誌文件大小的另一種方法是:首先在該資料庫中執行CHECKPOINT命令,然後將該資料庫分離(Detach),再將與其對應的資料庫日誌文件(.ldf文件)改名或刪除或移動到其他目錄下,然後執行sp_attach_single_file_db存儲過程或在企業管理器中重新將其附加(Attach)。由於找不到原來的日誌文件,SQL Server將自動為該資料庫建立一個大小隻有504K的日誌文件。但這種方法必須暫時將資料庫離線,因此一般不適宜在生產環境中使用。如果當前資料庫的事務日誌文件過大,必須對其進行收縮的話,建議參照以下步驟:1、建議首先備份資料庫(但不是必需的):BACKUP DATABASE database_name TO backup_device
2、備份事務日誌:BACKUP LOG database_name TO backup_device如果不需要當前事務日誌中的記錄進行資料庫還原或沒有足夠的空間進行事務日誌備份的的話,也可僅執行以下命令截斷事務日誌:BACKUP LOG database_name WITH NO_LOG
3、收縮日誌文件:DBCC SHRINKFILE (log_file_name)其中log_file_name是事務日誌文件的邏輯名稱,可以在企業管理器中資料庫屬性的「事務日誌」頁中看到(如Northwind資料庫的默認事務日誌文件邏輯名稱為Northwind_log)。4、如果日誌文件仍然較大的話,可以嘗試重復執行一次BACKUP LOG WITH NO_LOG和DBCC SHRINKFILE命令。5、如果這時仍沒有明顯的效果,請執行DBCC OPENTRAN (database_name)檢查當前資料庫中是否存在長時間未提交的活動事務。有必要的話,可以斷開這些連接並重新嘗試截斷事務日誌和收縮日誌文件。6、日誌文件收縮完成後,建議立即執行一次資料庫的完全備份並根據實際需要制定適當的資料庫備份計劃。

壓縮access資料庫的原理

1.首先你要了解資料庫變大的原因:隨著您不斷添加、更新數據以及更改資料庫設計,資料庫文件會變得越來越大。導致增大的因素不僅包括新數據,還包括其他一些方面:
(1)Access 會創建臨時的隱藏對象來完成各種任務。有時,Access 在不再需要這些臨時對象後仍將它們保留在資料庫中。
(2)刪除資料庫對象時,系統不會自動回收該對象所佔用的磁碟空間。也就是說,盡管該對象已被刪除,資料庫文件仍然使用該磁碟空間。

隨著資料庫文件不斷被遺留的臨時對象和已刪除對象所填充,其性能也會逐漸降低。其症狀包括:對象可能打開得更慢,查詢可能比正常情況下運行的時間更長,各種典型操作通常似乎也需要使用更長時間。

2.所以,壓縮資料庫並不是壓縮數據,而是通過清除未使用的空間來縮小資料庫文件。
3.壓縮資料庫可以防止資料庫變大而引起的執行性能變慢,防止因此造成的資料庫損壞。

❹ oracle資料庫表空間佔用太大,如何在不刪除表的情況下縮小佔用空間

alter table 表名 move和alter table 表名 shrink space都可以用來進行段收縮,降低高水位HWM,
也都可以用來消除行鏈接(Row Chaining)和行遷移(Row Migration),估計效果不明顯,看你的資料庫用途是干什麼的(如果是數據倉庫肯定是不明顯的)。

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:642
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:368
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:89
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:312
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:795
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:348
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:213
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:819
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:369
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:596