【数据库】Oracle数据库相关

1. 常用SQL语句

删除多余重复数据

DELETE TABLE1 T WHERE T.ID IN
(
    SELECT ID FROM TABLE1 
    GROUP BY ID HAVING COUNT(ID) >1
) 
AND ROWID NOT IN 
(
    SELECT MIN(ROWID) FROM TABLE1 
    GROUP BY ID HAVING COUNT(*) > 1
)

开启/关闭日志

-- 关闭日志
ALTER TABLESPACE tbs NOLOGGIN;
ALTER TABLE TABLE1 NOLOGGING;
-- 开启日志
ALTER TABLESPACE tbs LOGGIN;
ALTER TABLE TABLE1 LOGGING;

查看表空间使用情况

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 
    	TABLESPACE_NAME,
    	ROUND(SUM(BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
    FROM sys.DBA_DATA_FILES 
) d,
WHERE d.TABLESPACE_NAME=f.TABLESPACE_NAME
ORADER BY 1

表解锁语句

SELECT 
	b.OWNER,
	b.OBJECT_NAME,
	'ALTER SYSTEM KILL SESSION ' || '''' || a.SESSION_ID || ',' || c.SERIAL# || '''' || ';', a.locked_mode 
FROM V$LOCKED_OBJECT a, DBA_OBJECTS b, V$SESSION c
WHERE b.OBJECT_ID=a.OBJECT_ID AND c.SID=a.SESSION_ID

查看已连接的系统主机

-- 查看已连接的系统主机
select 
	b.SID ORACLEID, 
	b.USERNAME ORACLE用户,
	b.SERIAL#,
	SPID 系统ID,
	PADDR,
	SQL_TEXT SQL,
	b.MACHINE 计算机名
FROM V$PROCESS a, V$SESSION b, V$SQLAREA c
WHERE a.ADDR=b.PADDR AND b.SQL_HASH_VALUE=C.HASH_VALUE
-- 查看已连接个数
SELECT MACHINE,COUNT(*) AS COUNT
FROM V$SESSION WHERE STATUS='ACTIVE'
GROUP BY MACHINE;

查看正在执行的SQL语句

SELECT 
	a.SERIAL#,
	a.SID,
	OSUSER 登录身份,
	program 程序,
	USERNAME 登录用户名,
	SCHEMANAME,
	b.CPU_TIME 花费CPU时间,
	STATUS,
	b.SQL_TEXT 执行的SQL
FROM V$PROCESS a LEFT JOIN V$SQL b 
ON a.SQL_ADDRESS=b.ADDRESS AND a.SQL_HASH_VALUE=b.HASH_VALUE
ORDER BY b.CPU_TIME DESC;

数据库创建表空间和用户

-- 1. 创建表空间,注意对dbf文件的路径进行修改
select t.* from dba_data_files t;
-- DROP TABLESPACE DTYJ INCLUDING CONTENTS AND DATAFILES;
CREATE BIGFILE TABLESPACE DTYJ DATAFILE
'/u01/app/oracle/tdr/DTYJ.dbf' SIZE 1024M AUTOEXTEND ON NEXT 50M
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
-- DROP TABLESPACE TBS_DTYJ_TEMP INCLUDING CONTENTS AND DATAFILES;
CREATE TEMPORARY TABLESPACE TBS_DTYJ_TEMP TEMPFILE
'/u01/app/oracle/tdr/TBS_DTYJ_TEMP.dbf' SIZE 1024M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED
TABLESPACE GROUP ''
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

-- 2. 创建用户
DROP USER dtyj;
CREATE USER dtyj
IDENTIFIED BY dtyj
DEFAULT TABLESPACE DTYJ
TEMPORARY TABLESPACE TBS_DTYJ_TEMP
PROFILE DEFAULT
ACCOUNT UNLOCK;

-- 3. 权限相关
GRANT CONNECT TO dtyj;
GRANT DBA TO dtyj WITH ADMIN OPTION;
ALTER USER dtyj DEFAULT ROLE ALL;
GRANT CREATE DATABASE LINK TO dtyj;
GRANT CREATE ANY JOB TO dtyj;
GRANT CREATE TABLE TO dtyj;
GRANT SELECT ANY TABLE TO dtyj;
GRANT SELECT ANY DICTIONARY TO dtyj;
GRANT UNLIMITED TABLESPACE TO dtyj WITH ADMIN OPTION;

-- 4. oracle用户下,导入dmp文件
imp dtyj/dtyj file=/home/oracle/temp/dtyj_20201123.dmp ignore=y full=y

2. 常见问题排查

数据库trc/trm日志文件删除

trc和trm日志文件太多时,会占用磁盘空间。需要定时清理,使用如下步骤可以清理。

一、找到trc/trm日志文件目录

cd /u01/app/oracle/diagnostic/rdbms/tdr/tdr/trace

二、删除该目录下日志文件

rm -rf *.trc *. trm

三、重启数据库(可选步骤)

su - oracle		# 切换oracle用户
sqlplus /nolog	# 使用sqlplus登录
sql> conn / as sysdba
sql> shutdown abort
sql> startup
sql> exit

当需要定时清理时可使用如下脚本,并将该脚本放至定时器任务中。

#!/bin/sh
. /etc/profile.d/oraenv.sh
ORACLE_DIAG=$ORACLE_BASE/diag/rdbms/$ORACLE_SID/$ORACLE_SID
for subpath in trace incident
do
if [ -d $ORACLE_DIAG/$subpath]
then
find $ORACLE_DIAG/$subpath -mtime +30 -exec rm -rf {} \;
fi
done

ORACLE_DIAG=$GRID_BASE/crs_base/diag/asm/+asm/+ASM
for subpath in trace incident
do
if [ -d $ORACLE_DIAG/$subpath]
then
find $ORACLE_DIAG/$subpath -mtime +30 -exec rm -rf {} \;
fi
done

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
福州大学网络数据库oracle历年卷是指福州大学网络数据库oracle课程的过去几年的考试卷。福州大学是一所知名的大学,网络数据库oracle是其计算机科学与技术专业的一门重要课程。 福州大学网络数据库oracle历年卷的出现对学生来说具有重要意义。首先,它提供了历年来的考试情况,让学生能够更好地了解教学重点和考试内容。通过研究过去的考卷,学生可以了解掌握哪些知识点更为重要,从而有针对性地进行学习和复习。 其次,福州大学网络数据库oracle历年卷还能够帮助学生提高解题能力。通过反复解答历年考卷的习题,学生可以提高他们的解题能力,并提前适应考试的时间紧迫和题量多的特点。同时,历年卷中的经典题目也能够帮助学生更好地掌握数据库oracle的一些常见问题和难点。 此外,福州大学网络数据库oracle历年卷也有助于学生自我评估和调整学习策略。学生可以通过自己解答历年考卷的情况,了解自己对知识点的理解情况和解题能力的提升程度。根据评估结果,学生可以调整他们的学习计划和策略,有针对性地加强薄弱环节,更好地备考。 综上所述,福州大学网络数据库oracle历年卷对学生来说是一份宝贵的学习资料。它提供了考试内容、帮助学生提高解题能力、调整学习策略等方面的帮助,对学生的学习和备考都具有积极的影响。因此,学生们应该充分利用网络数据库oracle历年卷,加强对该课程的学习和理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路易斯·李

点个赞再走呗 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值