當前位置:首頁 » 編程語言 » sql備份如何指定表空間
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql備份如何指定表空間

發布時間: 2022-06-10 05:30:00

① Oracle11g如何將sql腳本在指定的表空間運行

比如說你在D盤下創建一個USERS表空間
create tablespace USERS
datafile 'D;\users01.dbf'
size 10M 表空間大小10M
autoextend on next 1M maxsize 20M //自動增長,每次1M
extent management local autoallocate //區管理,本地,自動
segment space management auto //段管理 ,自動

資料庫SQL 如何完全備份

1、點擊開始菜單,打開sql企業管理器。
2、依次展開sqlserver根目錄,並打開資料庫。
3、選擇要備份的資料庫名,滑鼠右鍵所有任務→備份資料庫。
4、這里需要注意,如果之前有備份的話,一定要先刪除之前的備份記錄,不用擔心只是刪除記錄而不是刪除備份文件。
5、刪除記錄再點添加。
6、選擇備份目的,就是要讓你選擇備份地點和備份文件命名。前面是路徑後面是文件名,這個文件名是自定義的,可以根據時間或者其它來命名,如果想另存的話也可以點擊另存為,然後確定。
7、添加保存路徑後繼續確定,然後會有備份進度提示,直到完成ok。
8、根據路徑來檢查是否有備份文件。

③ Oracle11g如何將sql腳本運行到指定的表空間

修改腳本中創建表的語句,創建表的時候指定表空間。
例如CREATE TABLE a(id NUMBER, name VARCHAR(100) TABLESPACE new;
或者CREATE TABLE a1 TABLESPACE new AS (SELECT * FROM a);

④ 怎麼用PL/SQL備份oracle資料庫

1、 准備資料庫創建腳本


create tablespace whc_tbs datafile 'E:oracleoradatawhcdbwhc.dbf' size 100M;
--DROP TABLESPACE whc_tbs INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
create user whc identified by whc default tablespace whc_tbs;
grant connect,resource to whc;
grant dba to whc;
--Revoke dba from whc;



其中--的注釋語句是刪除命名空間和移除DBA用戶的許可權的。

以上這些腳本是為了我們在新建一個表空間和Oracle資料庫的時候使用的。

其中E:oracleoradatawhcdbwhc.dbf路徑是我們要存放資料庫數據的位置,因此要保證該路徑有足夠的空間和足夠的訪問許可權,否則會失敗的。

2、 導出資料庫對象

在PL/SQL Developer的菜單Tools=>Export User Objects中出來一個對話框界面,然後框選要到處的Oracle 資料庫對象,包括表,序列,存儲過程,視圖,函數等等,並指定導出的文件名稱,如下操作。

完成上面幾個步驟,我們在新的資料庫環境中,就具備了所有的東西了,順利完成整個Oracle資料庫對象及數據的遷移工作。

以上值得注意的是,我們導出Oracle對象和數據的時候,默認還是原來Oracle資料庫的表空間和資料庫用戶名稱的,如果我們想要在新的資料庫伺服器中指定不同的表空間和資料庫用戶對象,那麼我們就需要替換生成的sql腳本,並在第一步指定合理的表空間和資料庫用戶。

如果是Linux平台下的資料庫伺服器,第一步操作也是差不多的,就是指定表空間的路徑名稍微不同,其他操作並無差異。

⑤ 怎樣在創建表時指定表所在的表空間

可以直接在創建語句後面追加「tablespace name」進行表空間指定。
sql:create table tablename(id int) tablespace tablespacename;
解釋:在表空間「tablespacename」上創建表「tablename」。以上語句就實現了為表指定表空間。

⑥ sql語句對資料庫備份如何寫

今天看到一篇關於ORCLE的邏輯備份,冷、熱備份的帖子講的挺好的,不過這篇文章是以ORACLE 7為例子,雖然現在已經有很好很強大的RMAN,但還是覺得有必要轉過來,不能喜新厭舊嘛。

==================================================================================

Oracle資料庫的備份與恢復

---- 當我們使用一個資料庫時,總希望資料庫的內容是可靠的、正確的,但由於計算機系統的故障(包括機器故障、介質故障、誤操作等),資料庫有時也可能遭到破壞,這時如何盡快恢復數據就成為當務之急。如果平時對資料庫做了備份,那麼此時恢復數據就顯得很容易。由此可見,做好資料庫的備份是多麼的重要,下面筆者就以ORACLE7為例,來講述一下資料庫的備份和恢復。ORACLE 資料庫有三種標準的備份方法,它們分別為導出/導入(EXPORT/IMPORT)、冷備份、熱備份。導出備份是一種邏輯備份,冷備份和熱備份是物理備份。

---- 一、 導出/導入(Export/Import)

---- 利用Export可將數據從資料庫中提取出來,利用Import則可將提取出來的數據送回Oracle資料庫中去。

---- 1. 簡單導出數據(Export)和導入數據(Import)

---- Oracle支持三種類型的輸出:

---- (1)表方式(T方式),將指定表的數據導出。

---- (2)用戶方式(U方式),將指定用戶的所有對象及數據導出。

---- (3)全庫方式(Full方式),將資料庫中的所有對象導出。

---- 數據導出(Import)的過程是數據導入(Export)的逆過程,它們的數據流向不同。

---- 2. 增量導出/導入

---- 增量導出是一種常用的數據備份方法,它只能對整個資料庫來實施,並且必須作為SYSTEM來導出。在進行此種導出時,系統不要求回答任何問題。導出文件名預設為export.dmp,如果不希望自己的輸出文件定名為export.dmp,必須在命令行中指出要用的文件名。

---- 增量導出包括三個類型:

---- (1)「完全」增量導出(Complete)

---- 即備份整個資料庫,比如:

---- $exp system/manager inctype=complete file=990702.dmp

---- (2) 「增量型」增量導出

---- 備份上一次備份後改變的數據。比如:

---- $exp system/manager inctype=incremental file=990702.dmp

---- (3) 「累計型」增量導出(Cumulative)

---- 累計型導出方式只是導出自上次「完全」 導出之後資料庫中變化了的信息。比如:

---- $exp system/manager inctype=cumulative file=990702.dmp

---- 資料庫管理員可以排定一個備份日程表,用數據導出的三個不同方式合理高效地完成。

---- 比如資料庫的備份任務可作如下安排:

---- 星期一:完全導出(A)

---- 星期二:增量導出(B)

---- 星期三:增量導出(C)

---- 星期四:增量導出(D)

---- 星期五:累計導出(E)

---- 星期六:增量導出(F)

---- 星期日:增量導出(G)

---- 如果在星期日,資料庫遭到意外破壞,資料庫管理員可按以下步驟來恢復資料庫:

---- 第一步:用命令CREATE DATABASE重新生成資料庫結構;

---- 第二步:創建一個足夠大的附加回段。

---- 第三步:完全增量導入A:

---- $imp system./manager inctype= RECTORE FULL=Y FILE=A

---- 第四步:累計增量導入E:

---- $imp system/manager inctype= RECTORE FULL=Y FILE =E

---- 第五步:最近增量導入F:

---- $imp system/manager inctype=RESTORE FULL=Y FILE=F

---- 二、 冷備份

---- 冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的資料庫。冷備份是將關鍵性文件拷貝到另外位置的一種說法。對於備份Oracle信息而言,冷備份是最快和最安全的方法。冷備份的優點是:

---- 1.是非常快速的備份方法(只需拷貝文件)

---- 2.容易歸檔(簡單拷貝即可)

---- 3.容易恢復到某個時間點上(只需將文件再拷貝回去)

---- 4.能與歸檔方法相結合,作資料庫「最新狀態」的恢復。

---- 5.低度維護,高度安全。

---- 但冷備份也有如下不足:

---- 1.單獨使用時,只能提供到「某一時間點上」的恢復。

---- 2.在實施備份的全過程中,資料庫必須要作備份而不能作其它工作。也就是說,在冷備份過程中,資料庫必須是關閉狀態。

---- 3.若磁碟空間有限,只能拷貝到磁帶等其它外部存儲設備上,速度會很慢。

---- 4.不能按表或按用戶恢復。

---- 如果可能的話(主要看效率),應將信息備份到磁碟上,然後啟動資料庫(使用戶可以工作)並將所備份的信息拷貝到磁帶上(拷貝的同時,資料庫也可以工作)。冷備份中必須拷貝的文件包括:

---- 1.所有數據文件

---- 2.所有控制文件

---- 3.所有聯機REDO LOG文件

---- 4.Init.ora文件(可選)。

---- 值得注意的是冷備份必須在資料庫關閉的情況下進行,當資料庫處於打開狀態時,執行資料庫文件系統備份是無效的

---- 下面是做冷備份的完整例子:

---- (1) 關閉資料庫$sqldba lmode=y

---- SQLDBA >connect internal;

---- SQLDBA >shutdown normal;

---- (2) 用拷貝命令備份全部的時間文件、重做日誌文件、控制文件、初始化參數文件

---- SQLDBA >! cp < file > <

; backup directory >

---- (3) 重啟Oracle資料庫

---- $sqldba lmode=y

---- SQLDBA >connect internal;

---- SQLDBA >startup;

---- 三、 熱備份

---- 熱備份是在資料庫運行的情況下,採用archivelog mode方式備份數據的方法。所以,如果你有昨天夜裡的一個冷備份而且又有今天的熱備份文件,在發生問題時,就可以利用這些資料恢復更多的信息。熱備份要求資料庫在Archivelog方式下操作,並需要大量的檔案空間。一旦資料庫運行在archivelog狀態下,就可以做備份了。熱備份的命令文件由三部分組成:

---- 1.數據文件一個表空間一個表空間地備份。

---- (1)設置表空間為備份狀態

---- (2)備份表空間的數據文件

---- (3)恢復表空間為正常狀態

---- 2.備份歸檔log文件。

---- (1)臨時停止歸檔進程

---- (2)log下那些在archive redo log目標目錄中的文件

---- (3)重新啟動archive進程

---- (4)備份歸檔的redo log 文件

---- 3.用alter database backup controlfile命令來備份拷貝文件

---- 熱備份的優點是:

---- 1.可在表空間或數據文件級備份,備份時間短。

---- 2.備份時資料庫仍可使用。

---- 3.可達到秒級恢復(恢復到某一時間點上)。

---- 4.可對幾乎所有資料庫實體作恢復。

---- 5.恢復是快速的,在大多數情況下在資料庫仍工作時恢復。

---- 熱備份的不足是:

---- 1.不能出錯,否則後果嚴重。

---- 2.若熱備份不成功,所得結果不可用於時間點的恢復。

---- 3.因難於維護,所以要特別仔細小心,不允許「以失敗而告終」。

⑦ 在用命令IMP倒入數據時怎樣指定表空間

imp導入數據指定表空間,大致有以下幾種方法可以:
1. 有一個簡單的方法,適用於數據比較少的情況:直接使用UltraEdit打方DMP文件,默認是16進制,切換成文本模式,將裡面的:TABLESPACE "TS1"全部替換成TABLESPACE "TS2",然後再導入,不用加什麼tablespaces=TS2之類的參數即可,當然加了也無所所謂。
C:\>IMP USER2/USER2 log=C:\plsimp.log file=D:\database\USER1.dmp fromuser=USER1 touser=USER2 ignore=yes tablespaces=TS2
不過有個缺點,如果DMP文件有幾百M甚至幾G,嘿嘿嘿嘿,不知道UltraEdit有啥反應?
2. 還有另外一種比較好的方法。基本思路都是先從 USER1導出表結構(DMP或者SQL腳本),然後在USER2用戶下創建空的資料庫表(如果是DMP,則參見方法1;如果是SQL腳本,則稍作修改後以USER2用戶執行即可),再將包括數據的DMP導入,注意要設IGNORE=Y,並指定FROMUSER和TOUSER。具體實現方法為:
(1)先用工具導出USER1的表結構(不要導出CHECK和FK,特別是FK!),TOAD和 PL/SQL都有此功能。PL/SQL Developer導出表結構:Tools-->Export User Objects(導出用戶對象) -->選擇要導出的表(包括Sequence等)-->.sql文件,導出的都為sql文件。或者使用imp的indexfile選項生成表結構的SQL腳本。
(2)在USER2用戶下創建相同的表結構
(3)導入完整的數據
PS:
PL/SQL Developer工具操作步驟:
(1)導出表結構:
Tools-->Export User Objects(導出用戶對象) -->選擇要導出的表(包括Sequence等)-->.sql文件,導出的都為sql文件
(這一步也可以導出一個只包括表結構的DMP文件。)
(2)導出表數據:
Tools-->Export Tables-->選擇表,選擇SQL Inserts-->.sql文件
(這一步也可以導出一個包括表結構和數據或者只有數據沒有表結構圖的DMP文件。)
(3)導入表結構:
執行剛剛導出的sql文件,記住要刪掉table前的用戶名,比如以前這表名為sys.tablename,必須刪除sys
(如果是只包括表結構的DMP文件,則使用UltraEdit修改表空間,再導入。如方法1)
(4)導入表數據:
執行剛剛導出的sql文件
(如果是DMP文件,則直接導入即可,注意要設IGNORE=Y,並指定FROMUSER和TOUSER。)
IMP命令操作步驟:
首先:exp user/pw file=file.dmp owner=yourUser1
然後:imp user/pw file=file.dmp indexfile=xxxx.sql fromuser=yourUser1 touser=yourUser2
隨後:修改xxxx.sql中的關於有表空間設置的地方為新的表空間,並去掉相關的注釋(rem),然後執行xxxx.sql創建相關對象。
最後:imp user/pw file=file.dmp fromuser=yourUser1 touser=yourUser2 ignore=y

⑧ sql語句中怎麼用create table新建表並且放入指定的表空間,不是創建表空間

按如下語句就可以:
create table student
(id int,
name varchar2(20),
sex varchar2(2),
age int)
tablespace hotel;說明,其中前邊的create的語句基本和平常的建表語句無異,但是最後要加上tablespace
hotel,其中hotel就是指定的表空間。

⑨ 如何備份自動增加需要備份的表空間

正確的備份策略不僅能保證資料庫伺服器的24*7的高性能的運行,還能保證備份與恢復的快速性與可靠性。我們將以RMAN的多級增量備份作為一個備份策略的例子來討論。採用多級備份就是為了減少每天備份所需要的時間,而又保證系統有良好的恢復性。恢復時間與備份時間要有一個權衡。比如只要進行一個資料庫的全備份,然後就只備份歸檔也可以保證能把資料庫恢復到最新的狀態,但是這樣的恢復時間將是不可容忍的。多級備份也正是 為了解決這種問題,以下就是一個多級備份的例子:
每半年做一個資料庫的全備份(包括所有的數據和只讀表空間)
每一個月做一次零級備份(不包含只讀表空間)
每個星期做一次一級備份
每天做一次二級備份
任何資料庫的更改需要重新同步CATALOG目錄並重新備份(如添加數據文件)或重新備份(如修改表空間為只讀)
每次備份後都可以備份歸檔日誌或定期備份歸檔日誌。
如果可能,可以直接備份到磁帶上。
資料庫全備份的腳本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup full tag 『dbfull』 format 『/u01/oradata/backup/full%u_%s_%p』 database
include current controlfile;
sql 『alter system archive log current』;
backup fileaperset 3 format 『/u01/oradata/backup/arch%u_%s_%p』
archivelog all delete input; #備份歸檔可選,可以單獨定期備份
release channel c1;
release channel c2;
release channel c3;
}
零級備份的腳本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag 『db0』 format 『/u01/oradata/backup/db0%u_%s_%p』
database skip readonly;
sql 『alter system archive log current』;
backup fileaperset 3 format 『/u01/oradata/backup/arch%u_%s_%p』
archivelog all delete input; #備份歸檔可選,可以單獨定期備份
release channel c1;
release channel c2;
release channel c3;
}
同理,我們可以得到一級備份,二級備份的腳本,如一級備份的腳本
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1 tag 『db1』 format 『/u01/oradata/backup/db1%u_%s_%p』
database skip readonly;
sql 『alter system archive log current』;
backup fileaperset 3 format 『/u01/oradata/backup/arch%u_%s_%p』
archivelog all delete input; #備份歸檔可選,可以單獨定期備份
release channel c1;
release channel c2;
release channel c3;
}
如果按照以上備份策略,則每天的所需要備份的數據量只有一天的改變數。而做恢復時最多要恢復當月的一個零級備份+三個一級備份+6個二級備份+當天的歸檔文件。如果不能接受這樣的恢復時間,可以減少零級備份之間的時間間隔。
在每次備份後,原則上在該備份點之前的歸檔日誌就可以刪除掉了,但是為了進一步的安全以及日後需要(如使用LOGMNR查找所需信息),建議有條件的話,歸檔日誌保存一年,可以保存在磁帶等廉價存取設備上。

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/milia/archive/2008/09/14/2804563.aspx

⑩ 如何用PL/SQL備份oracle資料庫

1、 准備資料庫創建腳本

create tablespace whc_tbs datafile 'E:\oracle\oradata\whcdb\whc.dbf' size 100M;
--DROP TABLESPACE whc_tbs INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
create user whc identified by whc default tablespace whc_tbs;
grant connect,resource to whc;
grant dba to whc;
--Revoke dba from whc;

其中--的注釋語句是刪除命名空間和移除DBA用戶的許可權的。
以上這些腳本是為了我們在新建一個表空間和Oracle資料庫的時候使用的。
其中E:\oracle\oradata\whcdb\whc.dbf路徑是我們要存放資料庫數據的位置,因此要保證該路徑有足夠的空間和足夠的訪問許可權,否則會失敗的。
2、 導出資料庫對象
在PL/SQL Developer的菜單Tools=>Export User Objects中出來一個對話框界面,然後框選要到處的Oracle 資料庫對象,包括表,序列,存儲過程,視圖,函數等等,並指定導出的文件名稱,如下操作。

3)導出表數據
導出表結構和其他對象後,我們下一步就是把資料庫的表數據進行導出,PL/SQL Developer工具支持導出數據到PL/SQL資料庫腳本中,如下所示。這樣導出的腳本,我們可以在PL/SQL Developer工具導入或者自己通過Sql plus 工具進行導入。

至此,我們就已經完成了三種腳本了,包括創建資料庫空間和資料庫腳本、創建Oracle資料庫對象(表、存儲過程、視圖、序列等)、創建導入數據的腳本,這樣三種合一,就是一個完整的資料庫了。最後一步就是我們如何導入資料庫對象和數據的問題了。

4)導入資料庫對象及數據
導入資料庫對象和數據的操作一樣,都可以通過Import Tables操作實現,我們指定剛才上面兩步創建的資料庫腳本,執行即可再新的環境中創建資料庫對象和資料庫數據了。如下所示。

完成上面幾個步驟,我們在新的資料庫環境中,就具備了所有的東西了,順利完成整個Oracle資料庫對象及數據的遷移工作。

以上值得注意的是,我們導出Oracle對象和數據的時候,默認還是原來Oracle資料庫的表空間和資料庫用戶名稱的,如果我們想要在新的資料庫服務
器中指定不同的表空間和資料庫用戶對象,那麼我們就需要替換生成的sql腳本,並在第一步指定合理的表空間和資料庫用戶。
如果是Linux平台下的資料庫伺服器,第一步操作也是差不多的,就是指定表空間的路徑名稍微不同,其他操作並無差異。