Oracle 一些簡單操做

 

登陸oracle html

以root用戶切換到oracle數據庫用戶:su - oracle sql

輸入sqlplus /nolog 不鏈接任何數據庫 數據庫

conn /as sysdba 用sysdba登陸 centos

startup 開啓實例 oracle

shutdown 關閉實例 shutdown immediate (當即關閉實例) app

conn 用戶名/密碼 也能夠登陸 dom

   

查詢當前實例名 ide

select instance_name from v$instance; ui

show parameter instance_name spa

   

指定某個實例進行登陸:sqlplus system(用戶名)/jhy(密碼)@orcl(實例) as sysdba

oracle實例設置開機啓動:

[root@centoscms oracle]# vi /etc/oratab

orcl:/oracle/app/product/10.2.0/db_1:Y

   

查看監聽:

lsnrctl start|stop|status (啓動|中止|活動狀態 監聽)

查詢命令:

desc dba_users; (查詢dba_users表結構)

select username from dba_users; (查詢當前sid下的全部用戶的username)

select count(*) from username.tablename; (查詢tablename表的行數)

drop user username cascade; (刪除名稱爲username的oracle用戶)

select distinct table_name from user_tab_columns; (查看當前user模式下全部表名)

select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');

   

查看ASM磁盤使用狀況

select name,total_mb,free_mb from v$asm_disk;

select name,total_mb,free_mb from v$asm_diskgroup;

select state,name,type,total_mb, free_mb from v$asm_diskgroup_stat;

查看ASM磁盤路徑

select name, path, group_number from v$asm_disk_stat;

   

asmcmd命令使用

   

   

   

ASM中建表

   

表空間:

create tablespace ceshi001 datafile '+DATA2/RAC/DATAFILE/ceshi001.dbf' size 1024m autoextend on next 100m maxsize unlimited extent management local segment space management auto;next 100m:表空間大小超過原定大小時,每次自動擴展100m,這裏中間不要加size,不然會報錯,提示數值無效)

   

commit:提交以前的操做

   

臨時表空間:

create temporary tablespace temp001 tempfile '+DATA2/RAC/TEMPFILE/temp001.dbf' size 200m autoextend on next 20M maxsize unlimited extent management local;

臨時表空間操做參考:http://www.cnblogs.com/kerrycode/p/4006840.html

   

查看錶空間詳細信息

select * from dba_data_files;

select * from dba_temp_files;

   

查看某表的大小

select segment_name,bytes from dba_segments where segment_type='TABLE' and segment_name='DSE_TASK1';

select * from user_tables;

   

查看用戶下全部的表

select instance_name,status,version,database_status from v$instance;

echo $ORACLE_HOME

   

查詢全部用戶

select username from dba_users;

   

查看指定用戶有哪些系統權限

select * from dba_role_privs where grantee=upper('username');

查看指定用戶有哪些對象權限

select * from dba_tab_privs where grantee=upper('username');

   

建立臨時表空間

CREATE TEMPORARY TABLESPACE temp001 TEMPFILE '/u01/app/oracle/oradata/temp001.dbf' SIZE 200m AUTOEXTEND ON NEXT 32m MAXSIZE 2048m EXTENT MANAGEMENT LOCAL;

   

指定默認臨時表空間

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp001;

   

建立表空間

create tablespace test001 datafile '/u01/app/oracle/oradata/test001.dbf' size 10240m AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

   

建立用戶

CREATE USER test001 IDENTIFIED BY shuyi123 DEFAULT TABLESPACE test001 temporary tablespace temp001;

create user ceshi identified by shuyi123 default tablespace ceshi001 temporary tablespace temp001;

   

受權

grant dba to ceshi001;

grant connect,resource to ceshi001;

grant unlimited tablespace to ceshi001;

grant create database link to ceshi001;

grant select any sequence,create materialized view toceshi001;

   

   

用戶B 要 訪問用戶A 的表:

用system登陸,將用戶A的表受權給public或者 B

grant select on A.table1 to public; grant select on A.table to B;

或者用A登陸,將表的select受權給public或者B

   

撤銷權限 revoke

   

建表

create table dse_task1 (id number not null,task_id number,server_uuid char(1024),proxy_uuid char(1024),repo_uuid char(1024));

   

插入數據

insert into dse_task1 value( select rownum as id,rownum+10 as task_id,dbms_random.string('x', 40) as server_uuid,dbms_random.string('x',40) as proxy_uuid,dbms_random.string('x',40) as repo_uuid from dual connect by level<=100000);

   

複製表數據到新表

create table dse_task2 as select * from dse_task1;

   

   

查詢表空間表容量

select segment_name,tablespace_name,bytes B, bytes/1024 KB, bytes/1024/1024 MB from user_segments where segment_type='TABLE' and tablespace_name='TEST001';

   

查詢當前用戶每一個表大小

select segment_name,sum(bytes)/1024/1024 from user_extents group by segment_name

   

清空表數據並釋放空間

truncate table dse_task2 drop storage;

// alter table dse_task2 deallocate unused keep 0

清除當前用戶的回收站:purge recyclebin;

清楚全部用戶的回收站:purge dba_recyclebin;

完全刪除表:drop table dse_task1 purge;

   

查看數據庫的建立日期和歸檔方式

select created, log_mode from v$database;

   

刪除用戶及表空間:

刪除用戶:drop user xxx;

若是用戶的schema中有objects,須要加cascade參數,即drop user xxx cascade;

刪除表空間:

能夠先將其offline:alter tablespace xx offline;

將磁盤上的數據文件一同刪除:drop tablespace xxx including contents and datafiles;

drop tablespace TEST including contents and datafiles;

   

源文檔 <http://blog.itpub.net/23862439/viewspace-1058093/>

   

   

查看數據庫庫對象

select owner, object_type, status , count(*) count# from all_objects group by owner, object_type, status;

   

查看錶空間的名稱及大小

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;

select name from v$tablespace;

源文檔 <http://blog.itpub.net/23862439/viewspace-1058093/>

   

查看錶空間物理文件的名稱及大小

select tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space from dba_data_files order by tablespace_name;

select name from v$datafile;

源文檔 <http://blog.itpub.net/23862439/viewspace-1058093/>

   

查看臨時表空間路徑

select TABLESPACE_NAME,FILE_NAME from dba_temp_files;

刪除日誌文件:

清空日誌:Alter database clear logfile group 4;

處於current狀態的日誌文件組是不可以刪除的,除非先進行強制日誌切換alter system switch logfile;.

alter database drop logfile member 'f:\oracledata\redo4.log';

查詢系統中的數據庫日誌文件組:select group#,member from v$logfile;

查看各日誌文件組與日誌文件成員的信息:select group#,members,archived,status from V$log;

注意:當一個日誌文件組中僅剩一個日誌文件的時候該日誌文件時不能被刪除的。

相關文章
相關標籤/搜索