Oracle 常用命令

连接数篇:


-- 当前的连接数
select count(*) from v$session;
-- 并发连接数
select count(*) from v$session where status='ACTIVE';
--数据库允许的最大连接数
select value from v$parameter where name = 'processes';
-- 查看不同用户的连接数
select username,count(username) from v$session where username is not null group by username;
-- sql语句执行的时间
SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc;
---查看当前闲置连接数
select program 连接方式,machine 客户机,schemaname 用户,LOGON_TIME 登陆时间,status 状态 from v$session 
where 
-- status='INACTIVE' 
schemaname not in ('SYS')
ORDER BY  LOGON_TIME DESC;

---查看 Oracle 正在执行的 sql 语句以及发起的用户
SELECT b.sid oracleID,  
       b.username 用户名,  
       b.serial#,  
       paddr,  
       sql_text 正在执行的SQL, 
    C.FIRST_LOAD_TIME 第一次执行时间,C.LAST_LOAD_TIME 最近一次执行时间,C.LAST_ACTIVE_TIME 最近一次活跃时间,
       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 

-- 修改最大游标数:
show parameter open_cursors; ---查看当前最大游标数
select count(*) from v$open_cursor;---查看目前使用的游标数
alter system set open_cursors=1500 scope=both; ---修改最大游标数
show parameter open_cursors; ---确认是否生效

-- 查看表空间
SELECT B.FILE_NAME 物理文件名,B.TABLESPACE_NAME 表空间,B.BYTES/1024/1024 大小M,(B.BYTES-SUM(NVL(A.BYTES,0)))/1024/1024 已使用M,SUBSTR((B.BYTES-SUM(NVL(A.BYTES,0)))/(B.BYTES)*100,1,5) 利用率
  FROM DBA_FREE_SPACE A,DBA_DATA_FILES B
  WHERE A.FILE_ID=B.FILE_ID
  GROUP BY B.TABLESPACE_NAME,B.FILE_NAME,B.BYTES
  ORDER BY B.TABLESPACE_NAME
-- 增加表空间
ALTER TABLESPACE RIGHT_DATA ADD DATAFILE '/data/app/oracle/oradata/orclRIGHT_01.ORA' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 32767M;

服务器运维篇

oracle闪回恢复数据:
适用于被delete删除的数据,根据实际情况,可恢复几个小时内的数据

1、查询删除数据时间点之前的数据,比如查询7月1日12点之前的数据
select * from 表名 as of timestamp to_timestamp('2023-07-01 12:00:00','yyyy-mm-dd hh24:mi:ss') ;
若没有数据 ,将时间继续提前,后面也可以跟where条件

2、如果查询到数据,则创建临时表保存数据
create table 临时表名 as select * from 表名 as of timestamp to_timestamp('2023-07-01 12:00:00','yyyy-mm-dd hh24:mi:ss') ;

3、通过insert into 将需要恢复的数据从临时表插入到正式表
第一种情况:该表一直有业务数据产生,建议对比正式表和临时表,只将临时表比正式表多的数据插入到正式表
第二种情况:该表在删除的这段时间内没有新数据产生,可直接备份正式表,再删除,最后整表插入
oracle闪回恢复表及数据:
适用于被drop删除表且非purge情况下的表恢复,一旦清空了回收站,将无法通过闪回恢复表数据

​恢复操作:
flashback table 表名 to before drop;

如果需要恢复的报表已存在,可以在恢复时重新命名其他名字:
flashback table 表名 to before drop rename to 新表名

如何重启数据库服务(图示见图1、2、图3

第一步:切换root用户

第二步:在root用户下,切换oracle用户

su - oracle

第三步:进入sql命令行状态

sqlplus / as sysdba

第四步:关闭数据库服务

shutdown immediate

第五步:开启数据库服务

startup

修改oracle最大连接数(图示见下图1

第一步:切换root用户

第二步:在root用户下,切换oracle用户

su - oracle

第三步:进入sql命令行状态

sqlplus / as sysdba

第四步:修改当前最大连接数为3000

alter system set processes = 3000 scope = spfile;

第五步:关闭数据库服务:

shutdown immediate

第六步:开启数据库服务:

startup

第七步:验证修改是否生效:

select value from v$parameter where name ='processes';

修改oracle最大游标数

--查询当前最大游标数

select value from v$parameter where name='open_cursors';

---修改最大游标数

alter system set open_cursors=3000 scope=both;

---确认是否生效

select value from v$parameter where name='open_cursors';

修改游标数不需要重启数据库服务,修改后即生效

解锁表

---查看被锁表信息:

SELECT

c.sid,c.serial#,a.oracle_username 登陆账号,a.os_user_name 登陆的电脑,b.object_name 被锁表名,a.locked_mode 锁住级别

FROM v$locked_object a,dba_objects b,v$session c

WHERE

  b.object_id = a.object_id

  AND a.session_id = c.sid;

---查看数据库引起锁表的SQL语句

SELECT A.USERNAME,A.MACHINE,A.PROGRAM,A.SID,A.SERIAL#,A.STATUS,C.PIECE,C.SQL_TEXT

FROM V$SESSION A, V$SQLTEXT C

WHERE A.SID IN (SELECT DISTINCT T2.SID

FROM V$LOCKED_OBJECT T1, V$SESSION T2

WHERE T1.SESSION_ID = T2.SID)

AND A.SQL_ADDRESS = C.ADDRESS(+)

ORDER BY C.PIECE;

---杀掉锁表进程

alter system kill session '68,51'; --68和51分别为SID和SERIAL#

oracle创建dblink(主要用于不同数据库之间的数据同步

1.授权用户创建dblink权限

grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to 用户名;

2.在A库创建dblink,连接B库:(标红内容为B库相关信息)

create public database link 名称   

connect to 用户名 identified by 密码

using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.202.103)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = erporcl)))';

3.查询数据:

select * from 表名@dblink名称;

4.删除dblink:

drop public database link 名称;

oracle用户密码过期,如何恢复

第一步:修改密码:

alter user  用户 identified by 密码;

第二步:解锁:

alter user  用户 account unlock;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Oracle常用命令包括以下几个方面: 1. 数据库启停:使用数据库管理员连接Oracle数据库,可以使用以下命令启动数据库: startup 关闭数据库可以使用以下命令: shutdown immediate 启动数据库监听可以使用以下命令: lsnrctl start 2. 修改密码过期时间:可以使用以下命令查看密码周期: SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name = 'PASSWORD_LIFE_TIME'; 修改密码周期为不限制可以使用以下命令: alter profile default limit password_life_time unlimited; 如果已经提示口令已经失效错误,可以使用以下命令修改密码: alter user 用户名 identified by 旧密码; commit; 3. 查询语法:在Oracle中,可以使用dual虚表来完善语法结构,例如: select length('abc') from dual; 这个语句可以在Oracle中查询字符串'abc'的长度。 以上是Oracle常用命令的几个方面介绍,更多详细的命令可以参考Oracle官方文档或相关学习资料。123 #### 引用[.reference_title] - *1* *3* [Oracle常用命令汇总](https://blog.csdn.net/qq_43413503/article/details/108004632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [oracle常用命令](https://blog.csdn.net/qq_35583325/article/details/127003621)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

mengchanmian

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值