第一篇:Oracle11g 通過工具創(chuàng)建表空間
Oracle備份(11g)
例如: 用戶名: test 密碼:test 全局?jǐn)?shù)據(jù)庫名:joyo
開始-運(yùn)行-cmd 輸入 exp test/test@joyo file=d:back.dmp full=y 其中back備份的名,可以任意起,后綴一定是.dmp的
Oracle還原
例如:要還要的用戶名為:apple 密碼:apple 開始-運(yùn)行-cmd 輸入 imp apple/apple@joyo file=d:back.dmp full=y
還原的用戶建立
1.建表格
在建立用戶前先建立用戶使用的表格
在 oracle Enterprise Manage Console的存儲(chǔ)下建立表空間 打開oracle Enterprise Manage Console
輸入要建立的表空間名字 如 test 大小 輸入100 M 表格可以自已任意起名字
點(diǎn)創(chuàng)建 創(chuàng)建表格
點(diǎn)中創(chuàng)建的表格test下的數(shù)據(jù)文件的信息
選擇 存儲(chǔ)
選中數(shù)據(jù)文件已滿后自動(dòng)擴(kuò)展
100MB
點(diǎn)應(yīng)用
表格創(chuàng)建成功
2.建用戶
在 oracle Enterprise Manage Console的安全性下建立用戶 打開oracle Enterprise Manage Console
輸入用戶名
如hong 密碼hong 默認(rèn)值選剛建的表空間test 用戶可以自已任意起名字
角色選DBA
點(diǎn)創(chuàng)建,創(chuàng)建用戶成功
第二篇:oracle-sql語句-創(chuàng)建表空間、數(shù)據(jù)庫
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;獲取創(chuàng)建表空間的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字節(jié)數(shù),(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、查看數(shù)據(jù)庫庫對(duì)象
select owner, object_type, status, count(*)count# from all_objects group by owner, object_type, status;
8、查看數(shù)據(jù)庫的版本
Select version FROM Product_component_version Where SUBSTR(PRODUCT,1,6)='Oracle';
9.查看某個(gè)表空間內(nèi)所占空間大于某個(gè)值的段(表或索引):
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.查看自上次數(shù)據(jù)庫啟動(dòng)以來所有數(shù)據(jù)文件的讀寫次數(shù)
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#;
創(chuàng)建臨時(shí)表空間: //創(chuàng)建臨時(shí)表空間
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;
//創(chuàng)建數(shù)據(jù)表空間
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;//創(chuàng)建用戶并指定表空間
create user testaccount identified by testpwd default tablespace mytest_data temporary tablespace mytest;//給用戶授予權(quán)限
grant connect,resource to testaccount;(db2:指定所有權(quán)限)12,創(chuàng)建一個(gè)用戶:
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];
//查看數(shù)據(jù)庫中的所有用戶: select * from all_users;//or select * from dba_users 13查看oracle最大連接數(shù): Select session_max,session_current,sessions_highwater,users_max from v$license;Select username,count(username)from v$session group by username;加密存儲(chǔ)過程 WRAP
INAME=D:ORACLESOURCEDATE.SQL ONAME=D:ORACLESOURCEDATA.PLD
第三篇:表空間
管理表空間和數(shù)據(jù)文件
小結(jié):作用
Undo表空間和臨時(shí)表空間的建立方法
了解各個(gè)狀態(tài)(online,read write,readonly)的作用,及如何改變表空間的狀態(tài)的方法。了解移動(dòng)數(shù)據(jù)文件的原因,及使用alter tablespace和alter datatable命令移動(dòng)數(shù)據(jù)文件的方法
介紹
表空間是數(shù)據(jù)庫的邏輯組成部分,從物理上將,數(shù)據(jù)庫數(shù)據(jù)存放在數(shù)據(jù)文件中;從邏輯上講,數(shù)據(jù)庫則是存放在表空間中,表空間是 由一個(gè)或多個(gè)數(shù)據(jù)文件組成。
表
表空間——》數(shù)據(jù)文件 數(shù)據(jù)庫的邏輯結(jié)構(gòu)
Oracle中邏輯結(jié)構(gòu)包括表空間、段、區(qū)、塊 一個(gè)數(shù)據(jù)庫邏輯上由一個(gè)或多個(gè)表空間。表空間是由物理文件構(gòu)成。可以達(dá)到以下作用:
(1)控制數(shù)據(jù)庫占用的磁盤空間
(2)dba可以將不同數(shù)據(jù)類型部署到不同的位置,這樣有利于提高I/O性能,同時(shí)利于備份和恢復(fù)等管理操作。建立表空間
建立表空間是使用create tablespace命令完成,需要注意的是,一般情況下,建立表空間是特權(quán)用戶或是dba來執(zhí)行的,如果其他用戶來創(chuàng)建表空間,則用戶必須要具有create tablespace的系統(tǒng)權(quán)限。建立數(shù)據(jù)表空間
在建立數(shù)據(jù)庫后,為了便于管理,最好建立自己的表空間 Create tablespace date01(表空間的名)datefile(數(shù)據(jù)文件)‘d:testdata01.dbf’size 20m uniform size 128k(區(qū)128k)
說明;執(zhí)行完上述命令后,會(huì)建立名稱為date01的表空間,并為該表空間建立名稱為date01.bdf的數(shù)據(jù)文件,區(qū)的大小為128k; 使用數(shù)據(jù)表空間
Create table mypart(deptno number(4), dname varchar2(14), loc varchar2(13))tablespace date01;改變表空間的狀態(tài)
在建立表空間時(shí),表空間處于聯(lián)機(jī)的狀態(tài),此時(shí)該表空間是可以訪問的,并且該表空間是可以讀寫的,即可以查詢?cè)摫砜臻g的數(shù)據(jù),而且還可以在表空間執(zhí)行各種語句。但是在進(jìn)行系統(tǒng)維護(hù)或是數(shù)據(jù)庫維護(hù)時(shí),可能需要改變表空間的狀態(tài)。一般情況下,由特權(quán)用戶或是dba來操作。
(1)使表空間脫機(jī)
Alter tablespace 表空間名 offline;(2)使表空間聯(lián)機(jī)
Alter tablesqace 表空間名online;(3)只讀表空間
當(dāng)建立表空間時(shí),表空間可以讀寫,如果不希望在該表空間上執(zhí)行update、delete、insert操作,那么可以將表空間修改為只讀 Alter tablespace 表空間名
read only 改變表空間的狀態(tài)
(1)顯示表空間包括的所有表
Select * from all_tables where tablespace_name=’表空間名’(2)知道表名,查看該表屬于那個(gè)表空間
(3)Select tablespace_name,table_name from user_tables where table_name=’emp’;刪除表空間
Drop tablespace ‘表空間’ including contents and datafiles;說明:including contents 表示刪除表空間時(shí),刪除該表空間的所有數(shù)據(jù)對(duì)象,而datafiles表示將數(shù)據(jù)文件也刪除。擴(kuò)展表空間
1、建立表空間 sp01
2、在該表空間上建立一個(gè)普通的表 mydment 其表結(jié)構(gòu)和dept一樣
3、想該表空間加入數(shù)據(jù)insert into mydment select * from dept;
4、當(dāng)一定時(shí)候就會(huì)出現(xiàn)無法擴(kuò)展的問題,怎么辦?
5、就擴(kuò)展該表空間,為其增加更多的存儲(chǔ)空間。有三種方法:(1)增加數(shù)據(jù)文件
Alter tablespace sp01 add datefile ‘d:testsp01.dbf’ size 20m(2)增加數(shù)據(jù)文件的大小 Alter tablespace sp01 ‘d:testsp01.dbf’ resize 20m;(數(shù)據(jù)文件不超過500m)(3)設(shè)置文件的自動(dòng)增長(zhǎng)。
Alter tablespace 表空間名 ‘d:testsp01.dbf’ autoextend on next 10m maxsize 500m;故障處理
有時(shí),如果你的數(shù)據(jù)文件所在的磁盤損壞時(shí),該數(shù)據(jù)文件將不再能使用,為了能夠重新使用,需要將這些文件的副本移動(dòng)到其他的磁盤,然后恢復(fù)。
下面以移動(dòng)數(shù)據(jù)文件sp_001.dbf為例說明: 1)確定數(shù)據(jù)文件所在的表空間 select tablespace_name
from
dba_data_files
where file_neme=’d:sp001.dbf’;2)使用表空間脫機(jī)
確保數(shù)據(jù)文件的一致性,將表空間轉(zhuǎn)變?yōu)閛ffline的狀態(tài) Alter tablespace sp01 offline;3)使用命令移動(dòng)數(shù)據(jù)文件到指定的目標(biāo)位置 Host move d:sp01.dbf c:sp01.dbf 4)移動(dòng)數(shù)據(jù)文件
在物理上移動(dòng)數(shù)據(jù)后,還必須執(zhí)行alter tablespace 命令對(duì)數(shù)據(jù)庫進(jìn)行邏輯修改:
Alter tablespace sp01 rename datafile ‘d:sp01.dbf’ to ‘c:sp01.dbf’;5)使得表空間聯(lián)機(jī)
在移動(dòng)了數(shù)據(jù)文件后,為了使用戶可以訪問表空間,必須將其轉(zhuǎn)變?yōu)閛nline狀態(tài):
Alter tablespace sp01 online;
第四篇:創(chuàng)建一個(gè)以你的名字命名的表空間
3、創(chuàng)建一個(gè)以你的名字命名的表空間,在此表空間增加一個(gè)數(shù)據(jù)文件。
4、分別設(shè)置表空間的狀態(tài)為脫機(jī)、只讀、讀寫和聯(lián)機(jī)方式。5、6、7、8、5、創(chuàng)建一個(gè)新的數(shù)據(jù)庫test.上機(jī)任務(wù)4 Oracle 10g數(shù)據(jù)庫的角色和用戶創(chuàng)建及權(quán)限設(shè)置
1、用命令方式在此數(shù)據(jù)庫下創(chuàng)建一個(gè)以你的姓名縮寫為名稱的表空間。
2、在剛才創(chuàng)建好的表空間中創(chuàng)建一個(gè)以你的姓名縮寫為名稱的用戶,密碼為你的姓名縮寫加學(xué)號(hào)。
3、把對(duì)SCOTT.DEPT表中更新DNAME的權(quán)限授予你剛創(chuàng)建的用戶。
4、創(chuàng)建一個(gè)角色SUI使其對(duì)SCOTT.EMP的表有查詢、更新、插入的權(quán)利。
5、把這個(gè)創(chuàng)建好的角色授予給在步驟二中創(chuàng)建的用戶。
6、試著把創(chuàng)建表的管理權(quán)限授予你剛創(chuàng)建的用戶。
7、四、上機(jī)內(nèi)容(全部使用命令方式完成)
1、創(chuàng)建以你的名字命名的用戶名和以你的五個(gè)同學(xué)的名字命名的五個(gè)用戶。
2、在你的用戶名下創(chuàng)建USERS表。
3、在USERS表中插入三條數(shù)據(jù)。
4、創(chuàng)建一個(gè)以你的名字縮寫為名稱的角色。
5、把對(duì)表USERS的查詢、插入、刪除、更新的權(quán)限授予你剛創(chuàng)建的角色。
6、把角色授予你的五個(gè)同學(xué)。
7、把對(duì)表USERS刪除和插入權(quán)限從你五個(gè)同學(xué)那收回。
第五篇:Oracle數(shù)據(jù)庫創(chuàng)建表空間、建立用戶、授權(quán)、還原備份
創(chuàng)建用戶一般分四步: 第一步:創(chuàng)建臨時(shí)表空間 第二步:創(chuàng)建數(shù)據(jù)表空間 第三步:創(chuàng)建用戶并制定表空間 第四步:給用戶授予權(quán)限
--Oracle創(chuàng)建臨時(shí)表空間 如果沒有指定的臨時(shí)表空間,則可以不建 CREATE TEMPORARY TABLESPACE DB_TEMP TEMPFILE 'E:Oa DataOA_TEMP.DBF'
SIZE 32M AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
--Oracle創(chuàng)建表空間 如果沒有指定的表空間,則可以不建 CREATE TABLESPACE DB_DATA LOGGING
DATAFILE 'E:Oa DataOA_DATA.DBF'
SIZE 32M AUTOEXTEND ON
NEXT 32M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
--創(chuàng)建用戶“oa”,密碼“oa”
CREATE USER OA IDENTIFIED BY OA ACCOUNT UNLOCK
DEFAULT TABLESPACE DB_DATA TEMPORARY TABLESPACE DB_TEMP;
--授權(quán)
GRANT CONNECT,RESOURCE,DBA TO OA;
--導(dǎo)入dmp文件到數(shù)據(jù)庫 這個(gè)必須用命令窗口來執(zhí)行,不是SQL語句--用戶名就是要導(dǎo)入的用戶,要導(dǎo)入給A,那用戶名就是A imp 用戶名/密碼@數(shù)據(jù)庫實(shí)例名 file=文件地址 full=y ignore=y;
exp system/123456@orcl file=oa.dmp owner=oa full=y;
使用expdp和impdp時(shí)應(yīng)該注重的事項(xiàng):
1、exp和imp是客戶端工具程序,它們既可以在客戶端使用,也可以在服務(wù)端使用。
2、expdp和impdp是服務(wù)端的工具程序,他們只能在oracle服務(wù)端使用,不能在客戶端使用。
3、imp只適用于exp導(dǎo)出的文件,不適用于expdp導(dǎo)出文件;impdp只適用于expdp導(dǎo)出的文件,而不適用于exp導(dǎo)出文件。
4、對(duì)于10g以上的服務(wù)器,使用exp通常不能導(dǎo)出0行數(shù)據(jù)的空表,而此時(shí)必須使用expdp導(dǎo)出。
一、準(zhǔn)備工作 1)、在備份目的路徑建立備份文件夾 Oracle不會(huì)自動(dòng)創(chuàng)建,務(wù)必手動(dòng)創(chuàng)建 例如:d:bak 2)、用sys用戶在oracle中創(chuàng)建邏輯目錄
--oracleBak_dir這個(gè)就是這個(gè)邏輯目錄的名字 SQL>create directory oracleBak_dir as ‘d:bak’;
3)、查看數(shù)據(jù)庫中的邏輯目錄 用來檢查上面兩步驟是否對(duì)應(yīng)OK SQL>select * from dba_directories;4)、授權(quán)用戶有對(duì)邏輯目錄的讀寫權(quán)限
SQL>grant read,write on directory oracleBak_dir to 用戶名;
二、導(dǎo)出
1)導(dǎo)出用戶 登錄的用戶需要有導(dǎo)出權(quán)限
expdp 用戶名/密碼@orcl dumpfile=expdp.dmp directory=oracleBak_dir schemas=要導(dǎo)出的用戶名;2)導(dǎo)出表
expdp用戶名/密碼@orcl tables=要導(dǎo)出的表名 dumpfile=expdp.dmp(備份文件的帶后綴全名)directory=oracleBak_dir;3)按查詢條件導(dǎo)
expdp 用戶名/密碼@orcl directory=oracleBak_dir dumpfile=expdp.dmp(備份文件的帶后綴全名)tables=表名 query=’where deptno=20’(引號(hào)內(nèi)為查詢條件);4)按表空間導(dǎo)
expdp system/manager@orcl directory=oracleBak_dir dumpfile=tablespace.dmp(備份文件的帶后綴全名)tablespaces=temp,example(表空間名稱);5)導(dǎo)整個(gè)數(shù)據(jù)庫
expdp system/manager@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;
expdp system/orcl@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;
三、導(dǎo)入數(shù)據(jù) 導(dǎo)入與導(dǎo)出雷同,不做解析 1)導(dǎo)入用戶(從用戶scott導(dǎo)入到用戶scott)
impdp scott/tiger@orcl directory=oracleBak_dir dumpfile=expdp.dmp schemas=scott;2)導(dǎo)入表(從scott用戶中把表dept和emp導(dǎo)入到system用戶中)
impdp system/manager@orcl directory=oracleBak_dir dumpfile=expdp.dmp tables=scott.dept,scott.emp(原用戶下.某表)remap_schema=scott:system(從用戶scott導(dǎo)入到用戶system);3)導(dǎo)入表空間 impdp system/manager@orcl directory=oracleBak_dir dumpfile=tablespace.dmp tablespaces=example;4)導(dǎo)入數(shù)據(jù)庫
impdb system/manager@orcl directory=oracleBak_dir dumpfile=full.dmp full=y;5)追加數(shù)據(jù)
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終止對(duì)應(yīng)的JOB Import> KILL_JOB 選Y
Oracle刪除用戶及表空間
以system用戶登錄,查找需要?jiǎng)h除的用戶:--查找用戶
select * from dba_users;--查找工作空間的路徑
select * from dba_data_files;
--刪除用戶
drop user 用戶名稱 cascade;--刪除表空間
drop tablespace 表空間名稱 including contents and datafiles cascade constraint;例如:刪除用戶名成為L(zhǎng)YK,表空間名稱為L(zhǎng)YK--刪除用戶,及級(jí)聯(lián)關(guān)系也刪除掉 drop user LYK cascade;--刪除表空間,及對(duì)應(yīng)的表空間文件也刪除掉
drop tablespace LYK including contents and datafiles cascade constraint;