第一篇:Oracle11g 通過工具創建表空間
Oracle備份(11g)
例如: 用戶名: test 密碼:test 全局數據庫名:joyo
開始-運行-cmd 輸入 exp test/test@joyo file=d:back.dmp full=y 其中back備份的名,可以任意起,后綴一定是.dmp的
Oracle還原
例如:要還要的用戶名為:apple 密碼:apple 開始-運行-cmd 輸入 imp apple/apple@joyo file=d:back.dmp full=y
還原的用戶建立
1.建表格
在建立用戶前先建立用戶使用的表格
在 oracle Enterprise Manage Console的存儲下建立表空間 打開oracle Enterprise Manage Console
輸入要建立的表空間名字 如 test 大小 輸入100 M 表格可以自已任意起名字
點創建 創建表格
點中創建的表格test下的數據文件的信息
選擇 存儲
選中數據文件已滿后自動擴展
100MB
點應用
表格創建成功
2.建用戶
在 oracle Enterprise Manage Console的安全性下建立用戶 打開oracle Enterprise Manage Console
輸入用戶名
如hong 密碼hong 默認值選剛建的表空間test 用戶可以自已任意起名字
角色選DBA
點創建,創建用戶成功
第二篇:oracle-sql語句-創建表空間、數據庫
1、查看表空間的名稱及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0)ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name;
2、查看表空間物理文件的名稱及大小
select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0)total_space from dba_data_files order by tablespace_name;
3、查看回滾段名稱及大小
select segment_name, tablespace_name, r.status,(initial_extent/1024)InitialExtent,(next_extent/1024)NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+)order by segment_name;
4、查看控制文件
select name from v$controlfile;獲取創建表空間的sql select
dbms_lob.substr(dbms_metadata.get_ddl('TABLESPACE',a.tablespace_name))from dba_tablespaces a;
SQL> select sid,serial# from v$session where username='TEST';alter system kill session '150,9019';查看被鎖的表 select object_name,machine,s.sid,s.serial#,s.event from gv$locked_object l,dba_objects o,gv$session s where l.object_id=o.object_id and l.session_id=s.sid;alter system kill session ‘sid,serial#’;
5、查看日志文件
select member from v$logfile;
6、查看表空間的使用情況
select sum(bytes)/(1024*1024)as free_space,tablespace_name from dba_free_space group by tablespace_name;
SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,(B.BYTES*100)/A.BYTES “% USED”,(C.BYTES*100)/A.BYTES “% FREE” FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME;
Select b.tablespace_name as表空間名,b.bytes as字節數,(b.bytes-sum(nvl(a.bytes,0)))as已使用,sum(nvl(a.bytes,0))as剩余空間,sum(nvl(a.bytes,0))/(b.bytes)*100 as 剩余百分比 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_id,b.bytes order by b.file_id;
7、查看數據庫庫對象
select owner, object_type, status, count(*)count# from all_objects group by owner, object_type, status;
8、查看數據庫的版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
9.查看某個表空間內所占空間大于某個值的段(表或索引):
Select segment_name,bytes FROM dba_segments Where bytes>10000000 AND tablespace_name='tablespace_name';10.查看所有表空間的碎片程度(值在30以下表示碎片很多)
select tablespace_name,sum(bytes),sum(free),sum(free)*100/sum(bytes)from(select
b.file_id file_ID,b.tablespace_name tablespace_name,b.bytes Bytes,(b.bytes-sum(nvl(a.bytes,0)))used,sum(nvl(a.bytes,0))free,sum(nvl(a.bytes,0))/(b.bytes)*100
Percent
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id)group by tablespace_name order by sum(free)*100/sum(bytes);11.查看自上次數據庫啟動以來所有數據文件的讀寫次數
select
substr(DF.NAME,1,5)Drive,DF.NAME file_name,(fs.phyblkrd+fs.phyblkwrt)
from v$filestat fs,v$datafile df
where df.file#=fs.file#;
創建臨時表空間: //創建臨時表空間
create temporary tablespace mytest tempfile 'E:/Program/oracle/product/10.1.0/oradata/orcl/mytest.dbf' size 32m autoextend on next 32m maxsize 1024m extent management local;
//創建數據表空間
create tablespace mytest_data logging datafile 'E:/Program/oracle/product/10.1.0/oradata/orcl/mytest_data.dbf' size 32m autoextend on next 32m maxsize 1024m extent management local;//創建用戶并指定表空間
create user testaccount identified by testpwd default tablespace mytest_data temporary tablespace mytest;//給用戶授予權限
grant connect,resource to testaccount;(db2:指定所有權限)12,創建一個用戶:
CREATE USER username IDENTIFIED BY password OR IDENTIFIED EXETERNALLYOR IDENTIFIED GLOBALLY AS ‘CN=user’[DEFAULT TABLESPACE tablespace][TEMPORARY TABLESPACE temptablespace][QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace[,QUOTA [integer K[M] ] [UNLIMITED] ] ON tablespace[PROFILES profile_name][PASSWORD EXPIRE][ACCOUNT LOCK or ACCOUNT UNLOCK];
//查看數據庫中的所有用戶: select * from all_users;//or select * from dba_users 13查看oracle最大連接數: Select session_max,session_current,sessions_highwater,users_max from v$license;Select username,count(username)from v$session group by username;加密存儲過程 WRAP
INAME=D:ORACLESOURCEDATE.SQL ONAME=D:ORACLESOURCEDATA.PLD
第三篇:表空間
管理表空間和數據文件
小結:作用
Undo表空間和臨時表空間的建立方法
了解各個狀態(online,read write,readonly)的作用,及如何改變表空間的狀態的方法。了解移動數據文件的原因,及使用alter tablespace和alter datatable命令移動數據文件的方法
介紹
表空間是數據庫的邏輯組成部分,從物理上將,數據庫數據存放在數據文件中;從邏輯上講,數據庫則是存放在表空間中,表空間是 由一個或多個數據文件組成。
表
表空間——》數據文件 數據庫的邏輯結構
Oracle中邏輯結構包括表空間、段、區、塊 一個數據庫邏輯上由一個或多個表空間。表空間是由物理文件構成。可以達到以下作用:
(1)控制數據庫占用的磁盤空間
(2)dba可以將不同數據類型部署到不同的位置,這樣有利于提高I/O性能,同時利于備份和恢復等管理操作。建立表空間
建立表空間是使用create tablespace命令完成,需要注意的是,一般情況下,建立表空間是特權用戶或是dba來執行的,如果其他用戶來創建表空間,則用戶必須要具有create tablespace的系統權限。建立數據表空間
在建立數據庫后,為了便于管理,最好建立自己的表空間 Create tablespace date01(表空間的名)datefile(數據文件)‘d:testdata01.dbf’size 20m uniform size 128k(區128k)
說明;執行完上述命令后,會建立名稱為date01的表空間,并為該表空間建立名稱為date01.bdf的數據文件,區的大小為128k; 使用數據表空間
Create table mypart(deptno number(4), dname varchar2(14), loc varchar2(13))tablespace date01;改變表空間的狀態
在建立表空間時,表空間處于聯機的狀態,此時該表空間是可以訪問的,并且該表空間是可以讀寫的,即可以查詢該表空間的數據,而且還可以在表空間執行各種語句。但是在進行系統維護或是數據庫維護時,可能需要改變表空間的狀態。一般情況下,由特權用戶或是dba來操作。
(1)使表空間脫機
Alter tablespace 表空間名 offline;(2)使表空間聯機
Alter tablesqace 表空間名online;(3)只讀表空間
當建立表空間時,表空間可以讀寫,如果不希望在該表空間上執行update、delete、insert操作,那么可以將表空間修改為只讀 Alter tablespace 表空間名
read only 改變表空間的狀態
(1)顯示表空間包括的所有表
Select * from all_tables where tablespace_name=’表空間名’(2)知道表名,查看該表屬于那個表空間
(3)Select tablespace_name,table_name from user_tables where table_name=’emp’;刪除表空間
Drop tablespace ‘表空間’ including contents and datafiles;說明:including contents 表示刪除表空間時,刪除該表空間的所有數據對象,而datafiles表示將數據文件也刪除。擴展表空間
1、建立表空間 sp01
2、在該表空間上建立一個普通的表 mydment 其表結構和dept一樣
3、想該表空間加入數據insert into mydment select * from dept;
4、當一定時候就會出現無法擴展的問題,怎么辦?
5、就擴展該表空間,為其增加更多的存儲空間。有三種方法:(1)增加數據文件
Alter tablespace sp01 add datefile ‘d:testsp01.dbf’ size 20m(2)增加數據文件的大小 Alter tablespace sp01 ‘d:testsp01.dbf’ resize 20m;(數據文件不超過500m)(3)設置文件的自動增長。
Alter tablespace 表空間名 ‘d:testsp01.dbf’ autoextend on next 10m maxsize 500m;故障處理
有時,如果你的數據文件所在的磁盤損壞時,該數據文件將不再能使用,為了能夠重新使用,需要將這些文件的副本移動到其他的磁盤,然后恢復。
下面以移動數據文件sp_001.dbf為例說明: 1)確定數據文件所在的表空間 select tablespace_name
from
dba_data_files
where file_neme=’d:sp001.dbf’;2)使用表空間脫機
確保數據文件的一致性,將表空間轉變為offline的狀態 Alter tablespace sp01 offline;3)使用命令移動數據文件到指定的目標位置 Host move d:sp01.dbf c:sp01.dbf 4)移動數據文件
在物理上移動數據后,還必須執行alter tablespace 命令對數據庫進行邏輯修改:
Alter tablespace sp01 rename datafile ‘d:sp01.dbf’ to ‘c:sp01.dbf’;5)使得表空間聯機
在移動了數據文件后,為了使用戶可以訪問表空間,必須將其轉變為online狀態:
Alter tablespace sp01 online;
第四篇:創建一個以你的名字命名的表空間
3、創建一個以你的名字命名的表空間,在此表空間增加一個數據文件。
4、分別設置表空間的狀態為脫機、只讀、讀寫和聯機方式。5、6、7、8、5、創建一個新的數據庫test.上機任務4 Oracle 10g數據庫的角色和用戶創建及權限設置
1、用命令方式在此數據庫下創建一個以你的姓名縮寫為名稱的表空間。
2、在剛才創建好的表空間中創建一個以你的姓名縮寫為名稱的用戶,密碼為你的姓名縮寫加學號。
3、把對SCOTT.DEPT表中更新DNAME的權限授予你剛創建的用戶。
4、創建一個角色SUI使其對SCOTT.EMP的表有查詢、更新、插入的權利。
5、把這個創建好的角色授予給在步驟二中創建的用戶。
6、試著把創建表的管理權限授予你剛創建的用戶。
7、四、上機內容(全部使用命令方式完成)
1、創建以你的名字命名的用戶名和以你的五個同學的名字命名的五個用戶。
2、在你的用戶名下創建USERS表。
3、在USERS表中插入三條數據。
4、創建一個以你的名字縮寫為名稱的角色。
5、把對表USERS的查詢、插入、刪除、更新的權限授予你剛創建的角色。
6、把角色授予你的五個同學。
7、把對表USERS刪除和插入權限從你五個同學那收回。
第五篇:Oracle數據庫創建表空間、建立用戶、授權、還原備份
創建用戶一般分四步: 第一步:創建臨時表空間 第二步:創建數據表空間 第三步:創建用戶并制定表空間 第四步:給用戶授予權限
--Oracle創建臨時表空間 如果沒有指定的臨時表空間,則可以不建 CREATE TEMPORARY TABLESPACE DB_TEMP TEMPFILE 'E:Oa DataOA_TEMP.DBF'
SIZE 32M AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
--Oracle創建表空間 如果沒有指定的表空間,則可以不建 CREATE TABLESPACE DB_DATA LOGGING
DATAFILE 'E:Oa DataOA_DATA.DBF'
SIZE 32M AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
--創建用戶“oa”,密碼“oa”
CREATE USER OA IDENTIFIED BY OA ACCOUNT UNLOCK
DEFAULT TABLESPACE DB_DATA TEMPORARY TABLESPACE DB_TEMP;
--授權
GRANT CONNECT,RESOURCE,DBA TO OA;
--導入dmp文件到數據庫 這個必須用命令窗口來執行,不是SQL語句--用戶名就是要導入的用戶,要導入給A,那用戶名就是A imp 用戶名/密碼@數據庫實例名 file=文件地址 full=y ignore=y;
exp system/123456@orcl file=oa.dmp owner=oa full=y;
使用expdp和impdp時應該注重的事項:
1、exp和imp是客戶端工具程序,它們既可以在客戶端使用,也可以在服務端使用。
2、expdp和impdp是服務端的工具程序,他們只能在oracle服務端使用,不能在客戶端使用。
3、imp只適用于exp導出的文件,不適用于expdp導出文件;impdp只適用于expdp導出的文件,而不適用于exp導出文件。
4、對于10g以上的服務器,使用exp通常不能導出0行數據的空表,而此時必須使用expdp導出。
一、準備工作 1)、在備份目的路徑建立備份文件夾 Oracle不會自動創建,務必手動創建 例如:d:bak 2)、用sys用戶在oracle中創建邏輯目錄
--oracleBak_dir這個就是這個邏輯目錄的名字 SQL>create directory oracleBak_dir as ‘d:bak’;
3)、查看數據庫中的邏輯目錄 用來檢查上面兩步驟是否對應OK SQL>select * from dba_directories;4)、授權用戶有對邏輯目錄的讀寫權限
SQL>grant read,write on directory oracleBak_dir to 用戶名;
二、導出
1)導出用戶 登錄的用戶需要有導出權限
expdp 用戶名/密碼@orcl dumpfile=expdp.dmp directory=oracleBak_dir schemas=要導出的用戶名;2)導出表
expdp用戶名/密碼@orcl tables=要導出的表名 dumpfile=expdp.dmp(備份文件的帶后綴全名)directory=oracleBak_dir;3)按查詢條件導
expdp 用戶名/密碼@orcl directory=oracleBak_dir dumpfile=expdp.dmp(備份文件的帶后綴全名)tables=表名 query=’where deptno=20’(引號內為查詢條件);4)按表空間導
expdp system/manager@orcl directory=oracleBak_dir dumpfile=tablespace.dmp(備份文件的帶后綴全名)tablespaces=temp,example(表空間名稱);5)導整個數據庫
expdp system/manager@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;
expdp system/orcl@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;
三、導入數據 導入與導出雷同,不做解析 1)導入用戶(從用戶scott導入到用戶scott)
impdp scott/tiger@orcl directory=oracleBak_dir dumpfile=expdp.dmp schemas=scott;2)導入表(從scott用戶中把表dept和emp導入到system用戶中)
impdp system/manager@orcl directory=oracleBak_dir dumpfile=expdp.dmp tables=scott.dept,scott.emp(原用戶下.某表)remap_schema=scott:system(從用戶scott導入到用戶system);3)導入表空間 impdp system/manager@orcl directory=oracleBak_dir dumpfile=tablespace.dmp tablespaces=example;4)導入數據庫
impdb system/manager@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;5)追加數據
impdp system/manager@orcl schemas=systemtable_exists_action
directory=dump_dir
dumpfile=expdp.dmp 終止expdp/impdp的方法:
1從dba_datapump_jobs中查job_name select * from dba_datapump_jobs;2連接到需要終止的JOB impdp U/PWD@instance_name attach=SYS_IMPORT_TABLE_01(這里attach后面的就是1查出來的job_name)3終止對應的JOB Import> KILL_JOB 選Y
Oracle刪除用戶及表空間
以system用戶登錄,查找需要刪除的用戶:--查找用戶
select * from dba_users;--查找工作空間的路徑
select * from dba_data_files;
--刪除用戶
drop user 用戶名稱 cascade;--刪除表空間
drop tablespace 表空間名稱 including contents and datafiles cascade constraint;例如:刪除用戶名成為LYK,表空間名稱為LYK--刪除用戶,及級聯關系也刪除掉 drop user LYK cascade;--刪除表空間,及對應的表空間文件也刪除掉
drop tablespace LYK including contents and datafiles cascade constraint;