Oracle數據庫操作

一、建立用戶/表空間/分配權限/刪除表空間

1)注意表空間存放目錄

2)/*分為四步 */

/*第1步:創建臨時表空間? */

create temporary tablespace yuhang_temp

tempfile 'D:\oracledata\yuhang_temp.dbf'

size 50m?

autoextend on?

next 50m maxsize 20480m?

extent management local;?


/*第2步:創建數據表空間? */

create tablespace yuhang_data?

logging?

datafile 'D:\oracledata\yuhang_data.dbf'

size 50m?

autoextend on?

next 50m maxsize 20480m?

extent management local;?


/*第3步:創建用戶并指定表空間? */

create user yuhang identified by yuhang?

default tablespace yuhang_data?

temporary tablespace yuhang_temp;?


/*第4步:給用戶授予權限? */

grant connect,resource,dba to yuhang;

對于不使用的表空間要徹底刪除

drop tablespace TS_DATA_DB_ZZWK including contents and datafiles;

二:導出oracle的dmp遇到空表的情況

昨天晚上按徐大姐要求給開發導一份測試庫,在導測試庫的過程中遇到了一個情況是,oracle11g,在使用

export時候不支持導出空表,以下是一個簡單的辦法:

1、導出前查詢一下有多少張空表

SELECT TABLE_NAME FROM USER_TABLES WHERE NUM_ROWS=0,如下18張

2、oracle11g不給空表分片Segment(段,自己百度看下),那么我們就給這些空表分配

Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0

將執行結果導出為tsv文件,如下:

3、將tsv中的語句復制,在sql窗口中執行,然后再導出dmp文件。如下:

再點擊工具欄Tools—Export tables ,打開如下對話框:

三、exp導出dmp

如果oracle的plsql中不能使用export tables命令。那么可以打開cmd窗口,輸入:

2) 導出一張表,如:

Exp bzsf/iflytek2015@BZSF? file=D:/T_RYJBXX.dmp ?tables=(T_RYJBXX)

3) 導出多張表,如:

exp bzsf/iflytek2015@BZSF ?file= D:/T_RYJBXX.dmp ?tables=(T_RYJBXX, T_CLJBXX)

?? 3)導出表中某些值,如:

將數據庫中的表t_uaac_organization中的字段code含有"34180"打頭的數據導出

?exp gsb_test/passwd!@sgy file=E:\xuancheng.dmp tables=(t_uaac_organization) query=\" where code like '%3418%' \"

4) 導出某一個用戶下所有對象,要用超級管理員

exp? workflow_test/123456@192.168.57.180:1521/sgy? file=d:/work.dmp owner=workflow_test

四、導出遇到特殊字符

比如密碼中含有@符號。或者/符號


五、imp導入dmp

1)可以直接通過plsql工具導入。

2)imp workflow_test/123456@192.168.78.121:1521/zzora? file=d:/work.dmp? full=y? ignore=y

六、查看mysql表的詳細信息

登陸mysql服務器,進入mysql數據庫,輸入:

Mysql>Show table status like 'mytable'

Name: mytable #表名

Engine: InnoDB #存儲引擎偉InnoDB

?Version: 10 #mysql版本

Row_format: Compact #行格式。有Dynamic,fixed,Compact等格式。Dynamic是動態行,表字段里面寶航varchar,BloB等不定長字段。fixed是定長行。Compact是行壓縮。

?Rows: 0 #表中的行數

Avg_row_length: 0 #平均每行的字節數

Data_length: 16384 #整個表的數據量(字節)

Max_data_length: 0 #表最大的容量。0表示無限

Index_length: 0 #索引數據占用磁盤空間的大小

Data_free: 10485760 #表示已分配但還未被使用的空間大小。Auto_increment: NULL #下一個AUto_increment的值

Create_time: 2011-08-0622:39:46 #創建時間

Update_time: NULL #更新時間

Check_time: NULL #使用check table等命令時的檢查時間

Collation: utf8_general_ci #默認字符集和字符列排列順序

?Checksum: NULL #如果啟動,則表示整個表的校驗和Create_options: max_rows=4294967295avg_row_length=32 #表創建時的選項 Comment: 1 row inset (0.00 sec)

七、oracle復制表結構和數據

Oracle:

復制表結構及其數據:create table table_name_new as select * from table_name_old

只復制表結構:create table table_name_new as select * from table_name_old where 1=2;


八、查看oracle表空間使用查看

SELECT UPPER(F.TABLESPACE_NAME) "表空間名",

  D.TOT_GROOTTE_MB "表空間大小(M)",

  D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",

  TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%'"使用比",

  F.TOTAL_BYTES "空閑空間(M)",

  F.MAX_BYTES "最大塊(M)"

  FROM (SELECT TABLESPACE_NAME,

  ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,

  ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES

  FROM SYS.DBA_FREE_SPACE

  GROUP BY TABLESPACE_NAME) F,

  (SELECT DD.TABLESPACE_NAME,

  ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB

  FROM SYS.DBA_DATA_FILES DD

  GROUP BY DD.TABLESPACE_NAME) D

  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME

  ORDER BY 1;


使用情況

Select

total.tablespace_name,

  round(total.MB, 2) as Total_MB,

  round(total.MB - free.MB, 2) as Used_MB,

  round((1 - free.MB / total.MB) * 100, 2) || '%'as Used_Pct


from

(select tablespace_name, sum(bytes) / 1024 / 1024 as MB

  from dba_free_space

  group by tablespace_name) free,

  (select tablespace_name, sum(bytes) / 1024 / 1024 as MB

  From dba_data_files

Group by tablespace_name) total


Where free.tablespace_name = total.tablespace_name;



九、登錄oracle數據提示異常:表空間問題


擴大表空間:

更改system表空間的數據文件SYSTEM.dbf分配空間

alter database datafile ‘/u04/oradata/truth/system.dbf’ resize 2048M


十、linux?下啟動Oralce

?? a、root用戶關閉防火墻??service?iptables?stop

? ?b、oracle用戶開啟監聽?:

?su?-?oracle?;

lsnrctl?start;

????c、開啟數據庫:

? ???sqlplus?"/as?sysdba"?;?

startup?;?

exit?;

十一、查看oracle字符集、版本、修改字符集

select version from v$instance;

select userenv('language') from dual;--服務端字符集

client字符集修改:在 /home/oracle與 /root用戶目錄下的.bash_profile中添加或修改 export NLS_LANG="AMERICAN_AMERICA.UTF8" 語句;

修改數據庫字符集為UTF-8

1.以DBA登錄

2.執行轉換語句:

復制代碼 代碼如下:

SHUTDOWN IMMEDIATE;

STARTUP MOUNT EXCLUSIVE;

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

ALTER SYSTEM SET AQ_TM_PROCESSES=0;

ALTER DATABASE OPEN;

ALTER DATABASE NATIONAL CHARACTER SET UTF8;

SHUTDOWN IMMEDIATE;

STARTUP;

十二、添加表空間大小

先查看表空間當前情況:

select?tablespace_name,?file_id,?file_name,

round(bytes/(1024*1024),0)?total_space

from?dba_data_files

order?by?tablespace_name

重設大:1:

alter?database?datafile ?'\oracle\oradata\anita_2008.dbf'?resize?4000m

重設大小2:

alter?tablespace?ESPS_2008?add?datafile?'\oracle\oradata\anita_2010.dbf'?size?1000m

十三、數據庫啟動 startup報錯,

啟動的時候提示鄭:MEMORY_TARGET?not?supported?on?this?system

請看:http://www.linuxidc.com/Linux/2012-12/76976.htm 進行學習

vi /etc/fstab 調整內存:

十四、oracle自啟動設置

請看

http://jingyan.baidu.com/article/b2c186c8fe4306c46ef6ff16.html


十五、導入和導出dmp操作

imp?workflow_test/123456@192.168.78.121:1521/zzora?file=d:/work.dmp?full=y

exp?workflow_test/123456@192.168.57.180:1521/sgy?file=d:/work.dmp?owner=workflow_test

十六、表空間名字錯了,修改表空間名字

Alter tablespace XX rename to YY

十七、oracle執行select提示如下

grant select on v_$statname to yztv1_test;

grant select on v_$sesstat to yztv1_test;

grant select on v_$session to yztv1_test;

grant select on v_$mystat to yztv1_test;

?十八、一個用戶yztv1_test查詢另一個用戶workflow_test的表

grant select on workflow_test.wfworkitem to yztv1_test;

grant select on workflow_test.wfwiparticipant to yztv1_test;

十九、數據庫回滾日志文件UNDOTBS01.DBF太大了

?以SYS用戶登錄Oracle 自帶的SQL*PLUS的方法:

1-- 創建一個新的小空間的UNDO TABLESPACE

CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE 'D:\ORACLE\ORADATA\ORCL\UNDOTBS02.DBF' SIZE 100M REUSE AUTOEXTEND ON;

?2-- 設置新的表空間為系統UNDO_TABLESPACE

ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

3—在配置文件中修改undo_tablespace的設置??????????????????????????????????

D:\oracle\product\10.1.0\db_1\database\initoracle.ora

將其中的undo_tablespace=UNDOTBS1 改為 UNDOTBS2

4—重啟數據庫???????????????????????????????????????????????????????????????

采用命令SHUTDOWN IMMEDIATE 關閉數據庫,然后再采用命令STARTUP 重新開啟數據庫;

二十、建立表空間遇到的問題,權限不足問題

解決方法?對要創建文件的目錄執行?“chown?-R?oracle:oinstall?目錄”,

比如chown -R oracle:oinstall /u01所以這個命令的作用是:

把/u01目錄下的所有文件和目錄的擁有者改為oracle 。

二十一、oracle數據庫日志歸檔滿了

登陸數據庫,彈出如下提示框:

辦法:登陸oracle數據庫服務器

Su - oracle

rman

connect?target?/;

crosscheck archivelog all;

delete?expired?archivelog?all;

DELETE?ARCHIVELOG?ALL?COMPLETED?BEFORE?'SYSDATE-7';

二十二、低效率sql語句(時間長)

select *

?from (select v.sql_id,

?v.child_number,

?v.sql_text,

?v.elapsed_time,

?v.cpu_time,

?v.disk_reads,

?rank() over(order by v.elapsed_time desc) elapsed_rank

?from v$sql v) a

?where elapsed_rank <= 10;

二十三、占用CPU高的sql

select *

from (select v.sql_id,

v.child_number,

v.sql_text,

v.elapsed_time,

v.cpu_time,

v.disk_reads,

rank() over(order by v.cpu_time desc) elapsed_rank

from v$sql v) a

where elapsed_rank <= 10;

二十四、鎖表查詢

--鎖表查詢(用超級管理)

SQLSELECT object_name, machine, s.sid, s.serial#

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 '23, 1647'鎖定的表,解鎖:

二十五、導出表和表結構

導出表:export tables是一個dmp文件

導出表結構:export users object是一個sql文件

選擇要導出的表名稱。


對于一個sql文件再導入時候,可以點擊File—New—Command Window,

彈出框中,輸入@,選擇導入的sql文件名稱。


二十六、從開發那里導出的dmp文件導入測試庫提示XX表空間不存在

1)請讓開發導出dmp的時候,不要勾選表空間。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容