當前位置:首頁 » 編程語言 » sql表空間刪除數據文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql表空間刪除數據文件

發布時間: 2023-07-14 22:48:06

① 用sql語句刪除資料庫中的邏輯文件,若資料庫的該邏輯文件有信息,是否能刪除

沒有簡單的方法來刪除表空間的數據文件,唯一的方法是刪除整個定義的表空間,步驟有下面(前提是這個數據文件上的數據是不需要了):因為使用alter database datafile 'name' offline drop,也可以物理的刪除一個數據文件但它的信息仍然記錄在數據字典中(不影響資料庫的運行)。
如果資料庫運行在非歸檔模式:
1. MOUNT資料庫 - startup mount
2. 刪除數據文件 - alter database datafile xxx offline drop
3. 打開(OPEN)資料庫 - alter database open
4. 查看屬於該表空間的所有對象:
select owner, segment_name, segment_type
from dba_segments
where tablespace_name='tbs_name'
5. 導出該表空間的所有對象------用exp命令來做
6. 刪除表空間 - drop tablespace tbs_name including contents
7. 刪除這個表空間的所有物理的數據文件Delete the physical datafiles belonging to the tablespace
8. 重建表空間,導入前面導出的DMP文件.

如果資料庫是運行在歸檔模式:
1. MOUNT資料庫 - startup mount
2. 刪除數據文件 - alter database datafile xxx offline
(Note: offline這個數據文件,此數據文件還是屬於這個資料庫的一部分,只是在控制文件中將它的狀態標記為offline.)
3. 在操作系統一級刪除物理的數據文件
4. 打開(OPEN)資料庫 - alter database open
5. 後面的可以做下面操作:
導出該表空間的對象
刪除表空間
重建表空間並導入對象
如果資料庫運行在歸檔模式下,並且數據文件有備份:
1.MOUNT資料庫
2.OFFLINE數據文件:alter database datafile xxx offline;
3.將備份的數據文件拷貝到原來數據文件的位置.
4.將備份數據文件到目前的所有歸檔日誌放到歸檔目錄.
5.恢復數據文件:recover automatic datafile xxx(要輸入全路徑名)
6.然後ONLINE數據文件:alter database datafile xxx online;
7.打開(OPEN)資料庫:alter database open;
8.做一次資料庫的關機全備份.

② 資料庫文件如何刪除

問題一:資料庫滿了怎麼刪除 首先看資料庫文件所在硬碟的空間足不足,可以擴容解決這個問題;
第二,什麼資料庫MS-SQL的話可以刪除日誌文件,如果是ORACEL的話看看錶空間足不足,不足的話擴表空間。
你的問題太籠統了。

問題二:如何刪除sql資料庫的日誌文件 其中database為你的庫名 --壓縮日誌1:截斷事務日誌:BACKUP LOG 資料庫名 WITH NO_LOG2:清空日誌DUMP TRANSACTION 庫名 WITH NO_LOG再:企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了3: 刪除LOG1:分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫2:刪除LOG文件3:附加資料庫 企業管理器->伺服器->資料庫->右鍵->附加資料庫此法生成新的LOG,大小隻有500多K再將此資料庫設置自動收縮或用代碼:下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。EXEC sp_detach_db @dbname = 'pubs'EXEC sp_attach_single_file_db @dbname = 'pubs',@physname = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/pubs.mdf'4: 如果想以後不讓它增長企業管理器--伺服器--右鍵資料庫--屬性--事務日誌--將文件增長限制為xM(x是你允許的最大數據文件大小)--SQL語句的設置方式:alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)5.設置為自動收縮

問題三:怎麼用SQL語句刪除資料庫中多個文件 REMOVE FILE 只有在文件為空時才能刪除。
正常操作步驟:
以下操作在查詢分析器上執行即可:
--轉到要處理的資料庫:
use 庫名
go
--查看該庫所有的文件:
select [name],[filename] from sysfiles
go
--對指定的文件進行數據移除:
dbcc shrinkfile (上面查詢得到的「邏輯文件名」(定Name那列), EMPTYFILE)
go
--將一定移除了數據的指定文件刪除:
ALTER DATABASE 庫名 REMOVE FILE 上面查詢得到的「邏輯文件名」
Go

問題四:如何刪除資料庫中所有數據 你租用資料庫時,提供商會給你提供資料庫連接IP、登陸用戶和密碼。你在本地sql資料庫管理平台(企業管理器)中遠程連接你的資料庫,然後進入刪除所有表或視圖、存訂過程等資料。光留一個空庫,也沒啥大礙。
還有個方法就是主動聯系客服,申請刪除你的資料庫。
管理頁面上我也沒有發現刪除資料庫的功能。

問題五:怎麼刪除資料庫中SQL文件。 資料庫上傳sql文件,不是太理解。你是不是說你導入了一份sql文件五次。而這份sql文件是執行插入命令。如果是這樣,你可以通過編寫存儲過程加上帶條件的刪除語句對重復的數據進行處理。

問題六:sql資料庫我把表刪除了,為什麼資料庫文件還是那麼大?請問怎麼才能徹底把資料庫文件弄小? create database dbName
on( ...
size=10mb,
...)
是不是建庫的時候初始設置大了?
----------
資料庫在使用過程中會因需要而不斷擴張,你刪除表或者大量數據,資料庫雖然內容少了,但佔用的資源不會少.需要使用資料庫收縮命令.
DBCC SHRINKDATABASE(dbName)
或者右鍵:
企業管理器--目標資料庫--所有任務--收縮資料庫--收縮文件 --選擇數據文件

問題七:資料庫文件被人為刪除,怎麼辦? 資料庫刪除後,普通的軟體是無法找回的了。比如網上下載的軟體,最好別嘗試,嘗試還是浪費時間的。我們公司之前也是由於誤刪除MDF,找了多家公司修復,附加都置疑,最後聯系了廣州拓飛,那裡的工程師專業做資料庫修復,我們公司的資料庫後來在拓飛修復好了。「請注意,最好不要往那個分區(誤刪除的那個分區),如果覆蓋數據會很麻煩,甚至無法修復了。」,在網路搜索廣州拓飛數績恢復「,可以找到他們的電話,地址,祝你們成功

問題八:怎麼刪除oracle的數據文件 一、使用offline數據文件的方法
非歸檔模式使用:alter database datafile '...' offline drop;
歸檔模式使用: alter database datafile '...' offline;
說明:
1) 以上命令只是將該數據文件OFFLINE,而不是在資料庫中刪除數據文件。該數據文件的信息在控制文件種仍存在。查詢v$datafile,仍顯示該文件。
2) 歸檔模式下offline和offline drop效果是一樣的
3) offline後,存在此datafile上的對象將不能訪問
4) noarchivelog模式下,只要online redo日誌沒有被重寫,可以對這個文件recover後進行online操作

實際使用案例:
直接刪除數據文件後無法進入系統的解決方案

正常情況下,刪除表空間的正確方法為:
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

如果沒有通過以上命令刪除而直接刪除了數據文件,將導致資料庫無法打開。

如果直接刪除了數據文件
普通用戶登錄時,則報錯:
ORA-01033: ORACLE initialization or shutdown in progress
sys用戶可以正常登錄
但進行操作時(SELECT count(1) FROM user_tables),則會報錯:
ORA-01219: 資料庫未打開: 僅允許在固定表/視圖中查詢
如果執行命令alter database open以打開資料庫時,又報如下錯:
ORA-01157: 無法標識/鎖定數據文件 12 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 12: 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF'

說明資料庫沒找到這個數據文件
因為數據文件在沒有被offline的情況下物理刪除了,導致oracle的數據不一致,因此啟動失敗.
通過以下方法即可解決

解決方法:
sqlplus [email protected] as sysdba;
SQL> alter database datafile 'E:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/TSTEST001.DBF' offline drop;
SQL> alter database open;
SQL> drop tablespace CTBASEDATA;

二、Oracle 10G R2開始,可以採用:Alter tablespace tablespace_name drop datafile file_name;來刪除一個空數據文件,並且相應的數據字典信息也會清除:

[email protected] >select file_id,file_name,tablespace_name from dba_data_files
2 where tablespace_name='USERS';
FILE_ID FILE_NAME ......>>

問題九:怎麼修改或刪除mdb資料庫文件裡面的東西呀? mdb是access資料庫的文件,你可以安裝office專業版(2003以上的版本),就可以打開這些文件對其進行修改或刪除,但是由於其原先是網站後台數據,可能會有密碼否則是無法打開的。

③ 怎麼刪除用戶,表空間,數據文件

Oracle 使用時間長了, 新增了許多user 和tablespace. 需要清理一下
對於單個user和tablespace 來說, 可以使用如下命令來完成。

步驟一: 刪除user

drop user ×× cascade

說明: 刪除了user,只是刪除了該user下的schema objects,是不會刪除相應的tablespace的。

步驟二: 刪除tablespace
DROP TABLESPACE tablespace_name INCLUDING CONTENTS AND DATAFILES;

但是,因為是供開發環境來使用的db, 需要清理的user 和 table space 很多。
思路:
Export出DB中所有的user和tablespace, 篩選出系統的和有用的tablespace,把有用的信息load到一張表中去。
然後寫常式循環,把不在有用表的tablespace刪掉
1. select username,default_tablespace from dba_users;
2.

create table MTUSEFULSPACE
(
ID Number(4) NOT NULL PRIMARY KEY,
USERNAME varchar2(30),

④ 如何用SQL語句刪除一個表空間里的所有表

SELECT 'DROP TABLE ' || TABLE_NAME || ' CASCADE CONSTRAINTS' V_NAME
FROM DBA_TABLES
WHERE TABLESPACE_NAME = 'USERS';

按照表空間名查詢所有包含的表,並根據表名拼接刪除語句。
執行上面查詢語句生成的語句,即可刪除所有表。