Oracle 命令整理
Oracle數據庫可以創建多個實例,每一個實例可以創建多個表空間,每個表空間可以創建多個用戶和數據庫文件,每個用戶可以創建多個表.
1、 刪除oracle用戶
drop user 用戶名 cascade;
如果提示:ORA-01940: cannot drop a user that is currentlyconnected
原因是有程序在連接我們需要刪除的用戶,我們刪除用戶之前一定要先把連接斷掉;
1.1查找帳號下哪些連接在運行:
SQL>SELECT SID,SERIAL# FROMV$SESSION WHERE USERNAME='用戶名';
1.2刪除用戶進程;
SQL>ALTER SYSTEM KILL SESSION'137,41813';
1.3之後再刪除用戶執行第一步
2、 數據庫的導入導出
######################空表什麼的都導出導入比較全
1. 備份數據庫
select * from dba_directories;
set linesize 200;
col owner format a30;
col directory_name format a40;
col directory_path format a70;
create directory czdir as '/home/oracle/guo/cz2018012';
grant read,writeon directory czdir to czbank;
導出:
Expdpuserid=czbank/czbank2017 schemas=czbank dumpfile=czbank20180112.dmpdirectory=czdir;
導入另一個機器
select * fromdba_directories;
set linesize200;
col owner formata30;
coldirectory_name format a40;
coldirectory_path format a70;
create directoryczdii as '/home/oracle/guo/cz2018012';
grant read,writeon directory czdii to czbankzzz;
grant dba to czbankzzz;
impdp userid=czbankzzz/czbankzzzdirectory=czdii remap_schema=czbank:czbankzzz dumpfile=czbank20180112.dmp
#############################
2.1 全庫導出:
進入到oracle用戶
expuserid=czbank/czbank2017@bossdb file=czbankfull20171128.dmp compress=n statistics=none
COMPRESS參數將在導出的同時合併碎塊,儘量把數據壓縮到initial的EXTENT裏,默認是N,一般建議使用。DIRECT參數將告訴EXP直接讀取數據,而不像傳統的EXP那樣,使用SELECT來讀取表中的數據,這樣就減少了SQL語句處理過程。一般也建議使用。不過有些情況下DIRECT參數是無法使用的
2.2 在另一臺機器上導入:
進入到oracle用戶把czbankfull20171128.dmp導入到本地文件夾內
impuserid=czbank/czbank2017 file=czbankfull20171128.dmp statistics=none full=y
注意:導入的用戶必須有dba權限!
3、 查看oracle數據庫所有的表空間名稱
selecttablespace_name from dba_tablespaces;
4、 去除某個用戶的dba權限
SQL>revoke dba from 用戶名;
5、 查看數據庫版本:select * from v$version;
6、 查詢dmp文件的字符集
SQL> selectnls_charset_name(to_number('0354','xxxx')) from dual;
7、 數據庫服務器字符集
select * from nls_database_parameters;
8、 查看錶空間的數據文件路徑:select name from v$datafile;
9、 創建用戶之前,先創建表空間:
createtablespace test datafile '/datafile路徑/test.dbf' size512M extent management local uniform size 128K; 數據表空間 大小爲 521M 每次擴展大小爲 128k
CREATE TABLESPACE qrCodeDATAFILE'/opt/oracle/oradata/sws/qrCode01.dbf' SIZE 2048M AUTOEXTEND ON NEXT100M MAXSIZE UNLIMITED LOGGING PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATEBLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;
10、顯示當前用戶 SQL> show user;
11、對於普通用戶授予 connect和 resource 權限 對於管理用戶授予 dba權限用戶授權:
grant connect,resource,dba to 用戶;
12、查看數據庫名:selectname from v$database;
13、查看實例名字:selectinstance_name from v$instance;
14、查看錶結構:desc表;
15、更改用戶的密碼:alteruser 用戶名 identified by新密碼;
16、啓動數據庫實例:startup;
17、停止數據庫: shutdown immediate;
18、不登錄任何用戶進入SQL環境:Oracle $ sqlplus /nolog
19、創建用戶並指定表空間:createuser用戶名 identified by密碼default tablespace表;
20、解鎖用戶:alter user用戶名 account unlock;
21、查看oracle中用戶:select username from all_users;
22、查看已用表空間大下:selecttablespace_name,sum(bytes/1024/1024) from dba_segments group bytablespace_name;
查看剩餘表空間大小: select tablespace_name,sum(blocks*8192/1000000)from dba_free_space group by tablespace_name;
23、查詢數據庫允許的最大連接數:selectvalue from v$parameter where name = 'processes';
24、修改數據庫允許的最大連接數:altersystem set processes = 1500 scope = spfile;
25、查詢oracle的連接數 select count(*) fromv$session;
26、刪除表的數據 delete from表;
27、增加表空間大小
alter tablespace 表空間名字 add datafile'/home/data/mpay/info_data_24.dbf' size 512M;
28、查看oracle日誌是否爲歸檔日誌archive log list;
29、截取一個時間段的日誌信息
sed -n '/2018-01-03 13:30:/,/2018-01-0314:42:/p' catalina.out > catalina.out20180103.log