oracle 运营维护_总结几个ORACLE数据库日常运维常用的命令(持续更新)
1、重建DBLINK不知道用户密码,不用知道密码,密文在SYS.LINK$存着呢,以sysdba的权限才能取出来
然后通过SQL创建DBLINK
CREATE DATABASE LINK
"DBLINK_wwwwwwwww"
CONNECT TO "username_zzzzzzzzzzz" IDENTIFIED BY VALUES
'05994DC6A7D4DCD81243536F3A00B85032'
--------密文
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxxxx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = yyyyyy)
)
)'
注意:数据库用户迁移后,job要重新定义建立
前面需加declare job number。。。。,存储过程要重新编译,DBLINK要重新建立
2、oracle密码失效解决办法:
登录成功以后查询DBA用户状态SQL->select username,account_status from dba_users;查看其中常用的用户状态是否是EXPIRED(失效)
还是LOCKED
如果sysman状态是过期,修改密码方法:
语句查询密码的有效期设置,
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND
resource_name='PASSWORD_LIFE_TIME';
LIMIT字段是密码有效天数。在密码将要过期或已经过期时可通过
ALTER USER 用户名IDENTIFIED BY密码;
语句进行修改密码,密码修改后该用户可正常连接数据库。
长久对应可通过
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED
语句将口令有效期默认值180天修改成“无限制”。出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,
再试下SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND
resource_name='PASSWORD_LIFE_TIME';看密码有效期是否为unlimit
3、生成AWR报告
Sqlplus / as sysdba
@?/rdbms/admin/awrrpt.sql
默认html回车、查看的天数选1天、选择开始和结束时间点用Snap Id、选择名字默认回车、生成至oracle家目录
4、查看操作系统使用CPU程对应的正在执行的SQL
SELECT/*+ ORDERED */
sql_text
FROM v$sqltext a
WHERE (a.hash_value, a.address) IN (
SELECT DECODE (sql_hash_value,
0, prev_hash_value,
sql_hash_value
),
DECODE (sql_hash_value, 0, prev_sql_addr,
sql_address)
FROM v$session b
WHERE b.paddr = (SELECT addr
FROM v$process c
WHERE c.spid = '&pid'))
ORDER BY piece ASC
/
写入PID
5、根据SQL ID查找SQL中绑定变量传参值
select name,t.VALUE_STRING from v$sql_bind_capture
t where t.SQL_ID=''
6、查看oracle字符集
select userenv('language') from dual
7、查找一个表的主键被哪些表字段的外键引用,外键约束(被引用的值主表不能删除,附表添加的值必须在主表中存在,附表值可以随意删除)
先查找主键约束名:
select * from user_constraints
a where
a.table_name = '表名'
然后
select
b.table_name,b.column_name from user_constraints a
inner join user_cons_columns b
on a.constraint_name =
b.constraint_name where
a.r_constraint_name='主键约束名'
8、批量杀死非活跃会话
select
'Alter system kill session '''
|| se.sid ||',' || se.serial# || ''';',
sid,
serial#
--select *
from v$session se WHERE
se.status in ('INACTIVE','KILLED') and se.USERNAME='TSM'
复制出来执行即可,如果利用上面的命令杀死一个进程后,Oracle进程状态被置为"killed",但是锁定的资源很长时间没有被释放,那么可以在os一级再杀死相应的进程(线程),首先获得进程(线程)号(注意要排除掉主机名是本身的进程,以免杀死oracle的后台进程):
select
'kill -9 '|| p.SPID ||''
from v$session s, v$process p
where s.paddr = p.addr and s.STATUS in ('INACTIVE','KILLED') and s.MACHINE not in ('CNBPMD101')
9、查看锁进程并查杀
select
'alter system kill session '''|| sess.sid ||''||','|| sess.serial# ||''';',
sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where
ao.object_id = lo.object_id and lo.session_id = sess.sid;
10、查看表空间使用率
SELECT
total.tablespace_name,
Round(total.MB, 2) AS Total_MB,
Round(total.MB - free.MB, 2) AS Used_MB,
Round(( 1 - free.MB / total.MB ) * 100, 2)
|| '%' AS Used_Pct
FROM (SELECT tablespace_name,
Sum(bytes) / 1024 / 1024 AS MB
FROM
dba_free_space
GROUP
BY tablespace_name)
free,
(SELECT tablespace_name,
Sum(bytes) / 1024 / 1024 AS MB
FROM
dba_data_files
GROUP
BY tablespace_name)
total
WHERE free.tablespace_name = total.tablespace_name;
11、闪回表
先在闪回区查看历史时刻表数据
select * from t_cas_feetype AS
OF TIMESTAMP to_timestamp('20150322 00:00:00','yyyymmdd hh24:mi:ss');
利用flashback table恢复表到过去某一时刻
alter
table tab_test enable row movement;
flashback
table tab_test to timestamp ('20140917 10:00:00','yyyymmdd hh24:mi:ss');
alter
table tab_test disable row movement;
查看过去某一段时间内对表的操作,以确认需要恢复到的时间点
select
SQL_TEXT,LAST_ACTIVE_TIME from v$sqlarea where LAST_ACTIVE_TIME
>to_date('20140917 10:00:00','yyyymmdd hh24:mi:ss') and SQL_TEXT like
'%tab_test%';
确认是否开启数据库闪回
select
log_mode,flashback_on from v$database;
12、查看表大小排序
select
table_name,blocks*8/1024
from
user_tables
where owner not like '%SYS%' and table_name not like '%$%'
order by blocks desc;
14、Oracle中查找阻塞与被阻塞SID的方法
在Oracle中,会经常遇到阻塞与被阻塞的情况.
查找阻塞与被阻塞的方法主要有下面几种:
一.通过查找v$lock和v$locked_object
这是最常用的也是最直接的方法
SQL> select sid,block from v$lock
where block=1;
SID BLOCK
---------- ----------
252 1
SQL>
SQL> select object_id,session_id from v$locked_object where object_id in
(select object_id from v$locked_object where session_id=252);
OBJECT_ID SESSION_ID
---------- ----------
63833 252
63833 269
SQL>
由上面第一条语句可以看出,SID=252的session阻塞了其他的session
由第二条语句可以得出,SID=252的session阻塞了SID=269的session
二.通过查找dba_waiters和dba_blockers
SQL> select * from dba_blockers;
HOLDING_SESSION
---------------
252
SQL>
SQL>
SQL> select waiting_session,holding_session from dba_waiters;
WAITING_SESSION HOLDING_SESSION
--------------- ---------------
269 252
从dba_blockers视图中,可以看到,SID=252的session阻塞了别的session,而从dba_waiters可以看到,HOLDING_SESSION为252,等待的WAITING_SESSION为269.
三.在Oracle 10G中可以通过v$session中的blocking_session字段查找
SQL> select sid,blocking_session from v$session where blocking_session is
not null;
SID BLOCKING_SESSION
---------- ----------------
269 252
15、查看当前活跃连接数正在执行的SQL
select s.sql_id,s.sql_text from
v$sql s,gv$session g
where s.SQL_ID=g.SQL_ID and
g.USERNAME='ECOLOGY'
and g.status='ACTIVE'
都是平时运维经常需要用到的SQL,后面再总结会持续更新进去
oracle 运营维护_总结几个ORACLE数据库日常运维常用的命令(持续更新)相关推荐
- oracle 运营维护_Oracle数据库日常运维常用脚本
大 中 小 Oracle数据库日常运维常用脚本 1 查看所有数据文件 select file_name from dba_data_files union select file_name from ...
- 数据库日常运维操作手册
目 录 一.日维护过程... 3 1.1.确认所有的INSTANCE状态正常... 3 1.2.检查文件系统的使用(剩余空间)... 3 1.3.检查日志文件和trace文件记录... 3 1.4.检 ...
- mysql dba工作笔记pdf_社区专家在线:Oracle数据库、MySQL、Db2 等数据库日常运维故障与性能调优在线答疑...
数据库的重要性毋庸置疑,随着数据量日益增加,数据库的重要性更为凸显.DBA们作为数据库的日程运维管理人员,肩负着数据库运维的重要使命.一名合格的DBA,日常工作中需要掌握多项技能,包括数据库的故障诊断 ...
- mysql运维命令_运维常用 MySQL 命令
设置用户密码 方法一 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NewPassword'); mysql> SET PASSWORD FOR ...
- 网易乐得数据库及运维分享会
关注「网易乐得DBA」 了解数据库前沿技术 2018年网易乐得技术分享-MySQL数据库及运维分享专场,将从开源MySQL中间件Cetus架构及应用.RDS自动化运维平台.运维Docker平台三个的方 ...
- oracle 数据库运维技术,Oracle数据库智能运维标准化工艺研究-orastar-DIY数据库运维工具-第1期 导论篇...
1.编制目的 为了提升运维质量,增强数据库运维标准化.规范化,保障信息系统的安全.稳定.高效运行,助力实现智能运维,star同学在此抛砖引玉,特编制该文档. 2.维度定义 根据运维经验,现将数据库日常 ...
- 介绍一下当前使用的Oracle数据库自动化运维方式
介绍一下当前使用的Oracle数据库自动化运维方式 整体结构 12C API system 整体结构 不管12C还是11G集群使用的都是svn+httpd+RPM+运维脚本的方式. SVN:运维脚本管 ...
- linux运维工程师培训课程_【课程培训】坐标6月份网络技术培训班开课了!数据库服务器运维相关经验...
信息时代的飞速发展使得"信息安全"上升到了一个前所未有的高度.计算机里的数据就像扫雷游戏一样,十面埋伏充满雷区,随时都有可能Game Over,因此,信息安全的核心在于数据安全,数 ...
- 有赞数据库自动化运维实践之路
「运维内推」有赞诚聘:应用运维工程师.系统运维工程师.运维开发工程师.DBA.请关注文末链接 一.前言 有赞作为"新零售"的软件服务供应商,随着业务的不断发展,从第一批几十家商户到 ...
最新文章
- 超详细的Java面试题总结(四 )之JavaWeb基础知识总结
- 如何设计一个高性能CPU?
- 请大家访问另一个我的博客!
- storm目录结构及在zk中的目录结构
- dll文件:关于MFC程序不能定位输入点
- java list 自定义类型转换_使用Java Stream API将List按自定义分组规则转换成Map的一个例子...
- pytorch图像检索评价指标MAP
- HDU——1257最少拦截系统(贪心)
- php 网络图片 execl,phpexcel图片获取
- rancher k8s docker 关系_CentOS7下利用Rancher搭建K8s集群
- 非常简单的conda环境重命名方法
- 基于DL的目标检测技术:R-CNN、Fast R-CNN、Faster R-CNN
- (十一)GDBdebug调试技术——malloc()和free()发生故障
- 【线性代数】矩阵分解(Matrix Factorization)笔记:非负矩阵分解
- sprint演示会议
- 美计算机科学学者建议:加强青少年网络安全意识引导
- android重建模拟器,Android建立模拟器进行调试
- 服务器上传文件出现500错误,但是其他不涉及文件的接口均正常
- 谷歌浏览器显示oracle,css让table不显示边框的代码在火狐和谷歌浏览器中无效
- 知识付费分销直播营销系统源码
热门文章
- java爬虫防屏蔽_Java爬虫技术之绕过百度云防护抓取网站内容
- 安全伞项目-腾讯智能对话平台TBP使用
- linux java sqlldr_oracle在linux如何安装sqlldr
- 都 2021 了,你还忘记关闭 http body?
- Spring 这些能升华代码的技巧,可能会让你爱不释手
- CSDN”好师父“培养高素质技术人才
- 华为发布全新一代OceanStor存储Pacific系列,打造海量数据存储新标杆
- 搜狗输入法回应误推地震信息;近亿人在钉钉上报健康情况;Rust 1.41.0发布 | 极客头条...
- 你能说出 Kafka 这些原理吗?
- 那些月薪过万的程序员都是从什么时间开始的?