使用oracle数据泵恢复DMP文件,一般会卡在Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX很久。
可以查看impdp的任务状态,大多是建立索引过慢导致,耐心等待。
select * from dba_datapump_jobs;
SELECT * FROM dba_resumable;
可能的优化办法是提高并行度 parallel=9
oracle 执行脚本中的 sql 语句有的语句带结尾有 /,有的结尾只有 ;
对于普通 select、insert 单行语句以 ;表示此 sql 输语句入结束并执行。
对于语句块,也就是带有begin ... end 的代码,结尾的分号;表述整个语句块的输入结束,并保存在缓存中并不执行,需要输入杠 / 来执行缓存中的语句。
ps:
/ 一般情况下表示再次执行上一次缓存的sql
1. 问题描述
Oracle DataGuard日志传输失败,日志信息如下所示,
Error 1017 received logging on to the standby
------------------------------------------------------------
Check that the primary and standby are using a password file
and remote_login_passwordfile is set to SHARED or EXCLUSIVE,
and that the SYS password is same in the password files.
returning error ORA-16191
------------------------------------------------------------
FAL[client, ARC2]: Error 16191 connecting to epmsn for fetching...
环境:Oracle 11.2.0.4
采用并行的方式,快速收集全库统计信息,多用于跨版本升级之后,对全库的统计信息重新进行快速收集:
123456789101112131415
--开启计时set timing on --设置并行收集exec dbms_stats.set_global_prefs('CONCURRENT','TRUE'); --开始收集全库统计信息begindbms_stats.gather_database_stats(ESTIMATE_PERCENT=>DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'for all indexed columns', cascade=>true, degree=>120);end;/ --关闭...
count 函数大家都希望返回 >=0 的整数,当查询条件中使用 group by 分组的时候,如果分组结果为空候会返回空 null
即便使用 IFNULL(COUNT(*),0) 结果扔为 null,解决办法是可以使用 case 判断 null 来返回 0
1
CASE WHEN (count(*) IS NULL) THEN 0 ELSE count(*) END total
涉及到的表
TTRD_OTC_TRADE
首先需要确认数据库已经开启归档模式
数据库需要执行的语句总结如下
-- 为捕获的数据库启用补充日志记录,以便数据更改捕获更改的数据库行之前的状态,下面说明了如何在数据库级别进行配置。
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
-- 修改TREALDEAL表让其支持增量日志
ALTER TABLE TTRD_OTC_TRADE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
-- 给用户赋权限
GRANT RESOURCE,EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE TO datacenter;
GRANT SELECT ANY TRANSACTION,SELECT ANY DICTIONARY,LOCK ANY TAB...
12345678910111213141516171819202122232425262728293031
# -*- coding: utf-8 -*-import cx_Oracleimport datetimeimport os#设置中文环境os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'#连接ORACLE数据库DB=cx_Oracle.connect('sys_monitor','sys_monitor','10.10.10.10:1521/orcl')print DB.dsnprint DB.version#创建游标cursor = DB.cursor()#定义入参a_d_bdate = datetime.datetime.strptime('2022-12-01','%Y-%m-%d')a_d_edate = datetime.datetime.str...
注意:不是每次执行的语句都会记录(如果执行的语句是能在该表找到的则ORACLE不会再次记录,就是说本次执行的语句和上次或者说以前的语句一模一样则下面语句就查不出来的):
12345
select last_load_time, sql_text from v$sql where module not in ('jsenv.exe','w3wp.exe','SQL Developer') --and sql_text like '%"Extent1"."ENCOUNTERID"%' order by last_load_time desc;select sql_text,last_load_time from v$sql order by last_load_time desc;SELECT...
创建并设置新的undo表空间
create undo tablespace undotbs02datafile '/home/oradata/mydb/undotbs201.dbf' size 1500M reuse AUTOEXTEND ON;
alter system set undo_tablespace=undotbs02;
select usn,xacts,status,rssize/1024/1024/1024,hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;
删除原UNDO表空间
alter tablespace undotbs01 offline
drop tablespace undotbs1 including contents and datafiles;
表空间增加数据文件方法
ALTER TABLESPACE undotbs02 ADD DATAFILE '/home/oradata/mydb/undotbs202.dbf'...
查询11g表空间使用率:
12345678910111213141516171819202122232425262728293031
set linesize 200 pagesize 999 col tablespace_name for a30 col file_name for a65 select name inst_name, b.tablespace_name , ROUND(b.total/1024/1024/1024 ,4) total_GB , ROUND(b.maxtotal/1024/1024/1024,4) maxtotal_GB, ROUND(a.free/1024/1024/1024,4) free_GB, ROUND(...