DBA日常维护中执行SQL的一些小技巧
来源:互联网 发布:java获取股票历史数据 编辑:程序博客网 时间:2024/05/02 11:45
后台执行sql的技巧:
DBA做维护工作时,一般是通过ssh或telnet到数据库主机上执行SQL,如果执行一个长时间的SQL,DBA的笔记本电脑与数据库主机如果发生网络中断,就会让执行了一半的SQL中断,为了避免这种情况,可以使用nohup让这个SQL后台执行,如下所示:
nohup sqlplus /nolog @my.sql > my.log &
然后另开一个会话,查看执行的进展情况:
tail -f my.log
当时如果数据库主机是Linux的话,一般Linux下都会有一个工具screen,如果有screen就不需要使用nohup后台执行了,在screen中运行sqlplus:
screen -S osdba
基中-S osdba是为screen的session起一个名字
然后现在这时的终端命令就是在screen环境中,然后运行sqlplus,如果这时ssh断了,下次再ssh到数据库主机中可以运行screen -x osdba来进行到先前的screen的session中。
而当我们执行一个长时间的SQL,有可能会出现表空间不足导致这个SQL执行出错,这时可以在SQL中设置:
alter session enable resumable;
alter session set resumable_timeout=72000;
alter session set resumable_timeout=72000;
这样设置后,如果出现表空间不足导致这个SQL无法执行下去时,这个SQL会挂住,加完空间后这个操作会继续,这样可以防止SQL运行了一半而失败。
同时可以在dba_resumable视图中查看该会话的状态:
select user_id,session_id, status, start_time, suspend_time,sql_text, error_number, error_msg from dba_resumable;
dbms_resumable.set_session_timeout(49,1800);select dbms_resumable.get_session_timeout(49) from dual;
dbms_resumable.abort(49);
在10g中,我们也可以通过DBA_OUTSTANDING_ALERTS 来监控resumable sessionselect object_name,object_type,reason,message_type,message_levelfrom dba_outstanding_alertswhere message_group='Space';
- DBA日常维护中执行SQL的一些小技巧
- DBA日常维护SQL整理
- DBA日常维护SQL整理
- DBA日常维护SQL整理
- DBA日常维护SQL整理
- 40个DBA日常维护的SQL脚本
- 【SQL Server DBA】日常维护语句
- Oracle 常用DBA语句 日常DBA维护的SQL命令收集
- CentOS 7 维护的一些小技巧
- 30个电脑日常维护小技巧
- dba日常管理维护工作
- Laravel 一些日常性能优化的小技巧
- DBA日常sql列表
- DBA日常sql列表
- rac日常维护技巧
- 执行sql脚本的小技巧
- My sql 日常维护命令的总结
- 一个普通的Oracle 维护人员写的《Oracle DBA数据库日常维护完全手册》
- JPA简单测试文件
- 纯属灌水
- c感悟
- Linux下u盘的使用
- 好难
- DBA日常维护中执行SQL的一些小技巧
- 我好孤独 好寂寞 好可怜
- 这里不错,有空常来
- strcpy
- String
- 今天
- void (C++)
- 进步
- 浅谈如何学Linux