伤心客 发表于 2025-4-4 17:22:20

Windchill配置-数据库相关的基础操纵

一、数据库访问

1.1 访问方式

可以通过本地数据库工具如:Navicat、DBeaver、PLSQL等,通常此方式都存在着权限的限定,部分SQL指令无权限实验;也可以直接通过数据库服务器进行访问。
1.2 数据库服务器

1.2.1 Windows/Linux

Windows:打开Windows PowerShell
Linux:登陆Linux服务器,切换到oracle用户权限
su - oracle
1.2.2 监听相关命令

查询监听状态:lsnrctl status
启动监听:lsnrctl start
关闭监听:lsnrctl stop
重新加载监听:lsnrctl reload
1.2.3 进入sqlplus
的方式


[*]平凡用户身份登陆
sqlplus
回车之后会提示输入用户名,密码

sqlplus
username/password username:用户名
password:密码

connect username/password

connect username/password
@servername servername:服务名

[*]体系管理员身份登陆
sqlplus
/ as sysdba 或
connect / as sysdba
1.2.4 基础SQL命令

查看数据库实例名:
show parameter instance_name;
关闭数据库:
shutdown immediate;
启动数据库:
startup;
退出sql语句实验:
exit;
二、常用的SQL语句

2.1 数据库表空间使用情况查询

2.1.1 统计

SELECT         fs.TABLESPACE_NAME "表空间",
                round(total / (1024 * 1024 * 1024), 2) "总空间(G)",
                round(free / (1024 * 1024 * 1024), 2) "剩余(G)",
                round((total - free) / (1024 * 1024 * 1024), 2) "已使用(G)",
                round((total - free) / total, 4) * 100 "使用率%"
                FROM (SELECT TABLESPACE_NAME, SUM(BYTES) free
                                FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) fs,
                        (SELECT TABLESPACE_NAME, SUM(BYTES) total
                                FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) df
                WHERE fs.TABLESPACE_NAME = df.TABLESPACE_NAME;
2.1.2 明细

SELECT         df.FILE_ID AS "文件ID",
                df.TABLESPACE_NAME AS "表空间",
                df.FILE_NAME AS "文件名",
                CONCAT(ROUND(NVL(df.BYTES, 0)/(1024*1024), 2), 'MB') AS "总空间",
                CONCAT(ROUND((NVL(df.BYTES, 0)-SUM(NVL(fs.BYTES, 0)))/(1024*1024), 2), 'MB') AS "已使用",
                CONCAT(ROUND(SUM(NVL(fs.BYTES, 0))/(1024*1024), 2), 'MB')AS "剩余",
                CONCAT(ROUND(SUM(NVL(fs.BYTES, 0))/NVL(df.BYTES, 0), 4)*100, '%') AS "剩余%"
        FROM DBA_FREE_SPACE fs, DBA_DATA_FILES df
        WHERE fs.FILE_ID = df.FILE_ID
        GROUP BY df.TABLESPACE_NAME ,df.FILE_NAME ,df.FILE_ID ,df.BYTES
        ORDER BY df.TABLESPACE_NAME ;
2.2 数据库表空间扩容

2.2.1 单机情况

自动扩容,有最大限定的:
ALTER TABLESPACE tablespacename ADD DATAFILE 'filepath' SIZE 1024M AUTOEXTEND ON NEXT 8M MAXSIZE 30720M;
非自动扩容(表空间最大为32G):
ALTER TABLESPACE tablespacename ADD DATAFILE 'filepath' SIZE 30G;
tablespacename:待扩容的表空间
filepath:上面查询到的对应的表空间文件名,留意文件名不能重复
2.2.2 集群情况(Oracle RAC)

查询磁盘组信息:
su - grid
asmcmd
lsdg

SELECT GROUP_NUMBER ,NAME ,TYPE ,STATE ,TOTAL_MB ,FREE_MB FROM "GV$ASM_DISKGROUP";
扩容命令:
ALTER TABLESPACE tablespacename ADD DATAFILE '+磁盘组名' size 30G;
+磁盘组名:一样平常来说都是+DATA
Oracle RAC安装时打开了omf,以是新增的数据文件只必要写到’+磁盘组名’,就可以自动创建到数据文件所在目录
2.3 游标查询

2.3.1 查询最大游标数和最大打开游标数

SELECT MAX(a.value) AS highest_open_cur,
       p.value AS max_open_cur
FROM v$sesstat   a,
       v$statnameb,
       v$parameter p
WHERE a.statistic# = b.statistic#
   AND b.name = 'opened cursors current'
   AND p.name = 'open_cursors'
GROUP BY p.value;
2.3.2 打开游标的信息查询

SELECT a.value,
       s.username,
       s.sid,
       s.serial#
FROM v$sesstata,
       v$statname b,
       v$sessions
WHERE a.statistic# = b.statistic#
   AND s.sid = a.sid
   AND b.name = 'opened cursors current'
ORDER BY 1 DESC;
2.3.2 未关闭PreparedStatement的SQL查询

SELECT oc.sid,
       oc.hash_value,
       oc.sql_text,
       COUNT(*) how_many
FROM v$open_cursor oc
GROUP BY sid,
          hash_value,
          sql_text
ORDER BY 4 DESC;
2.4 历程相关SQL

2.4.1 查询用户占用资源信息

SELECT l.SESSION_ID ,o.OWNER ,o.OBJECT_NAME
        FROM "V$LOCKED_OBJECT" l,dba_objects o
        WHERE l.OBJECT_ID = o.OBJECT_ID;
2.4.2 根据SID(即SESSION_ID)查询出死锁历程信息

SELECT SID ,"SERIAL#" ,USERNAME ,OSUSER ,MACHINE ,TERMINAL ,PROGRAM ,PREV_EXEC_START ,EVENT ,LOGON_TIME
        FROM v$session WHERE SID IN (SESSION_ID1 ,SESSION_ID2) ;
2.4.3 直接查询死锁的历程

SELECT s.SID, s."SERIAL#", l.TYPE
        FROM v$lock l, v$session s
        WHERE l.SID = s.SID
        AND l.TYPE = 'TM';
2.4.4 结束死锁历程(SID,SERIAL#)

ALTER system kill SESSION 'SID,SERIAL#';
2.5 表占用查询

2.5.1 查询占用内存前10的表

SELECT * FROM
        (SELECT SEGMENT_NAME ,ROUND(NVL(BYTES, 0)/(1024*1024), 2)
                FROM DBA_SEGMENTS
                WHERE OWNER = USER
                ORDER BY BYTES DESC
        )
        WHERE rownum <= 10;
2.5.2 删除表数据

drop删除表数据,删除表数据和结构:
DROP TABLE student;
truncate删除表数据,只删除表数据,不删除表结构,整体一次性删除,服从高,开释空间:
TRUNCATE TABLE student;
delete删除表数据,只删除表数据,不删除表结构,单行数据删除,服从低,不开释空间:
DELETE FROM student;

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Windchill配置-数据库相关的基础操纵