1. linux 下登錄數(shù)據(jù) 執(zhí)行sql
su - oracle
<切換到oracle賬號: 加- 使用全新的環(huán)境變量也祠,不加-使用切換前用戶的環(huán)境變量>
sqlplus /nolog
<進(jìn)入sqlplus 程序>
conn sys/sys as sysdba
<使用具體賬號密碼,賬號類型鏈接數(shù)據(jù)庫>
2.查詢指定時間內(nèi)執(zhí)行過多sql記錄
select t.SQL_TEXT, t.FIRST_LOAD_TIME,t.ELAPSED_TIME from v$sqlarea t where TO_DATE(t.FIRST_LOAD_TIME,'YYYY-MM-DD HH24:MI:SS')>= TO_DATE('2019-06-24 20:40:00','YYYY-MM-DD HH24:MI:SS') AND TO_DATE(t.FIRST_LOAD_TIME,'YYYY-MM-DD HH24:MI:SS')<=TO_DATE('2019-06-24 20:42:00','YYYY-MM-DD HH24:MI:SS') ORDER BY t.FIRST_LOAD_TIMe
<查詢?nèi)齻€字段的結(jié)果集块茁,按順序:具體執(zhí)行的sql齿坷、第一次加載sql的時間、sql執(zhí)行消耗時間>
A.查詢鏈接信息
select username,count(username) from v$session where username is not null group by username;
3.Oracle對表進(jìn)行操作
1数焊、創(chuàng)建表
create table 表名(
? 字段名 VARCHAR2(36 CHAR) not null,
? 字段名 VARCHAR2(200 CHAR)?
)
tablespace 表空間名
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64
minextents 1
maxextents unlimited
);
2永淌、修改字段、字段類型
alter table tableName rename column oldCName to newCName; -- 修改字段名
alter table tableName modify (cloumnName 數(shù)據(jù)類型); -- 修改數(shù)據(jù)類型
3佩耳、添加表遂蛀、字段注釋
comment on table 表名 is '表的注釋信息';
comment on column 表名.字段名 is '字段的注釋信息';
4、添加索引
create index 索引名 on 表名( 字段名)
5干厚、修改字段長度
alter table 表名 modify 列名 數(shù)據(jù)類型李滴;
alter table bl_yhsz modify? zcmc varchar2(120);
5、查詢表空間使用率
--1G=1024MB?
--1M=1024KB?
--1K=1024Bytes?
--1M=11048576Bytes?
--1G=1024*11048576Bytes=11313741824Bytes?
SELECT a.tablespace_name "表空間名",?
total "表空間大小",?
free "表空間剩余大小",?
(total - free) "表空間使用大小",?
total / (1024 * 1024 * 1024) "表空間大小(G)",?
free / (1024 * 1024 * 1024) "表空間剩余大小(G)",?
(total - free) / (1024 * 1024 * 1024) "表空間使用大小(G)",?
round((total - free) / total, 4) * 100 "使用率 %"?
FROM (SELECT tablespace_name, SUM(bytes) free?
FROM dba_free_space?
GROUP BY tablespace_name) a,?
(SELECT tablespace_name, SUM(bytes) total?
FROM dba_data_files?
GROUP BY tablespace_name) b?
WHERE a.tablespace_name = b.tablespace_name?
6蛮瞄、查看數(shù)據(jù)庫的版本 ?
SELECT version?
FROM product_component_version?
WHERE substr(product, 1, 6) = 'Oracle';?
7所坯、查看數(shù)據(jù)庫的創(chuàng)建日期和歸檔方式?
SELECT created, log_mode, log_mode FROM v$database;?
8、統(tǒng)計表空間試用率
細(xì)分表文件
SELECT a.tablespace_name "tablespace_name", total "tablespace_namesize", free "tablespace_namefreesize", (total - free) "tablespace_name_use", total / (1024 * 1024 * 1024) "tablespace_namesize(G)", free / (1024 * 1024 * 1024) "tablespace_namefreesize(G)", (total - free) / (1024 * 1024 * 1024) "tablespace_name_use(G)", round((total - free) / total, 4) * 100 "use %",b.FILE_NAME FROM (SELECT tablespace_name, SUM(bytes)?free?,file_id FROM dba_free_space GROUP BY tablespace_name,file_id) a, (SELECT tablespace_name, SUM(bytes)?total,file_id,FILE_NAME FROM dba_data_files GROUP BY tablespace_name,file_id,FILE_NAME) b WHERE a.tablespace_name = b.tablespace_name and? a.file_id = b.file_id?and b.tablespace_name = 'EKP' ;
統(tǒng)計所有表文件
SELECT a.tablespace_name "tablespace_name", total "tablespace_namesize", free "tablespace_namefreesize", (total - free) "tablespace_name_use", total / (1024 * 1024 * 1024) "tablespace_namesize(G)", free / (1024 * 1024 * 1024) "tablespace_namefreesize(G)", (total - free) / (1024 * 1024 * 1024) "tablespace_name_use(G)", round((total - free) / total, 4) * 100 "use %" FROM (SELECT tablespace_name, SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name and b.tablespace_name = 'EKP'
9挂捅、添加表空間
創(chuàng)建表空間
CREATE TABLESPACE UATDBEKP LOGGING DATAFILE '/oracle/app/oracle/oradata/uat dbekp/uatdbekp.dbf' SIZE 20480M AUTOEXTEND ON NEXT 100M MAXSIZE unlimited;
修改表空間
alter tablespace EKP add datafile '/oracle/app/oracle/oradata/ekp/ekp01.dbf' size 20480M AUTOEXTEND? ON NEXT 100M maxsize unlimited ;
創(chuàng)建用戶?
create user uatdbekp identified by uatdbekp default tablespace uatdbekp;
授予登錄權(quán)限
grant create session,resource to uatdbekp
10芹助、數(shù)據(jù)庫備份還原 expdp\impdp
備份
cd?/home/oracle
mkdir ekpbak
chmod 777 ekpbak
create directory ekpbak as '/home/oracle/ekpbak'; --?登錄oracle創(chuàng)建映射目錄
grant read,write on directory ekpbak?to ekp; --?給目錄授權(quán)
expdp ekp/ekp directory=ekpbak dumpfile=ekp.dmp tablespaces=EKP --備份
expdp ekp/ABCabc123 directory=ekpbak dumpfile=ekp.dmp tablespaces=EKP
expdp uatdbekp/uatdbekp directory=uatbak dumpfile=ekp.dmp tablespaces=uatdbekp exclude=table:\"LIKE \'%_BAK\'\",table:\"LIKE \'%LOGS\'\" --備份
還原
?create directory IMPDIR?as '/home/oracle/impdir';?--?登錄oracle創(chuàng)建映射目錄
?grant read,write on directory?IMPDIR?to?ekp;?--?給目錄授權(quán)
impdp ekp/ekp directory=IMPDIR table_exists_action=replace?dumpfile=ekp.dmp logfile=impdp.log??--還原
impdp uatdbekp/uatdbekp directory=UATIMPDIR table_exists_action=replace remap_schema=EKP:UATDBEKP remap_tablespace=EKP:UATDBEKP dumpfile=ekp.dmp logfile=impdp.log
table_exists_action:
skip 是如果已存在表,則跳過并處理下一個對象闲先;
append是為表增加數(shù)據(jù);
truncate是截斷表状土,然后為其增加新數(shù)據(jù);
replace是刪除已存在表伺糠,重新建表并追加數(shù)據(jù);
查詢?ORACLE_SID值
echo $ORACLE_SID
修改 ORACLE_SID值
export ORACLE_SID=UATDBEKP
重啟數(shù)據(jù)庫
(1) 以oracle身份登錄數(shù)據(jù)庫蒙谓,命令:su – oracle
(2) 進(jìn)入Sqlplus控制臺,命令:sqlplus /nolog
(3) 以系統(tǒng)管理員登錄训桶,命令:connect / as sysdba
(4) 啟動數(shù)據(jù)庫累驮,命令:startup
(5) 如果是關(guān)閉數(shù)據(jù)庫酣倾,命令:shutdown immediate
(6) 退出sqlplus控制臺,命令:exit
(7) 進(jìn)入監(jiān)聽器控制臺谤专,命令:lsnrctl
(8) 啟動監(jiān)聽器灶挟,(如果已經(jīng)啟動就無需管了)命令:start
(9) 退出監(jiān)聽器控制臺,命令:exit
(10) 重啟數(shù)據(jù)庫結(jié)束
查詢最慢的sql
select?*
?from?(select?sa.SQL_TEXT,
????????sa.SQL_FULLTEXT,
????????sa.EXECUTIONS?"執(zhí)行次數(shù)",
????????round(sa.ELAPSED_TIME / 1000000, 2)?"總執(zhí)行時間",
????????round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2)?"平均執(zhí)行時間",
????????sa.COMMAND_TYPE,
????????sa.PARSING_USER_ID?"用戶ID",
????????u.username?"用戶名",
????????sa.HASH_VALUE
?????from?v$sqlarea sa
?????left?join?all_users u
??????on?sa.PARSING_USER_ID = u.user_id
?????where?sa.EXECUTIONS > 0
?????order?by?(sa.ELAPSED_TIME / sa.EXECUTIONS)?desc)
?where?rownum <= 50;
查詢外鍵關(guān)聯(lián)的表信息
select aaa.owner "外鍵庫",
? ? ? aaa.table_name "外鍵表",
? ? ? substr(c.column_name, 1, 127)"外鍵列",
? ? ? bb.owner "主鍵庫",
? ? ? bb.table_name "主鍵表",
? ? ? substr(d.column_name, 1, 127) "主鍵列"
? from user_constraints? aaa,
? ? ? user_constraints? bb,
? ? ? user_cons_columns c,
? ? ? user_cons_columns d
where aaa.r_constraint_name = bb.constraint_name
? and aaa.constraint_type = 'R'
? and bb.constraint_type = 'P'
? and aaa.r_owner = bb.owner
? and aaa.constraint_name = c.constraint_name
? and bb.constraint_name = d.constraint_name
? and aaa.owner = c.owner
? and aaa.table_name = c.table_name
? and bb.owner = d.owner
? and bb.table_name = d.table_name
? and bb.constraint_name='SYS_C0023998'
merge更新
merge into SYS_ORG_ELEMENT_BACK070603 v
? ? ? using (select
FD_ID,
FD_ORG_TYPE,
FD_NAME,
FD_NAME_PINYIN,
FD_NAME_SIMPLE_PINYIN,
FD_ORDER,
FD_NO,
FD_KEYWORD,
FD_IS_AVAILABLE,
FD_IS_ABANDON,
FD_IS_BUSINESS,
FD_IMPORT_INFO,
FD_FLAG_DELETED,
FD_LDAP_DN,
FD_MEMO,
FD_HIERARCHY_ID,
FD_CREATE_TIME,
FD_ALTER_TIME,
FD_ORG_EMAIL,
FD_PERSONS_NUMBER,
FD_PRE_DEPT_ID,
FD_PRE_POST_IDS,
FD_THIS_LEADERID,
FD_SUPER_LEADERID,
FD_PARENTORGID,
FD_PARENTID,
FD_CATEID,
AUTH_READER_FLAG,
FROM_CODE,
PARENT_FROM_CODE,
MANAGE_FROM_CODE,
BRANCHES_FROM_CODE,
DEPT_FROM_CODE,
PERSON_FROM_CODE,
FD_DEPT_LVL,
FD_POSN_LVL
? ? ? ? ? ? ? ? from SYS_ORG_ELEMENT) b
on (v.FD_ID = b.FD_ID)?
when matched then
? ? ? update set
? ? ? ? ? v.FD_ORG_TYPE =? b.FD_ORG_TYPE,
? ? ? ? ? v.FD_NAME =? b.FD_NAME,
? ? ? ? ? v.FD_NAME_PINYIN=? b.FD_NAME_PINYIN,
? ? ? ? ? v.FD_NAME_SIMPLE_PINYIN=? b.FD_NAME_SIMPLE_PINYIN,
? ? ? ? ? v.FD_ORDER=? b.FD_ORDER,
? ? ? ? ? v.FD_NO=? b.FD_NO,
? ? ? ? ? v.FD_KEYWORD=? b.FD_KEYWORD,
? ? ? ? ? v.FD_IS_AVAILABLE=? b.FD_IS_AVAILABLE,
? ? ? ? ? v.FD_IS_ABANDON=? b.FD_IS_ABANDON,
? ? ? ? ? v.FD_IS_BUSINESS=? b.FD_IS_BUSINESS,
? ? ? ? ? v.FD_IMPORT_INFO=? b.FD_IMPORT_INFO,
? ? ? ? ? v.FD_FLAG_DELETED=? b.FD_FLAG_DELETED,
? ? ? ? ? v.FD_LDAP_DN=? b.FD_LDAP_DN,
? ? ? ? ? v.FD_MEMO=? b.FD_MEMO,
? ? ? ? ? v.FD_HIERARCHY_ID=? b.FD_HIERARCHY_ID,
? ? ? ? ? v.FD_CREATE_TIME=? b.FD_CREATE_TIME,
? ? ? ? ? v.FD_ALTER_TIME=? b.FD_ALTER_TIME,
? ? ? ? ? v.FD_ORG_EMAIL=? b.FD_ORG_EMAIL,
? ? ? ? ? v.FD_PERSONS_NUMBER=? b.FD_PERSONS_NUMBER,
? ? ? ? ? v.FD_PRE_DEPT_ID=? b.FD_PRE_DEPT_ID,
? ? ? ? ? v.FD_PRE_POST_IDS=? b.FD_PRE_POST_IDS,
? ? ? ? ? v.FD_THIS_LEADERID=? b.FD_THIS_LEADERID,
? ? ? ? ? v.FD_SUPER_LEADERID=? b.FD_SUPER_LEADERID,
? ? ? ? ? v.FD_PARENTORGID=? b.FD_PARENTORGID,
? ? ? ? ? v.FD_PARENTID=? b.FD_PARENTID,
? ? ? ? ? v.FD_CATEID=? b.FD_CATEID,
? ? ? ? ? v.AUTH_READER_FLAG=? b.AUTH_READER_FLAG,
? ? ? ? ? v.FROM_CODE=? b.FROM_CODE,
? ? ? ? ? v.PARENT_FROM_CODE=? b.PARENT_FROM_CODE,
? ? ? ? ? v.MANAGE_FROM_CODE=? b.MANAGE_FROM_CODE,
? ? ? ? ? v.BRANCHES_FROM_CODE=? b.BRANCHES_FROM_CODE,
? ? ? ? ? v.DEPT_FROM_CODE=? b.DEPT_FROM_CODE,
? ? ? ? ? v.PERSON_FROM_CODE=? b.PERSON_FROM_CODE,
? ? ? ? ? v.FD_DEPT_LVL=? b.FD_DEPT_LVL,
? ? ? ? ? v.FD_POSN_LVL=? b.FD_POSN_LVL
when not matched then
? ? ? ? insert (
? ? ? ? ? ? ? v.FD_ID,
? ? ? ? ? v.FD_ORG_TYPE,
? ? ? ? ? v.FD_NAME,
? ? ? ? ? v.FD_NAME_PINYIN,
? ? ? ? ? v.FD_NAME_SIMPLE_PINYIN,
? ? ? ? ? v.FD_ORDER,
? ? ? ? ? v.FD_NO,
? ? ? ? ? v.FD_KEYWORD,
? ? ? ? ? v.FD_IS_AVAILABLE,
? ? ? ? ? v.FD_IS_ABANDON,
? ? ? ? ? v.FD_IS_BUSINESS,
? ? ? ? ? v.FD_IMPORT_INFO,
? ? ? ? ? v.FD_FLAG_DELETED,
? ? ? ? ? v.FD_LDAP_DN,
? ? ? ? ? v.FD_MEMO,
? ? ? ? ? v.FD_HIERARCHY_ID,
? ? ? ? ? v.FD_CREATE_TIME,
? ? ? ? ? v.FD_ALTER_TIME,
? ? ? ? ? v.FD_ORG_EMAIL,
? ? ? ? ? v.FD_PERSONS_NUMBER,
? ? ? ? ? v.FD_PRE_DEPT_ID,
? ? ? ? ? v.FD_PRE_POST_IDS,
? ? ? ? ? v.FD_THIS_LEADERID,
? ? ? ? ? v.FD_SUPER_LEADERID,
? ? ? ? ? v.FD_PARENTORGID,
? ? ? ? ? v.FD_PARENTID,
? ? ? ? ? v.FD_CATEID,
? ? ? ? ? v.AUTH_READER_FLAG,
? ? ? ? ? v.FROM_CODE,
? ? ? ? ? v.PARENT_FROM_CODE,
? ? ? ? ? v.MANAGE_FROM_CODE,
? ? ? ? ? v.BRANCHES_FROM_CODE,
? ? ? ? ? v.DEPT_FROM_CODE,
? ? ? ? ? v.PERSON_FROM_CODE,
? ? ? ? ? v.FD_DEPT_LVL,
? ? ? ? ? v.FD_POSN_LVL
? ? ? ? ? )
? ? ? ? values (
? ? ? ? ? b.FD_ID,
? ? ? ? ? b.FD_ORG_TYPE,
? ? ? ? ? b.FD_NAME,
? ? ? ? ? ? b.FD_NAME_PINYIN,
? ? ? ? ? ? b.FD_NAME_SIMPLE_PINYIN,
? ? ? ? ? b.FD_ORDER,
? ? ? ? ? ? b.FD_NO,
? ? ? ? ? ? b.FD_KEYWORD,
? ? ? ? ? ? b.FD_IS_AVAILABLE,
? ? ? ? ? ? b.FD_IS_ABANDON,
? ? ? ? ? ? b.FD_IS_BUSINESS,
? ? ? ? ? ? b.FD_IMPORT_INFO,
? ? ? ? ? ? b.FD_FLAG_DELETED,
? ? ? ? ? ? b.FD_LDAP_DN,
? ? ? ? ? ? b.FD_MEMO,
? ? ? ? ? ? b.FD_HIERARCHY_ID,
? ? ? ? ? ? b.FD_CREATE_TIME,
? ? ? ? ? ? b.FD_ALTER_TIME,
? ? ? ? ? ? b.FD_ORG_EMAIL,
? ? ? ? ? ? b.FD_PERSONS_NUMBER,
? ? ? ? ? ? b.FD_PRE_DEPT_ID,
? ? ? ? ? ? b.FD_PRE_POST_IDS,
? ? ? ? ? ? b.FD_THIS_LEADERID,
? ? ? ? ? ? b.FD_SUPER_LEADERID,
? ? ? ? ? ? b.FD_PARENTORGID,
? ? ? ? ? ? b.FD_PARENTID,
? ? ? ? ? ? b.FD_CATEID,
? ? ? ? ? ? b.AUTH_READER_FLAG,
? ? ? ? ? ? b.FROM_CODE,
? ? ? ? ? ? b.PARENT_FROM_CODE,
? ? ? ? ? ? b.MANAGE_FROM_CODE,
? ? ? ? ? ? b.BRANCHES_FROM_CODE,
? ? ? ? ? ? b.DEPT_FROM_CODE,
? ? ? ? ? ? b.PERSON_FROM_CODE,
? ? ? ? ? ? b.FD_DEPT_LVL,
? ? ? ? ? ? b.FD_POSN_LVL
? ? ? ? ) ;? ?